English | 中文
本文规定浏览器客户端包的样式职责归属与组件规则。当前 token 值位于 packages/client/ui-theme/src/styles/;本文不重复这份由源码生成的清单。
ui-theme 负责 --dsw-* 静态色阶、语义别名、排版、动效、渐变、阴影、滚动条样式以及明暗主题偏好。ui-layout 将解析后的主题快照应用到文档。功能包使用语义别名,不得另行定义全局主题。
全局样式表归 ui-theme/src/styles/ 所有。组件样式以 CSS Modules 形式放在组件旁。当某个值属于该组件的布局或呈现约定时,组件可以定义局部自定义属性;共享颜色、排版、层级和动效属于主题包。
clsx;不得添加组件库或 Tailwind。--dsw-alias-* 语义 token。不得复制静态色板值或在其中写入颜色字面量。corner-shape.css 的全局超级椭圆平滑。每个正圆 border-radius(50%、100% 或胶囊半径)必须配对 corner-shape: round,使圆形与胶囊保持圆弧;ui-theme 的 corner-shape spec 强制这一配对。border: 0 并使用 box-shadow: var(--dsw-elevation-panel)、var(--dsw-elevation-prominent) 或输入框专用的 var(--dsw-elevation-soft)(更大模糊、更低透明度):0.5px 发丝描边是第一层投影,--dsw-elevation-stroke-color 可按表面或状态重绑或抑制描边。不得将 --dsw-alias-border-* border 与 lv/elevation 投影配对——ui-theme 的 elevation spec 会拒绝;状态色 border(warn 面板)保持真 border。--dsw-alias-border-* token 的平面边框与分割线一律 0.5px——按钮、输入框、卡片、行分割线,以及以填充盒绘制的分隔线(菜单分隔、对话标题栏接缝、markdown hr、竖向轨道线)共用发丝线粗细,Chromium 将其绘制为一个设备像素。dashed 记号与状态色 border 保持 1px;spinner 圆环经 spec 的显式豁免保留原宽度。更宽的中性 solid border 会被 ui-theme elevation spec 拒绝。--dsw-alias-link 着色、font-weight: 500,默认无下划线,hover/focus 时为 3px offset 的点状下划线。带文字的锚点另以 ui-primitives 的 LinkIcon 分类图形(随 currentColor)作前置;workflow 成员链接与只包图片的锚点不带图形,工具行文件链接保持其灰色点线示能(可点击链接 Agent Note)。在所属 ui-theme 样式表中添加或修改共享 token,然后在功能包中使用其语义别名。公共样式约定发生变化时,更新所属包的参考文档。视觉行为遵循测试策略;样式系统 Agent Note 记录框架依据。