悬浮卡片 HoverCard
HoverCard
是基于 @radix-ui/react-hover-card
构建的组件,用于在鼠标悬停时显示额外的信息内容。它常用于展示用户资料、提示卡片等。
📦 引入方式
import { HoverCard, HoverCardContent, HoverCardTrigger } from '@npmqg/react-ui-hovercard';
🧩 使用示例
- 示例
- 源码
<HoverCard>
<HoverCardTrigger asChild>
<button className="underline">查看详情</button>
</HoverCardTrigger>
<HoverCardContent>
<div>这是一个悬浮卡片内容</div>
</HoverCardContent>
</HoverCard>
📑 组件 API
组件名 | 描述 | 主要 Props(类型 - 默认值 - 说明) | ||
---|---|---|---|---|
HoverCard | 根组件,用于包裹 HoverCardTrigger 和 HoverCardContent | — | ||
HoverCardTrigger | 触发器组件,支持 asChild 将任意元素变为触发元素 | asChild (boolean ) - false - 是否将子元素作为触发器 | ||
HoverCardContent | 卡片内容组件,悬停时显示,支持位置、动画、样式等设置 | className (string ) - — - 自定义样式类align (`'start' 、 'center' 、 'end'`) | 'center' - 对齐方式 sideOffset (number ) - 4 - 偏移距离 |
💄 默认样式
HoverCardContent 默认样式包括:
- 圆角(
rounded-md
) - 边框(
border
) - 背景色与文字色(
bg-popover
、text-popover-foreground
) - 阴影(
shadow-md
) - 动画效果(渐变、缩放、滑入滑出) 你可以通过 className 覆盖这些样式。
📌 注意事项
HoverCardTrigger
必须放在HoverCard
内部,并且紧跟在HoverCardContent
前面。- 推荐使用
asChild
将自定义元素(如button
、a
标签等)作为触发器。 - 动画和对齐样式可通过
data-
属性控制,已内建在Tailwind
类中。
🧱 依赖项
@radix-ui/react-hover-card
clsx
(通过cn
工 具函数用于合并 className)
如需更复杂的交互(例如点击触发、延迟关闭等),建议使用 Popover 或 Dialog 组件。