Skip to main content
The Tooltip component shows helpful information when users hover over or focus on an element.

Installation

import {
  TooltipProvider,
  Tooltip,
  TooltipTrigger,
  TooltipPortal,
  TooltipPositioner,
  TooltipPopup,
} from "@craftdotui/baseui/components/tooltip";

Usage

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger>Hover me</TooltipTrigger>
    <TooltipPortal>
      <TooltipPositioner>
        <TooltipPopup>
          Tooltip content
        </TooltipPopup>
      </TooltipPositioner>
    </TooltipPortal>
  </Tooltip>
</TooltipProvider>

Components

TooltipProvider

delay
number
default:"600"
Delay before showing tooltip (ms).
closeDelay
number
default:"300"
Delay before hiding tooltip (ms).
Wrap your app or component tree to share tooltip settings.

Tooltip (Root)

open
boolean
Controlled open state.
defaultOpen
boolean
Default open state.
onOpenChange
function
Callback when state changes.

TooltipPositioner

side
string
default:"top"
Preferred side. Options: top, right, bottom, left
align
string
default:"center"
Alignment. Options: start, center, end

TooltipPopup

hideTooltipArrow
boolean
default:"false"
Hide the arrow.
The tooltip content with arrow and animations.

Examples

Basic Tooltip

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger>
      <Button>Hover me</Button>
    </TooltipTrigger>
    <TooltipPortal>
      <TooltipPositioner>
        <TooltipPopup>
          This is a helpful tooltip
        </TooltipPopup>
      </TooltipPositioner>
    </TooltipPortal>
  </Tooltip>
</TooltipProvider>

Different Positions

<TooltipPositioner side="top">Top tooltip</TooltipPositioner>
<TooltipPositioner side="right">Right tooltip</TooltipPositioner>
<TooltipPositioner side="bottom">Bottom tooltip</TooltipPositioner>
<TooltipPositioner side="left">Left tooltip</TooltipPositioner>

Without Arrow

<TooltipPopup hideTooltipArrow>
  Tooltip without arrow
</TooltipPopup>

Custom Delay

<TooltipProvider delay={1000} closeDelay={500}>
  {/* Tooltips with custom timing */}
</TooltipProvider>

Accessibility

  • Built on @base-ui/react for accessibility
  • Appears on hover and focus
  • Keyboard accessible
  • Proper ARIA attributes
  • Does not trap focus
  • Collision detection for viewport edges

Build docs developers (and LLMs) love