Icon
Wrapper para lucide-rails com tamanhos shadcn e semântica acessível.
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 icon
do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/icon_component.rb -
app/helpers/ui/icon_helper.rb -
vendor/shadwire/shadwire.css
Ainda não instalou a CLI?
gem install shadwire
e depois shadwire init.
Uso
Nomes usam kebab-case do Lucide, como "chevron-down".
Ou renderize Ui::IconComponent diretamente:
Exemplos
Decorativo e rotulado
Ícones são decorativos por padrão; passe label: quando o ícone carregar significado.
Referência da API
ui_icon(name, **options) encapsula Ui::IconComponent.new(name, **options).
| Argumento | Tipo | Padrão | Descrição |
|---|---|---|---|
name | String | Obrigatório | Nome do ícone Lucide em kebab-case. |
size | Symbol/String | :default | :sm, :default, :lg ou :xl. |
label | String | nil | Quando presente, expõe o SVG com role="img" e aria-label. |
**attrs | Hash | {} | Atributos HTML livres para o SVG. |