Tooltip
覆盖在 Base Tooltip family 之上的 shadcn 草案呈现。
这个 draft family 包含 Group、Root、Trigger 与 Content。open state、controlled ownership、disabled、pointer/focus intent、delay 与 dismissal sequencing、aria-describedby、presence、Escape、renderer-owned Portal projection 与 anchored positioning 继续只由 Base Tooltip 持有。shadcn 层仅增加 Group layout、Trigger feedback 与紧凑 Content surface。
比较基线固定为 shadcn-ui/ui revision f31ed81983653919dd4fe77aee4b4859f610f1dc 的 apps/v4/registry/new-york-v4/ui/tooltip.tsx。upstream Provider 的 pointer delay 默认为 0ms;Proto UI 有意保留 Base Group 的 700ms open、100ms close 与 300ms skip defaults。upstream Content 的 sideOffset 默认为 0,Proto UI 继承 Base 默认值 4。Portal 继续是 renderer projection;当前没有受治理的 arrow geometry channel,因此 Arrow 缺席。
Content 静态 surface 另参考 2026-10-10 获取的 base-nova registry snapshot(JSON SHA256 2f55867faecee2d3616cfd8c6a80b538909a21e62fdfa2788b1ead56093e5395;MIT)。部署 Git SHA 未取得;这是内容固定的视觉参考,不替换 API baseline。该 snapshot 的 sideOffset 为 4。surface 使用主题 foreground 作底色、background 作文字色,Light/Dark 可反转,不固定为黑白;采用 inline-flex、fit-content、20rem 最大宽度与 6px gap,不再添加旧 border、shadow 或 overflow clipping。既有 max-w-80 表达 upstream 默认 max-w-xs 上限。Arrow、transform-origin、方向 enter/exit motion 与 kbd descendant styling 仍未对齐;这次静态配方迁移不代表完整 Tooltip parity。
从 @proto.ui/prototypes-shadcn/tooltip 导入该 family,或使用 proto-ui add react shadcn-tooltip 生成 React facade。Content 保持 supplementary、不可聚焦且非任务必要;交互式任务内容应使用 Popover 或 non-modal Dialog。
建议验收路径
Section titled “建议验收路径”- hover Account,确认 cold Tooltip 约 700ms 后打开;提前离开时不得闪现。
- 在 300ms warm window 结束前移动到 Notifications,确认 sibling 立即打开且始终只有一个 active owner。
- 用 Tab 聚焦任一 Trigger,确认立即打开、focus ring 可见,且 Trigger 没有 button role。
- 确认 Content portal 到 preview frame 外,仍通过
aria-describedby关联,且没有可聚焦 control 或 Arrow。 - 按 Escape,确认 Content 关闭且焦点留在 Trigger。
- 在 Web Components、React、Vue 与 Vue 2 的 Light/Dark 模式中重复检查。
相关 entities 仍为 draft;本页描述当前 cataloged direction,而不是稳定 compatibility guarantee。