Tooltip
A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.
Loading…
"use client"
import { Button } from "@/components/ui/button"
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip"
export default function TooltipDemo() {
return (
<TooltipProvider>
<Tooltip>
<TooltipTrigger render={<Button variant="outline" />}>
Hover
</TooltipTrigger>
<TooltipContent>
<p>Add to library</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)
}Installation
pnpm dlx shadcn@latest add @kickresume/tooltipUsage
import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from "@/components/ui/tooltip"<TooltipProvider>
<Tooltip>
<TooltipTrigger render={<Button variant="outline" />}>
Hover
</TooltipTrigger>
<TooltipContent>
<p>Add to library</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>Composition
Use the following composition to build a Tooltip:
Tooltip
├── TooltipTrigger
└── TooltipContentExamples
Side
Use the side prop to change the position of the tooltip.
Loading…
"use client"
import { Button } from "@/components/ui/button"
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip"
export default function TooltipSides() {
return (
<TooltipProvider>
<div className="flex flex-wrap gap-2">
{(["left", "top", "bottom", "right"] as const).map((side) => (
<Tooltip key={side}>
<TooltipTrigger
render={<Button variant="outline" className="w-fit capitalize" />}
>
{side}
</TooltipTrigger>
<TooltipContent side={side}>
<p>Add to library</p>
</TooltipContent>
</Tooltip>
))}
</div>
</TooltipProvider>
)
}With Keyboard Shortcut
Loading…
"use client"
import { SaveIcon } from "lucide-react"
import { Button } from "@/components/ui/button"
import { Kbd } from "@/components/ui/kbd"
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip"
export default function TooltipKeyboard() {
return (
<TooltipProvider>
<Tooltip>
<TooltipTrigger
render={
<Button
variant="outline"
size="icon-sm"
aria-label="Save Changes"
/>
}
>
<SaveIcon data-icon="inline-start" />
</TooltipTrigger>
<TooltipContent>
Save Changes <Kbd>S</Kbd>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)
}Disabled Button
Show a tooltip on a disabled button by wrapping it with a span.
Loading…
"use client"
import { Button } from "@/components/ui/button"
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip"
export default function TooltipDisabled() {
return (
<TooltipProvider>
<Tooltip>
<TooltipTrigger render={<span className="inline-block w-fit" />}>
<Button variant="outline" disabled>
Disabled
</Button>
</TooltipTrigger>
<TooltipContent>
<p>This feature is currently unavailable</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)
}API Reference
See the Base UI Tooltip documentation.