Tooltip
A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.
Installation
Follow the Quickstart guide if you haven't already.
Install the following dependencies:
pnpm add @radix-ui/react-tooltip
Copy and paste the following code into your project.
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
import { cn } from "~/utils/tailwind";
const TooltipProvider = TooltipPrimitive.Provider;
function Tooltip({
delayDuration = 300,
...props
}: React.ComponentProps<typeof TooltipPrimitive.Root>) {
return <TooltipPrimitive.Root delayDuration={delayDuration} {...props} />;
}
const TooltipTrigger = TooltipPrimitive.Trigger;
function TooltipContent({
className,
sideOffset = 4,
...props
}: React.ComponentProps<typeof TooltipPrimitive.Content>) {
return (
<TooltipPrimitive.Portal>
<TooltipPrimitive.Content
sideOffset={sideOffset}
className={cn(
"rounded-1.5 bg-primary text-3.5 text-primary-foreground animate-in fade-in-0 zoom-in-95 z-50 overflow-hidden border px-2 py-1",
"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",
className,
)}
{...props}
/>
</TooltipPrimitive.Portal>
);
}
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
Update the import paths to match your project setup.
Usage
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "~/components/ui/Tooltip";
<TooltipProvider>
<Tooltip>
<TooltipTrigger>Hover</TooltipTrigger>
<TooltipContent>
<p>Add to library</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>