MenüChevron Down
ToggleGroup Umschaltgruppe - Docs - Artefact

ToggleGroup Umschaltgruppe

Forms
Intelligente Auto-Erkennung

Einführung

Eine Gruppe von Umschalt-Schaltflächen für Einzel- oder Mehrfachauswahl, exklusiv oder inklusiv – z. B. Textformatierungs-Steuerelemente (Fett/Kursiv/Unterstrichen) oder ein Ansichts-Umschalter.

Hydration

Stufe 2 – intelligente Auto-Erkennung. Eine Umschaltgruppe wird als statisches HTML gerendert und liefert kein Client-JS, sofern kein Verhaltenssignal vorhanden ist. Übergeben Sie interactive={true} zum Erzwingen der Hydration oder interactive={false} zum Erzwingen eines statischen Renderns.

Sie hydratisiert als Insel, wenn eines der folgenden Signale vorhanden ist (oder interactive={true} gesetzt ist):

  • value (gesteuerte Auswahl)
  • defaultValue (ungesteuerte Anfangsauswahl)
  • onValueChange
interactive-EigenschaftErgebnis
weggelassen, kein SignalStatisch – kein Client-JS
weggelassen, Signal vorhandenHydratisiert als Insel
trueHydratisiert als Insel
falseStatisch – kein Client-JS

Verwendung

import { ToggleGroup } from "../components/ui";

export default function MyPage() {
  return (
    <ToggleGroup
      multiple
      defaultValue={["bold"]}
      items={[
        { label: "B", value: "bold" },
        { label: "I", value: "italic" },
        { label: "U", value: "underline" },
      ]}
    />
  );
}

Benutzerdefinierte Zusammensetzung

Übergeben Sie children anstelle von items für volle Kontrolle über den Inhalt jeder Schaltfläche:

import { ToggleGroup } from "../components/ui";

export default function MyPage() {
  return (
    <ToggleGroup defaultValue={["list"]}>
      <ToggleGroup.Item value="grid">Grid</ToggleGroup.Item>
      <ToggleGroup.Item value="list">List</ToggleGroup.Item>
    </ToggleGroup>
  );
}

Eigenschaften

Wurzel

EigenschaftTypBeschreibung
valuestring[]Die aktuell gedrückten Werte (gesteuert).
defaultValuestring[]Die anfänglich gedrückten Werte (ungesteuert).
onValueChange(value: string[]) => voidWird aufgerufen, wenn sich die Auswahl ändert.
multiplebooleanErlaubt mehr als ein gleichzeitig gedrücktes Element. Standard false (einfach, abwählbare Auswahl).
disabledbooleanDeaktiviert jedes Element.
orientation`"horizontal""vertical"`
idstringDie id des Wurzelelements.
variant`"outline""ghost"`
size`"sm""md"
interactivebooleanÜberschreibt die Hydrationsentscheidung (siehe oben).
classstringBenutzerdefinierte CSS-Klassen für das Wurzelelement.

Standardzusammensetzung

EigenschaftTypBeschreibung
itemsToggleGroupItem[]Zu rendernde Schaltflächen, wenn children weggelassen wird.

ToggleGroupItem

EigenschaftTypBeschreibung
valuestringDer eindeutige Wert des Elements.
label`stringJSX.Element`
disabledbooleanDeaktiviert diese Schaltfläche.

Unterkomponenten

TeilBeschreibung
ToggleGroup.ItemEine Umschalt-Schaltfläche. Benötigt ein value-Prop; rendert role="checkbox" im multiple-Modus bzw. role="radio" sonst.

Barrierefreiheit

  • Das Wurzelelement hat role="group".
  • Elemente rendern role="checkbox" + aria-pressed bei multiple bzw. role="radio" + aria-checked sonst.
  • Pfeiltasten (Rechts/Runter zum Vorwärtsgehen, Links/Hoch zum Zurückgehen) wandern den Fokus zwischen aktivierten Elementen; Pos1/Ende springen zum ersten/letzten aktivierten Element – passend zu orientation.
  • data-state (on/off) und data-disabled werden für das Styling auf jedes Element gespiegelt.