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 a sua aplicação 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: 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
é um alias de nome para ui_accordion_content.
Exemplos
Basic
Um accordion simples que exibe um item por vez. O primeiro item começa aberto.
Multiple
Use multiple: true para permitir que vários itens fiquem abertos ao mesmo tempo.
Disabled
Use disabled: true no item para bloquear um painel específico.
Borders
Adicione border no accordion para destacar o contorno do grupo.
Card
Componha o Accordion dentro de Card quando ele fizer parte de uma superfície maior.
Assinatura e cobrança
Perguntas comuns sobre planos, pagamentos e cancelamentos.
Referência da API
Os helpers encapsulam os componentes ViewComponent e preservam atributos HTML livres,
incluindo data: e
aria:.
| Helper | Argumentos principais | Descrição |
|---|---|---|
ui_accordion |
multiple, default_value, orientation, disabled, loop_focus |
Root com controller Stimulus, valores iniciais e navegação por teclado. |
ui_accordion_item |
value, disabled |
Item com border-b last:border-b-0. Use value quando configurar default_value. |
ui_accordion_header |
tag |
Renderiza o cabeçalho semântico; o padrão é :h3. |
ui_accordion_trigger |
disabled |
Botão que alterna o item, com ícone chevron-down e ações Stimulus. |
ui_accordion_content / ui_accordion_panel |
class / class_name |
Painel com role="region", animações shadcn e wrapper interno pt-0 pb-4. |