- Docs
- components
- Tooltip
Tooltip
A tooltip displays a description of an element on hover or focus.
Copy and paste the following code into your project.
"use client";
import {
OverlayArrow,
Tooltip as TooltipPrimitive,
TooltipTrigger,
} from "react-aria-components";
import { TooltipStyles } from "./styles";
export interface TooltipRootProps
extends React.ComponentProps<typeof TooltipTrigger> {}
export const TooltipRoot = TooltipTrigger;
export interface TooltipContentProps
extends React.ComponentProps<typeof TooltipPrimitive> {}
export function TooltipContent({
className,
offset = 10,
...props
}: TooltipContentProps) {
return (
<TooltipPrimitive
{...props}
offset={offset}
className={(values) =>
TooltipStyles.Content({
className:
typeof className === "function" ? className(values) : className,
})
}
/>
);
}
export interface TooltipArrowProps
extends React.ComponentProps<typeof OverlayArrow> {}
export function TooltipArrow({ className, ...props }: TooltipArrowProps) {
return (
<OverlayArrow {...props}>
<svg
aria-hidden="true"
width={12}
height={12}
viewBox="0 0 12 12"
className={TooltipStyles.Arrow({ className })}
>
<path d="M0 0 L6 6 L12 0" />
</svg>
</OverlayArrow>
);
}
Update the import paths to match your project setup.
import { Button } from "~/components/ui/button";
import { Tooltip } from "~/components/ui/tooltip";
<Tooltip.Root>
<Button></Button>
<Tooltip.Content>
<p></p>
<Tooltip.Arrow />
</Tooltip.Content>
</Tooltip.Root>
import { Button } from "~/components/ui/button";
import {
TooltipArrow,
TooltipContent,
TooltipRoot,
} from "~/components/ui/tooltip";
<TooltipRoot>
<Button></Button>
<TooltipContent>
<p></p>
<TooltipArrow />
</TooltipContent>
</TooltipRoot>
Prop | Type | Default |
---|
children
| ReactNode
| |
| boolean
| |
| number
| 1500 |
| number
| 500 |
| 'focus'
| |
| boolean
| |
| boolean
| |
| | |