Sidebar
Uma barra lateral componível, colapsável e responsiva para layouts de aplicação.
Veja o sidebar em um layout completo
O bloco sidebar-01 demonstra colapso, atalho Cmd/Ctrl+B e drawer mobile.
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 sidebar
do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/sidebar_component.rb -
app/components/ui/sidebar/provider_component.rb -
app/components/ui/sidebar/trigger_component.rb -
app/components/ui/sidebar/rail_component.rb -
app/components/ui/sidebar/inset_component.rb -
app/components/ui/sidebar/input_component.rb -
app/components/ui/sidebar/header_component.rb -
app/components/ui/sidebar/footer_component.rb -
app/components/ui/sidebar/separator_component.rb -
app/components/ui/sidebar/content_component.rb -
app/components/ui/sidebar/group_component.rb -
app/components/ui/sidebar/group_label_component.rb -
app/components/ui/sidebar/group_action_component.rb -
app/components/ui/sidebar/group_content_component.rb -
app/components/ui/sidebar/menu_component.rb -
app/components/ui/sidebar/menu_item_component.rb -
app/components/ui/sidebar/menu_button_component.rb -
app/components/ui/sidebar/menu_action_component.rb -
app/components/ui/sidebar/menu_badge_component.rb -
app/components/ui/sidebar/menu_skeleton_component.rb -
app/components/ui/sidebar/menu_sub_component.rb -
app/components/ui/sidebar/menu_sub_item_component.rb -
app/components/ui/sidebar/menu_sub_button_component.rb -
app/helpers/ui/sidebar_helper.rb -
app/javascript/controllers/ui_sidebar_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
Envolva a página com ui_sidebar_provider;
ele hospeda o controller e expõe as larguras como CSS vars.
Ou renderize os componentes diretamente:
Composição
Exemplos
Referência da API
| API | Elemento | Descrição |
|---|---|---|
ui_sidebar_provider | div | Hospeda o controller ui-sidebar; aceita default_open: e cookie_name:. |
ui_sidebar | div | O painel. Aceita side: (:left/:right), variant: (:sidebar/:floating/:inset) e collapsible: (:offcanvas/:icon/:none). |
ui_sidebar_trigger | button | Alterna o sidebar (clique ou Cmd/Ctrl+B). |
ui_sidebar_rail | button | Faixa na borda interna que alterna o colapso. |
ui_sidebar_inset | main | Área de conteúdo ao lado do sidebar. |
ui_sidebar_header / ui_sidebar_footer | div | Regiões superior e inferior. |
ui_sidebar_content | div | Região rolável com os grupos. |
ui_sidebar_group / _group_label / _group_content | div | Seção rotulada de menu. |
ui_sidebar_menu / _menu_item | ul / li | Lista de itens do menu. |
ui_sidebar_menu_button | button/a | is_active:, variant:, size: e tooltip: (visível só no modo ícone). |
ui_sidebar_menu_action / _menu_badge | button / div | Ação e badge fixados à direita do item. |
ui_sidebar_menu_sub / _menu_sub_item / _menu_sub_button | ul / li / a | Submenu aninhado. |
ui_sidebar_menu_skeleton | div | Placeholder de carregamento; show_icon:. |