Tabs
Painéis de conteúdo exibidos um de cada vez.
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 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, 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
O controller Stimulus implementa o padrão WAI-ARIA de abas: roving tabindex,
ativação automática com ←/→,
Home/End,
e a ligação de aria-controls/aria-labelledby.
Ou renderize os componentes diretamente:
Composição
Exemplos
Padrão
Dois painéis com cards; o controller ui-tabs alterna entre eles.
Conta
Altere os dados do seu perfil aqui.
Senha
Altere a 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. |