Hover card: Loading content
Start fetching in onOpenChange and show a skeleton until the data arrives. When the content changes, the card eases to its new height instead of jumping.
This adds the example as components/examples/hover-card/async.tsx, together with the Hover card component and the HextaUI theme tokens it needs.
pnpm dlx shadcn@latest add https://hextaui.com/r/hover-card-async.jsonTo add only the component, follow the Hover card installation.
Props in this example
The Hover card props this example sets, from the API reference.
| Prop | Type | Default |
|---|---|---|
onOpenChangedetails.reason is trigger-hover, trigger-focus, trigger-press, outside-press, escape-key, imperative-action or none. | (open: boolean, details) => void | – |
| Prop | Type | Default |
|---|---|---|
href | string | – |
delayMilliseconds before hover or focus opens the card. | number | 600 |
renderRender your own link, such as <Button variant="link" /> or a router link. | ReactElement | (props, state) => ReactElement | <a> |
Every prop is in the Hover card API reference.
See them all, with keyboard support and accessibility notes, on the Hover card page.
- MotionThe easing curves, durations and reduced-motion check every component animates with, plus hooks for size morphs and sliding highlights.
- Alert dialogA confirmation dialog for destructive or important actions that waits for async work, and becomes a bottom sheet on phones.
- CommandA searchable list of actions, inline or as a ⌘K palette, with pages, shortcuts and highlighted matches.
- Context menuA menu of actions on right click or long press, with submenus, checkbox and radio items, and hold feedback on touch.
- DialogA window over the page for forms and focused tasks, with a pinned header and footer, nesting, and a swipeable bottom sheet on phones.
- DrawerA panel that slides in from any edge and follows your finger, with snap points, a working handle and nested drawers that stack.