GitHubnpm

Accent theme

Base radius

GitHubnpm

Accent theme

Base radius

Colour scheme

Docs menu

Guides


Primitives
Forms
Layout
Feedback
Overlays
Navigation
Data Display
AI

Hover Card

A heavier Tooltip: the same popover="manual" and useFloatingPosition mechanism, but for richer, often interactive content, so opening and closing are deliberate rather than instant. A real delay before showing gives a passing pointer room to not trigger it, and a matching delay before hiding gives the pointer time to travel from the trigger into the card itself. Focus shows it immediately, a keyboard user tabbing to the trigger shouldn't have to wait out a mouse-tuned delay.interestfor is declared on the trigger too, as a forward-looking, purely additive enhancement for the emerging native hover-intent API.

kernel-ui
Karl Koch
Designs and builds Kernel UI.

Playground

Toggle every adjustable prop and watch the component — and the code — update live.

kernel-ui
Karl Koch
Designs and builds Kernel UI.
Unstyled

Same component — Kernel look stripped. See Platforms.

placement
align
Usage
<HoverCard
  render={<a href="https://github.com/kemiljk/kernel-ui">kernel-ui</a>}
  content={/* Avatar + name + bio */}
/>

Props

Props for Hover Card.
PropTypeDefault
contentReactNode (required)
renderthe trigger element (required)
renderContentRenderProp — replace the popup
classNamestring | (state) => string
placement"top" | "bottom" | "left" | "right""bottom"
align"start" | "center" | "end""center"
offsetnumber (px)8
openDelaynumber (ms)150
closeDelaynumber (ms)100

Accessibility

  • The trigger gets aria-describedby pointing at the card, same as Tooltip.
  • Focus opens the card without the hover delay, so keyboard users aren't penalized for not having a mouse.
  • The card stays open while the pointer is over it, so its content (a link, say) is actually reachable rather than closing the instant the pointer leaves the trigger.
  • popover="manual" keeps native top-layer stacking and doesn't fight the custom hover timing the way popover="auto"'s light-dismiss would.