UI 套件文档

开箱即可安装的设计系统组件——逐模块参考、迁移指南,以及 shadcn 桥接。

指南

  • shadcn 迁移

    把 shadcn/ui React 组件转换为可在任何技术栈中使用的 Chiralkit 模块。

可安装的组件

每个组件都以你拥有的源代码形式落入你的项目——可评审、可编辑,由你来做版本管理。

  • badge

    用于标注类型、状态或类别的小型标签。

  • button

    设计系统的基础按钮——提供 primary/secondary 变体及 disabled 状态。

  • card

    带边框的圆角表面,用于组合内容——无 props,单一 default slot,无 ARIA role。使用者在内部自行组织标题结构。

  • checkbox

    原生 <input type="checkbox">,封装为设计系统的自定义元素——checked/indeterminate props 会转发到 DOM,dsChange 发出新的布尔状态。保留浏览器默认的 checkbox 渲染,以维持辅助技术(AT)和 forced-colors 模式下的行为。

  • code-block

    带语言标签和内置复制按钮的代码块。

  • dialog

    原生 <dialog> 元素,封装为设计系统的自定义元素——showModal() 借助浏览器平台提供模态状态机(焦点陷阱、按 Escape 关闭、背景 inert、焦点归还),而非从零构建的 ARIA。Props:open、label|labelledBy、describedBy。事件:dsOpen、dsClose。

  • figure-canvas

    可复用的图形视口,支持缩放、检查控件和可选的水平拖动旋转。

  • input

    原生 <input>,封装为设计系统的自定义元素——支持 text/email/password/search/tel/url/number 类型,用 invalid+describedBy 表示错误状态,并在每次按键时发出携带当前值的 dsInput。

  • loader

    由 chiralkit 标志的 path 构成的不确定加载指示器——两个镜像对称的半边围绕圆环中心摆动。

  • select

    原生 <select>,封装为设计系统的自定义元素——选项通过 prop 传入,发出携带新值的 dsChange。

  • tabs

    WAI-ARIA Tabs 模式(从零构建)——仅包含 tablist,支持 roving tabindex、方向键导航、Home/End 和自动激活。使用者在 light DOM 中自行渲染 tabpanel,并在 dsChange 时切换其可见性。设为 shadow:false,以便 tabpanel 通过 aria-labelledby 引用各个 tab 的 id。

  • textarea

    原生 <textarea>,封装为设计系统的自定义元素——带 rows prop 的多行文本框,用 invalid+describedBy 表示错误状态,并在每次按键时触发 dsInput 事件。

  • tooltip

    WAI-ARIA Tooltip 模式(从零构建)——将使用者的第一个 Element 子节点包装为触发器,hover 时打开(带 openDelay),focus 时立即打开;按 Escape 关闭,焦点仍留在触发器上;在 blur 或真正的 mouseleave 时关闭。设为 shadow:false,以便触发器上的 aria-describedby 能引用 tooltip 的 id。

ChiralFM