ICEN UI 提示
Docs ⌘K
Core · 稳定

提示

一句话说明,出现在恰好需要的位置。永远不被容器裁切,永远能找到空间。

Preview
浮层 tooltip
边缘自适
html
<div class="demo-row">  <button class="icen-btn" data-icen-tooltip="默认在上方">上</button>  <button class="icen-btn" data-icen-tooltip="下方提示" data-icen-tooltip-side="bottom">下</button>  <button class="icen-btn" data-icen-tooltip="左侧提示" data-icen-tooltip-side="left">左</button>  <button class="icen-btn" data-icen-tooltip="右侧提示" data-icen-tooltip-side="right">右</button></div><div class="demo-row" style="margin-top:12px">  <button class="icen-btn" data-icen-tooltip="多行模式允许换行,适合一段完整说明,而不是一个短语。" data-icen-tooltip-multiline="true">多行</button>  <span class="icen-tag" data-icen-tooltip="贴在视口边缘时会自动翻转并留在视野内">边缘自适</span></div>

特性

无 JS 时 CSS 回退照常工作——提示不会因脚本失败而消失。

接口

初始化
initTooltip()(kit 一行入口可直接命名导入)
导出
initTooltip
类型
dist/behaviors/tooltip.d.mts(随 npm 包发布,含全部 JSDoc 约束)

安装

bun add @icen.ai/ui

一行引入该组件(CSS 与 behavior 自动带上,无需关心内部 CSS 文件名):

js
import { initTooltip } from '@icen.ai/ui/kit/tooltip';initTooltip();

也可以用脚手架直接打印引入行:

bash
bunx --bun @icen.ai/ui add tooltip

Astro 项目注意:kit 入口里的 CSS import 在页面 <script> 里会被 Astro 的 client bundle 摇掉——请改在布局 frontmatter 里引 CSS(import '@icen.ai/ui/components/tooltip.css';),JS 行为仍可走 kit。Vite SPA / webpack 项目无此问题。

用法

js
import { initTooltip } from '@icen.ai/ui/behaviors/tooltip';<button class="icen-btn" data-icen-tooltip="文案" data-icen-tooltip-side="top">目标</button><!-- side 可选 top | bottom | left | right;align 可选 start | end;multiline 允许多行 -->const dispose = initTooltip(); // 可省略容器;动态插入同样接入,宿主卸载时 dispose()// 气泡 portal 到 body:翻转/钳制不被祖先裁切;无 JS 时 CSS ::after 回退照常// hover 400ms 出现,键盘 :focus-visible 立即;离开 / 点击 / Escape / 滚动关闭