Overview
Contextual information shown on hover and focus. Supports 4 positions, 3 variants, keyboard shortcuts and rich content.
Descriptive tooltips
Hover or focus each trigger to reveal a short explanation.
Use tooltips to clarify unfamiliar controls, never to hide essential instructions or information required to complete a task.
Anatomy
- Root container and spacing boundary.
- Primary content and optional secondary metadata.
- State indicators and utility affordances (icons, badges, controls).
- Optional helper text, grouping, and behavioral wrappers.
When to use
- Choose Tooltip when a repeated, structured interaction is required.
- Use it for clear, consistent operations across similar surfaces.
- Use in forms, lists, and action workflows where clarity matters.
When not to use
- Do not use only for decorative layout without interaction meaning.
- Avoid duplicating the same behavior without distinct user context.
- Prefer simpler HTML or textual content for static, non-interactive labels.
Variants
Component variants should be documented by API props and examples below.
States
Common states include idle, active, disabled, focused, and loading/pending states where applicable.
Behavior
Behavior should remain deterministic and keyboard-friendly, with clear visual feedback for every state transition.
Accessibility
- Use semantic structure and visible labels whenever possible.
- Preserve keyboard navigation and focus visibility.
- Announce status and changes when context requires it.
Content guidelines
- Prefer short, clear labels.
- Keep content actions scannable and outcome-oriented.
- Use consistent wording across similar components.
Examples
Basic
Hover any trigger to see the tooltip — works on hover and keyboard focus
Positions
top (default), right, bottom and left
Variants
dark (default, high contrast), light (for dark backgrounds) and primary (brand colored)
With keyboard shortcut
shortcut renders in a monospace badge inside the tooltip — useful for command palette hints
Rich tooltip
title adds a bold heading, actionLabel adds a clickable link — use maxWidth for long content
On a disabled element
Wrap a disabled button — the Tooltip handles pointer events by wrapping in a span
Props / API
Api Props
Props