diff --git a/apps/design-lab/e2e/visual.spec.ts-snapshots/colors-chromium-linux.png b/apps/design-lab/e2e/visual.spec.ts-snapshots/colors-chromium-linux.png
index cd995c0..3ea219e 100644
Binary files a/apps/design-lab/e2e/visual.spec.ts-snapshots/colors-chromium-linux.png and b/apps/design-lab/e2e/visual.spec.ts-snapshots/colors-chromium-linux.png differ
diff --git a/apps/design-lab/src/pages/colors/App.tsx b/apps/design-lab/src/pages/colors/App.tsx
index a20394f..c4e8f40 100644
--- a/apps/design-lab/src/pages/colors/App.tsx
+++ b/apps/design-lab/src/pages/colors/App.tsx
@@ -24,6 +24,34 @@ function Chip({ c, n, h }: { c: string; n: string; h: string }) {
)
}
+/* 三条规则的「为什么」:鲜艳如何成立、如何被收束、注意力如何分配 */
+const RULES = [
+ {
+ name: '相邻必撞色(跨对取色)',
+ why: '孟菲斯的鲜艳靠碰撞成立:两个高饱和色块相邻时,只有色相拉开距离,视觉才读得出「两个声音」。同色相邻只是一个声音变大——画面发平发闷,鲜艳互相抵消;跨对取色(coral 挨 teal、mustard 挨 violet)反而把彼此衬得更亮。拿到相邻色块时问一句「它俩是不是同一对」,是,就换掉一个。',
+ badCap: '同色相邻失去碰撞',
+ goodCap: '相邻必撞色(跨对取色)',
+ badDemo:
,
+ goodDemo: ,
+ },
+ {
+ name: '黑描边收束鲜艳',
+ why: '高饱和色放在浅纸上会「振动」:边缘发虚、像悬浮在页面上。2px ink 描边给每块鲜艳一道明确的边界,把颜色关进形状里——这也是拟物卡世界的基础:卡片、形状、站点共用同一粗细的墨线,颜色再艳也是「零件」而不是「光」,缩放与低分屏上轮廓依然清晰。去掉描边,鲜艳就是没裁过的布料。',
+ badCap: '无描边的鲜艳漂浮刺眼',
+ goodCap: '一切鲜艳以 2px ink 描边为界',
+ badDemo: ,
+ goodDemo: ,
+ },
+ {
+ name: '大底纸色,鲜艳只进局部',
+ why: '鲜艳是注意力,铺满屏幕等于没有注意力。大底永远是 paper,鲜艳只进相框、站点、散落形状这些局部(≤10%/屏),视线才有落点、正文才永远可读;大底一旦鲜艳,字被淹没,卡片也失去「纸上的物」的载体感。记住层级:大底是世界,卡片是物,鲜艳是物上的标记。',
+ badCap: '大底鲜艳,字被淹没',
+ goodCap: '大底纸色,鲜艳只进局部',
+ badDemo: 大底鲜艳
,
+ goodDemo: 纸底安放正文
,
+ },
+]
+
function DoDont({ bad, children, text }: { bad?: boolean; children: React.ReactNode; text: string }) {
return (
@@ -59,26 +87,21 @@ export function App() {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 大底鲜艳
-
-
- 纸底安放正文
-
+
+
+ {RULES.map((r, i) => (
+
+
+ {i + 1}
+ {r.name}
+
+
{r.why}
+
+ {r.badDemo}
+ {r.goodDemo}
+
+
+ ))}
diff --git a/docs/screenshots/design-lab/pr_colors.png b/docs/screenshots/design-lab/pr_colors.png
index cd995c0..3ea219e 100644
Binary files a/docs/screenshots/design-lab/pr_colors.png and b/docs/screenshots/design-lab/pr_colors.png differ