Navegar componentes
← ComponentesCollapsible oculta e revela conteúdo atrás de um botão trigger. Use-o em painéis de configurações, páginas de FAQ ou visualizações de detalhes para manter a página escaneável enquanto permite que usuários aprofundem nas seções que lhes interessam. Envolva múltiplos collapsibles em CollapsibleGroup para comportamento de accordion. Para componentes collapsible personalizados, use o hook `useCollapsible` diretamente (`pharos hook useCollapsible`).
Collapsible
CollapsibleExemploExemplos
Área interativa
defaultIsOpen
isDisabled
Conteúdo do corpo recolhível.
Boas práticas
- Faça: Use hasDividers em CollapsibleGroup para listas estilo FAQ: hairlines de linha integradas com tokens de borda temáticos, sem bordas manuais.
- Faça: Envolva cada Collapsible em um Card para separação visual em layouts de accordion, ou use hasDividers do CollapsibleGroup para listas planas; não combine ambos.
- Faça: Use CollapsibleGroup com type="single" para páginas de configurações ou FAQ em que apenas uma seção deve estar aberta por vez.
- Faça: Use type="multiple" quando usuários precisarem comparar conteúdo entre seções, como listas de recursos ou níveis de preço.
- Faça: Inicie seções abertas (defaultIsOpen) quando o conteúdo provavelmente for necessário na primeira visualização; não faça usuários clicarem para ver informações essenciais.
- Evite: Oculte conteúdo crítico ou obrigatório atrás de um collapsible; usuários podem não descobri-lo.
- Evite: Aninhe collapsibles mais de dois níveis de profundidade; torna o conteúdo difícil de encontrar e navegar.
- Evite: Use um collapsible para um único parágrafo curto; mostre o texto diretamente em vez disso.
Props
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
trigger * | ReactNode | — | Conteúdo exibido na área do trigger (sempre visível). |
children | ReactNode | — | Conteúdo que colapsa e expande. |
defaultIsOpen | boolean | true | Estado aberto padrão (não controlado). |
isOpen | boolean | — | Estado aberto controlado. |
isDisabled | boolean | false | Desabilita o item para que seu trigger não possa ser alternado (esmaecido, aria-disabled e fora da ordem de tab). Não colapsa um item já aberto. |
onOpenChange | (isOpen: boolean) => void | — | Callback invocado quando o estado aberto muda. |
value | string | — | Identificador usado para coordenação de grupo. Obrigatório quando colocado dentro de um CollapsibleGroup. |