@hoag/ui — UI components built with shadcn, Radix UI & Tailwind CSS
Components
Tooltip

Tooltip

A popup that displays informative text when users hover, focus, or click an element. Supports hover, focus, click-only modes, and configurable placement.

Installation

pnpm dlx shadcn@latest add tooltip

Usage

import {
  Tooltip,
  TooltipContent,
  TooltipProvider,
  TooltipTrigger,
} from "@hoag/ui/components/tooltip";
 
export default function Demo() {
  return (
    <TooltipProvider>
      <Tooltip>
        <TooltipTrigger asChild>
          <Button variant="outline">Hover me</Button>
        </TooltipTrigger>
        <TooltipContent>Helpful message</TooltipContent>
      </Tooltip>
    </TooltipProvider>
  );
}

Default

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger asChild>
      <Button variant="outline">Hover me</Button>
    </TooltipTrigger>
    <TooltipContent>Helpful message</TooltipContent>
  </Tooltip>
</TooltipProvider>

Placement

<TooltipContent side="top">Top placement</TooltipContent>
<TooltipContent side="right">Right placement</TooltipContent>
<TooltipContent side="bottom">Bottom placement</TooltipContent>
<TooltipContent side="left">Left placement</TooltipContent>

Click Only

Use clickOnly to open tooltip only on click, not on hover/focus.

<Tooltip clickOnly>
  <TooltipTrigger asChild>
    <Button>Click me</Button>
  </TooltipTrigger>
  <TooltipContent>Only opens on click.</TooltipContent>
</Tooltip>

Without Arrow

<TooltipContent showArrow={false}>No arrow tooltip</TooltipContent>

API Reference

<Tooltip>

PropTypeDefaultDescription
clickOnlybooleanfalseOpen only on click, disables hover/focus
enableClickTriggerbooleantrueAlso open on click (in addition to hover)
openbooleanControlled open state
onOpenChange(open: boolean) => voidCallback when open state changes
delayDurationnumber700Delay in ms before tooltip opens on hover

<TooltipContent>

PropTypeDefaultDescription
side"top" | "right" | "bottom" | "left""top"Preferred side of the trigger
align"start" | "center" | "end""center"Alignment along the side
sideOffsetnumber4Distance in px from trigger
showArrowbooleantrueShow/hide the arrow pointer