界面工程 · UI Lab
三个可操作的界面规范实验。
设计变量、无障碍组件状态与响应式数据界面均可直接操作,并同步展示对应的 TypeScript 与 CSS 实现片段。
01 · Token Playground
设计变量如何影响界面系统
调整品牌色、圆角、间距与密度;右侧组件和 CSS Variables 同步更新。控件使用原生 input/select,键盘可以完整操作。
设计评审今天
组件验收明天
CSS Variables
Token 更新逻辑TypeScript
const demo = document.querySelector<HTMLElement>('[data-token-demo]');
function applyTokens() {
demo.style.setProperty('--demo-brand', color.value);
demo.style.setProperty('--demo-radius', `${radius.value}px`);
demo.style.setProperty('--demo-space', `${spacing.value}px`);
demo.dataset.density = density.value;
} 02 · Accessible States
完整状态构成组件体验
Button、Input、Select、Table、Empty、Loading 均有语义状态。Tab 聚焦;组件 Tab 使用左右方向键、Home 与 End 切换。
Input states
标签、帮助文本与错误信息保持可读。
Select states
原生选择器保留完整键盘与辅助技术能力。
Table states
复选框拥有可见标签;窄屏自动转卡片。
选择任务状态更新
◇
还没有收藏项目
创建或收藏项目后,它们会出现在这里。
正在加载项目
数据通常会在几秒内出现。
当前展示 Button 状态
键盘切换逻辑TypeScript + ARIA
tabs.addEventListener('keydown', (event) => {
if (!['ArrowLeft', 'ArrowRight'].includes(event.key)) return;
const next = (activeIndex + (event.key === 'ArrowRight' ? 1 : -1) + items.length) % items.length;
items[next].focus();
items[next].click();
}); 03 · Responsive Dashboard
小屏需要重新组织信息
桌面端保留对比密度;移动端将行数据转换成带字段标签的卡片。可用按钮直接切换两种预览,也会响应真实视口。
Workspace / Overview
业务运营概览
近 7 日完成量示意趋势
任务负责人状态更新时间
设计系统审计成员 A进行中今天 10:24
移动端验收成员 B待确认昨天 16:40
数据口径补充成员 C已完成周一 09:12
预览模式切换TypeScript
modeButtons.forEach((button) => {
button.addEventListener('click', () => {
preview.dataset.preview = button.dataset.mode;
modeButtons.forEach((item) =>
item.setAttribute('aria-pressed', String(item === button))
);
});
}); 业务应用 · In Practice
从界面实验进入业务场景。
查看 Token、组件状态和响应式策略如何进入两个代表项目。