Tooltip

A short contextual hint for icon controls, status details, timestamps, and compact metadata.

Preview#

Controls
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "raft-ui";

<TooltipProvider>
  <Tooltip>
    <TooltipTrigger />
    <TooltipContent />
  </Tooltip>
</TooltipProvider>

Use Tooltip for terse labels or hidden detail. Rich cards with actions, avatars, or structured content should stay in Popover or a future HoverCard-style primitive. Wrap tooltip trees in TooltipProvider once near the app or page root.

Action cluster#

Status hint#

Thinking

Icon content#

Long text#

Long text with icon#

Timestamp detail#

Shortcut hint#

Arrow placement#

Brutal renders tooltip hints without arrows.

Thinking

API#WIP

PropTypeDefaultDescription
delaynumber0Shared open delay in milliseconds. Raft defaults this to immediate hints.
closeDelaynumberShared close delay in milliseconds.
timeoutnumber400Window where adjacent tooltips open instantly after another tooltip closes.
PropTypeDefaultDescription
openbooleanControlled open state. Pair with onOpenChange.
defaultOpenbooleanfalseInitial open state for uncontrolled usage.
onOpenChange(open, eventDetails) => voidCalled when hover, focus, press, escape, or disabled state changes visibility.
disabledbooleanfalsePrevents the tooltip from opening.
disableHoverablePopupbooleanfalseWhen true, the popup cannot be hovered without closing.
trackCursorAxis"none" | "x" | "y" | "both""none"Moves the tooltip with the cursor when cursor tracking is needed.
PropTypeDefaultDescription
renderReactElement | (props, state) => ReactElementCompose the trigger with Button, time, span, or another focusable element.
delaynumberPer-trigger open delay override in milliseconds.
closeDelaynumberPer-trigger close delay override in milliseconds.
payloadunknownPayload passed to render-function tooltip content when using shared handles.
...propsBase UI Tooltip.Trigger.PropsNative button props plus Base UI trigger behavior.
PropTypeDefaultDescription
containerHTMLElement | RefObject | nullCustom portal container for framed previews or contained overlays.
...propsBase UI Tooltip.Portal.PropsPortals the tooltip to the body or a custom container.
PropTypeDefaultDescription
side"top" | "bottom" | "left" | "right" | "inline-start" | "inline-end""top"Preferred side. Tooltip shifts within that side instead of flipping position.
align"start" | "center" | "end""center"Alignment against the trigger.
sideOffsetnumber8 elegant, 6 brutalDistance from the trigger edge, passed to Base UI Positioner.
alignOffsetnumber0Distance along the aligned axis, passed to Base UI Positioner.
portalPropsTooltipPortalPropsPortal options, including a custom container for framed previews or overlays.
...propsBase UI Tooltip.Popup.PropsPopup attributes and event handlers.