Tabs
Camadas de conteúdo — painéis de abas — exibidas uma por vez.
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 tabs
do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/tabs_component.rb -
app/components/ui/tabs/list_component.rb -
app/components/ui/tabs/trigger_component.rb -
app/components/ui/tabs/content_component.rb -
app/helpers/ui/tabs_helper.rb -
app/javascript/controllers/ui_tabs_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
O controller Stimulus implementa o padrão WAI-ARIA de tabs: roving tabindex,
ativação automática com ←/→,
Home/End,
e o wiring de aria-controls/aria-labelledby.
Ou renderize os componentes diretamente:
Composição
Exemplos
Padrão
Dois painéis com cards; o painel ativo é controlado pelo controller ui-tabs.
Conta
Altere seus dados de perfil aqui.
Senha
Troque sua senha de acesso aqui.
Trigger desabilitado
disabled: true tira o trigger do fluxo de teclado e da ativação.
Referência da API
Todas as partes aceitam class /
class_name e
**attrs.
| Componente | Argumento | Padrão | Descrição |
|---|---|---|---|
Tabs |
default_value |
nil |
Aba aberta inicialmente; sem valor, a primeira habilitada é ativada. |
Tabs::Trigger |
value: (obrigatório) |
— | Identificador que liga o trigger ao painel de mesmo value. |
Tabs::Trigger |
disabled |
false |
Remove o trigger da ativação e da navegação por teclado. |
Tabs::Content |
value: (obrigatório) |
— | Painel correspondente; renderiza hidden até ser ativado. |