设计系统、Design Tokens 与组件库体系

共 17 题
#

1. 设计系统(Design System)的层级模型,原则 / Tokens / 组件 / 模式 / 文档的演进与责任分工?

A 分层模型的核心价值是隔离变化:品牌换色只触及 Tokens 层,组件与业务层无需改动 ✓ 正确答案
B 文档层是设计系统的最底层,组件依赖文档才能生成
C 组件层应直接引用原始设计值(如 #1677ff)以保证渲染准确
D 设计原则直接生成组件代码,Tokens 可有可无
#

2. Design Tokens(W3C Design Tokens 规范)在多平台(iOS/Android/Web/Server)的统一分发机制与 CSS Variables 边界?

A W3C Design Tokens 规范用 JSON 建模 token,需通过构建管线分发到各平台,CSS Variables 适合运行时切换但无法被 Server 与原生端直接消费 ✓ 正确答案
B CSS Variables 可以在 Server 端与 iOS / Android 原生代码中直接消费
C Design Tokens 只能以 CSS 变量形式存在,无法表达别名引用
D W3C Design Tokens 规范是浏览器原生支持的 CSS 语法
#

3. 组件库工程的 API 设计契约、版本化策略与 Breaking Change 治理?

A 组件库可以随时修改 props 语义,只需同步更新文档
B 组件库版本不需要遵循 SemVer,可以随意提升 Major 版本号
C 组件库 API 契约应类型化固化,Breaking Change 需经 deprecation 窗口、迁移工具与消费方 CI 校验治理 ✓ 正确答案
D Breaking Change 只需在发布说明中列出即可
#

4. Design Tokens 的分层(全局/语义/组件)与多主题切换的实现机制?

A 主题切换只依赖全局层 token,语义层与组件层可以省略
B 三层 token 依赖方向固定,切换主题只需替换底层取值,上层经 CSS Variables 级联自动跟随 ✓ 正确答案
C 组件应直接消费全局原始 token 以保证主题切换生效
D 多主题切换必须为每个组件单独编写一套 CSS
#

5. Design Tokens 的分层,原始值→语义值→组件值?

A 组件值必须直接引用原始值才能实现主题切换
B 三层 token 是等价的,可以任意混用
C 语义值通过别名引用原始值,组件只消费语义值,从而隔离品牌与主题变化 ✓ 正确答案
D 原始值直接出现在组件样式中可以减少依赖层级
#

6. Style Dictionary 与 W3C Design Tokens 格式的生成管线,JSON token 如何转换为 CSS/SCSS/Swift/Android 资源并保持引用关系?

A token JSON 只能手写,无法从设计工具同步
B Style Dictionary 通过 transform / format 管线把 token JSON 转为多平台产物,Web 端可保留变量引用,原生端通常解析为字面值 ✓ 正确答案
C Style Dictionary 只能输出 CSS 文件
D 生成管线中别名引用必须全部解析为字面值,否则无法使用
#

7. 组件库 API 设计模式,controlled/uncontrolled、复合组件(compound components)与 asChild 多态在组件研发中的取舍?

A 一个组件不能同时支持 controlled 与 uncontrolled
B asChild 通过 cloneElement / Slot 机制把 props 转发给调用方传入的元素,实现语义与样式分离 ✓ 正确答案
C controlled 模式只能用于表单组件
D 复合组件必须使用 asChild 才能工作
#

8. Storybook / Histoire 在组件开发、视觉回归与文档协作中的工程价值?

A Storybook 的 stories 只能用于视觉展示,不能参与测试
B Histoire 与 Storybook 相比,更依赖 Webpack 构建
C 视觉回归必须依赖人工截图
D stories 可同时充当组件开发调试环境、视觉回归基线与可交互文档 ✓ 正确答案
#

9. 设计系统治理(Contributions / RFC / No-code 编辑)与品牌一致性度量?

A No-code 编辑应允许修改 token 结构层以保证灵活性
B 品牌一致性可通过 token 引用率、组件使用率等代码侧指标与设计走查量化度量 ✓ 正确答案
C 设计系统的任何改动都应允许任何人直接合并
D RFC 流程只适用于文档变更
#

10. 组件库的可访问性(WCAG)边界与 a11y 测试自动化?

A 组件库只需要保证视觉正常,键盘操作属于应用责任
B a11y 自动化可分渲染级(jest-axe)、端到端(Playwright + axe)与视觉回归三层,但语义恰当性与读屏实测仍需人工审计 ✓ 正确答案
C 只要组件都使用原生标签就必然符合 WCAG
D axe 扫描可以完全替代人工无障碍审计
#

11. 设计系统与前端代码的双向同步,Tokens 生成、组件文档与视觉回归如何闭环?

A 视觉回归只在发布后执行,发布前无需校验
B token 变更不需要评审,直接覆盖即可
C 设计系统同步是单向的:设计稿确定后代码不再需要回写
D 组件文档应由 stories / API 声明自动生成,避免手写文档过期 ✓ 正确答案
#

12. 组件库的版本治理,语义化版本、破坏性变更与消费方升级策略?

A Patch 版本可以引入新组件
B 消费方升级无需测试,直接替换版本号即可
C 破坏性变更应先在旧版本中 deprecate 并提供迁移窗口,再在 Major 中移除,配合 codemod 与升级指南 ✓ 正确答案
D 组件库的 Minor 版本可以删除已废弃的 props
#

13. 跨设计系统迁移(如 Material → 自研)的成本与回退策略?

A 迁移成本仅指组件替换工作量,不含行为差异与样式基线
B 迁移一旦开始就不能回退
C 跨设计系统迁移应一次性全量替换,速度快风险低
D 渐进迁移让新旧系统共存,配合特性开关与监控可实现随时回退 ✓ 正确答案
#

14. 设计系统在国际化和本地化(RTL/LTR/中日韩)下的弹性?

A 逻辑属性只对 flex 布局生效
B 中日韩文本使用西文字体栈即可保证质量
C RTL 支持只需给 html 加 dir="rtl" 属性即可
D 采用 CSS 逻辑属性并语义化方向 token,配合自动化 RTL 走查,设计系统才能原生支持双向布局 ✓ 正确答案
#

15. 设计系统在 AI 生成 UI 时代的作用,如何用 Tokens 约束生成结果的一致性?

A 语义 token 比原始色值更适合作为 AI 生成的约束语言 ✓ 正确答案
B 约束生成一致性只能靠提示词,无法用代码扫描校验
C 设计系统在 AI 时代已失去作用
D AI 生成 UI 无需设计系统约束,模型会自动保持品牌一致
#

16. 多主题与品牌定制,token 的运行时切换?

A 组件内联样式不影响主题切换
B 主题切换必须为每个组件单独写一套样式
C 通过 data-theme 属性在根元素覆盖同名语义 token,可实现根级与局部两种粒度的运行时切换 ✓ 正确答案
D CSS Variables 主题方案可以在 SSR 与原生端直接生效
#

17. 组件库的版本与兼容,API 稳定性与迁移?

A API 快照与类型测试可以自动识别公开 API 的形状变化 ✓ 正确答案
B codemod 只能迁移样式,无法改写 JSX 调用代码
C 组件库 API 稳定性完全靠文档约定,无需工具保障
D deprecated 的 API 应立即删除