PreviewCard

A hover card that displays a preview of linked content

Installation#

npmpnpmyarnbun
npx sugarcoat add preview-card

Examples#

Default#

Default
Link Preview

User Profile Preview#

User Profile

With Arrow#

With Arrow

Product Preview#

Product Preview

Controlled#

Controlled

Anatomy#

<PreviewCard>
  <PreviewCard.Trigger>Hover trigger</PreviewCard.Trigger>
  <PreviewCard.Portal>
    <PreviewCard.Positioner>
      <PreviewCard.Popup>
        <PreviewCard.Arrow />
        {/* Preview content */}
      </PreviewCard.Popup>
    </PreviewCard.Positioner>
  </PreviewCard.Portal>
</PreviewCard>

Usage#

Import
import { PreviewCard } from "@sugarcoat/ui-nxt";
Usage
<PreviewCard>
<PreviewCard.Trigger>
  <a href="/profile">@username</a>
</PreviewCard.Trigger>
<PreviewCard.Portal>
  <PreviewCard.Positioner>
    <PreviewCard.Popup>
      {/* Preview content */}
    </PreviewCard.Popup>
  </PreviewCard.Positioner>
</PreviewCard.Portal>
</PreviewCard>

Props#

PreviewCard (Root)#

PropTypeDefaultDescription
openboolean-Controlled open state
defaultOpenbooleanfalseDefault open state (uncontrolled)
onOpenChange(open: boolean) => void-Callback when open state changes
delaynumber600Delay in ms before showing the preview
closeDelaynumber300Delay in ms before hiding the preview
size"sm" | "md" | "lg""md"Size variant
cssSystemStyleObject-Additional CSS styles using Panda CSS syntax

PreviewCard.Positioner#

PropTypeDefaultDescription
side"top" | "bottom" | "left" | "right""bottom"Preferred side for positioning
sideOffsetnumber8Distance from the trigger
align"start" | "center" | "end""center"Alignment relative to the trigger

Accessibility#

  • Built on Base UI PreviewCard for robust accessibility
  • Shows on hover with configurable delay
  • Remains visible when hovering over the popup
  • Keyboard accessible via focus
  • Properly manages focus for screen readers
  • Escape key closes the preview
Customize Theme
Build your own sugarcoat/ui theme
PresetLime / Violet / Slate
Brand ColorLime
Accent ColorViolet
Gray ScaleSlate
Border RadiusLg