Components

Base Components

Tooltip

A popover that appears on hover or focus to show additional information.

Example

Installation

Install the following dependencies:

npm install radix-ui

Create a tooltip.tsx file and paste the following code into it.

"use client";import * as React from "react";import { Tooltip as TooltipPrimitive } from "radix-ui";import { cn } from "@/lib/utils";function TooltipProvider({  delayDuration = 0,  ...props}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {  return (    <TooltipPrimitive.Provider      data-slot="tooltip-provider"      delayDuration={delayDuration}      {...props}    />  );}function Tooltip({  ...props}: React.ComponentProps<typeof TooltipPrimitive.Root>) {  return (    <TooltipProvider>      <TooltipPrimitive.Root data-slot="tooltip" {...props} />    </TooltipProvider>  );}function TooltipTrigger({  ...props}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {  return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;}function TooltipContent({  className,  sideOffset = 0,  children,  ...props}: React.ComponentProps<typeof TooltipPrimitive.Content>) {  return (    <TooltipPrimitive.Portal>      <TooltipPrimitive.Content        data-slot="tooltip-content"        sideOffset={sideOffset}        className={cn(          "bg-tooltip text-tooltip-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",          className,        )}        {...props}      >        {children}        <TooltipPrimitive.Arrow className="bg-tooltip fill-tooltip z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]" />      </TooltipPrimitive.Content>    </TooltipPrimitive.Portal>  );}export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };

Check the import paths to ensure they match your project setup.

Usage

import {
  Tooltip,
  TooltipContent,
  TooltipTrigger,
} from "@/components/ui/tooltip";
<Tooltip>
  <TooltipTrigger>Hover me</TooltipTrigger>
  <TooltipContent>
    <p>Tooltip content</p>
  </TooltipContent>
</Tooltip>

Examples

Basic

With Delay

Wrap your app in TooltipProvider to configure delay. The default delayDuration is 0; increase it for slower show/hide.

Placement

Use the side prop on TooltipContent to control placement.

With Icon

API Reference

Tooltip

Root component. Wraps trigger and content, includes TooltipProvider with delayDuration={0} by default.

TooltipTrigger

The element that triggers the tooltip on hover or focus. Use asChild to delegate to a child element.

TooltipContent

The tooltip popover. Supports side (top, right, bottom, left), sideOffset, and align for positioning.

TooltipProvider

Optional. Wrap your app to configure global options like delayDuration.

On this page