ICEN UI 按钮
Docs ⌘K
Core · 稳定

按钮

动作触发控件:5 变体 × 3 尺寸,覆盖图标、加载、错误与通栏形态。

Preview
基础 btn
html
<div class="demo-row">  <button class="icen-btn">默认</button>  <button class="icen-btn icen-btn-primary">主要</button>  <button class="icen-btn icen-btn-danger">危险</button>  <button class="icen-btn icen-btn-ghost">幽灵</button>  <button class="icen-btn icen-btn-link">链接</button></div><div class="demo-row" style="margin-top:14px">  <button class="icen-btn icen-btn-sm">小号</button>  <button class="icen-btn">默认</button>  <button class="icen-btn icen-btn-lg">大号</button></div><div class="demo-row" style="margin-top:14px">  <button class="icen-btn icen-btn-primary"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" focusable="false" class="icen-symbol icen-btn-icon-start" aria-hidden="true"><path d="M10 4v12M4 10h12"></path></svg>新建项目</button>  <button class="icen-btn icen-btn-icon" aria-label="设置"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="16" height="16" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" focusable="false" class="icen-symbol" aria-hidden="true"><path d="M3.5 5.5h13M3.5 10h13M3.5 14.5h13M7 4v3M12.5 8.5v3M8 13v3"></path></svg></button>  <button class="icen-btn icen-btn-sm is-loading" aria-busy="true">加载中</button>  <button class="icen-btn is-error">错误态</button>  <button class="icen-btn icen-btn-block">通栏按钮</button></div>

特性

安装

bun add @icen.ai/ui

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

js
import '@icen.ai/ui/kit/btn';

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

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

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

用法

html
<button class="icen-btn">默认</button><button class="icen-btn icen-btn-primary">主要</button><button class="icen-btn icen-btn-danger">危险</button><button class="icen-btn icen-btn-ghost">幽灵</button><button class="icen-btn icen-btn-link">链接</button><!-- 尺寸 --><button class="icen-btn icen-btn-sm">小号</button><button class="icen-btn icen-btn-lg">大号</button><!-- 图标 --><button class="icen-btn icen-btn-primary">  <svg class="icen-btn-icon-start">…</svg>  <span class="btn-text">文本</span></button><button class="icen-btn icen-btn-icon" aria-label="设置"><svg>…</svg></button><!-- loading(加 .is-loading + aria-busy) --><button class="icen-btn is-loading" aria-busy="true">加载中</button>