SDK 1.4.0 发布:WebMCP 工具注册
GEO Docs
设计规范

色彩与材质

白光、主光 Iris、六条光谱色带、状态色、色散与光谱条;光学玻璃五层、磨砂、遮罩、指光与层级。

全部色值已用脚本校验对比度。代码里以令牌引用,组件不写色值。

白光(中性)

令牌亮色暗色(暗室)用途
canvas#f3f6fb#0c0f14台面:页面底、侧栏底
surface#ffffff#16191f玻璃板:卡片、列表、弹层
container#edf0f6#1f232b输入框、分段底槽、次按钮、行悬停底
container-high#e4e7ef#282d36容器的悬停 / 按下
separator#e0e3ea#2c3039列表缩进分隔线(唯一允许的常驻线条)
ink#191e29#f2f3f7标题、正文、数字
ink-2#515763#b1b6bf次要说明、次要列
ink-3#656a75#8e929b标签、时间戳、坐标轴;只放在 canvas / surface / container 上;container-high 上不用(4.4:1)

主光(Iris)

令牌亮色暗色用途
brand#415ae0#6b89f9主按钮、当前导航图标、链接、焦点环
brand-hover#384ecf#7d9bff主按钮悬停
brand-tint#e6eeff#1f2a53选中:Chip、列表选中行、分段选中项的折射底
on-brand-tint#3043bc#bccfffbrand-tint 上的文字与图标
on-brand#ffffff#0c0f14主按钮文字;也用于状态实色上的文字(计数红点等)

暗色下白字放在 danger 实色上对比度不足,状态实色上的文字统一用 on-brand。

光谱(领域色)

按波长从长到短排列。每个领域三档:实色(图标、图表线)、-tint(图标块底、徽标底)、on-*-tint(tint 上的文字)。

色带领域色相实色 亮 / 暗tint 亮 / 暗on-tint 亮 / 暗用于
橙distribution 分发50#c25600 / #e9884d#ffeadc / #43210d#883600 / #ffc09c社媒分发、平台账号
琥珀billing 账单80#aa6b00 / #d29922#fdeed6 / #3b2700#774700 / #f0cb8d订阅、订单、返佣
绿cluster 站群155#00944d / #4ebe7d#dff8e6 / #0c341e#006630 / #a1e3b7站群站点、域名
青search 搜索205#0092a7 / #00bdce#d6f8fb / #003339#006474 / #85e2edSEO、GSC、关键字、站点
蓝content 内容250#0d7dd4 / #59aaf8#dff3ff / #112d48#005496 / #a4d6ff文章、栏目、媒体、采集、审核
紫ai AI / GEO300#8a5fc9 / #b28fef#f3ebff / #302445#5f3d8e / #dac4ffAI 生成、GEO 推荐、MCP
  • 展示顺序(图例、光谱条、模块列表):按波长 distribution → billing → cluster → search → content → ai。
  • 图表系列顺序(为了相邻系列可分辨):content → ai → search → distribution → cluster → billing。
  • 亮色下 search、cluster 实色在 surface 上只有 3.7–3.9:1:领域实色只用于图标、图表与 ≥ 24px 的大字;文字一律用 on-*-tint。

状态色

状态实色 亮 / 暗tint 亮 / 暗on-tint 亮 / 暗
success#0e8c41 / #62c37a#e2f9e6 / #0f3118#005e26 / #aae5b5
warning#bc7400 / #e19b34#ffefd9 / #3b2300#7a4400 / #f9cb92
danger#bc4945 / #f7857d#ffe9e6 / #421c19#822b2a / #ffbeb6
info#007dc2 / #47b5fa#def6ff / #042c43#005387 / #9dddff

状态徽标 = tint 底 + on-tint 文字 + 图标,不加边框。

色散(Dispersion)

--dispersion: linear-gradient(90deg, distribution, billing, cluster, search, content, ai)

色散是 Prism 唯一的渐变,只用在三处:

位置形式
AI 生成内容卡片顶边 2px 色散边(类名 .dispersion-edge,左右各缩进 16px)
品牌标识与官网 Hero棱镜标识内的光谱、Hero 的折射插图
成功确认一次光扫(色散色,600ms,只播一次)

其余地方不出现渐变;图表面积图的纵向淡出(顶部 24% → 底部 0)不算色散。

光谱条(Spectrum bar)

一份内容在各渠道的分布,用分段横条表示:高 8、段间 2px 缝、两端圆角 full、各段按展示顺序排列、宽度与数值成比例,下方图例为小圆点 + 名称 + 占比。这是本语言独有的数据图形,用于分发触达构成、来源占比、AI 引用来源、配额构成。类名 .spectrum,子元素 i 设 --w(权重)与 data-tone。

用色规则

  1. 品牌色面积 ≤ 10%:通常只有一个主按钮、当前导航项和焦点环。
  2. 领域色只在“识别”位置:卡片标题旁的图标块、图表、分类徽标、光谱条。不用领域色填充大面积背景。
  3. 同一屏的领域色 ≤ 4 种(数据总览除外,它本身是全部领域的汇总)。
  4. 状态色只表达状态,不做强调色。
  5. 选中用 brand-tint;当前位置用“被照亮的板”(surface + elev-1),两者不混用。
  6. 暗色不是反相:表面逐级变亮(surface → container),品牌色与领域色提亮一档。

对比度(WCAG 2.1)

前景背景亮色暗色要求
inkcanvas15.4017.314.5
ink-2surface7.268.644.5
ink-3canvas5.016.164.5
ink-3container4.755.054.5
ink-3container-high4.384.43不允许
ink-2container-high5.876.794.5
on-brandbrand5.586.014.5
on-brandbrand-hover6.657.324.5
on-brand-tintbrand-tint6.798.924.5
brand(链接)surface5.585.514.5
on-content-tintcontent-tint6.799.144.5
on-search-tintsearch-tint6.079.204.5
on-ai-tintai-tint7.139.104.5
on-distribution-tintdistribution-tint7.019.084.5
on-cluster-tintcluster-tint6.369.304.5
on-billing-tintbilling-tint6.849.234.5
领域实色(图标块)对应 tint3.29–3.985.51–5.983(图标)
search / cluster(图标)surface3.70 / 3.937.69 / 7.533(图标)
on-success-tintsuccess-tint7.209.904.5
on-warning-tintwarning-tint7.019.804.5
on-danger-tintdanger-tint7.759.424.5
on-info-tintinfo-tint7.249.834.5
on-branddanger(计数红点)5.037.874.5
on-inverseinverse(吐司、提示)15.4017.314.5

光学玻璃的五层

光源在上方偏左,阴影向下。每一层 = 表面色 + 投影 + 顶边高光。

层名称表面投影(亮色)高光用途
0台面 Tablecanvas无无页面底、侧栏
1平板 Slabsurfaceelev-1:0 1px 2px rgb(16 24 40/.04), 0 2px 6px rgb(16 24 40/.05)inset 0 1px 0 var(--edge)卡片、列表卡、侧栏当前项
2抬起 Raisedsurfaceelev-2:0 2px 4px rgb(16 24 40/.05), 0 8px 20px -4px rgb(16 24 40/.10)同上悬停卡片、粘性栏、分段选中滑块
3浮起 Floatsurfaceelev-3:0 4px 8px -2px rgb(16 24 40/.08), 0 16px 32px -8px rgb(16 24 40/.16)同上 + inset 0 0 0 1px var(--hairline)菜单、下拉、弹出框、拖起的行
4覆盖 Overlaysurfaceelev-4:0 8px 16px -4px rgb(16 24 40/.10), 0 32px 64px -12px rgb(16 24 40/.28)同 3对话框、抽屉、底部弹层
  • --edge:亮 rgb(255 255 255 / .7)、暗 rgb(255 255 255 / .06)。顶边受光的 1px 高光,替代描边。
  • --hairline:亮 rgb(25 30 41 / .06)、暗 rgb(255 255 255 / .07)。只给浮在内容上方的 3、4 层,防止与下层内容粘连。
  • 暗色:投影不透明度 ×2;层越高表面越亮(4 层可用 container)。
  • 卡片内不再套带投影的卡片;需要再分组时用 container 底的内嵌区或分组列表。

磨砂玻璃(Frosted)

--glass(surface 72%)+ backdrop-filter: blur(20px) saturate(180%)。

用在出现时机
顶栏页面未滚动时完全透明,与台面融为一体;滚动 > 4px 后出现磨砂底与 elev-1
手机底部操作栏常驻
批量操作栏、保存栏、浮动工具条出现时

遮罩

--scrim: oklch(0.18 0.02 265 / 0.40) + backdrop-filter: blur(4px)。两套主题相同,暗色下不会变浅。

指光(Specular)

可点卡片(类名 .lift)在 @media (hover: hover) 下,悬停时出现跟随指针的柔光:radial-gradient(280px circle at 指针位置, var(--specular), transparent 60%)。--specular 亮 rgb(255 255 255/.55)、暗 rgb(255 255 255/.05);淡入 150ms。只用于可点击的卡片,不用于表格行、按钮;减弱动效时关闭。

层级(z-index)

令牌值用途
z-sticky1020顶栏、粘性表头、保存栏
z-drawer1030抽屉、手机导航
z-dialog1040对话框
z-popover1045菜单、下拉、弹出框(含对话框内的下拉)
z-toast1050吐司
z-tooltip1060提示