Skip to content

HoverCard

Feedback

Supplementary entity details displayed on hover or focus.

Entity previewHover and focusConfigurable opening delay
Open preview

Responsive viewport — resize the window to explore. Direction and density apply only to this preview. Theme applies to the docs too.

Usage

Use a real link as HoverCardTrigger. Put supplementary identity or contextual content in HoverCardContent. Essential details and actions must remain reachable without opening the card.

Import
import {
  HoverCard,
  HoverCardTrigger,
  HoverCardContent,
} from "@/components/ui/hover-card";

Shipped as editable source in src/components/ui/hover-card.tsx in both apps. Copy the implementation below when moving it to another project. Copy the complete example from Source code for all imports and state. Add "use client" when using hooks or event handlers. See installation and theming for project setup.

Component source

The complete implementation is included in both apps. It uses the React, Radix, Lucide, and shared-core dependencies already installed in Apex. Keep your project’s semantic theme tokens when reusing it.

src/components/ui/hover-card.tsx
"use client";

import type { ComponentProps } from "react";
import { cn } from "@dashboardpack/core/lib/utils";

import { HoverCard as Primitive } from "radix-ui";
export const HoverCard = Primitive.Root;
export const HoverCardTrigger = Primitive.Trigger;
export function HoverCardContent({
  className,
  align = "center",
  sideOffset = 6,
  ...props
}: ComponentProps<typeof Primitive.Content>) {
  return (
    <Primitive.Portal>
      <Primitive.Content
        align={align}
        sideOffset={sideOffset}
        className={cn(
          "z-50 w-72 max-w-[calc(100vw-2rem)] rounded-xl border bg-popover p-4 text-popover-foreground shadow-lg outline-none",
          className,
        )}
        {...props}
      />
    </Primitive.Portal>
  );
}

API reference

Common props and defaults. Slot-specific props are named below; native elements also accept their standard HTML attributes. The component TypeScript definitions are the complete type reference.

HoverCard props
PropType / DefaultDescription
open / defaultOpenboolean

Default: false

Optional controlled or initial visibility.
openDelay / closeDelaynumber

Default: 700 / 300

Delay in milliseconds.
side / align (HoverCardContent)physical side / start | center | end

Default: bottom / center

Placement relative to the trigger.
sideOffset (HoverCardContent)number

Default: 6

Distance from the trigger.

Build with these too