Carregando…
Carregando…
Carregando…Radio button with RadioGroup helper, single-select option sets and a card variant.
$ npx kikitocn add radio@/lib/utilsimport { Radio } from "@/components/ui/cn/radio/Radio";
export function RadioExample() {
return (
<div className="flex flex-col gap-2">
<Radio name="plano" value="free" label="Grátis" defaultChecked />
<Radio name="plano" value="pro" label="Pro — R$ 29/mês" />
<Radio name="plano" value="team" label="Team — R$ 99/mês" />
</div>
);
}
// variant="card" — cartão selecionável com ícone/descrição/preço
export function RadioCardExample() {
return (
<div className="grid grid-cols-2 gap-3 max-w-md">
<Radio
name="plano-card"
value="pro"
variant="card"
label="Pro"
description="Pra times pequenos"
price="R$ 29/mês"
defaultChecked
/>
<Radio name="plano-card" value="team" variant="card" label="Team" description="Recursos avançados" price="R$ 99/mês" />
</div>
);
}| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
variant | 'default' | 'card' | 'default' | 'card' renderiza ícone/descrição/preço num card inteiro clicável |
icon | ReactNode | undefined | variant='card': ícone exibido acima do label |
description | string | undefined | variant='card': descrição mais longa abaixo do label (helperText ainda funciona como legenda curta) |
price | string | undefined | variant='card': preço/valor alinhado à direita do label |
value | string | '' | Valor desta opção de radio |
checked | boolean | undefined | Estado marcado (controlled) |
defaultChecked | boolean | undefined | Estado inicial marcado (uncontrolled) |
onChange | (value: string) => void | undefined | Callback quando selecionado |
label | string | undefined | Texto ao lado do radio |
helperText | string | undefined | Texto de apoio abaixo do label |
size | 'sm' | 'md' | 'lg' | 'md' | Tamanho do radio |
disabled | boolean | false | Desabilita o radio |
name | string | undefined | Nome do grupo (atributo HTML) |
className | string | — | Classes CSS extras |
style | React.CSSProperties | — | Estilos inline extras |
icon + descrição + preço, card inteiro clicável
Vertical (default)
Horizontal
sm · md · lg