Tooltip
Um balão com informações sobre um elemento, que aparece quando o mouse passa por cima ou quando ele recebe foco.
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 tooltip do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/tooltip_component.rb -
app/components/ui/tooltip/trigger_component.rb -
app/components/ui/tooltip/content_component.rb -
app/components/ui/button_component.rb -
app/helpers/ui/tooltip_helper.rb -
app/helpers/ui/button_helper.rb -
app/javascript/controllers/ui_tooltip_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 ui-tooltip
abre com um pequeno atraso no hover ou no foco, liga o gatilho ao balão por
aria-describedby e fecha com
Esc sem mover o foco (WCAG 1.4.13).
O conteúdo fica dentro da raiz, então dá para mover o ponteiro até ele sem que feche.
Ou renderize os componentes diretamente:
Composição
Exemplos
Padrão
Abre no hover e no foco depois de um pequeno atraso; Esc fecha sem mover o foco.
Lados
side: :top, :right, :bottom ou :left posiciona o balão.
Referência da API
Todas as partes aceitam class /
class_name e
**attrs.
| Componente | Argumento | Padrão | Descrição |
|---|---|---|---|
Tooltip |
open_delay |
300 |
Atraso em milissegundos antes de abrir no hover. |
Tooltip::Trigger |
variant, size |
:outline |
Encapsula o Ui::ButtonComponent; recebe aria-describedby quando o controller conecta. |
Tooltip::Content |
side |
:top |
:top, :right, :bottom, :left. |