Skip to content
Panels and menusInteractive playground

HoverCard

A contextual preview on hover or focus.

Preparing the playground…
Text and Markdown example
HoverCard · Example
1<HoverCard><HoverCardTrigger asChild><a href="/docs" style={{color:"var(--color-primary)"}}>@kivora</a></HoverCardTrigger><HoverCardContent>Components for the web and your next big idea.</HoverCardContent></HoverCard>
Read documentation in Markdown

How to use it

The content is supplementary: essential information must also be available at the linked destination.

Import

React / Next.js
1import { HoverCard, HoverCardTrigger, HoverCardContent } from "@kivora/nextjs";

Interactive examples run inside a component with "use client". The playground's Copy button includes the imports needed for the current example.

API reference 0.2.0

Types from the installed published version, including component properties and common HTML attributes. “Optional” does not imply a default value; omitting a property lets the component decide.

PropertyTypeDescription
childrenReactNodeContent or child elements of the component.
closeDelaynumberConfigures closeDelay. The type describes the supported values and structure.
defaultOpenbooleanWhether it starts open in uncontrolled mode.
onOpenChange((open: boolean) => void)Receives the new open state.
openbooleanControlled open state.
openDelaynumberConfigures openDelay. The type describes the supported values and structure.

Subcomponents and composition

Review each component's properties and published declaration. Native and accessibility attributes are inherited from the element specified by its type.

HoverCard6 properties
HoverCard · TypeScript
1declare function HoverCard({ closeDelay, defaultOpen, open, onOpenChange, openDelay, ...props }: HoverCardProps): React.JSX.Element;
HoverCardTrigger15 properties
PropertyTypeDescription
aria-labelstringAccessible name of the control.
asChildbooleanApply props and behavior to a single compatible child element.
childrenReactNodeContent or child elements of the component.
classNamestringAdditional CSS classes to customize the element.
defaultCheckedbooleanInitial selection of the control.
defaultValuestring | number | readonly string[]Initial value when the component manages its own state.
idstringElement identifier; associates labels and descriptions.
onChangeChangeEventHandler<HTMLAnchorElement, Element>Change event. Check the type: some controls return an object, others a DOM event.
onClickMouseEventHandler<HTMLAnchorElement>Action performed when the element is activated.
onSubmitSubmitEventHandler<HTMLAnchorElement>Form submission event.
roleAriaRoleSemantic role of the element. Keep the default role unless a change is justified.
styleCSSPropertiesReact inline styles.
tabIndexnumberKeyboard focus order and availability.
titlestringTitle or supplementary information.
typestringOperation type or mode; values depend on the component.
HoverCardTrigger · TypeScript
1HoverCardTrigger: React.ForwardRefExoticComponent<HoverCardPrimitive.HoverCardTriggerProps & React.RefAttributes<HTMLAnchorElement>>
HoverCardContent30 properties
PropertyTypeDescription
align"center" | "start" | "end"Content alignment.
alignOffsetnumberOffset from the chosen alignment.
aria-labelstringAccessible name of the control.
arrowPaddingnumberConfigures arrowPadding. The type describes the supported values and structure.
asChildbooleanApply props and behavior to a single compatible child element.
avoidCollisionsbooleanConfigures avoidCollisions. The type describes the supported values and structure.
childrenReactNodeContent or child elements of the component.
classNamestringAdditional CSS classes to customize the element.
collisionBoundaryBoundary | Boundary[]Configures collisionBoundary. The type describes the supported values and structure.
collisionPaddingnumber | Partial<Record<"left" | "right" | "top" | "bottom", number>>Configures collisionPadding. The type describes the supported values and structure.
defaultCheckedbooleanInitial selection of the control.
defaultValuestring | number | readonly string[]Initial value when the component manages its own state.
forceMounttrueUsed to force mounting when more control is needed. Useful when controlling animation with React animation libraries.
hideWhenDetachedbooleanConfigures hideWhenDetached. The type describes the supported values and structure.
idstringElement identifier; associates labels and descriptions.
onChangeChangeEventHandler<HTMLDivElement, Element>Change event. Check the type: some controls return an object, others a DOM event.
onClickMouseEventHandler<HTMLDivElement>Action performed when the element is activated.
onEscapeKeyDown((event: KeyboardEvent) => void)Event handler called when the escape key is down. Can be prevented.
onFocusOutside((event: FocusOutsideEvent) => void)Event handler called when the focus moves outside of the `HoverCard`. Can be prevented.
onInteractOutside((event: PointerDownOutsideEvent | FocusOutsideEvent) => void)Event handler called when an interaction happens outside the `HoverCard`. Specifically, when a `pointerdown` event happens outside or focus moves outside of it. Can be prevented.
onPointerDownOutside((event: PointerDownOutsideEvent) => void)Event handler called when the a `pointerdown` event happens outside of the `HoverCard`. Can be prevented.
onSubmitSubmitEventHandler<HTMLDivElement>Form submission event.
roleAriaRoleSemantic role of the element. Keep the default role unless a change is justified.
side"left" | "right" | "top" | "bottom"Side from which the panel appears.
sideOffsetnumberDistance between the trigger and content.
sticky"partial" | "always"Configures sticky. The type describes the supported values and structure.
styleCSSPropertiesReact inline styles.
tabIndexnumberKeyboard focus order and availability.
titlestringTitle or supplementary information.
updatePositionStrategy"always" | "optimized"Configures updatePositionStrategy. The type describes the supported values and structure.
HoverCardContent · TypeScript
1HoverCardContent: React.ForwardRefExoticComponent<HoverCardContentProps & React.RefAttributes<HTMLDivElement>>
API generated from @kivora/nextjs 0.2.0View package