
视觉层级构建用间距、字重和颜色建立界面信息架构一、这个页面看起来很平的根源没有节奏的视觉层级产品经理的反馈很直接这个页面……说不上来看起来很平。所有东西都一样重要我不知道先看哪里。你看了看页面——Banner、标题、筛选栏、卡片列表、分页器。每一个元素的间距是对的Figma Dev Mode 验证过颜色是正确的Token 映射过字体是对的设计系统定义了字号阶梯。但放在一起对就变成了平庸。这就是视觉层级的缺失。没有任何一个间距是错的但间距之间的比例关系没有规则。没有任何一个颜色是乱的但颜色之间的明暗跳变没有服务于信息的重要性排序。字重有 300/400/500/600/700 五档但全页只用到了 400 和 600 两档500 这种过渡字重从未出现——导致标题和正文之间没有半程变量可调用。视觉层级不是美学是信息架构。它用间距的宽窄告诉用户这些元素属于同一组用字重的轻重告诉用户这条信息比旁边那条更重要用颜色的冷暖明暗告诉用户点这里可以交互那里只是静态信息。一个好页面的视觉层级是隐形的——用户不会注意到它但如果缺失用户能感觉不对劲。二、间距、字重、颜色的层级运算模型视觉层级可以抽象为三个维度的加权叠加间距Spacing信息组团。人类视觉系统有一个固有的聚合感知模式——格式塔接近性原则Gestalt Law of Proximity。两个元素之间的间距越小大脑越倾向于把它们归为一组。因此设计系统的间距阶梯spacing scale实际上是一套分区语言组内间距4px - 12px图标与标签、标签与数值同一组件间距16px - 24px卡片内的标题→描述→按钮跨组件间距32px - 48px卡片与卡片之间、Section 之间布局级间距64px - 120px页面主区块之间字重Font Weight信息排序。字重是与间距配合的双声道系统。同一字号下font-weight: 700的文字会比400的文字在大脑中优先级更高。如果字重差异化不够例如全页只有 400 和 700就丢失了细粒度的信息分层能力。一种有效的策略是三层字重映射标题类700页面标题、Section 标题、600卡片标题正文类400正文、500重点正文如价格数字辅助类300占位符、水印文字、400标签、辅助说明颜色Color信息状态。颜色的视觉层级由三个属性共同决定明度Lightness、饱和度Chroma、色相Hue。其中最直接影响层级的是明度——深色文字在浅色背景上天然形成高对比高优先级的焦点浅灰色文字天然是次要信息。饱和度用于区分功能性元素和装饰性元素——高饱和度的蓝色按钮天然指示可交互而低饱和度的灰色文本指示已失效。flowchart TD A[页面内容] -- B[间距分析br/格式塔接近性] A -- C[字重分析br/视觉优先级] A -- D[颜色分析br/状态指示] B -- B1[组内 4-12px] B -- B2[组件间 16-24px] B -- B3[区块间 32-48px] C -- C1[700: 绝对焦点] C -- C2[500-600: 重要信息] C -- C3[300-400: 辅助信息] D -- D1[高对比: 主要操作] D -- D2[中对比: 次要信息] D -- D3[低对比: 禁用/装饰] B1 -- E[视觉层级热力图] B2 -- E B3 -- E C1 -- E C2 -- E C3 -- E D1 -- E D2 -- E D3 -- E三、构建三层间距体系/** * 三层间距 Token 体系 * * 设计理念 * - 组内间距亲密关系4px-12px基于 4px 网格 * - 组件间距松散关系16px-24px基于 8px 网格 * - 区块间距隔离关系32px-120px基于 16px 网格 * * 使用 clamp() 实现无断点响应式保证所有屏幕尺寸下的层级一致性 */ :root { /* 第一层组内间距4px 网格 */ /* 用于图标与文本、标签与标签、输入框内部间距 */ --space-1: clamp(2px, 0.25vw, 4px); /* 最小级极限紧密关系 */ --space-2: clamp(4px, 0.5vw, 8px); /* 紧密关系radio 与 label */ --space-3: clamp(8px, 0.75vw, 12px); /* 标准组内form-item 间距 */ /* 第二层组件间距8px 网格 */ /* 用于卡片内边距、列表项间距、按钮组间距 */ --space-4: clamp(12px, 1vw, 16px); /* 标准组件内边距 */ --space-5: clamp(16px, 1.5vw, 20px); /* 宽松组件内边距 */ --space-6: clamp(20px, 2vw, 24px); /* 组件内容块分隔 */ /* 第三层区块间距16px 网格 */ /* 用于Section 间距、页面主区块分隔 */ --space-8: clamp(24px, 3vw, 32px); /* 标准 Section 间距 */ --space-10: clamp(32px, 4vw, 40px); /* Section Group 间距 */ --space-12: clamp(40px, 5vw, 48px); /* 页面主区块间距 */ --space-16: clamp(48px, 7vw, 64px); /* Hero-Section 过渡间距 */ --space-24: clamp(64px, 10vw, 96px); /* 页面级大分隔 */ } /** * 字重三层体系 * 必须在同一个字号表中建立权重梯度 */ :root { /* 标题族使用 600-700 创建信息层次 */ --font-weight-heading-lg: 700; /* 页面主标题 */ --font-weight-heading-md: 600; /* Section 标题 */ --font-weight-heading-sm: 600; /* 卡片标题字号小但字重重形成对比 */ /* 正文族使用 400-500 区分主次 */ --font-weight-body-strong: 500; /* 强调正文价格、关键数据 */ --font-weight-body: 400; /* 常规正文描述文字 */ --font-weight-body-muted: 400; /* 次要正文辅助说明 降低不透明度 */ /* 辅助族使用 300-400 */ --font-weight-label: 400; /* 标签文字表单 Label、表头 */ --font-weight-caption: 300; /* 注释文字版权声明、水印 */ } /** * 颜色层级用明度梯级建立可操作 → 可读 → 可忽略的递进 */ :root { /* 主要操作色高饱和度 中高明度 → 天然吸睛 */ --color-action-primary: #3B82F6; --color-action-hover: #2563EB; /* 主要文本极高对比度 (7:1) → 立即可读 */ --color-text-primary: #0F172A; /* 次要文本中等对比度 (4.5:1) → 需要时阅读 */ --color-text-secondary: #475569; /* 禁用/占位文本最低对比度 (3:1, AA 底线) → 可忽略时忽略 */ --color-text-disabled: #94A3B8; /* 边框分级从强到弱 */ --color-border-strong: #CBD5E1; /* 聚焦/激活态边框 */ --color-border-default: #E2E8F0; /* 默认可见边框 */ --color-border-subtle: #F1F5F9; /* 若有若无的分隔线 */ /* 背景分级从深到浅 */ --color-bg-elevated: #FFFFFF; /* 最高层卡片/弹窗 */ --color-bg-primary: #F8FAFC; /* 主体层页面背景 */ --color-bg-secondary: #F1F5F9; /* 次层侧边栏、表头 */ }四、层级设计的两个陷阱过度依赖颜色建立层级。一个用三种蓝色、两种灰色区分信息层的页面在色觉障碍用户约占男性 8%的眼中会丢失大部分层级信息。好的视觉层级应该满足去色可读原则——把页面的饱和度设为 0%灰度模式文字的字重和间距差异仍然清晰传达了信息结构。这意味着间距和字重是视觉层级的结构层颜色是装饰层。结构层应该能独立工作装饰层是在之上的额外信息通道。字重阶梯的假丰富问题。很多设计系统定义了 100 到 900 的完整字重阶梯但实际加载的字体文件只包含 400 和 700 两个字重出于性能考虑。在设计稿中用 500 字重标出的微妙强调到了生产环境浏览器渲染时会 fallback 到 400——导致设计稿中的五级信息层次在代码中坍缩为两级。一个实际可用的策略在字体加载策略中明确声明实际可用的字重并限制 Token 只使用这些字重。如果只加载了 400/600/700就不要在 Token 文件中定义--font-weight-500。五、总结视觉层级的本质是信息架构的可视化翻译——间距分组、字重排序、颜色标注。三层间距体系组内4-12px4px 网格、组件间16-24px8px 网格、区块间32-120px16px 网格。三层字重体系标题族600-700、正文族400-500、辅助族300-400每族内独立建立梯度。颜色层级由明度 饱和度 色相三元控制明度是最直接影响信息优先级的通道。间距和字重是结构层去色仍可读颜色是装饰层额外增强结构层应能独立工作。字重 Token 必须与字体加载策略对齐——只加载了 400/600/700 就不要定义--font-weight-500。clamp(min, vw, max)是无断点响应式的间距方案保证所有屏幕尺寸下间距比例关系不崩。文本对比度的梯度建议主要文字 ≥ 7:1AAA、次要文字 ≥ 4.5:1AA、禁用文字 ≥ 3:1AA Large。高饱和度是交互邀请信号低饱和度是信息噪音标记——不要在纯信息文字上使用高饱和色。检验视觉层级的最快方法将页面灰度化filter: grayscale(1)如果信息结构仍然清晰则层级合格。