Collapsible
Primitivo de abrir e fechar um bloco de conteúdo, sem decoração própria: a base sem opinião visual do Accordion.
Instalação
Recebe correções por update de versão. O caminho recomendado.
npm i @trdr/ui
import { Collapsible } from "@trdr/ui/collapsible"Uso
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@trdr/ui/collapsible"
export function Exemplo() {
return <Collapsible />
}Props
CollapsiblePropsestende React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Root>CollapsibleTriggerPropsestende React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger>CollapsibleContentPropsestende React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>Quando usar
Use o collapsible para esconder um bloco de conteudo secundario atras de um gatilho unico:
um painel de filtros avancados, detalhes tecnicos de uma posicao, uma nota de rodape longa.
Ele nao tem cor, borda nem seta embutida: e o primitivo cru, para quando o Accordion (com
seus varios itens, cabecalho e chevron) e opinativo demais para o caso.
Quando nao usar
Nao use collapsible quando existem varios paineis que competem pelo mesmo espaco e devem
abrir e fechar em conjunto (por exemplo, um so aberto por vez): isso e o papel do Accordion,
que ja modela essa relacao entre itens. Nao use collapsible para navegacao entre paginas ou
abas visiveis ao mesmo tempo: isso e Tabs.
Anatomia
Collapsible(data-slot="collapsible"): a raiz, guarda o estado aberto/fechado.CollapsibleTrigger(data-slot="collapsible-trigger"): o elemento que alterna o estado ao ser clicado ou acionado por teclado. Sem estilo visual proprio alem do foco e do estado desabilitado: cor, tamanho e cursor sao decisao de quem compoe.CollapsibleContent(data-slot="collapsible-content"): o bloco que aparece e some. So existe no DOM enquanto aberto (o Radix desmonta ao fechar, nao apenas esconde com CSS).
Composicao tipica:
<Collapsible>
<CollapsibleTrigger>Mostrar filtros avancados</CollapsibleTrigger>
<CollapsibleContent>{/* campos de filtro */}</CollapsibleContent>
</Collapsible>Acessibilidade
O gatilho e um <button> com aria-expanded sincronizado ao estado, e aria-controls
apontando para o conteudo. Funciona por teclado: Tab foca o gatilho, Enter ou Espaco
alterna. Estado desabilitado usa o atributo disabled nativo (passe disabled na raiz
Collapsible), nunca so opacidade. Como o componente nao renderiza texto proprio, o rotulo
do gatilho vem do conteudo que o consumidor passa como filho.
Slots e tokens
Todo elemento renderizado carrega um data-slot para estilizar partes internas sem depender de classe da biblioteca. Os tokens listados são extraídos do código fonte.
[data-slot="collapsible"][data-slot="collapsible-content"][data-slot="collapsible-trigger"]4 tokens usados
outline-nonering-offset-2ring-offset-backgroundring-ring