Tally UI
Primitives

HoverCard

A floating card that appears when hovering over a trigger, for previewing content.

Import

import { HoverCard } from '@tallyui/primitives';

Usage

<HoverCard.Root openDelay={200} closeDelay={100}>
  <HoverCard.Trigger>
    <Text>@username</Text>
  </HoverCard.Trigger>
  <HoverCard.Portal>
    <HoverCard.Overlay />
    <HoverCard.Content sideOffset={4}>
      <Text>User profile card</Text>
    </HoverCard.Content>
  </HoverCard.Portal>
</HoverCard.Root>

Components

HoverCard.Root

Manages the open/closed state with configurable open and close delays. Does not render a DOM element.

PropTypeDefaultDescription
openbooleanControlled open state
defaultOpenbooleanfalseInitial state (uncontrolled)
onOpenChange(open: boolean) => voidCalled when open state changes
openDelaynumber0Delay in ms before the card appears
closeDelaynumber0Delay in ms before the card hides

HoverCard.Trigger

The element that activates the card on hover.

PropTypeDefaultDescription
asChildbooleanfalseMerge props onto child instead of rendering

Plus all React Native PressableProps.

HoverCard.Portal

Renders children into a portal.

PropTypeDefaultDescription
forceMounttrueAlways mount portal content
hostNamestringTarget portal host name

HoverCard.Overlay

An optional overlay behind the card content.

PropTypeDefaultDescription
closeOnPressbooleantrueWhether pressing the overlay closes the card
forceMounttrueAlways render the overlay
asChildbooleanfalseMerge props onto child instead of rendering

Plus all React Native PressableProps.

HoverCard.Content

The positioned floating card. Accepts all PositionedContentProps.

PropTypeDefaultDescription
side'top' | 'bottom''bottom'Preferred side relative to the trigger
sideOffsetnumber0Distance from the trigger
align'start' | 'center' | 'end''center'Alignment along the trigger
avoidCollisionsbooleantrueShift to stay within the viewport
forceMounttrueAlways render the content
asChildbooleanfalseMerge props onto child instead of rendering

Plus all React Native ViewProps.

Accessibility

  • Not announced by screen readers -- HoverCard is supplementary content for sighted pointer users
  • Content should duplicate information available through other means for keyboard and screen reader users

On this page