Tooltip Component
A versatile Tooltip, managing state, context, and styling.import { Button, Tooltip } from "@locus-ui/components";import styles from "./styles.css";
<Tooltip.Root> <Tooltip.Trigger> <Button variant="muted">Help</Button> </Tooltip.Trigger> <Tooltip.Content variant="outlined"> This is the help </Tooltip.Content></Tooltip.Root>Anatomy
Import the component and its parts:Anatomy
import { Button, Tooltip } from "@locus-ui/components";
<Tooltip.Root> <Tooltip.Trigger /> <Tooltip.Content /></Tooltip.Root>Examples
Variants
Tooltip content comes with three built in variants,solid, outlined, and muted.
variants.tsx
import { Button, Tooltip } from "@locus-ui/components";
const variants = ["solid", "outlined", "muted"];
return variants.map((variant) => ( <Tooltip.Root key={variant}> <Tooltip.Trigger> <Button variant="muted"> {variant.charAt(0).toUpperCase() + variant.slice(1)} </Button> </Tooltip.Trigger> <Tooltip.Content variant={variant}>Sides
Theside prop controls which side of the trigger the tooltip appears on: top, right, bottom, or left.
sides.tsx
import { Button, Tooltip } from "@locus-ui/components";
const sides = ["top", "right", "bottom", "left"];
return sides.map((side) => ( <Tooltip.Root key={side} side={side}> <Tooltip.Trigger> <Button variant="muted"> {side.charAt(0).toUpperCase() + side.slice(1)} </Button> </Tooltip.Trigger> <Tooltip.Content variant="outlined">Open on Click
TheopenOnClick prop enables opening the tooltip by clicking the trigger instead of hovering.
open-on-click.tsx
import { Button, Tooltip } from "@locus-ui/components";
<Tooltip.Root openOnHover={false} openOnClick> <Tooltip.Trigger> <Button variant="muted">Click Me</Button> </Tooltip.Trigger> <Tooltip.Content variant="outlined"> Opened by click </Tooltip.Content></Tooltip.Root>Delay
Thedelay prop controls the hover delay in milliseconds before the tooltip opens.
delay.tsx
import { Button, Tooltip } from "@locus-ui/components";
const delays = [0, 300, 1000];
return delays.map((delay) => ( <Tooltip.Root key={delay} delay={delay}> <Tooltip.Trigger> <Button variant="muted">{delay}ms</Button> </Tooltip.Trigger> <Tooltip.Content variant="outlined"> {delay}ms delay </Tooltip.Content>