ss-score

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Design Score

设计评分

/ss-review
tells you what's wrong.
/ss-score
tells you how good it is overall and what to fix first — a single number plus a category breakdown, so you can track UI quality like you track test coverage.
/ss-review
会告诉你问题是什么
/ss-score
会告诉你整体质量如何以及优先修复什么——一个总分加上分类细分,让你可以像跟踪测试覆盖率一样跟踪UI质量。

When NOT to use

不适用场景

  • For a quick pass/fail before committing → use
    /ss-lint
  • For a full prose audit with fixes → use
    /ss-review
  • For logic/config with no visual artifact — scoring is meaningless
  • 提交前快速检查通过/不通过 → 使用
    /ss-lint
  • 需要完整文字审计及修复方案 → 使用
    /ss-review
  • 无视觉产物的逻辑/配置场景——评分毫无意义

Step 0 — Resolve the effective rule set

步骤0 — 确定有效规则集

Before scoring, read
.styleseed/effective-rules.md
and
.styleseed/manifest.json
. If they are missing or
ss-resolve --check
reports drift, invoke
/ss-resolve
or
$ss-resolve
from the project lock first. Only fall back to the source handbook when no project lock exists.
Score in authority order: core invariants first, then the exact output grammar, domain/page, brand recipe, optional aesthetic profile, and bounded lock values. The lock cannot waive an invariant. Unknown values are a resolver error; do not invent an exception.
The output must name the effective rule set, for example:
text
Rule set: operations-console × SaaS × dashboard × enterprise-workbench × swiss
评分前,阅读
.styleseed/effective-rules.md
.styleseed/manifest.json
。如果文件缺失或
ss-resolve --check
报告存在偏差,请先从项目锁调用
/ss-resolve
$ss-resolve
。仅当项目锁不存在时,才回退到源手册。
评分优先级顺序:核心不变规则优先,其次是精确输出语法、领域/页面、品牌规则、可选美学配置,最后是有限锁值。锁无法豁免不变规则。未知值属于解析器错误;请勿自行添加例外。
输出必须明确有效规则集,例如:
text
Rule set: operations-console × SaaS × dashboard × enterprise-workbench × swiss

What to score

评分对象

Score the file (or each file in a directory) on eight weighted categories that map to the design language. Total = 100.
CategoryWeightReads from
Color discipline16DESIGN-LANGUAGE §1, §18, §72 + VISUAL-CRAFT §C4
Hierarchy & typography16§2, §3, §4, §16 + Font Size table + VISUAL-CRAFT §C2
Layout & rhythm12§13, §14, §15, §61 + VISUAL-CRAFT §C1
Cards & elevation10§7, §8, §12, §1 + VISUAL-CRAFT §C3
States & a11y18§11, §70, §71, §72 + VISUAL-CRAFT §C3
Motion & interaction6§24, §59 +
engine/motion
Coherence12VISUAL-CRAFT §C0 (one choice per axis)
Distinctiveness10Golden Rules 14–16 + VISUAL-CRAFT §CC-9b (not generic/default/template)
针对文件(或目录中的每个文件),按照8个加权分类进行评分,这些分类与设计语言相对应。总分=100。
分类权重参考来源
色彩规范16DESIGN-LANGUAGE §1, §18, §72 + VISUAL-CRAFT §C4
层级与排版16§2, §3, §4, §16 + 字体尺寸表 + VISUAL-CRAFT §C2
布局与节奏12§13, §14, §15, §61 + VISUAL-CRAFT §C1
卡片与层级 elevation10§7, §8, §12, §1 + VISUAL-CRAFT §C3
状态与无障碍 a11y18§11, §70, §71, §72 + VISUAL-CRAFT §C3
动效与交互6§24, §59 +
engine/motion
一致性12VISUAL-CRAFT §C0(每个维度仅选一种风格)
独特性10黄金规则14–16 + VISUAL-CRAFT §CC-9b(非通用/默认/模板化)

How to score each category

各分类评分方法

For each category, start at full marks and subtract for violations you find by reading the code. Be specific and evidence-based — cite the line.
Color discipline (16) — deduct for: accidental
#000
/
text-black
outside a profile or grammar contract that explicitly uses hard black structurally (−4 each, cap −8); competing decorative emphasis hues (−5); emoji used as UI icons (−5); a normal/OK/"보통" state shown in a status color instead of neutral grey (−4); status color on most/every row (no severity hierarchy) (−4); decorative hues (gold stars, rainbow category dots) instead of accent/grey (−3); hardcoded hex where a semantic token exists (−2 each, cap −6); status conveyed by color alone (−4); the unlocked default indigo (
#5E6AD2
/
#4F46E5
) used as the accent
instead of a chosen domain-fit color (−4).
Distinctiveness (10) — a coherent screen can still read "AI-generated." Deduct for: the icon-chip cliché — a generic Lucide line-icon in an identical pale-tinted rounded-square, repeated for every feature/step (−4, §CC-9b); the StyleSeed demo layout copied verbatim (hero+chat / 3-step / feature-grid / pricing) with no product-specific identity (−4); no focal point — an all-even grid of same-weight, centered, evenly-spaced cards (−3); the hero shows a stock/placeholder visual instead of this product (−3); the escape hatch as a new uniform (§CC-9c) — ghost 01/02/03 index numbers on every section, or identical uppercase-overline + big-number cards repeated with no variation (−2); distinctive-but-dated (§CC-9d) — full beige/paper page base, serif body text on a product surface, dark-heavy blocks that read "brochure" not "2026 product" (−3). Cap −10.
Hierarchy & typography (16) — deduct for: number/unit not ~2:1 (−4); font sizes off the Font Size table /
text-[var(--…)]
for size (−5); everything the same weight, no clear primary (−5); cramped or wrong line-height on body (−3); body < 16px on a desktop/web B2B surface (tight mobile scale on a wide screen) (−4 — but dense-data chrome is exempt: chart ticks, mono SHAs/timestamps, table metadata at 12–13px are correct; and dashboard app-chrome h1 at 22–24px is correct, not a violation of the marketing 40–56px headline scale).
Layout & rhythm (12) — deduct for: grouping that contradicts the selected grammar or recipe (−6):
operations-console
needs explicit functional groups, while
editorial-reading
should not be forced into cards;
enterprise-workbench
needs aligned panels/rows while
public-service
needs flat step flow; arbitrary off-scale spacing (−3); same section type repeated without purpose (−4); no discernible proximity rhythm (−3).
Cards & elevation (10) — deduct for mixed or task-inappropriate surface language. Hairlines, flat grouping, tonal ramps, or restrained shadows are valid only when the selected grammar/profile uses them coherently. Deduct mixed border/shadow languages (−4), visibly heavy or directionally inconsistent shadows (−4), or missing group/surface separation where the grammar requires it (−5).
States & a11y (18) — deduct for: missing empty/loading/error state on a data surface (−5 each, cap −10 — a static mockup or marketing landing with NO data surface is N/A: skip these deductions, don't fail the category); contrast below 4.5:1 body / 3:1 large (−6); touch target < 44px on a touch surface (pointer-first desktop controls at 36–40px are fine) (−4); no visible focus /
outline:none
(−5); icon-only control without
aria-label
(−3).
Motion & interaction (6) — deduct for: random/ad-hoc fades instead of a named seed/keyword (−3); motion that delays content or blocks an action (−4); no
prefers-reduced-motion
handling on custom motion (−3). Scroll-linked/parallax/3D/animated- gradient is SURFACE-DEPENDENT (§43): on an app/dashboard/data/form surface it's forbidden (−5); on a marketing/landing/brand page it's ALLOWED (the Cinematic tier) — there, do NOT deduct for scroll-linked reveals, pinned sections, 3D hero, or animated backgrounds; only deduct for scroll-JACKING (hijacking scroll / trapping) (−5), motion that hides content until scroll or delays the headline/CTA (−4), or a missing
prefers-reduced-motion
fallback (−3). Judge by page type first, then score.
Coherence (12) — the "one choice per axis" laws (VISUAL-CRAFT §C0). Deduct for each axis that is mixed rather than unified across the file: mixed radius personalities, e.g. sharp panel + pill buttons (−5); two+ competing accent hues used for emphasis (−4); mixed shadow languages / light directions (−3); mixed icon families, fill modes, or stroke weights (−3); same radius on a nested element instead of
inner = outer − padding
(−2); inconsistent control heights for buttons/inputs (−2). This is the category that most predicts "looks AI-generated" — weight evidence of system-wide consistency, not per-component prettiness.
Clamp each category at 0. Sum to a total.
每个分类从满分开始,扣除你通过阅读代码发现的违规分数。需具体且有依据——标注行号。
色彩规范(16分) — 扣分项:在未明确规定使用纯黑的配置或语法协议外,意外使用
#000
/
text-black
(每次扣4分,最高扣8分);冲突的装饰强调色(扣5分);将表情符号用作UI图标(扣5分);正常/普通状态使用状态色而非中性灰色(扣4分);大多数/所有行都使用状态色(无严重程度层级,扣4分);使用装饰色(金星、彩虹分类点)而非强调色/灰色(扣3分);存在语义化token却硬编码十六进制颜色(每次扣2分,最高扣6分);仅通过颜色传达状态(扣4分);使用未锁定的默认靛蓝色(
#5E6AD2
/
#4F46E5
)作为强调色
而非适配领域的选定颜色(扣4分)。
独特性(10分) — 界面可能一致但看起来像“AI生成”。扣分项:图标芯片陈词滥调——每个功能/步骤重复使用相同浅色圆角方形中的通用Lucide线图标(扣4分,§CC-9b);完全照搬StyleSeed演示布局(英雄区+聊天/三步流程/功能网格/定价),无产品专属标识(扣4分);无视觉焦点——所有卡片权重相同、居中、间距均匀的全对称网格(扣3分);英雄区使用库存/占位图而非产品自身视觉(扣3分);将逃生舱口作为统一样式(§CC-9c)——每个 section 都有ghost 01/02/03索引编号,或重复使用无变化的大写overline+大数字卡片(扣2分);独特但过时(§CC-9d)——全米色/纸质页面底色、产品界面使用衬线正文字体、深色厚重区块看起来像“宣传册”而非“2026年产品”(扣3分)。最高扣10分。
层级与排版(16分) — 扣分项:数字/单位比例未达到约2:1(扣4分);字体尺寸不符合字体尺寸表/使用
text-[var(--…)]
设置尺寸(扣5分);所有内容权重相同,无明确主视觉(扣5分);正文行高拥挤或错误(扣3分);桌面端/web B2B界面正文小于16px(宽屏使用紧凑移动端比例,扣4分——但密集数据界面除外:图表刻度、单字SHA/时间戳、表格元数据使用12–13px是正确的;仪表盘应用栏h1使用22–24px是正确的,不违反营销用40–56px标题比例)。
布局与节奏(12分) — 扣分项:分组方式与选定语法或规则矛盾(扣6分):
operations-console
需要明确功能分组,而
editorial-reading
不应强制使用卡片;
enterprise-workbench
需要对齐面板/行,而
public-service
需要扁平化步骤流程;任意不符合比例的间距(扣3分);无意义重复相同 section 类型(扣4分);无明显的邻近节奏(扣3分)。
卡片与层级 elevation(10分) — 扣分项:混合使用或任务不匹配的界面语言。仅当选定语法/配置连贯使用时,细线、扁平化分组、色调渐变或克制阴影才有效。扣分项:混合边框/阴影语言(扣4分)、明显厚重或方向不一致的阴影(扣4分)、语法要求但缺失分组/界面分隔(扣5分)。
状态与无障碍 a11y(18分) — 扣分项:数据界面缺失空状态/加载/错误状态(每次扣5分,最高扣10分——静态原型或无数据界面的营销落地页不适用:跳过这些扣分项,不会导致该分类不合格);正文对比度低于4.5:1 / 大文本对比度低于3:1(扣6分);触控界面触控目标小于44px(优先鼠标操作的桌面控件为36–40px是可接受的,扣4分);无可见焦点 / 使用
outline:none
(扣5分);仅图标控件未添加
aria-label
(扣3分)。
动效与交互(6分) — 扣分项:使用随机/临时淡入淡出而非命名seed/关键字(扣3分);动效延迟内容加载或阻止操作(扣4分);自定义动效未处理
prefers-reduced-motion
(扣3分)。滚动关联/视差/3D/渐变动画取决于界面类型(§43):在应用/仪表盘/数据/表单界面中被禁止(扣5分);在营销/落地页/品牌页面中被允许(电影级 tier)——在此类页面中,请勿因滚动关联显示、固定区块、3D英雄区或动画背景扣分;仅因滚动劫持(劫持滚动/限制滚动,扣5分)、动效隐藏内容直至滚动或延迟标题/CTA加载(扣4分)、缺失
prefers-reduced-motion
降级方案(扣3分)扣分。先判断页面类型,再进行评分。
一致性(12分) — “每个维度仅选一种风格”原则(VISUAL-CRAFT §C0)。每个维度混合使用而非统一风格时扣分:混合圆角风格,例如尖锐面板+胶囊按钮(扣5分);使用两种及以上冲突的强调色(扣4分);混合阴影语言/光照方向(扣3分);混合图标库、填充模式或描边权重(扣3分);嵌套元素使用与外层相同的圆角而非
inner = outer − padding
(扣2分);按钮/输入框控件高度不一致(扣2分)。该分类最能预测“看起来像AI生成”——重点关注全系统一致性的依据,而非单个组件的美观度。
每个分类最低分为0。将各分类得分相加得到总分。

Output format

输出格式

undefined
undefined

Design Score: 70 / 100 (src/app/Dashboard.tsx)

设计评分: 70 / 100 (src/app/Dashboard.tsx)

Rule set: operations-console × product-ui × SaaS × dashboard × enterprise-workbench × swiss
████████████████░░░░░░ C-
Color discipline 11/16 ▓▓▓░ competing orange+blue emphasis hues (l.28-34) Hierarchy & typography 13/16 ▓▓▓▓ number/unit 1:1 on hero (l.18) Layout & rhythm 9/12 ▓▓▓░ two identical KPI rows (l.22-31) Cards & elevation 8/10 ▓▓░░ mixed border + floating-shadow language (l.22) States & a11y 11/18 ▓▓░░ no empty/loading state; focus ring missing (l.55) Motion & interaction 4/6 ▓▓▓░ default fade, not a named seed Coherence 6/12 ▓▓░░ sharp cards (l.22) + pill buttons (l.48); 3 accent hues (§C0) Distinctiveness 8/10 ▓▓▓░ all-even KPI grid weakens the operational focal panel
Rule set: operations-console × product-ui × SaaS × dashboard × enterprise-workbench × swiss
████████████████░░░░░░ C-
色彩规范 11/16 ▓▓▓░ 橙色+蓝色冲突强调色(第28-34行) 层级与排版 13/16 ▓▓▓▓ 英雄区数字/单位比例为1:1(第18行) 布局与节奏 9/12 ▓▓▓░ 两行相同的KPI(第22-31行) 卡片与层级 8/10 ▓▓░░ 混合边框+浮动阴影语言(第22行) 状态与无障碍 11/18 ▓▓░░ 缺失空/加载状态;焦点环缺失(第55行) 动效与交互 4/6 ▓▓▓░ 使用默认淡入淡出,而非命名seed 一致性 6/12 ▓▓░░ 尖锐卡片(第22行)+胶囊按钮(第48行);3种强调色(§C0) 独特性 8/10 ▓▓▓░ 全对称KPI网格削弱了操作焦点面板

Fix first (highest score gain)

优先修复(得分提升最高)

  1. Add empty + loading states to the orders list → +7 states (§71)
  2. Unify radius (pick soft 8-12px) + collapse to one accent → +9 coherence+color (§C0, §2)
  3. Drop the 1px borders, use tone + ≤8% shadow → +4 cards (§7)
Re-score after: ~92 / 100.

Use letter bands: 90+ A · 80-89 B · 70-79 C · 60-69 D · <60 F.
  1. 为订单列表添加空状态+加载状态 → +7 状态分(§71)
  2. 统一圆角(选择8-12px柔和圆角)+ 合并为一种强调色 → +9 一致性+色彩分(§C0, §2)
  3. 移除1px边框,使用色调+≤8%阴影 → +4 卡片分 (§7)
修复后预估评分: ~92 / 100.

使用等级划分:90+ A · 80-89 B · 70-79 C · 60-69 D · <60 F.

Gate mode (use this as the Quality Gate before showing the user UI)

门禁模式(向用户展示UI前用作质量门禁)

The Quality Gate (CLAUDE.md / AGENTS.md) is
/ss-score
run as a loop, not a one-off:
  1. Score the just-generated UI.
  2. If < 80, apply the "fix first" list (use
    /ss-review
    to make the edits), then re-score.
  3. Repeat up to ~3×, or until ≥ 80.
  4. Present the UI with the final score and a one-line "fixed: …".
The pass bar is a floor, not a ceiling — get to ≥ 80 and stop; don't chase 100. The point is that no first-draft, obviously-incoherent UI reaches the user. Especially never ship below 80 with a rainbow status list, emoji icons, two accents, or missing states — those are the exact tells the gate exists to catch.
质量门禁(CLAUDE.md / AGENTS.md)是循环运行的
/ss-score
,而非一次性执行:
  1. 为刚生成的UI评分。
  2. 如果评分<80,应用“优先修复”列表(使用
    /ss-review
    进行修改),然后重新评分
  3. 重复最多约3次,或直到评分≥80。
  4. 向用户展示UI及最终评分,附带一行“已修复:……”说明。
合格线是下限,而非上限——达到≥80即可停止;无需追求100分。核心目的是避免初稿、明显不一致的UI触达用户。尤其绝对不能发布评分低于80且存在彩虹状态列表、表情图标、两种强调色或缺失状态的UI——这些正是门禁要拦截的典型问题。

Rules

规则

  • Read the file — score from real evidence (line numbers), never guess.
  • Order the "fix first" list by score gain, not by severity alone — the goal is the fastest path to a better number.
  • For a directory, print a one-line score per file, then the lowest-scoring file's full breakdown.
  • Don't auto-edit in plain scoring.
    /ss-score
    measures;
    /ss-review
    and
    /ss-motion
    fix. In Gate mode (above) you do fix-and-re-score until the floor is met.
  • As a gate, ≥ 80 is a floor before showing the user — but don't over-polish: chasing 95→100 to delay shipping is worse than shipping a clean 85.
  • 阅读文件 — 基于真实依据(行号)评分,切勿猜测。
  • “优先修复”列表按得分提升幅度排序,而非仅按严重程度——目标是最快提升总分。
  • 针对目录,每个文件输出一行评分,然后展示得分最低文件的完整细分内容。
  • 普通评分模式下请勿自动编辑。
    /ss-score
    用于评估;
    /ss-review
    /ss-motion
    用于修复。在门禁模式(如上)中,需修复并重新评分直至达到下限。
  • 作为门禁,≥80是向用户展示前的下限——但过度打磨不可取:为了从95分提升到100分而延迟发布,不如发布干净的85分版本。