Hover Card
React overlayRich popover triggered by hover/focus instead of click. Use for inline previews — user cards on @mentions, link previews, KPI explanations. Built on reka-ui with a configurable open/close delay.
Also available for Vue ->Installation
$ pnpm dlx shadcn@latest add https://react.uipkge.dev/r/react/hover-card.json$ npx shadcn@latest add https://react.uipkge.dev/r/react/hover-card.json$ yarn dlx shadcn@latest add https://react.uipkge.dev/r/react/hover-card.json$ bunx shadcn@latest add https://react.uipkge.dev/r/react/hover-card.json
Or with the named registry:
npx shadcn@latest add @uipkge-react/hover-card
Examples
Dependencies
Files (2)
-
components/ui/hover-card/hover-card.tsx 1.8 kB
'use client' import * as React from 'react' import * as HoverCardPrimitive from '@radix-ui/react-hover-card' import { cn } from '@/lib/utils' function HoverCard(props: React.ComponentProps<typeof HoverCardPrimitive.Root>) { return <HoverCardPrimitive.Root data-uipkge="" data-slot="hover-card" {...props} /> } const HoverCardTrigger = React.forwardRef< React.ElementRef<typeof HoverCardPrimitive.Trigger>, React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Trigger> >((props, ref) => ( <HoverCardPrimitive.Trigger ref={ref} data-uipkge="" data-slot="hover-card-trigger" {...props} /> )) HoverCardTrigger.displayName = HoverCardPrimitive.Trigger.displayName const HoverCardContent = React.forwardRef< React.ElementRef<typeof HoverCardPrimitive.Content>, React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content> >(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ( <HoverCardPrimitive.Portal> <HoverCardPrimitive.Content ref={ref} data-uipkge="" data-slot="hover-card-content" align={align} sideOffset={sideOffset} className={cn( 'bg-popover text-popover-foreground motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:zoom-in-95 motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden', className, )} {...props} /> </HoverCardPrimitive.Portal> )) HoverCardContent.displayName = HoverCardPrimitive.Content.displayName export { HoverCard, HoverCardTrigger, HoverCardContent } -
components/ui/hover-card/index.ts 0.1 kB
export { HoverCard, HoverCardTrigger, HoverCardContent } from './hover-card'
Raw manifest: https://react.uipkge.dev/r/react/hover-card.json