Tooltip

用于在悬停或键盘聚焦时,为紧凑的图标操作提供简短补充说明。

预览

图标与键盘焦点提示

悬停或聚焦关注列表图标和文字按钮,比较触发器上方与下方的提示。

将鼠标悬停在按钮上,或把焦点移到按钮。

安装

首次使用此 Registry?请先完成 基础配置与共享样式安装 。

npx shadcn@latest add @neumorphism-ui/tooltip

先安装一次共享 base,然后使用 CLI 添加组件及其依赖。

图标与键盘焦点提示

npx shadcn@latest add @neumorphism-ui/button @neumorphism-ui/tooltip
Registry JSON

用法

在 Tooltip 内组合 TooltipTrigger 和 TooltipContent,必要时共享 TooltipProvider。触发器本身仍需名称,必读说明应保持可见。

"use client";

import { Button } from "@/components/ui/button";
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip";

export default function Example() {
  return (
    <TooltipProvider>
      <Tooltip>
        <TooltipTrigger render={<Button />}>Formatting</TooltipTrigger>
        <TooltipContent>Choose how text appears.</TooltipContent>
      </Tooltip>
    </TooltipProvider>
  );
}

API 参考

基于 Base UI Tooltip,组合 Provider、Root、Trigger、Portal、Positioner 和 Popup。默认 provider 延迟为 250ms,popup 会自动避开 trigger 周围的碰撞边界。

组件属性类型默认值说明
TooltipProviderdelaynumber250pointer hover 后打开 tooltip 的延迟时间(ms)。
Tooltipopen / defaultOpenbooleanfalse受控的打开状态或非受控初始状态。
TooltiponOpenChange(open: boolean) => void—打开状态变化时调用。
TooltipTriggerrenderReactElement | (props, state) => ReactElement—将 tooltip trigger 行为组合到按钮或链接上。
TooltipContentside / align"top" | "right" | "bottom" | "left" / "start" | "center" | "end""top" / "center"相对于 trigger 设置 popup 的位置。
TooltipContentsideOffsetnumber8设置 trigger 与 popup 之间的间距。

无障碍

  • 01

    Tooltip 不能替代 trigger 的无障碍名称,因此图标按钮仍需单独提供 aria-label。

  • 02

    内容应简短且仅作辅助,不要把必要说明或错误消息只放在 Tooltip 中。

  • 03

    Base UI 会让 Tooltip 在 hover 和 keyboard focus 时打开,并支持用 Escape 关闭。