Optionsgruppe (Radio)
Die Optionsgruppe (Radio Group) ermöglicht es Benutzern, eine Option aus einem Set auszuwählen. Sie ist nützlich für Szenarien mit exklusiver Auswahl, bei denen nur eine Auswahl zulässig ist.
Jedes Element der Optionsgruppe wird durch eine RadioGroupItem-Komponente repräsentiert und typischerweise von einer Label-Komponente umschlossen.
Verwendung
Abschnitt betitelt „Verwendung“Um RadioGroup und RadioGroupItem zu verwenden, importieren Sie sie aus Ihren Komponenten und strukturieren Sie Ihre Optionen mithilfe der RadioGroup als Container und RadioGroupItem für jede Option.
Einfache Optionsgruppe
Abschnitt betitelt „Einfache Optionsgruppe“Ein grundlegendes Beispiel für eine Auswahlgruppe, das eine einfache Auswahl ermöglicht.
import React from "react";import { Label, RadioGroup, RadioGroupItem } from "@firecms/ui";
export default function RadioGroupBasicDemo() { return ( <RadioGroup onValueChange={(value) => console.log(value)}> <Label className="flex items-center gap-2" htmlFor="color-black"> <RadioGroupItem id="color-black" value="black"/> Black </Label> <Label className="flex items-center gap-2" htmlFor="color-white"> <RadioGroupItem id="color-white" value="white"/> White </Label> <Label className="flex items-center gap-2" htmlFor="color-blue"> <RadioGroupItem id="color-blue" value="blue"/> Blue </Label> </RadioGroup> );}Anpassen des Erscheinungsbilds von Optionsgruppenelementen
Abschnitt betitelt „Anpassen des Erscheinungsbilds von Optionsgruppenelementen“Dieses Beispiel demonstriert, wie das Erscheinungsbild einzelner Optionsgruppenelemente (Radio Group Items) angepasst wird.
import React from "react";import { Label, RadioGroup, RadioGroupItem } from "@firecms/ui";
export default function RadioGroupCustomDemo() { return ( <RadioGroup onValueChange={(value) => console.log(value)}> <Label className="border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800" htmlFor="size-small"> <RadioGroupItem id="size-small" value="small"/> Small </Label> <Label className="border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800" htmlFor="size-medium"> <RadioGroupItem id="size-medium" value="medium"/> Medium </Label> <Label className="border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800" htmlFor="size-large"> <RadioGroupItem id="size-large" value="large"/> Large </Label> </RadioGroup> );}Deaktivierte Optionsgruppe
Abschnitt betitelt „Deaktivierte Optionsgruppe“Zeigt, wie die gesamte Optionsgruppe oder einzelne Elemente darin deaktiviert werden.
import React from "react";import { Label, RadioGroup, RadioGroupItem } from "@firecms/ui";
export default function RadioGroupDisabledDemo() { return ( <RadioGroup className="flex items-center gap-2" defaultValue="black" id="color"> <Label className="border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800" htmlFor="color-black" > <RadioGroupItem id="color-black" value="black"/> Black </Label> <Label className="border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800" htmlFor="color-white" > <RadioGroupItem id="color-white" value="white" disabled/> White </Label> <Label className="border cursor-pointer rounded-md p-2 flex items-center gap-2 [&:has(:checked)]:bg-surface-100 dark:[&:has(:checked)]:bg-surface-800" htmlFor="color-blue" > <RadioGroupItem id="color-blue" value="blue"/> Blue </Label> </RadioGroup> );}