Tally UI
Primitives

Tooltip

A floating label that appears on hover or focus to describe an element.

Import

import { Tooltip } from '@tallyui/primitives';

Usage

<Tooltip.Root delayDuration={300}>
  <Tooltip.Trigger>
    <InfoIcon />
  </Tooltip.Trigger>
  <Tooltip.Portal>
    <Tooltip.Overlay />
    <Tooltip.Content sideOffset={4}>
      <Text>Helpful hint</Text>
    </Tooltip.Content>
  </Tooltip.Portal>
</Tooltip.Root>

Components

Tooltip.Root

Manages the open/closed state with an optional delay. Does not render a DOM element.

PropTypeDefaultDescription
openbooleanControlled open state
defaultOpenbooleanfalseInitial state (uncontrolled)
onOpenChange(open: boolean) => voidCalled when open state changes
delayDurationnumber0Delay in ms before the tooltip appears

Tooltip.Trigger

The element that activates the tooltip on hover or focus.

PropTypeDefaultDescription
asChildbooleanfalseMerge props onto child instead of rendering

Plus all React Native PressableProps.

Tooltip.Portal

Renders children into a portal.

PropTypeDefaultDescription
forceMounttrueAlways mount portal content
hostNamestringTarget portal host name

Tooltip.Overlay

An optional overlay behind the tooltip content.

PropTypeDefaultDescription
closeOnPressbooleantrueWhether pressing the overlay closes the tooltip
forceMounttrueAlways render the overlay
asChildbooleanfalseMerge props onto child instead of rendering

Plus all React Native PressableProps.

Tooltip.Content

The positioned tooltip panel. Accepts all PositionedContentProps.

PropTypeDefaultDescription
side'top' | 'bottom''bottom'Preferred side relative to the trigger
sideOffsetnumber0Distance from the trigger
align'start' | 'center' | 'end''center'Alignment along the trigger
avoidCollisionsbooleantrueShift to stay within the viewport
forceMounttrueAlways render the content
asChildbooleanfalseMerge props onto child instead of rendering

Plus all React Native ViewProps.

Accessibility

  • Role: tooltip
  • ARIA: aria-describedby links the trigger to the tooltip content
  • Appears on hover and focus, dismisses on blur and pointer leave on web

On this page