Accordion
Um conjunto vertical de cabeçalhos interativos que revelam seções de conteúdo.
Instalação
O Shadwire segue o modelo open code do shadcn/ui: o código-fonte do componente é copiado para o seu app e passa a ser seu. Instale com a CLI:
O item accordion do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/accordion_component.rb -
app/components/ui/accordion/item_component.rb -
app/components/ui/accordion/header_component.rb -
app/components/ui/accordion/trigger_component.rb -
app/components/ui/accordion/content_component.rb -
app/components/ui/accordion/panel_component.rb -
app/components/ui/icon_component.rb -
app/helpers/ui/accordion_helper.rb -
app/helpers/ui/icon_helper.rb -
app/javascript/controllers/ui_accordion_controller.js -
vendor/shadwire/shadwire.css
Este componente usa Stimulus, então a aplicação precisa de importmap-rails e stimulus-rails com carregamento automático de controllers.
Ainda não instalou a CLI? gem install shadwire e depois shadwire init.
Uso
Use a composição Root > Item > Header > Trigger + Content.
O helper ui_accordion
aceita os mesmos argumentos de Ui::AccordionComponent.
Também é possível renderizar as classes ViewComponent diretamente:
Composição
A anatomia segue a referência Base UI usada pelo shadcn: item, cabeçalho,
trigger e painel de conteúdo. ui_accordion_panel
é outro nome para ui_accordion_content.
Exemplos
Básico
Um accordion simples que exibe um item por vez. O primeiro item começa aberto.
Vários abertos
Use multiple: true para permitir que vários itens fiquem abertos ao mesmo tempo.
Desabilitado
Use disabled: true no item para bloquear um painel específico.
Com borda
Adicione a classe border no accordion para contornar o grupo.
Card
Coloque o Accordion dentro de um Card quando ele fizer parte de uma área maior.
Assinatura e cobrança
Dúvidas comuns sobre planos, pagamentos e cancelamentos.
Referência da API
Os helpers encapsulam os componentes ViewComponent e repassam qualquer atributo HTML,
incluindo data: e
aria:.
| Helper | Argumentos principais | Descrição |
|---|---|---|
ui_accordion |
multiple, default_value, orientation, disabled, loop_focus |
A raiz, com o controller Stimulus, os valores iniciais e a navegação por teclado. |
ui_accordion_item |
value, disabled |
O item, com border-b last:border-b-0. Passe value sempre que usar default_value. |
ui_accordion_header |
tag |
Renderiza o cabeçalho semântico; o padrão é :h3. |
ui_accordion_trigger |
disabled |
O botão que abre e fecha o item, com o ícone chevron-down e as ações Stimulus. |
ui_accordion_content / ui_accordion_panel |
class / class_name |
O painel, com role="region", as animações do shadcn e um wrapper interno pt-0 pb-4. |