Schaltfläche
Beispiele
Im Abschnitt Verwendung finden Sie Informationen zum korrekten Design einer Schaltfläche und den verschiedenen bereitgestellten Alternativen und Varianten. Unter Verwendung der verfügbaren Eigenschaften können Sie verschiedene Varianten einer Schaltfläche erstellen.
Einfache Schaltfläche
Die Komponente Button ist im Paket @jutro/components verfügbar. Bei der Arbeit mit der Schaltfläche gibt es 4 Grundeigenschaften: label, icon, variant und onClick. In den meisten Fällen sind dies die einzigen Eigenschaften, die Sie verwenden werden.
import Button from '@jutro/components';
// ...
<Button
label="Click me"
icon="gw-bathtub"
onClick={handleClick}
/>;
Schaltfläche nur mit Symbol
Mit der Eigenschaft hideLabel können Sie eine Schaltfläche nur mit Symbol erstellen, auf der keine Beschriftung, sondern nur das ausgewählte Symbol angezeigt wird. Die Eigenschaft label wird für die aria-label der Schaltfläche verwendet.
<Button
icon="gw-bathtub"
label="this will be the aria-label text"
onClick={handleClick}
hideLabel
/>
In diesem Fall wird der Wert der Eigenschaft iconPosition ignoriert und das Symbol wird immer zentriert angezeigt.
Asynchrone Schaltfläche
Wenn mit einer Schaltfläche eine Aktion ausgelöst wird und auf deren Beendigung oder auf ein spezifisches Ereignis gewartet werden muss, lässt sich dies wie folgt festlegen:
import React, { useEffect, useState } from 'react';
import { InlineLoader } from '@jutro/components';
import { Button } from '@jutro/components';
import styles from './AsyncButton.module.css';
function getFromAPI() {
return new Promise((resolve) => {
setTimeout(() => {
resolve('Done!');
}, 2000);
});
}
export function AsyncButtonExample() {
const [loading, setLoading] = useState(true);
useEffect(() => {
async function someAsyncFunction() {
await getFromAPI();
setLoading(false);
}
if (loading) {
someAsyncFunction();
}
}, [loading]);
return (
<Button
label={loading ? 'Saving' : 'Save'}
renderIcon={() => <InlineLoader loading={loading} />}
iconPosition="right"
disabled={loading}
onClick={() => setLoading(true)}
/>
);
}
Schaltfläche mit QuickInfo
Tooltip wird durch die Kombination Tooltip + Button hinzugefügt
<Tooltip content="This is a tooltip">
<Button label="Click me" />
</Tooltip>
Verwendung
Überblick
Die Schaltfläche ist eine Komponente, die es Benutzern ermöglicht, mit einem einzigen Klick Aktionen auszuführen und Entscheidungen zu treffen. Man sollte sich eine Schaltfläche als Kommunikation zwischen dem Benutzer und der Anwendung vorstellen. In den meisten Fällen, in denen Benutzer auf Text stoßen (z. B. bei einem Leerzustand, einer Bestätigung oder einem Fehler), „spricht“ die Anwendung zu dem Benutzer. Schaltflächen gehören zu den wichtigsten Komponenten, mit denen Benutzer interagieren. Mit ihnen können Benutzer ihre Absicht angeben.
Zu verwenden
- Zum Auslösen einer Aktion. Z. B. Senden, Hochladen, Hinzufügen, Löschen, Speichern oder Anwenden.
Nicht zu verwenden
- Zum Aufrufen einer neuen Seite. Verwenden Sie stattdessen die Komponente Link.
- Zum Hochladen von Dateien. Verwenden Sie stattdessen die Komponente Datei-Uploader.
Formatierung
Aufbau

Schaltflächen bestehen aus den folgenden Elementen:
- Primäre Schaltflächen zeigen Container (A) um eine Beschriftung (B) mit einem optionalen Symbol (C) an. Primäre Schaltflächen haben einen einfarbigen Hintergrund.
- Sekundäre Schaltflächen zeigen Container (A) um eine Beschriftung (B) mit einem optionalen Symbol (C) an. Sekundäre Schaltflächen haben einen sichtbaren Rand und keine Hintergrundfarbe.
- Tertiäre Schaltflächen zeigen eine Beschriftung (B) mit einem optionalen Symbol (C) an.
- Symbolschaltflächen zeigen Container (A) um ein obligatorisches Symbol (C) an.
Ausrichtung und Positionierung
Wenn eine Schaltflächengruppe als Teil eines Prozesses angezeigt wird, z. B. in einem Assistenten oder einem modale Fenster, wird empfohlen, die Schaltflächen unten rechts auf der Seite zu positionieren, um die natürliche Navigation der Seiten beizubehalten. In dieser Schaltflächengruppe befinden sich die primären Schaltflächen ganz rechts.


Für die Kundenkonfiguration können Sie das Symbol links neben der Schaltflächenbeschriftung oder rechts neben der Schaltflächenbeschriftung festlegen, aber nicht beides gleichzeitig.
Bei internen Guidewire-Anwendungen positionieren Sie das Symbol immer rechts, damit der Benutzer zuerst die Beschriftung liest und dann das Symbol sieht.
Schaltflächen-Typen
Schaltflächen sind rechteckig mit abgerundeten Ecken, Schlagschatten (außer tertiäre Schaltflächen), einfacher Farbgestaltung und Beschriftungen in der üblichen Groß- und Kleinschreibung.
| Typ | Zweck |
|---|---|
| Primäre Schaltfläche | Primäre Schaltflächen werden stark hervorgehoben. Verwenden Sie sie für die wichtigste Aktionen. Jede Seite darf nur eine primäre Schaltfläche enthalten, um die Aktion auszulösen (außer modales Fenster oder Schnellansicht). |
| Sekundäre Schaltfläche | Sekundäre Schaltflächen werden mittelstark hervorgehoben. Verwenden Sie sekundäre Schaltflächen in Verbindung mit einer primären Schaltfläche. Als Teil eines Paares besteht die Funktion der sekundären Schaltflächen darin, die Aktion abzulehnen. Sie bieten dem Benutzer die Möglichkeit, aus dem Vorgang „auszusteigen“ und keine Aktion auszuführen. Zum Beispiel Abbrechen gg. die primäre Aktion Senden. Verwenden Sie sekundäre Schaltflächen nicht einzeln, und verwenden Sie keine sekundäre Schaltfläche für die Hauptaktion. |
| Tertiäre Schaltfläche | Tertiäre Schaltflächen werden schwach hervorgehoben. Verwenden Sie sie für weniger wichtige und manchmal unabhängige Aktionen. Sie können tertiäre Schaltflächen separat verwenden oder sie mit einer primären Schaltfläche koppeln, wenn es mehrere Aktionsaufrufe gibt. Wenn eine primäre Schaltfläche für die Hauptaktion vorhanden ist, können Sie auch tertiäre Schaltflächen für Unteraufgaben auf einer Seite verwenden. |
| Symbolschaltfläche | Symbolschaltflächen sind für allgemein bekannte Aktionen vorgesehen und müssen in Verbindung mit einer QuickInfo verwendet werden. |
Jede Seite darf nur eine primäre Auslöseaktion enthalten:


Schaltflächen-Gruppen
Schaltflächen können gruppiert werden, um die Beziehung zwischen ihnen zu veranschaulichen. Wir empfehlen, einen Abstand von 16 Pixeln zwischen den Schaltflächen zu verwenden (sowohl vertikal als auch horizontal).


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.
Kurz und bündig
- Halten Sie die Beschriftung von Schaltflächen kurz und einfach: 1 oder 2 Wörter, nicht länger als 4 Wörter.
- Verwenden Sie keine Artikel, um Scanbarkeit, Verständnis und Aufgabenabschluss zu unterstützen.
Quelle: Nielsen Norman


Geben Sie die Aktion eindeutig an
- Bei Befehlen, die eine Aktion einleiten oder Informationen übermitteln, sollte ein Verb im Zentrum der Beschriftung der Schaltfläche stehen. Wenn die Aktion nicht allein anhand des Verbs klar wird, fügen Sie ein Substantiv hinzu, um den Kontext eindeutig zu machen. Zum Beispiel: Fahrzeug hinzufügen statt nur **Hinzufügen **oder Zeitplan erstellen statt nur Erstellen.
- Verwenden Sie für Schaltflächenbeschriftungen nicht Ja und Nein. Benennen Sie die Aktion, die passiert, wenn der Benutzer klickt.
- Wählen Sie Wörter, die logisch an den vorherigen Inhalt anschließen: Wenn in der Überschrift Objekttyp ## löschen? steht, sollte auch der Schaltflächentext Löschen enthalten.
- Seien Sie vorsichtig, wenn Sie eine primäre Schaltfläche für eine destruktive Aktion verwenden, insbesondere wenn diese durch eine Eingabe in die Tastatur ausgelöst werden kann. Seien Sie in diesen Fällen sehr explizit, damit es keine Zweideutigkeit gibt.
Eine Liste mit empfohlenen Aktionsbeschriftungen zur einheitlicher Gestaltung finden Sie in den ](./common-actions.mdx) Inhaltsrichtlinien[ von Jutro.


Schreiben Sie das erste Wort und Substantive groß.
Text auf Schaltflächen muss immer der üblichen Groß- und Kleinschreibung entsprechen. Verwenden Sie niemals durchgängig Großbuchstaben, um eine bestimmte Schaltfläche hervorzuheben.
Weitere Informationen zum Implementieren der Groß- und Kleinschreibung finden Sie im UI-Textstyleguide.


Achten Sie auf den Ton
- Bei Beschriftungen der Schaltflächen sollte dem Sprachschatz der Benutzer entsprechen. Fragen Sie sich, ob die betreffenden Wörter in Unterhaltungen verwendet werden.
- Verwenden Sie keine Emojis, Ausrufezeichen oder andere Interpunktionszeichen in Schaltflächenbeschriftungen.


Verhalten
Zustände
Schaltflächen haben die Zustände Aktiviert, Schwebend, Fokussiert, Aktiv, Deaktiviert, und Wird geladen.
| Zustand | Beschreibung | |
|---|---|---|
| Aktiviert | Teilt dem Benutzer mit, dass das Element für die Interaktion aktiviert ist (Standard). | |
| Schwebend | Zeigt an, dass der Benutzer den Mauszeiger auf dem Element positioniert hat (desktop only). Der Zustand „Schwebend“ kann mit den Zuständen „Aktiviert“ und „Wird geladen“ verwendet werden. | |
| Fokussiert | Gibt eine Rückmeldung darüber, dass der Benutzer das Element hervorgehoben hat, in der Regel über eine Eingabemethode wie Tastatur oder Sprachbefehl. Der Zustand „Fokussiert“ kann mit allen anderen Zuständen (einschließlich „Deaktiviert“) verwendet werden. | |
| Aktiv | Gibt an, dass der Benutzer auf das Element klickt oder tippt. Der Zustand „Aktiv“ kann mit den Zuständen „Aktiviert“ und „Schwebend“ verwendet werden. | |
| Deaktiviert | Teilt dem Benutzer mit, dass das Element nicht interaktiv ist. Jede Schaltfläche ist standardmäßig barrierefrei deaktiviert. Das bedeutet, dass die deaktivierte Schaltfläche fokussiert werden kann. | |
| Wird geladen | Teilt dem Benutzer mit, dass die Aktion ausgeführt wird. Verwenden Sie den Zustand „Wird geladen“, wenn eine Aktion wahrscheinlich länger als 1 Sekunde dauert. Wenn sich eine Schaltfläche im Zustand „Wird geladen“ befindet, muss Folgendes passieren:
|
Interaktionen
Maus
Die Schaltfläche kann ausgelöst werden, indem man auf eine beliebige Stelle innerhalb des Schaltflächencontainers klickt.

Tastatur
Wenn die Schaltfläche fokussiert wird, kann sie über die Leertaste und die Eingabetaste aktiviert werden.
Screenreader
Die Schaltflächenkomponente verwendet das implizit semantische HTML5 <button>-Tag. Der Text innerhalb der Tags dient als barrierefreier Name.
Reaktionsfähigkeit und Anpassungsfähigkeit
Jutro-Schaltflächen sind in 2 verschiedenen Größen verfügbar und lassen sich so entsprechend den Anforderungen von Unternehmens- und Consumer-Anwendungen verwenden. Unternehmensanwendungen erfordern eine höhere Datendichte und weisen daher kleinere Schaltflächen und eine größere Bildschirmfläche auf. Dank des responsiven Jutro-Designs können Schaltflächen wie die meisten anderen Komponenten über die Komponenten Grid und Flex verteilt, in der Größe verändert und angeordnet werden.
| Kleine Schaltfläche | Mittelgroße Schaltfläche |
|---|---|
Bei mobilen Anwendungen wird empfohlen, Schaltflächen über die gesamte Breite des Containers anzuordnen (der Text und das Symbol in der Schaltfläche müssen zentriert sein).

Barrierefreiheit
Das Jutro-Schaltflächenelement stellt eine HTML-Schaltfläche dar, die zum Übermitteln von Informationen verwendet wird. Der Text zwischen dem öffnenden und dem schließenden Tag wird als Text der Schaltfläche angezeigt.
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 die WAI-ARIA-Erstellungspraktiken für Schaltflächen, wenn Sie diese Komponente in Ihren Anwendungen verwenden:
- Der Schaltflächentext muss die Aktion der Schaltfläche eindeutig angeben.
- Überprüfen Sie bei Verwendung benutzerdefinierter Farbschemas, ob das Kontrastverhältnis zwischen Text und Hintergrund dem erforderlichen Schwellenwert entspricht.
Barrierefrei deaktivierte Komponente
Die Komponente Button erfüllt ab Jutro Version 8.4.0 auch im deaktivierten Zustand die Anforderung der Barrierefreiheit. Diese Funktion wird standardmäßig für alle neuen Anwendungen aktiviert, die mit Jutro Version 8.4.0 oder später erstellt werden. In älteren Anwendungen kann diese Funktion verwendet werden, indem, wie unten dargestellt, das Objekt accessibleDisabled in der zugehörigen config.json-Datei hinzugefügt wird.
Barrierefrei deaktivierte Button-Komponenten weisen folgende Merkmale auf:
- Das HTML-Attribut
disabledwird entfernt. - Eine zusätzliche Eigenschaft mit dem Namen
aria-disabledwird definiert. - Alle Rückruffunktionen, z. B.
onClickundonBlur, werden blockiert und können nicht mehr aufgerufen werden. - Der Wert
Buttondes HTML-Attributs „type“ wird inbuttongeändert. - Wenn für die Schaltfläche das Attribut
hrefangegeben ist, wird die zugehörige Rolle inlinkundtabIndexin 0 geändert.
Das Design für barrierefrei deaktivierte und standardmäßige deaktivierte Schaltflächen bleibt gleich.
Code
<Button
label="Click me!"
onClick={handleClick}
/>
Importanweisung
import { Button } 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
labelerforderlich- Beschreibung
Label text displayed on the button. This is also passed as a default value to the button's
aria-label. className- Typ
stringBeschreibungCSS class name for this component.
disabled- Typ
booleanBeschreibungIf set to
true, the button is disabled. IMPORTANT: this prop overrides the native HTML disabled attribute. In this case, the button is still tabbable, even when it's disabled. fullWidth- Typ
booleanBeschreibungIf set to
true, the button will take the full width of its parent container. hideLabel- Typ
booleanBeschreibungIf set to
true, the label is not displayed. icon- Typ
string | IconBeschreibungAn Icon component to render on the component. The value must be an
Iconcomponent or the icon's name. For example,CheckIconor'gw-check'. iconPosition- Typ
'left' | 'right'BeschreibungSets where the icon is placed relative to the text.
Standardwert'left' onClick- Typ
function (React.MouseEvent<HTMLElement>)BeschreibungOn click event handler.
size- Typ
'small' | 'medium'BeschreibungSets the size of button (small, medium).
Standardwert'medium' variant- Typ
'primary' | 'secondary' | 'tertiary' | 'neutral' | 'inverse'BeschreibungSets the variant of button to display (primary, secondary, tertiary, neutral, inverse) Note: neutral and inverse variants are applicable to buttons with icons only.
Standardwert'primary' renderIconVerworfen- Typ
React.FC<{}>BeschreibungA function that renders a custom icon.
Hooks
Für Button sind keine Hooks verfügbar.
Übersetzungsschlüssel
Es gibt keine Übersetzungen für Button.
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.
Übergeben von HTML-Eigenschaften an die Komponente
Sie können Attribute des HTML-Elements „Button“ verwenden, mit Ausnahme derjenigen, die von Jutro überschrieben werden.
<Button
label="Click me"
onClick={handleClick}
id="my-button"
variant="primary"
/>
Durch die Übergabe dieser id-Eigenschaft wird diese Teil des HTML-Button-Elements, das im HTML-DOM erstellt wird.
Benutzerdefinierte Verhalten der Button-Komponente
Barrierefrei deaktivierte Komponente
Die Komponente Button bleibt auch im deaktivierten Zustand barrierefrei.
Barrierefrei deaktivierte Button-Komponenten weisen folgende Merkmale auf:
- Das HTML-Attribut
disabledwird entfernt. - Eine zusätzliche Eigenschaft mit dem Namen
aria-disabledwird definiert. - Alle Rückruffunktionen, z. B.
onClickundonBlur, werden blockiert und können nicht mehr aufgerufen werden. - Der Wert
Buttondes HTML-Attributs „type“ wird inbuttongeändert. - Wenn für die Schaltfläche das Attribut
hrefangegeben ist, wird die zugehörige Rolle inlinkundtabIndexin 0 geändert.
Das Design für barrierefrei deaktivierte und standardmäßige deaktivierte Schaltflächen bleibt gleich.
Information zu älteren Komponenten
Verwenden Sie eine der älteren Schaltflächen?
-
Um die Dokumente für die alten Komponenten anzuzeigen, wechseln Sie zu einer Version der Dokumente, die älter als 10.0.x ist.
-
Die folgenden älteren Komponenten sind auch in Storybook verfügbar:
Änderungsprotokoll
10.0.0
Es wurde eine neue @jutro/components/Button-Komponente eingeführt, welche die vorherige ersetzt.
Die früheren auf Schaltflächen bezogene Komponenten wurden verworfen und in das @jutro/legacy-Paket verschoben. Wechseln Sie zu einer älteren Version, um die zugehörige Dokumentation anzuzeigen.
Ursprüngliche Speicherorte der Komponenten:
Button:@jutro/components/ButtonIconButton:@jutro/components/IconButtonAsyncButtonLink:@jutro/router/AsyncButtonLinkButtonLink:@jutro/router/ButtonLink
Neue Speicherorte der Komponenten:
Button:@jutro/legacy/components/ButtonIconButton:@jutro/legacy/components/IconButtonAsyncButtonLink:@jutro/legacy/router/AsyncButtonButtonLink:@jutro/legacy/router/ButtonLink
Es gibt Codemods, mit denen Sie vorhandene Importe automatisch umbenennen können.
10.9.0
icon Eigenschaftstyp erweitert
Der Typ der Eigenschaft icon wurde auf string | React.ComponentType erweitert.
Verwerfungen
- Die Übergabe von
stringals Wert an die Eigenschafticonwurde verworfen. - Die Eigenschaft
renderIconwurde verworfen.