Salta ai contenuti

Gruppo radio

Il Gruppo Radio consente agli utenti di selezionare un’opzione da un insieme. È utile per scenari di selezione esclusiva dove è consentita una sola scelta. Ogni elemento del gruppo radio è rappresentato da un componente RadioGroupItem e tipicamente avvolto da un componente Label.

Per usare RadioGroup e RadioGroupItem, importali dai tuoi componenti e struttura le opzioni usando RadioGroup come contenitore e RadioGroupItem per ogni opzione.

Un esempio base di un gruppo radio, che consente una selezione semplice.

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>
);
}

Personalizzazione dell’aspetto degli elementi del gruppo radio

Sezione intitolata “Personalizzazione dell’aspetto degli elementi del gruppo radio”

Questo esempio dimostra come personalizzare l’aspetto dei singoli elementi del gruppo radio.

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>
);
}

Come disabilitare l’intero gruppo radio o singoli elementi al suo interno.

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>
);
}