Tooltip
Anatomy
Section titled “Anatomy”<TooltipProvider> <Tooltip> <TooltipTrigger /> <TooltipContent /> </Tooltip></TooltipProvider>To display a tooltip, compose <Tooltip>, <TooltipTrigger>, and <TooltipContent>. It default to displaying centered above the trigger and adjust position to avoid colliding with the edge of the viewport. Pressing esc or clicking away will close the tooltip.
import { Button } from "stylus-ui/Button";import { Tooltip, TooltipTrigger, TooltipContent } from "stylus-ui/Tooltip";import { faUserPlus } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <Tooltip> <TooltipTrigger asChild> <Button icon={faUserPlus} variant="secondary" /> </TooltipTrigger> <TooltipContent>Add user</TooltipContent> </Tooltip>);Position
Section titled “Position”Tooltips can display on every side of the trigger.
import { Button } from "stylus-ui/Button";import { Tooltip, TooltipTrigger, TooltipContent } from "stylus-ui/Tooltip";import { faArrowLeft, faArrowUp, faArrowDown, faArrowRight,} from "@fortawesome/pro-regular-svg-icons";
export default () => ( <div className="flex items-center gap-1"> <Tooltip> <TooltipTrigger asChild> <Button icon={faArrowLeft} variant="secondary" /> </TooltipTrigger> <TooltipContent side="left">Left</TooltipContent> </Tooltip> <div className="flex flex-col gap-1"> <Tooltip> <TooltipTrigger asChild> <Button icon={faArrowUp} variant="secondary" /> </TooltipTrigger> <TooltipContent side="top">Top</TooltipContent> </Tooltip> <Tooltip> <TooltipTrigger asChild> <Button icon={faArrowDown} variant="secondary" /> </TooltipTrigger> <TooltipContent side="bottom">Bottom</TooltipContent> </Tooltip> </div> <Tooltip> <TooltipTrigger asChild> <Button icon={faArrowRight} variant="secondary" /> </TooltipTrigger> <TooltipContent side="right">Right</TooltipContent> </Tooltip> </div>);You can display a smaller tooltip by setting the variant of <TooltipContent> to "compact".
import { Button } from "stylus-ui/Button";import { Tooltip, TooltipTrigger, TooltipContent } from "stylus-ui/Tooltip";import { faUserPlus } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <Tooltip> <TooltipTrigger asChild> <Button icon={faUserPlus} variant="secondary" size="small" /> </TooltipTrigger> <TooltipContent variant="compact">Add user</TooltipContent> </Tooltip>);Use the delayDuration prop to control the time it takes for the tooltip to open.
import { Button } from "stylus-ui/Button";import { Tooltip, TooltipTrigger, TooltipContent } from "stylus-ui/Tooltip";import { faUserPlus } from "@fortawesome/pro-regular-svg-icons";
export default () => ( // Display tooltip instantly <Tooltip delayDuration={0}> <TooltipTrigger asChild> <Button icon={faUserPlus} variant="secondary" /> </TooltipTrigger> <TooltipContent>Add user</TooltipContent> </Tooltip>);API Reference
Section titled “API Reference”TooltipProvider
Section titled “TooltipProvider”Wraps the app to provide global functionality to tooltips.
Tooltip
Section titled “Tooltip”Contains all the parts of a tooltip.
TooltipTrigger
Section titled “TooltipTrigger”The button that toggles the tooltip. By default, <TooltipContent> will position itself against the trigger.
Inherits properties from HTMLButtonElement.
TooltipContent
Section titled “TooltipContent”The component that pops out when the tooltip is open.
Inherits properties from HTMLElement.