跳到主要内容

为智能体时代而生的界面行为

界面行为,
而非样式。

ui-sdk 是一套无样式界面行为库:键盘导航、焦点管理、选择、弹出层、拖放与完整 ARIA 语义。同一套行为运行在 React、Vue、Svelte、Solid 与 Web Components 中,视觉呈现完全交给你的设计系统。

55 个无样式组件
完整 ARIA 与键盘模型
5 大框架通用
React · Vue · Svelte · Solid · Web
WebMCP 原生桥接
createAgent + registerTools
实时演示 · 通知设置
启用通知立即生效的设置
提示音
音量60
通知渠道
智能体快照
  • 正在读取组件状态…

试着调节左侧控件,或交由右侧智能体执行。

01 · 分层架构

行为层与视觉层彻底解耦

@ui-sdk/core 掌管状态机、键盘循环与无障碍语义,框架包仅做轻量绑定,组件自身零预设样式。点按层级切换架构视图,或直接开关右侧控件样式。

样式剥离对照
Styled · Tailwind + data-*同一组状态
自动部署推送主分支后自动触发
部署区域
实时输出透视@ui-sdk/core
// @ui-sdk/core — 行为与状态输出(不依赖样式或框架)
<Toggle aria-pressed="true" data-pressed="" />
<Select value="sin" label="新加坡 · sin1" />

02 · 跨框架

一次编写,五个框架通用

行为与框架无关。每个组件都从独立入口导入,组合方式在各框架间保持一致。切换技术栈时,交互逻辑、键盘模型与无障碍语义原样保留。

bookmark.tsx
import { Toggle } from "@ui-sdk/react/toggle"

export function Bookmark() {
  return <Toggle>书签</Toggle>
}

03 · 智能体桥

智能体直接驱动界面

每个组件都暴露语义化的动作与状态快照。智能体不必截图、点击坐标或解析 DOM,而是调用 setChecked、setValue 这样的动作,一次 act 完成多步操作。

同一个界面,人类用键盘和指针操作,智能体用 API 操作。两者读写的是同一份状态,并通过 allow 守卫敏感动作。

import { createAgent } from "@ui-sdk/react/agent"

const agent = createAgent()

// 一次 act 调用,驱动多个组件
await agent.act({
  steps: [
    { ref: "启用通知", action: "setChecked", args: [true] },
    { ref: "通知渠道", action: "setValue", args: ["email"] },
  ],
})

同一任务下,智能体桥与截图点击方案的基准对比:

工具调用

−69%

165

文本 token

−83%

39.8k6.8k

耗时

−61%

41s16s

成本

−56%

$0.073$0.032

来源可追溯。每次变更事件均携带 details.source("human" 或 "agent"),界面与审计日志能清晰区分人的直接操作与智能体调用。

设计哲学

外观完全交还给你的设计系统,行为、无障碍与智能体接口由 ui-sdk 守住。

04 · 核心行为

每个细节都已就位

弹出层进入浏览器顶层、焦点锁定、Esc 关闭、方向键导航、工具栏切换与屏幕阅读器播报。下面都是真实组件,试着操作它们。

菜单Menu

支持方向键导航、键入检索与 Esc 关闭。

弹出框Popover

基于锚点定位,点击外部或按 Esc 轻关闭。

轻提示Toast

堆叠队列管理,支持悬停展开、滑动清除与撤销。

对话框Dialog

进入浏览器顶层渲染,打开锁定焦点、关闭自动还原。

警告对话框AlertDialog

高风险操作显式确认,禁用外部点击误关闭。

文字提示 · 交互工具栏Tooltip + Toggle
悬停查看快捷键,点击切换激活状态:加粗

05 · 常见问题

选型前你可能想了解的事

覆盖架构边界、多框架适配、安全与权限模型,以及渐进式迁移方式。

浏览完整文档
ui-sdk 与常见带预设样式的组件库有什么本质区别?

ui-sdk 专注交付无样式的交互原语与状态机(键盘导航、焦点管理、顶层弹出层、WAI-ARIA 语义与表单状态),不注入预设 CSS,也不绑定 Tailwind 或特定 CSS-in-JS 方案。视觉层完全留给你的设计系统与 CSS Token。

为什么同一套行为可以跨 React、Vue、Svelte、Solid 与 Web Components 运行?

所有组件的状态模型、ARIA 属性计算与事件规约都写在零依赖的 @ui-sdk/core 中;各框架适配器只负责把这些核心部件装配为对应框架的响应式原语,因此交互习惯、快捷键与回调签名在技术栈之间保持一致。

让智能体直接驱动界面,会不会越权操作或读取敏感输入?

不会。bridge 提供 allow 权限回调、组件级 data-agent-confirm 二次确认、data-agent-hidden 区域屏蔽以及 data-agent-secret 脱敏(密码、银行卡号、一次性验证码默认输出为 "[redacted]")。所有变更回调中的 details.source 都会标识 "agent",随时可调用 details.cancel() 拦截。

能直接接入大模型 Tool Calling 或浏览器 WebMCP 吗?

可以。createAgent 暴露了 snapshot()、act() 与 query() 等结构化方法,可直接按 JSON Schema 接入模型工具链;在支持 document.modelContext 的环境中,使用 registerTools(agent, { allow }) 即可注册原生 WebMCP 工具并逐条审批动作。

旧项目需要一次性重构吗,还是可以按组件渐进接入?

完全支持按需渐进引入。每个组件都有独立子路径入口(如 @ui-sdk/react/select、@ui-sdk/react/dialog),未引用的组件与智能体模块不会被打包。建议优先替换组合框、弹出菜单或模态框等高交互复杂度控件。

文档中的智能体基准对比数据是如何得出的?

在同一多步界面任务下,将传统的「截图识别 + 坐标点击」路径与 ui-sdk 的结构化动作执行(agent.act)对比测得:工具调用从 16 次降至 5 次(−69%),文本 token 从 39.8k 降至 6.8k(−83%),耗时从 41s 降至 16s(−61%),成本从 $0.073 降至 $0.032(−56%)。

06 · 快速上手

几行代码,开始构建

安装核心与你的框架适配器,立即导入首个组件,无需全局配置或预设样式表。

terminal
bun add @ui-sdk/react @ui-sdk/core

输入关键词搜索…

↑↓ 移动↵ 选择Esc 关闭