Shadwire
Componentes

Toggle Group

Um grupo de toggles com seleção única ou múltipla e navegação por setas.

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:

shadwire add toggle-group --yes

O item toggle-group do registry instala estes arquivos:

  • app/components/ui_component.rb
  • app/components/ui/toggle_group_component.rb
  • app/components/ui/toggle_group/item_component.rb
  • app/helpers/ui/toggle_group_helper.rb
  • app/javascript/controllers/ui_toggle_group_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

<%= ui_toggle_group(type: :single) do %>
  <%= ui_toggle_group_item(value: "left") { ui_icon("align-left") } %>
  <%= ui_toggle_group_item(value: "center") { ui_icon("align-center") } %>
<% end %>

Exemplos

Padrão

Seleção múltipla de formatação de texto.

<%= ui_toggle_group(type: :multiple, variant: :outline, "aria-label": "Formatação") do %>
  <%= ui_toggle_group_item(value: "bold", variant: :outline, "aria-label": "Negrito") { ui_icon("bold") } %>
  <%= ui_toggle_group_item(value: "italic", variant: :outline, pressed: true, "aria-label": "Itálico") { ui_icon("italic") } %>
  <%= ui_toggle_group_item(value: "underline", variant: :outline, "aria-label": "Sublinhado") { ui_icon("underline") } %>
<% end %>