Appica UIUI 1.0.0

Tooltip

A small hint that appears on hover or focus to label a control.

Usage

A tooltip is a short, non-interactive hint that appears when its trigger is hovered or focused — most often to name an icon-only control. The trigger is wired to the popup through render: pass it your own Button (or any focusable element) and the tooltip manages its description and open/close.

Tooltip is a compound component built on Base UI's Tooltip:

  • TooltipProvider — wraps a group of tooltips and shares the hover delay. Place one high in your app so that once one tooltip has opened, moving to a sibling shows its tooltip instantly instead of waiting out the delay again.
  • Tooltip — the root for a single tooltip. Holds its open state; set trackCursorAxis to follow the pointer or disabled to suppress it.
  • TooltipTrigger — the element the tooltip describes. Use render to project it onto your own control.
  • TooltipContent — the portalled, auto-positioned popup. Draws the bubble and the optional arrow, and accepts the shared floating props (side, align, sideOffset, …).

Reach for a Tooltip to label or hint at a control. For rich or interactive floating content, use a Popover; for a list of actions, use a Dropdown Menu; for a hover preview of a link, use a Preview Card.

Examples

Side & alignment

Position the bubble with side (top / right / bottom / left) and align (start / center / end) on TooltipContent. It flips and shifts automatically to stay in view.

Shared provider

Wrap a group of controls — here a Toolbar of formatting buttons — in a single TooltipProvider. The first tooltip waits out the delay; once it's open, sweeping the pointer to a neighbour shows that tooltip immediately. Within that grace window the tooltip also skips its open/close animation, so it reads as one tooltip relocating across the toolbar rather than each popup re-bouncing.

Rich content

TooltipContent accepts any markup, so you can pair a label with a Kbd shortcut. Keep it terse and non-interactive — the popup closes as soon as the pointer leaves the trigger.

Follow the cursor

Set trackCursorAxis on the Tooltip to 'x', 'y', or 'both' so the bubble follows the pointer along that axis — handy over a wide target like a chart or canvas where a fixed anchor would feel disconnected.

Hover and move across

Without an arrow

Pass arrow={false} to drop the pointer for a flatter bubble that sits flush against its offset.

RTL

Every Appica UI component supports right-to-left layouts out of the box. Set the dir attribute on a container (commonly your <html> element) so CSS logical properties resolve correctly, and wrap your tree in DirectionProvider so direction-aware placement follows the same direction.

start/end alignment mirrors with the document direction. For setup details and caveats, see the RTL guide.

API reference

Tooltip wraps Base UI's Tooltip. Each part forwards every remaining prop to the matching Base UI primitive, so anything it accepts works here — the tables below list the Appica additions and the most common props. See the Base UI docs for the complete API.

TooltipProvider

Shares the hover delay across the tooltips it wraps. Renders no DOM of its own.

Tooltip

The root for a single tooltip. Holds the open state; renders no DOM of its own.

TooltipTrigger

The element the tooltip describes. Forwards Base UI's Tooltip.Trigger; use render to project it onto your own control.

TooltipContent

The portalled, auto-positioned bubble. Draws the popup and the optional arrow, and accepts the shared floating props. Defaults to side="top", align="center", and sideOffset={8} (or 4 without an arrow).

Accessibility

  • The popup is wired to the trigger via aria-describedby, so screen readers announce it as a description — not the control's name. Give icon-only triggers an aria-label (or visible text) of their own.
  • The tooltip opens on hover and keyboard focus, and closes on Escape, on blur, or when the pointer leaves.
  • Tooltips don't open on touch — there's no hover — so never hide essential information in one.
  • Within a TooltipProvider, the delay is shared and subsequent tooltips open instantly within the timeout window.
  • Enter/exit transitions are skipped when the user prefers reduced motion.

© 2026 Appica UI. A free component library, crafted by the Appica team.