Free pack

Tooltip <mv-tooltip>

Infobulle dans le top layer (Popover API), placement automatique avec retournement, flèche, délai groupé.

Fonctionnement

Infobulle dans la top layer (Popover API), placement automatique avec retournement, flèche, délai groupé. Pour une barre d’outils, Tooltip Group partage une seule surface qui glisse d’un bouton à l’autre.

CatégorieSuperpositions
TypeWeb Component (<mv-tooltip>)
Statutstable
Keywordstooltip, hint, popover, morphic-tooltip

When to use

  • An icon-only button needs its label shown on hover and keyboard focus
  • A short supplementary hint clarifies a control without cluttering the layout

Avoid when

  • The content is interactive or must be reachable on touch devices → use Popover instead
  • Many adjacent toolbar buttons should share one gliding tooltip surface → use Tooltip Group instead
  • The preview is rich, such as a profile card with an avatar and details → use Hover Card instead

Installation

node scripts/add.mjs tooltip --out ./src/marvelous

Agent IA avec le serveur MCP Marvelous UI : install_components({ slugs: ["tooltip"], target_dir: "<absolute path>/src/marvelous", framework: "react" }).

Fichiers copiés (dépendances comprises) : tokens/tokens.css, core/base.css, core/dom.js, core/element.js, core/i18n.js, core/position.js, components/tooltip/tooltip.js, components/tooltip/tooltip.css.

Utilisation

Balisage de référence : partez de celui-ci et personnalisez-le avec les attributs, data-* et les variables CSS :

<div style="display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center">
  <mv-tooltip text="Above" placement="top"><button class="mv-button" data-variant="outline">Top</button></mv-tooltip>
  <mv-tooltip text="Below" placement="bottom"><button class="mv-button" data-variant="outline">Bottom</button></mv-tooltip>
  <mv-tooltip text="To the left" placement="left"><button class="mv-button" data-variant="outline">Left</button></mv-tooltip>
  <mv-tooltip text="To the right" placement="right"><button class="mv-button" data-variant="outline">Right</button></mv-tooltip>
  <mv-tooltip placement="top" delay="0">
    <button class="mv-button" data-variant="secondary">Rich</button>
    <div data-content><strong>⌘ K</strong>: open the palette</div>
  </mv-tooltip>
</div>

API

Attributes

NameTypePar défautDescription
textstringPlain text (otherwise a [data-content] child).
placementtop | bottom | left | right[-start|-end]topPreferred side, flipped when there’s no room.
delaynumber500Show delay (ms). Skipped if another tooltip just closed.
offsetnumber8Distance from the trigger (px).
openbooleanOpens/closes programmatically.
disabledbooleanDisables the tooltip.

Events

NameDescription
mv-openAfter opening.
mv-closeAfter closing.

Content structure

NameDescription
first childTrigger (button, link, focusable icon).
[data-content]Optional rich content.

CSS variables

NameDescription
--mv-tooltip-bgBackground.
--mv-tooltip-fgText.

Accessibility

role=tooltip + aria-describedby on the trigger; opens on keyboard focus, closes on Escape. Doesn’t open on touch (use a Popover).