Grupo de botones de opción (Radio Group)
Radio Group (Grupo de botones de opción) permite a los usuarios seleccionar una opción de un conjunto. Es útil para escenarios de selección exclusiva en los que solo se permite una opción.
Cada elemento del grupo de botones de opción está representado por un componente RadioGroupItem y, por lo general, está envuelto por un componente Label (Etiqueta).
Para usar RadioGroup y RadioGroupItem, impórtalos de tus componentes y estructura tus opciones usando el RadioGroup como contenedor y RadioGroupItem para cada opción.
Grupo de botones de opción básico
Sección titulada «Grupo de botones de opción básico»Un ejemplo básico de un grupo de botones de opción, lo que permite una selección sencilla.
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> );}Personalización de la apariencia de los elementos
Sección titulada «Personalización de la apariencia de los elementos»Este ejemplo demuestra cómo personalizar la apariencia de elementos de grupo de botones de opción individuales.
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> );}Grupo de botones de opción deshabilitado
Sección titulada «Grupo de botones de opción deshabilitado»Cómo deshabilitar todo el grupo de opciones o elementos individuales dentro de él.
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> );}