Tooltip

Hover or focus label hint built on Radix Tooltip primitive with automatic positioning, arrow indicator, and theme tone overrides.

// Radix — @radix-ui/react-tooltip
import { Tooltip } from "@shavin/ui";

Sides

<Tooltip content="Appears on top" side="top">
  <Button variant="outline">Top</Button>
</Tooltip>
<Tooltip content="Appears on the right" side="right">
  <Button variant="outline">Right</Button>
</Tooltip>
<Tooltip content="Appears on the bottom" side="bottom">
  <Button variant="outline">Bottom</Button>
</Tooltip>
<Tooltip content="Appears on the left" side="left">
  <Button variant="outline">Left</Button>
</Tooltip>

Delay duration

<Tooltip content="Opens instantly" delayDuration={0}>
  <Button variant="outline">No delay</Button>
</Tooltip>
<Tooltip content="Opens after 700ms" delayDuration={700}>
  <Button variant="outline">Long delay</Button>
</Tooltip>

Tone — force a contrast regardless of theme

const [tone, setTone] = useState("auto");

<Tooltip content={`tone="${tone}"`} tone={tone} delayDuration={0}>
  <Button variant="outline">Hover me</Button>
</Tooltip>

auto (default) follows the current theme's panel color. dark / light force a fixed contrast — e.g. a dark tooltip on a light page for visibility.

Props

PropTypeDefault
content*ReactNode
children*ReactElement
side"top" | "right" | "bottom" | "left"
delayDurationnumber
tone"auto" | "dark" | "light"
classNamestring

* required

Configure Theme
Theme
Accent Color
Custom
Gray Family
Appearance
Radius
Scaling
Panel Style
Heading Font
Body Font