工具提示
工具提示是用户与元素交互时出现的简短、信息丰富的消息。工具提示通常以两种方式之一启动:通过鼠标悬停手势或通过键盘悬停手势。导入
import { Tooltip, TooltipTrigger, TooltipArrow, TooltipContent } from "@resolid/react-ui";
Tooltip
: 为其子级提供上下文的包装器。TooltipTrigger
: 用于包装引用或触发元素。TooltipContent
: 工具提示内容。TooltipArrow
: 指向引用或触发元素的视觉箭头。
用法
颜色
触发模式
<Tooltip trigger={'click'}>
<TooltipTrigger asChild>
<Button>点击触发</Button>
</TooltipTrigger>
<TooltipContent>
<TooltipArrow />
点击触发工具提示
</TooltipContent>
</Tooltip>
动画持续时间
<Tooltip duration={3000}>
<TooltipTrigger asChild>
<Button>动画持续时间</Button>
</TooltipTrigger>
<TooltipContent>
<TooltipArrow />
持续时间很长
</TooltipContent>
</Tooltip>
访问内部状态
<Tooltip>
{({opened})=> (
<>
<TooltipTrigger asChild>
<Button variant={'outline'}>
{opened ? '出现提示' : '工具提示'}
</Button>
</TooltipTrigger>
<TooltipContent>工具提示内容</TooltipContent>
</>
)}
</Tooltip>
);
颜色
{["primary", "neutral", "success", "warning", "danger"].map((color) => (
<Tooltip placement={"bottom"} key={color} color={color}>
<TooltipTrigger asChild>
<Button className={"capitalize"} color={color} variant={"soft"}>
{color}
</Button>
</TooltipTrigger>
<TooltipContent className={"capitalize"}>
<TooltipArrow />
{color} 消息提示
</TooltipContent>
</Tooltip>
))}
放置位置
<div
className={"mx-auto grid w-fit gap-2"}
style={{
gridTemplateAreas:
'". top-start top top-end . "' +
'"left-start . . . right-start "' +
'"left . center . right "' +
'"left-end . . . right-end "' +
'". bottom-start bottom bottom-end . "',
}}
>
{[
["top-start", "上左"],
["top", "上"],
["top-end", "上右"],
["left-start", "左上"],
["left", "左"],
["left-end", "左下"],
["auto", "自动"],
["right-start", "右上"],
["right", "右"],
["right-end", "右下"],
["bottom-start", "下左"],
["bottom", "下"],
["bottom-end", "下右"],
].map(([placement, name]) => (
<Tooltip key={placement} placement={placement}>
<TooltipTrigger asChild>
<span
style={{ gridArea: placement == "auto" ? "center" : placement }}
className={
"flex h-12 w-12 cursor-default items-center justify-center rounded bg-bg-muted text-center text-sm leading-tight"
}
>
{name}
</span>
</TooltipTrigger>
<TooltipContent>
<TooltipArrow />
{name}位置消息提示
</TooltipContent>
</Tooltip>
))}
</div>
属性
属性 | 类型 | 默认值 | 必须 |
---|---|---|---|
属性trigger | 类型"click" | "hover" | 默认值'hover' | 必须false |
属性color | 类型"primary" | "neutral" | "success" | "warning" | "danger" | 默认值'neutral' | 必须false |
属性placement | 类型"auto" | Placement | 默认值'auto' | 必须false |
属性duration | 类型number | 默认值'250' | 必须false |