diff --git a/apps/kimi-web/design/design-system.html b/apps/kimi-web/design/design-system.html index 9ca0de3b8..f41fc9cdc 100644 --- a/apps/kimi-web/design/design-system.html +++ b/apps/kimi-web/design/design-system.html @@ -1117,8 +1117,8 @@
禁止用 emoji 充当功能图标(唯一例外:月相 🌑…🌘,仅用于「等待 Agent 响应」聊天态)。Kimi 品牌标记(32×22 的眼睛 logo)属于品牌资产,不在此线稿图标体系内。
-少数非线稿图形不进注册表,各有专属组件统一维护,禁止复制手写:<ContextRing :pct />(Composer 上下文进度环,数据驱动)、<AuthStateIcon kind />(登录流程的成功 / 过期 / 错误彩色插图)、<Spinner />(加载态)。状态小圆点(如 Provider 列表)一律用 CSS 圆点(border-radius:50%),不再用 SVG。scripts/check-style.mjs 的 icon-from-registry 规则对以上与品牌标记豁免,其余手写 <svg> 一律告警。
禁止用 emoji 充当功能图标(唯一例外:月相 🌑…🌘,仅用于「等待 Agent 响应」聊天态)。Kimi 品牌标记(32×22 的眼睛 logo)属于品牌资产,不在此图标体系内。
+少数特殊图形不进注册表,各有专属组件统一维护,禁止复制手写:<ContextRing :pct />(Composer 上下文进度环,数据驱动)、<AuthStateIcon kind />(登录流程的成功 / 过期 / 错误彩色插图)、<Spinner />(加载态)。状态小圆点(如 Provider 列表)一律用 CSS 圆点(border-radius:50%),不再用 SVG。scripts/check-style.mjs 的 icon-from-registry 规则对以上与品牌标记豁免,其余手写 <svg> 一律告警。
4px 基础网格,组件内外所有间距、间隙、内边距都来自此刻度,杜绝随机像素。
@@ -1273,8 +1273,8 @@ 带图标 / 状态import { verify } from './jwt';
@@ -1487,7 +1487,7 @@ export function auth(token: string) {
新建会话
为当前工作区创建一个独立的 Agent 会话。
--sb-gutter 槽里,开合态切换图标。fg-muted 的小字路径。IconButton sm,hover 才显示。IconButton sm,hover 或键盘聚焦时显示(不 hover 时以 opacity:0 保留在 tab 序里,保持键盘可达)。禁止用 emoji 充当功能图标(唯一例外:月相 🌑…🌘,仅用于「等待 Agent 响应」聊天态)。Kimi 品牌标记(32×22 的眼睛 logo)属于品牌资产,不在此线稿图标体系内。
-少数非线稿图形不进注册表,各有专属组件统一维护,禁止复制手写:<ContextRing :pct />(Composer 上下文进度环,数据驱动)、<AuthStateIcon kind />(登录流程的成功 / 过期 / 错误彩色插图)、<Spinner />(加载态)。状态小圆点(如 Provider 列表)一律用 CSS 圆点(border-radius:50%),不再用 SVG。scripts/check-style.mjs 的 icon-from-registry 规则对以上与品牌标记豁免,其余手写 <svg> 一律告警。
禁止用 emoji 充当功能图标(唯一例外:月相 🌑…🌘,仅用于「等待 Agent 响应」聊天态)。Kimi 品牌标记(32×22 的眼睛 logo)属于品牌资产,不在此图标体系内。
+少数特殊图形不进注册表,各有专属组件统一维护,禁止复制手写:<ContextRing :pct />(Composer 上下文进度环,数据驱动)、<AuthStateIcon kind />(登录流程的成功 / 过期 / 错误彩色插图)、<Spinner />(加载态)。状态小圆点(如 Provider 列表)一律用 CSS 圆点(border-radius:50%),不再用 SVG。scripts/check-style.mjs 的 icon-from-registry 规则对以上与品牌标记豁免,其余手写 <svg> 一律告警。
4px 基础网格,组件内外所有间距、间隙、内边距都来自此刻度,杜绝随机像素。
@@ -1227,6 +1228,10 @@ 从而天然支持亮 / 暗模式与可定制主题色。 +每个可交互基元都应在适用处定义以下状态,缺失即按样式规则告警。focus-visible 一律走 --p-focus-ring,disabled 统一 opacity:.5。
每个可交互基元都应在适用处定义以下状态,缺失即按样式规则告警。focus-visible 一律走 --p-focus-ring(只在键盘聚焦时出现,详见 §08),disabled 统一 opacity:.5。
| 状态 State | Button | Input | Card | Menu item | Switch |
|---|
| 控件 | 键盘行为 |
|---|---|
| Dialog | Tab 在弹窗内循环(焦点锁);Esc 关闭;关闭后焦点回到触发元素。 |
| Menu | ↑ / ↓ 移动高亮,Enter 选中,Esc 关闭。 |
| Tabs | ← / → 切换标签(roving tabindex),只有当前标签在 Tab 序列里。 |
| Switch / Segmented | ← / → 或 Space / Enter 切换。 |
:focus-visible + --p-focus-ring(主操作可用 --p-focus-ring-strong)。outline: none。要去掉默认轮廓,必须同时给出等价的替代样式。aria-label——IconButton 已用必填的 label prop 强制。role="dialog" + aria-modal="true",标题作为对话框的可访问名称。aria-hidden="true",避免被读屏念出。桌面可点击目标 ≥ 32px;触摸设备 ≥ 44px(与 §01 原则、IconButton 的 lg 档一致)。
统一在全局样式按 §02 的 @media (prefers-reduced-motion: reduce) 处理,组件不各自判断;MoonSpinner 月相在当前帧暂停。
读屏播报在本产品里不做强制契约。Toast 这类短提示用 role="status" / aria-live 即可;聊天流式输出当前不做逐字播报,属可接受取舍,后续如有真实需求再补。