Skip to content

Tooltip

A popup that displays additional information when a user hovers over or focuses an element.

Usage

import { Tooltip } from "@rhinolabs/ui"
export default function TooltipDemo() {
return (
<Tooltip.Provider>
<Tooltip>
<Tooltip.Trigger>Hover</Tooltip.Trigger>
<Tooltip.Content>
<p>Add to library</p>
</Tooltip.Content>
</Tooltip>
</Tooltip.Provider>
)
}

Examples

Basic Tooltip

A simple tooltip with text content.

<Tooltip.Provider>
<Tooltip>
<Tooltip.Trigger asChild>
<Button variant="outline">Hover me</Button>
</Tooltip.Trigger>
<Tooltip.Content>
<p>Add to library</p>
</Tooltip.Content>
</Tooltip>
</Tooltip.Provider>

With Custom Positioning

Tooltip with custom side and alignment.

<Tooltip.Provider>
<div className="flex space-x-4">
<Tooltip>
<Tooltip.Trigger asChild>
<Button variant="outline">Top</Button>
</Tooltip.Trigger>
<Tooltip.Content side="top">
<p>This tooltip appears on top</p>
</Tooltip.Content>
</Tooltip>
<Tooltip>
<Tooltip.Trigger asChild>
<Button variant="outline">Right</Button>
</Tooltip.Trigger>
<Tooltip.Content side="right">
<p>This tooltip appears on the right</p>
</Tooltip.Content>
</Tooltip>
</div>
</Tooltip.Provider>

With Icons

Tooltip with icon and text.

<Tooltip.Provider>
<Tooltip>
<Tooltip.Trigger asChild>
<Button size="icon" variant="ghost">
<InfoIcon className="h-4 w-4" />
</Button>
</Tooltip.Trigger>
<Tooltip.Content>
<p>View more information</p>
</Tooltip.Content>
</Tooltip>
</Tooltip.Provider>

Props

TooltipContent

PropTypeDefaultDescription
side"top" | "right" | "bottom" | "left""top"Preferred side
sideOffsetnumber4Distance from trigger
align"start" | "center" | "end""center"Preferred alignment
alignOffsetnumber-Alignment offset

All components accept their respective Radix UI Tooltip primitive props.

Design Considerations

  • Keep content concise
  • Position logically
  • Use appropriate delays
  • Consider mobile usage
  • Maintain readability

Accessibility

  • Supports keyboard focus
  • Manages hover states
  • Provides ARIA labels
  • Handles screen readers
  • Times out appropriately