Toggle Group
Get Started
Introduction
Components
Accordion
Badge
Button
Card
Checkbox
Command
Dialog
Dropdown Menu
Input
Select
Switch
Table
Tabs
Toast
Tooltip
Forms
Controlled Input
Field Arrays
Submit
Validation

Tooltip

A popup that displays contextual information on hover or focus.

top
right
bottom
left
0
200
500
700

#Installation

bunx --bun barefoot add tooltip

#Usage

Hover me
1import { Tooltip } from "@/components/ui/tooltip"23<Tooltip content="This is a tooltip">4  <span className="underline decoration-dotted cursor-help">5    Hover me6  </span>7</Tooltip>

#Examples

#Basic

Hover me
1import { Tooltip } from "@/components/ui/tooltip"23export function TooltipBasicDemo() {4  return (5    <Tooltip content="This is a tooltip" id="tooltip-basic">6      <span className="underline decoration-dotted cursor-help">7        Hover me8      </span>9    </Tooltip>10  )11}

#Button Focus

1import { Tooltip } from "@/components/ui/tooltip"2import { Button } from "@/components/ui/button"34export function TooltipButtonDemo() {5  return (6    <Tooltip content="Keyboard accessible tooltip" id="tooltip-button">7      <Button>Hover or Focus</Button>8    </Tooltip>9  )10}

#Icon Buttons

1import { Tooltip } from "@/components/ui/tooltip"2import { Button } from "@/components/ui/button"34export function TooltipIconDemo() {5  return (6    <div className="flex items-center gap-2">7      <Tooltip content="Bold" id="tooltip-icon-bold">8        <Button variant="outline" size="icon">9          <span className="font-bold">B</span>10        </Button>11      </Tooltip>12      <Tooltip content="Italic" id="tooltip-icon-italic">13        <Button variant="outline" size="icon">14          <span className="italic">I</span>15        </Button>16      </Tooltip>17      <Tooltip content="Underline" id="tooltip-icon-underline">18        <Button variant="outline" size="icon">19          <span className="underline">U</span>20        </Button>21      </Tooltip>22    </div>23  )24}

#Placement

1import { Tooltip } from "@/components/ui/tooltip"2import { Button } from "@/components/ui/button"34export function TooltipPlacementDemo() {5  return (6    <div className="flex flex-wrap gap-4">7      <Tooltip content="Top placement" placement="top">8        <Button variant="outline">Top</Button>9      </Tooltip>10      <Tooltip content="Right placement" placement="right">11        <Button variant="outline">Right</Button>12      </Tooltip>13      <Tooltip content="Bottom placement" placement="bottom">14        <Button variant="outline">Bottom</Button>15      </Tooltip>16      <Tooltip content="Left placement" placement="left">17        <Button variant="outline">Left</Button>18      </Tooltip>19    </div>20  )21}

#Delay

Hover me (700ms delay) Hover me (no delay)
1import { Tooltip } from "@/components/ui/tooltip"23export function TooltipDelayDemo() {4  return (5    <div className="flex flex-wrap gap-8">6      <Tooltip content="This tooltip has a 700ms delay" delayDuration={700}>7        <span className="underline decoration-dotted cursor-help">8          Hover me (700ms delay)9        </span>10      </Tooltip>11      <Tooltip content="This tooltip appears immediately" delayDuration={0}>12        <span className="underline decoration-dotted cursor-help">13          Hover me (no delay)14        </span>15      </Tooltip>16    </div>17  )18}

#API Reference

PropTypeDefaultDescription
contentstring-The text content displayed in the tooltip.
placement'top' | 'right' | 'bottom' | 'left''top'Position of the tooltip relative to the trigger element.
delayDurationnumber0Delay in milliseconds before showing the tooltip on hover.
closeDelaynumber0Delay in milliseconds before hiding the tooltip after mouse leave.
idstring-ID for aria-describedby accessibility linking.