Ir para o conteúdo principal

Componente de dica de ferramenta

Última atualização:

Dica de ferramenta CSS do Tailwind somente CSS com posicionamento superior, inferior, esquerdo e direito. Variantes de cores, sem necessidade de JavaScript. WCAG AA acessível, funciona com Django, HTMX, Laravel, React e qualquer pilha.

Os componentes da dica de ferramenta exibem informações adicionais quando os usuários passam o mouse ou focam em um elemento. Construídas com atributos HTML semânticos e CSS, as dicas de ferramentas melhoram a experiência do usuário, fornecendo ajuda específica ao contexto sem sobrecarregar a interface. O sistema de dicas de ferramentas Frutjam suporta múltiplas posições, conteúdo personalizado e animações suaves para descoberta contínua de informações.

Somente CSS, sem necessidade de JavaScript. WCAG AA acessível e independente de estrutura - funciona com Django, HTMX, Laravel, React e qualquer pilha.

Observação: as dicas de ferramentas dependem de :hover e :focus, que não estão disponíveis em dispositivos móveis/de toque. Para layouts voltados para dispositivos móveis, use a variante responsiva lg:tooltip para que a dica de ferramenta seja ativada apenas em desktops (telas grandes e superiores). Em telas menores, considere usar um padrão de divulgação diferente, como popover ou modal.

Aula Tipo Descrição
tooltipBaseWrapper que revela conteúdo de data-tip ao passar o mouse/foco
tooltip-contentModificadorConteúdo HTML personalizado dentro do balão de dicas
tooltip-topModificadorAbre acima do gatilho (padrão)
tooltip-bottomModificadorAbre abaixo do gatilho
tooltip-leftModificadorAbre à esquerda do gatilho
tooltip-rightModificadorAbre à direita do gatilho
tooltip-startModificadorAbre para o lado inicial lógico
tooltip-endModificadorAbre para o lado final lógico
tooltip-primaryCorBolha de cor do tema principal
tooltip-secondaryCorBolha de cor do tema secundário
tooltip-accentCorBolha de cores do tema de destaque
tooltip-neutralCorBolha de cor de tema neutro
tooltip-infoCorBolha de cor semântica de informações
tooltip-successCorBolha de cor semântica de sucesso
tooltip-warningCorBolha de cor semântica de aviso
tooltip-errorCorErro de bolha de cor semântica

Dica

1
2
3
<div class="tooltip" data-tip="Tooltip">
   <button class="btn">Hover me</button>
</div>
1
2
3
<div className="tooltip" data-tip="Tooltip">
   <button className="btn">Hover me</button>
</div>

Conteúdo de dica de ferramenta personalizada

html
1
2
3
4
5
6
7
<div class="tooltip tooltip-end">
    <div class="tooltip-content">
        <div class="text-xl">❤️</div>
        <div>Like</div>
    </div>
    <button class="btn">Hover me</button>
</div>

Dica com ícone

html
1
2
3
4
5
6
<div class="tooltip" data-tip="Menu">
    <button class="btn btn-sm">
        <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h16"/><path d="M4 12h16"/><path d="M4 19h16"/></svg>
        <span class="sr-only">Menu</span>
    </button>
</div>

Forçar dica de abertura

html
1
2
3
<div class="tooltip tooltip-open" data-tip="hello">
  <button class="btn">Force open</button>
</div>

Opções de posicionamento de dicas

Colocação superior

html
1
2
3
<div class="tooltip tooltip-top tooltip-open" data-tip="Tooltip top">
    <button class="btn">Top position</button>
</div>

Colocação correta

html
1
2
3
<div class="tooltip tooltip-right tooltip-open" data-tip="Tooltip right">
    <button class="btn">Right position</button>
</div>

Colocação final

html
1
2
3
<div class="tooltip tooltip-end tooltip-open" data-tip="Tooltip end">
    <button class="btn">End position</button>
</div>

Colocação inferior

html
1
2
3
<div class="tooltip tooltip-bottom tooltip-open" data-tip="Tooltip bottom">
    <button class="btn">Bottom position</button>
</div>

Colocação à esquerda

html
1
2
3
<div class="tooltip tooltip-left tooltip-open" data-tip="Tooltip left">
    <button class="btn">Left position</button>
</div>

Iniciar posicionamento

html
1
2
3
<div class="tooltip tooltip-start tooltip-open" data-tip="Tooltip start">
    <button class="btn">Start position</button>
</div>

Variantes de cores da dica de ferramenta

Cor Primária

html
1
2
3
<div class="tooltip tooltip-primary tooltip-open" data-tip="Primary">
  <button class="btn btn-xs">Primary color</button>
</div>

Cor Secundária

html
1
2
3
<div class="tooltip tooltip-secondary tooltip-open" data-tip="Secondary">
  <button class="btn btn-xs">Secondary color</button>
</div>

Cor de destaque

html
1
2
3
<div class="tooltip tooltip-accent tooltip-open" data-tip="Accent">
  <button class="btn btn-xs">Accent color</button>
</div>

Cor da informação

html
1
2
3
<div class="tooltip tooltip-info tooltip-open" data-tip="Info">
  <button class="btn btn-xs">Info color</button>
</div>

Cor do sucesso

html
1
2
3
<div class="tooltip tooltip-success tooltip-open" data-tip="Success">
  <button class="btn btn-xs">Success color</button>
</div>

Cor de aviso

html
1
2
3
<div class="tooltip tooltip-warning tooltip-open" data-tip="Warning">
  <button class="btn btn-xs">Warning color</button>
</div>

Cor do erro

html
1
2
3
<div class="tooltip tooltip-error tooltip-open" data-tip="Error">
  <button class="btn btn-xs">Error color</button>
</div>

Cor Neutra

html
1
2
3
<div class="tooltip tooltip-neutral tooltip-open" data-tip="Neutral">
  <button class="btn btn-xs">Neutral color</button>
</div>

Dicas de ferramentas responsivas

Mostrar apenas em telas grandes com lg:tooltip

html
1
2
3
<div class="lg:tooltip" data-tip="Hey there!">
  <button class="btn">Hover me</button>
</div>

Ajudante JS e React

Use createTooltip de frutjam/js ou useTooltip de frutjam/react para mostrar ou ocultar uma dica de ferramenta programaticamente - útil para tours guiados ou texto de ajuda acionado.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
<div class="flex gap-2 mb-4">
  <button class="btn btn-sm" id="tip-show">Show</button>
  <button class="btn btn-sm" id="tip-hide">Hide</button>
  <button class="btn btn-sm" id="tip-toggle">Toggle</button>
</div>
<div class="tooltip" data-tip="Programmatic tooltip" id="js-tooltip">
  <button class="btn">Target</button>
</div>
<script type="module">
  import { createTooltip } from 'frutjam/js'
  const tip = createTooltip(document.getElementById('js-tooltip'))
  document.getElementById('tip-show').onclick = () => tip.show()
  document.getElementById('tip-hide').onclick = () => tip.hide()
  document.getElementById('tip-toggle').onclick = () => tip.toggle()
</script>
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { useTooltip } from 'frutjam/react'

export default function TooltipDemo() {
  const tooltip = useTooltip()
  return (
    <>
      <div className="flex gap-2 mb-4">
        <button className="btn btn-sm" onClick={tooltip.show}>Show</button>
        <button className="btn btn-sm" onClick={tooltip.hide}>Hide</button>
        <button className="btn btn-sm" onClick={tooltip.toggle}>Toggle</button>
      </div>
      <div ref={tooltip.ref} className="tooltip" data-tip="Programmatic tooltip">
        <button className="btn">Target</button>
      </div>
    </>
  )
}

Usando Claude Code, Cursor ou outro editor de IA?

Cherry MCP fornece ao seu editor de IA os nomes exatos das classes Dica e a estrutura sob demanda. Chega de aulas alucinadas.

Experimente o Cherry MCP