Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Beispiele
Einfaches Accordion
<Accordion>
<AccordionCard title="Card 1">Test card</AccordionCard>
<AccordionCard
title="Card 2"
initialExpanded>
Card initially open
</AccordionCard>
<AccordionCard
disabled
title="Card 3">
Test card 3
</AccordionCard>
</Accordion>
Die Komponenten Accordion und AccordionCard sind im Paket @jutro/components verfügbar. Nur AccordionCard kann in Accordion eingefügt werden. Für AccordionCard muss immer eine title- oder dangerouslyRenderHeader-Eigenschaft festgelegt sein, die Verwendung der letzteren wird jedoch nicht empfohlen.
Anpassung der Accordion-Darstellung
<Accordion
chevronPosition="left"
hideDivider>
<AccordionCard title="Card 1">Test card</AccordionCard>
<AccordionCard title="Card 2">Test card 2</AccordionCard>
<AccordionCard
disabled
title="Card 3">
Test card 3
</AccordionCard>
</Accordion>
Wenn Sie die Eigenschaft hideDivider verwenden, können Sie alle Trenner ausblenden. Die Position des Chevron ist auf die Optionen left und right beschränkt. Beide werden auf Accordion-Ebene festgelegt.
.customHeaderContainer {
display: flex;
align-items: center;
}
.customHeaderIcon {
margin-right: 8px;
}
import {
Accordion,
AccordionCard,
useAccordionCardState,
} from '@jutro/components';
const CustomHeader1 = () => {
const { expanded, title } = useAccordionCardState();
return (
<div className={styles.customHeaderContainer}>
{expanded ? `Expanded ${title}` : `Collapsed ${title}`}
</div>
);
};
const CustomHeader2 = () => {
const { expanded } = useAccordionCardState();
return (
<div className={styles.customHeaderContainer}>
{expanded ? (
<Icon
icon="gw-add"
className={styles.customHeaderIcon}
/>
) : (
<Icon
icon="gw-alarm"
className={styles.customHeaderIcon}
/>
)}
Custom rendered card header
</div>
);
};
<Accordion>
<AccordionCard title="Card 1">Test card</AccordionCard>
<AccordionCard
title="custom card header"
dangerouslySetHeader={<CustomHeader1 />}>
I'm basic but custom
</AccordionCard>
<AccordionCard
dangerouslySetHeader={<CustomHeader2 />}
initialExpanded
onFocus={() =>
console.log(
"I'm a custom attribute of a button added to be triggered on accordion card button focus"
)
}>
I'm so custom
</AccordionCard>
</Accordion>;
dangerouslySetHeader ermöglicht eine größere Flexibilität bei Kopfzeileninhalten, allerdings wird empfohlen, diese Eigenschaft nicht übermäßig zu verwenden.
Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Verwendung
Überblick
Das Accordion ist eine Komponente, die eine progressive Anzeige von Informationen ermöglicht. Accordions sind nützlich, wenn Sie große Mengen an Inhalten auf kleinem Raum bereitstellen müssen (z. B. auf mobilen Benutzeroberflächen oder im Seitenbereich). Sie bestehen aus vertikal angeordneten Kopfzeilen, die ausgeklappt werden, um den zugehörigen Inhalt anzuzeigen. Mit Accordions können Benutzer selbst bestimmen, wie viele Informationen sie zu einem bestimmten Zeitpunkt auf dem Bildschirm sehen. Accordions können in Assistenten und mobilen Lösungen verwendet werden, bei denen der Platz knapp ist.
Zu verwenden
- Zum Offenlegen von Inhalten, die Benutzer auswählen und lesen können.
- Wenn der vertikale Platz begrenzt ist und nicht alle Inhalte auf einmal angezeigt werden müssen.
- Zum Organisieren zusammengehöriger Informationen.
Nicht zu verwenden
- Bei Inhalten, die für das Ausführen von Aufgaben wichtig sind.
- Beim Erstellen eines Menüs. Verwenden Sie stattdessen lieber die Komponente Überlaufmenü.
- Wenn mehrere Accordions ineinander verschachtelt werden müssen. Verwenden Sie stattdessen lieber die Komponente Baumansicht.
Aufbau

Das Accordion besteht aus den folgenden Elementen:
- Kopfzeile: Titel, der Benutzern einen Überblick über den Inhalt des jeweiligen Bereichs gibt.
- Chevron: Symbol, das den Status des Accordion angibt (aus- oder eingeklappt).
- Hauptinhalt: Zugehöriger Inhalt, der beim Ausklappen der Accordion-Kopfzeile angezeigt wird. Kann Text oder UI-Elemente (z. B. ein Eingabefeld) enthalten.
- Trenner: Visueller Trenner zur Unterscheidung der Elemente des Accordion. Er muss standardmäßig sichtbar sein, mit der Option, ihn auszublenden.
Ausrichtung und Positionierung
Standardmäßig befindet sich das Chevron-Symbol auf der rechten Seite (am Ende) der Kopfzeile. So kann der Accordion-Titel an anderen Inhalten auf der Seite ausgerichtet werden. Die Position der Symbole (links oder rechts) muss auf allen Seiten innerhalb einer App einheitlich sein.

Das Accordion muss über die gesamte Breite des übergeordneten Containers gehen. Ändern Sie die Breite des Containers, um die Breite des Accordion zu ändern.
Passen Sie die Breite des Accordion an die Breite des übergeordneten Containers an.
Das Accordion sollte nicht schmaler als der übergeordnete Container sein.
Inhalt
Allgemeine Richtlinien fürs Schreiben
- Verwenden Sie die Großschreibung des ersten Worts und von Substantiven für alle Aspekte der Gestaltung von Guidewire-Produktschnittstellen. Schreiben Sie nicht alles groß.
- Verwenden Sie in den meisten Situationen Verben im Präsens und im Aktiv.
- Verwenden Sie gebräuchliche Abkürzungen, um Ihrem Text einen natürlichen und informellen Ton zu verleihen.
- Verwenden Sie eine einfache Sprache. Vermeiden Sie unnötigen Jargon und komplexe Sprache.
- Halten Sie Wörter und Sätze kurz.
Die Accordion-Kopfzeile kann Folgendes enthalten:
- Text (Kopfzeilentitel und sekundärer Text).
- Symbol (Wenn sich das Chevron auf der rechten Seite befindet, können Sie ein Symbol vor dem Titel der Kopfzeile positionieren. Wenn sich das Chevron auf der linken Seite befindet, positionieren Sie das Symbol am Ende der Accordion-Kopfzeile).
Die Accordion-Kopfzeile kann Text, Symbole und andere nicht interaktive Elemente enthalten.
Fügen Sie keine interaktiven Elemente, wie z. B. Schaltflächen, in der Accordion-Kopfzeile ein. Dies beeinträchtigt die Barrierefreiheit.
Jede Accordion-Kopfzeile muss einen eindeutigen Titel enthalten, der den zugehörigen Hauptinhalt klar und prägnant beschreibt. Kopfzeilen werden in der üblichen Groß- und Kleinschreibung angezeigt, mit Ausnahme von Eigennamen.
Hauptteil des Accordion
- Inhalte in Accordions sollten nie horizontal gescrollt werden.
- Bei Bedarf können Sie die Inhalte eines Accordion-Bereichs in Absätze unterteilen und untergeordnete Kopfzeilen einfügen.
Wort- und Zeichenbeschränkungen
Es gelten keine Beschränkungen für Zeichen oder Wörter in der Kopfzeile oder im Hauptinhalt.
Verhalten
Zustände
Die Komponente Accordion hat 2 Hauptzustände: eingeklappt und ausgeklappt.
- Eingeklappt: Standardzustand, wenn das Accordion eingeklappt ist und nicht darauf geklickt wird. Geschlossene Accordions werden ohne Hervorhebung und nur mit dem Titel der Kopfzeile angezeigt.
- Ausgeklappt: Gibt an, dass der Benutzer auf das Accordion geklickt und es ausgeklappt hat, um Inhalte anzuzeigen. Das Chevron-Symbol zeigt nach unten, um anzuzeigen, dass das Accordion aufgeklappt wurde.
Zusätzlich zum eingeklappten und ausgeklappten Zustand verfügen Accordions auch über interaktive Zustände für aktiviert, deaktiviert, schwebend, fokussiert und aktiv.
| Zustand | Beschreibung |
|---|
 | Aktiviert | Standardzustand. |
 | Deaktiviert | Gibt an, dass das Accordion nicht interaktiv ist, es aber zu einem bestimmten Zeitpunkt sein kann. Der Zustand „Deaktiviert“ ist nicht dafür gedacht, barrierefrei zu sein, daher darf er nicht fokussiert werden. |
 | Schwebend | Gibt eine Stiländerung an, wenn der Benutzer mit der Maus über die Kopfzeile des Accordion fährt. |
 | Fokussiert | Gibt an, dass der Benutzer das Accordion angeklickt (aber nicht ausgeklappt) hat. Die Ränder der Komponente werden in unserer Markenfarbe hervorgehoben. |
 | Aktiv | Gibt an, dass der Benutzer auf das Element klickt oder tippt. |
Interaktionen
Maus
Wenn ein Benutzer klickt, um ein neues Accordion-Element zu öffnen, bleiben die bereits geöffneten Elemente erhalten. Jede Interaktion erfordert einen Benutzerklick, um eine Desorientierung in der Benutzeroberfläche zu verhindern. Benutzer können das Accordion ein- und ausklappen, indem sie auf das Chevron oder auf eine beliebige Stelle im Kopfzeilenbereich klicken.
Tastatur
Die Accordion-Kopfzeile dient als Schaltfläche. Mit der Eingabetaste und der Leertaste werden die einzelnen Accordion-Bereiche aus- und eingeklappt. Mit Tab und Umschalt+Tab kann durch die fokussierbaren Accordion-Elemente navigiert werden.
Screenreader
Im eingeklappten Zustand ist der Inhalt des Accordion-Bereichs verborgen. Der WAI-ARIA-Zustand aria-expanded="false" gibt dem Benutzer an, dass das Panel nicht sichtbar ist. Wenn das Accordion ausgeklappt ist, ändert sich das ARIA-Attribut zu „true“, um anzugeben, dass der Inhalt sichtbar ist.
Barrierefreiheit
Das Kontrastverhältnis von Textelementen zu ihrem Hintergrund liegt über 4,5:1 gemäß den Anforderungen der WCAG 2.1 AA. Nicht-textuelle Inhalte, die eine Bedeutung vermitteln müssen (z. B. Symbole und Sichtbarkeit des Tastaturfokus), weisen ein Kontrastverhältnis von mindestens 3:1 zu den angrenzenden Farben auf. Alle Inhalte sind bis einschließlich 400 % sichtbar und funktionsfähig, ohne dass ein Scrollen in zwei Dimensionen erforderlich ist.
Diese Komponente wurde validiert, um die Zugänglichkeitsrichtlinien WCAG 2.1 AA zu erfüllen. Vom Autor des Inhalts vorgenommene Änderungen können sich jedoch auf die Konformität mit der Barrierefreiheit auswirken.
Befolgen Sie die folgenden Anweisungen und beachten Sie auch die WAI-ARIA-Erstellungspraktiken für Accordions, wenn Sie diese Komponente in Ihren Anwendungen verwenden:
- Jede Accordion-Kopfzeile muss einen eindeutigen Titel enthalten, der den Inhalt des Accordion-Bereichs beschreibt. Dies hilft vor allem blinden Benutzern, da sie durch die einzelnen Kopfzeilen navigieren und den Inhalt verstehen können, ohne jeden Bereich aufklappen zu müssen.
- Achten Sie darauf, dass es keine Tastaturfallen gibt, wenn Inhalte zum Accordion-Bereich hinzugefügt werden. Die Benutzer müssen in der Lage sein, zu jedem fokussierbaren Element innerhalb jedes Bereichs und anschließend zur nächsten Accordion-Kopfzeile zu wechseln.
Note: Es gibt veraltete Versionen dieser Komponente. Wechseln Sie zu einer Version, die älter als 10.0.x ist, um die entsprechende Dokumentation anzuzeigen.
Code
<Accordion>
<AccordionCard title="Card 1">Test card</AccordionCard>
<AccordionCard title="Card 2">Test card 2</AccordionCard>
<AccordionCard
disabled
title="Card 3">
Test card 3
</AccordionCard>
</Accordion>
Importanweisung
import { Accordion, AccordionCard } from '@jutro/components';
Komponentenvertrag
Vergewissern Sie sich, dass Sie die API-Oberfläche der Design System-Komponenten und die damit verbundenen Auswirkungen und Kompromisse verstehen. Erfahren Sie mehr in unserer Einführung zur Komponenten-API.
Eigenschaften
Accordion
childrenerforderlich
TypAccordionCard | AccordionCard[]
BeschreibungAccepts one or many AccordionCards that will be rendered in context of this Accordion container.
chevronPosition
BeschreibungSets the position of the chevron icon for all the AccordionCards in the container.
className
BeschreibungCSS class name for this component.
hideDivider
BeschreibungIf set to true, the dividers between AccordionCards in the container will be hidden.
AccordionCard
titleerforderlich
BeschreibungMessage rendered as the title for the AccordionCard. If the dangerouslySetHeader property is provided, it becomes optional and won't be rendered by default.
className
BeschreibungCSS class name for this component.
BeschreibungCustom header component to be displayed in the AccordionCard instead of title. It takes precedence over title prop when both are defined.
disabled
BeschreibungIf set to true, the entire AccordionCard component will be disabled and proper styles will be applied.
initialExpanded
BeschreibungIf set to true, the AccordionCard will be expanded on initial load.
Übergeben von HTML-Eigenschaften an die AccordionCard-Komponente
Unter der Benutzeroberfläche, AccordionCard rendert ein natives HTML-Schaltflächen-Element. Wenn es eine HTML-Eigenschaft der Standard-HTML-Schaltfläche gibt, die nicht bereits Teil der Komponente AccordionCard ist, können Sie sie an die Komponente übergeben. Sie wird der internen HTML-Schaltflächenkomponente zugewiesen.
<AccordionCard
title="Card title"
id="accordion-card-1"
/>
Durch die Übergabe dieser id-Eigenschaft wird diese Teil des HTML-Button-Elements, das im HTML-DOM erstellt wird.
Hooks
useAccordionCardState: Enthält Eigenschaften aus dem Kontext von AccordionCard, die zum Erstellen benutzerdefinierter AccordionCard-Kopfzeilen verwendet werden können. Der Hook gibt einen Wert zurück, der ein Objekt mit folgendem Inhalt darstellt:
disablederforderlich
BeschreibungWhether the AccordionCard is currently disabled.
expandederforderlich
BeschreibungWhether the AccordionCard is currently expanded.
titleerforderlich
BeschreibungValue of the AccordionCard's text property.
const CustomHeader = () => {
const { expanded, disabled, title } = useAccordionCardState();
return (...);
};
Übersetzungsschlüssel
Es gibt keine Übersetzungen für Accordion.
Informationen über die Verwaltung von Übersetzungen finden Sie in unserem Abschnitt über Internationalisierung.
Escape Hatches
Weitere Informationen finden Sie in unserer Dokumentation über Escape-Hatches.
Verwenden Sie die ältere Accordion-Komponente?
-
Um die entsprechende Dokumentation für die alten Komponenten anzuzeigen, wechseln Sie zu einer Version der Dokumentation, die älter als 10.0 ist.
-
Die folgenden älteren Komponenten sind auch in Storybook verfügbar:
Änderungsprotokoll
10.0.0
Es wurde eine neue @jutro/components/Accordion-Komponente eingeführt, welche die vorherige ersetzt.
Die früheren Accordion-bezogenen Komponenten wurden verworfen und in das @jutro/legacy-Paket verschoben. Um die entsprechende Dokumentation anzuzeigen, wechseln Sie zu einer Version der Dokumentation, die älter als 10.0 ist.
Ursprüngliche Speicherorte der Komponenten:
AccordionCard: @jutro/components/Accordion
AccordionCard: @jutro/components/AccordionCard
Neue Speicherorte der Komponenten:
Accordion: @jutro/legacy/components/Accordion
AccordionCard: @jutro/legacy/components/AccordionCard
Es gibt Codemods, mit denen Sie vorhandene Importe automatisch umbenennen können.