Getting Started
Components52
- Accordion
- Alert
- Alert Dialog
- Attachment
- Badge
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Card
- Checkbox
- Collapsible
- Command
- Context Menu
- Data Table
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Hover Card
- Input
- Input Group
- Item
- Kbd
- Label
- Marker
- Menubar
- Message
- Message Scroller
- Pagination
- Popover
- Progress
- Questionnaire
- Radio Group
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Switch
- Table
- Tabs
- Textarea
- Toggle
- Toggle Group
- Tooltip
import { CalendarIcon } from "lucide-react"
import { buttonVariants } from "@/components/ui/button"
import {
HoverCard,
HoverCardContent,
HoverCardTrigger,
} from "@/components/ui/hover-card"
export function HoverCardDemo() {
return (
<HoverCard>
<HoverCardTrigger
href="https://github.com/shadcn"
className={buttonVariants({ variant: "link" })}
>
@shadcn
</HoverCardTrigger>
<HoverCardContent className="w-72">
<div className="flex gap-3">
<div
aria-hidden
className="flex size-10 shrink-0 items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground"
>
SC
</div>
<div className="flex flex-col gap-1">
<p className="font-medium">@shadcn</p>
<p className="text-muted-foreground">
Beautifully designed components. Open source.
</p>
<p className="mt-1 flex items-center gap-1.5 text-xs text-muted-foreground">
<CalendarIcon className="size-3.5" />
Joined December 2021
</p>
</div>
</div>
</HoverCardContent>
</HoverCard>
)
}Installation#
pnpm dlx shadcn@latest add https://ui.ikramhasan.com/r/hover-card.json
Usage#
import {
HoverCard,
HoverCardContent,
HoverCardTrigger,
} from "@/components/ui/hover-card"<HoverCard>
<HoverCardTrigger>Hover</HoverCardTrigger>
<HoverCardContent>
The React Framework – created and maintained by @vercel.
</HoverCardContent>
</HoverCard>Examples#
Sides#
import { buttonVariants } from "@/components/ui/button"
import {
HoverCard,
HoverCardContent,
HoverCardTrigger,
} from "@/components/ui/hover-card"
export function HoverCardSides() {
return (
<div className="flex flex-wrap items-center gap-2">
{(["top", "right", "bottom", "left"] as const).map((side) => (
<HoverCard key={side}>
<HoverCardTrigger
href="#hover-card"
className={buttonVariants({
variant: "secondary",
className: "capitalize",
})}
>
{side}
</HoverCardTrigger>
<HoverCardContent side={side} className="w-48">
<p className="font-medium capitalize">{side}</p>
<p className="mt-1 text-muted-foreground">
Opens on hover or keyboard focus.
</p>
</HoverCardContent>
</HoverCard>
))}
</div>
)
}API Reference#
Hover Card is built on the Base UI Hover Card primitive. See the Base UI documentation for every prop.