@mison/ag-kit-cn 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.agent/ARCHITECTURE.md +285 -0
- package/.agent/agents/backend-specialist.md +268 -0
- package/.agent/agents/code-archaeologist.md +106 -0
- package/.agent/agents/database-architect.md +225 -0
- package/.agent/agents/debugger.md +225 -0
- package/.agent/agents/devops-engineer.md +242 -0
- package/.agent/agents/documentation-writer.md +104 -0
- package/.agent/agents/explorer-agent.md +73 -0
- package/.agent/agents/frontend-specialist.md +618 -0
- package/.agent/agents/game-developer.md +162 -0
- package/.agent/agents/mobile-developer.md +382 -0
- package/.agent/agents/orchestrator.md +438 -0
- package/.agent/agents/penetration-tester.md +188 -0
- package/.agent/agents/performance-optimizer.md +187 -0
- package/.agent/agents/product-manager.md +112 -0
- package/.agent/agents/product-owner.md +95 -0
- package/.agent/agents/project-planner.md +405 -0
- package/.agent/agents/qa-automation-engineer.md +103 -0
- package/.agent/agents/security-auditor.md +170 -0
- package/.agent/agents/seo-specialist.md +111 -0
- package/.agent/agents/test-engineer.md +158 -0
- package/.agent/mcp_config.json +12 -0
- package/.agent/rules/GEMINI.md +273 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +217 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/skills/api-patterns/SKILL.md +84 -0
- package/.agent/skills/api-patterns/api-style.md +42 -0
- package/.agent/skills/api-patterns/auth.md +24 -0
- package/.agent/skills/api-patterns/documentation.md +26 -0
- package/.agent/skills/api-patterns/graphql.md +41 -0
- package/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/.agent/skills/api-patterns/response.md +37 -0
- package/.agent/skills/api-patterns/rest.md +40 -0
- package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agent/skills/api-patterns/security-testing.md +122 -0
- package/.agent/skills/api-patterns/trpc.md +41 -0
- package/.agent/skills/api-patterns/versioning.md +22 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +74 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +40 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.agent/skills/architecture/SKILL.md +57 -0
- package/.agent/skills/architecture/context-discovery.md +43 -0
- package/.agent/skills/architecture/examples.md +94 -0
- package/.agent/skills/architecture/pattern-selection.md +68 -0
- package/.agent/skills/architecture/patterns-reference.md +50 -0
- package/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/.agent/skills/bash-linux/SKILL.md +201 -0
- package/.agent/skills/behavioral-modes/SKILL.md +264 -0
- package/.agent/skills/brainstorming/SKILL.md +164 -0
- package/.agent/skills/brainstorming/dynamic-questioning.md +359 -0
- package/.agent/skills/clean-code/SKILL.md +200 -0
- package/.agent/skills/code-review-checklist/SKILL.md +125 -0
- package/.agent/skills/database-design/SKILL.md +54 -0
- package/.agent/skills/database-design/database-selection.md +43 -0
- package/.agent/skills/database-design/indexing.md +39 -0
- package/.agent/skills/database-design/migrations.md +50 -0
- package/.agent/skills/database-design/optimization.md +36 -0
- package/.agent/skills/database-design/orm-selection.md +30 -0
- package/.agent/skills/database-design/schema-design.md +56 -0
- package/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/.agent/skills/doc.md +177 -0
- package/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/.agent/skills/frontend-design/SKILL.md +418 -0
- package/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/.agent/skills/frontend-design/color-system.md +307 -0
- package/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agent/skills/frontend-design/scripts/ux_audit.py +727 -0
- package/.agent/skills/frontend-design/typography-system.md +345 -0
- package/.agent/skills/frontend-design/ux-psychology.md +1118 -0
- package/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/.agent/skills/game-development/SKILL.md +167 -0
- package/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +155 -0
- package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/.agent/skills/lint-and-validate/SKILL.md +44 -0
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/.agent/skills/mobile-design/SKILL.md +394 -0
- package/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/.agent/skills/mobile-design/mobile-design-thinking.md +355 -0
- package/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/.agent/skills/mobile-design/mobile-typography.md +432 -0
- package/.agent/skills/mobile-design/platform-android.md +666 -0
- package/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +311 -0
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +241 -0
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +489 -0
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +263 -0
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +431 -0
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +683 -0
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +149 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +286 -0
- package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/.agent/skills/parallel-agents/SKILL.md +194 -0
- package/.agent/skills/performance-profiling/SKILL.md +149 -0
- package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agent/skills/plan-writing/SKILL.md +152 -0
- package/.agent/skills/powershell-windows/SKILL.md +166 -0
- package/.agent/skills/python-patterns/SKILL.md +441 -0
- package/.agent/skills/red-team-tactics/SKILL.md +203 -0
- package/.agent/skills/rust-pro/SKILL.md +190 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +135 -0
- package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +215 -0
- package/.agent/skills/server-management/SKILL.md +161 -0
- package/.agent/skills/systematic-debugging/SKILL.md +114 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
- package/.agent/skills/vulnerability-scanner/checklists.md +131 -0
- package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +459 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agent/workflows/brainstorm.md +113 -0
- package/.agent/workflows/create.md +59 -0
- package/.agent/workflows/debug.md +103 -0
- package/.agent/workflows/deploy.md +176 -0
- package/.agent/workflows/enhance.md +63 -0
- package/.agent/workflows/orchestrate.md +242 -0
- package/.agent/workflows/plan.md +89 -0
- package/.agent/workflows/preview.md +80 -0
- package/.agent/workflows/restore-localize-compat.md +525 -0
- package/.agent/workflows/status.md +86 -0
- package/.agent/workflows/test.md +144 -0
- package/.agent/workflows/ui-ux-pro-max.md +295 -0
- package/AGENT_FLOW.md +609 -0
- package/CHANGELOG.md +68 -0
- package/LICENSE +21 -0
- package/README.md +260 -0
- package/bin/adapters/base.js +63 -0
- package/bin/adapters/codex.js +391 -0
- package/bin/adapters/gemini.js +137 -0
- package/bin/ag-kit.js +1336 -0
- package/bin/core/builder.js +80 -0
- package/bin/core/generator.js +59 -0
- package/bin/core/resource-loader.js +64 -0
- package/bin/core/transformer.js +208 -0
- package/bin/interactive.js +65 -0
- package/bin/utils/atomic-writer.js +97 -0
- package/bin/utils/git-helper.js +68 -0
- package/bin/utils/managed-block.js +65 -0
- package/bin/utils/manifest.js +241 -0
- package/bin/utils.js +82 -0
- package/docs/codex-rules-template.md +36 -0
- package/docs/mapping-spec.md +68 -0
- package/docs/multi-target-adapter.md +80 -0
- package/docs/official/README.md +53 -0
- package/docs/official/antigravity/agent-modes-settings.md +64 -0
- package/docs/official/antigravity/rules-workflows.md +96 -0
- package/docs/official/antigravity/skills.md +147 -0
- package/docs/official/codex/agents-md.md +119 -0
- package/docs/official/codex/config-advanced.md +358 -0
- package/docs/official/codex/config-basic.md +141 -0
- package/docs/official/codex/config-reference.md +223 -0
- package/docs/official/codex/config-sample.md +216 -0
- package/docs/official/codex/mcp.md +107 -0
- package/docs/official/codex/rules.md +79 -0
- package/docs/official/codex/skills.md +114 -0
- package/docs/official/sources-index.md +32 -0
- package/docs/operations.md +145 -0
- package/docs/terminology-style-guide.md +69 -0
- package/package.json +51 -0
- package/scripts/postinstall-check.js +112 -0
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# 字体排版系统参考
|
|
2
|
+
|
|
3
|
+
> 字体排版(Typography)的原则与决策方法:学会思考,而不是死记参数。
|
|
4
|
+
> **不预设固定字体名与字号,重点是理解系统。**
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. 模块化比例原则
|
|
9
|
+
|
|
10
|
+
### 什么是模块化比例(Modular Scale)?
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
字号之间的数学关系:
|
|
14
|
+
├── 先选一个 BASE(基础字号,通常是正文)
|
|
15
|
+
├── 再选一个 RATIO(比例系数)
|
|
16
|
+
└── 按公式生成所有字号:base × ratio^n
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 常见比例与适用场景
|
|
20
|
+
|
|
21
|
+
| 比例 | 数值 | 视觉感受 | 适用场景 |
|
|
22
|
+
|---------------|---------------|---------------------|----------------------|
|
|
23
|
+
| 小二度(Minor Second) | 1.067 | 非常克制 | 信息密集 UI、小屏 |
|
|
24
|
+
| 大二度(Major Second) | 1.125 | 轻微层级 | 紧凑型界面 |
|
|
25
|
+
| 小三度(Minor Third) | 1.2 | 舒适 | 移动应用、卡片布局 |
|
|
26
|
+
| 大三度(Major Third) | 1.25 | 平衡 | 通用 Web(最常见) |
|
|
27
|
+
| 纯四度(Perfect Fourth) | 1.333 | 层级明显 | 编辑型内容、博客 |
|
|
28
|
+
| 纯五度(Perfect Fifth) | 1.5 | 戏剧化 | 大标题、营销页 |
|
|
29
|
+
| 黄金比例(Golden Ratio) | 1.618 | 冲击力强 | Hero 区、展示型标题 |
|
|
30
|
+
|
|
31
|
+
### 生成你的字号阶梯
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
已知:base = YOUR_BASE_SIZE,ratio = YOUR_RATIO
|
|
35
|
+
|
|
36
|
+
Scale:
|
|
37
|
+
├── xs: base ÷ ratio²
|
|
38
|
+
├── sm: base ÷ ratio
|
|
39
|
+
├── base: YOUR_BASE_SIZE
|
|
40
|
+
├── lg: base × ratio
|
|
41
|
+
├── xl: base × ratio²
|
|
42
|
+
├── 2xl: base × ratio³
|
|
43
|
+
├── 3xl: base × ratio⁴
|
|
44
|
+
└── ... 按需继续扩展
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 如何选择基础字号
|
|
48
|
+
|
|
49
|
+
| 上下文 | 基础字号范围 | 原因 |
|
|
50
|
+
|-------------------|----------------------------------|-------------|
|
|
51
|
+
| 移动端优先(Mobile-first) | 16-18px | 小屏阅读性更好 |
|
|
52
|
+
| 桌面应用(Desktop app) | 14-16px | 信息密度更高 |
|
|
53
|
+
| 编辑阅读(Editorial) | 18-21px | 长文阅读更舒适 |
|
|
54
|
+
| 无障碍优先(Accessibility focus) | 18px+ | 更易识别与阅读 |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 2. 字体配对原则
|
|
59
|
+
|
|
60
|
+
### 两种字体如何“搭得起来”
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
对比(contrast)+ 和谐(harmony):
|
|
64
|
+
├── 差异要足够,才能建立层级
|
|
65
|
+
├── 相似也要足够,才能保持统一
|
|
66
|
+
└── 常见组合:serif(衬线) + sans(无衬线),或 display(展示) + neutral(中性)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 配对策略
|
|
70
|
+
|
|
71
|
+
| 策略 | 方法 | 结果 |
|
|
72
|
+
|------------------|-------------|----------------|
|
|
73
|
+
| **对比型(Contrast)** | Serif(衬线)标题 + Sans(无衬线)正文 | 经典、编辑感 |
|
|
74
|
+
| **同族型(Same Family)** | 同一可变字体(Variable Font)不同字重 | 统一、现代 |
|
|
75
|
+
| **同设计方(Same Designer)** | 同字体厂牌/设计者作品 | 比例通常更协调 |
|
|
76
|
+
| **同年代(Era Match)** | 同时期字体组合 | 风格一致性强 |
|
|
77
|
+
|
|
78
|
+
### 配对时重点观察
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
配对时重点比较:
|
|
82
|
+
├── x-height(小写字母高度)
|
|
83
|
+
├── 字面宽度(窄体/宽体)
|
|
84
|
+
├── 笔画对比(粗细变化)
|
|
85
|
+
└── 整体气质(正式/轻松)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 相对稳妥的配对模式
|
|
89
|
+
|
|
90
|
+
| 标题风格 | 正文风格 | 气质 |
|
|
91
|
+
|---------------------------|------------------------|--------------|
|
|
92
|
+
| 几何无衬线(Geometric sans) | 人文无衬线(Humanist sans) | 现代、友好 |
|
|
93
|
+
| 展示衬线(Display serif) | 干净无衬线(Clean sans) | 编辑感、精致 |
|
|
94
|
+
| 中性无衬线(Neutral sans) | 同系无衬线(Same sans) | 极简、科技 |
|
|
95
|
+
| 粗几何(Bold geometric) | 细几何(Light geometric) | 当代、干净 |
|
|
96
|
+
|
|
97
|
+
### 避免
|
|
98
|
+
|
|
99
|
+
- ❌ 两种装饰性字体同时使用。
|
|
100
|
+
- ❌ 过于相似但细节冲突的字体组合。
|
|
101
|
+
- ❌ 超过 2-3 个字体家族。
|
|
102
|
+
- ❌ x-height 差异过大的组合。
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 3. 行高原则
|
|
107
|
+
|
|
108
|
+
### 行高的决定因素
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
行高取决于:
|
|
112
|
+
├── 字号(越大通常所需行高比越低)
|
|
113
|
+
├── 行长(越长通常需要更大行高)
|
|
114
|
+
├── 字体设计(不同字体吃空间不同)
|
|
115
|
+
└── 内容类型(标题/正文需求不同)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 场景建议
|
|
119
|
+
|
|
120
|
+
| 内容类型 | 行高范围 | 原因 |
|
|
121
|
+
|--------------------------|--------------------------------|-------------|
|
|
122
|
+
| **标题(headings)** | 1.1 - 1.3 | 行短,宜紧凑 |
|
|
123
|
+
| **正文(body text)** | 1.4 - 1.6 | 阅读舒适 |
|
|
124
|
+
| **长文(long-form)** | 1.6 - 1.8 | 可读性更高 |
|
|
125
|
+
| **界面元素(UI)** | 1.2 - 1.4 | 提升空间效率 |
|
|
126
|
+
|
|
127
|
+
### 调整因子
|
|
128
|
+
|
|
129
|
+
- 行长更长 → 行高适当增加。
|
|
130
|
+
- 字号更大 → 行高比可适当降低。
|
|
131
|
+
- 全大写(ALL CAPS)→ 往往需要更多行高。
|
|
132
|
+
- 字距偏紧(tracking 较紧)→ 往往需要更多行高。
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 4. 行长原则
|
|
137
|
+
|
|
138
|
+
### 最佳阅读宽度
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
舒适区间:每行 45-75 个字符
|
|
142
|
+
├── < 45:断行过于频繁,阅读节奏破碎
|
|
143
|
+
├── 45-75:阅读最舒适
|
|
144
|
+
├── > 75:视线追踪压力增加
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### 如何度量
|
|
148
|
+
|
|
149
|
+
```css
|
|
150
|
+
/* 基于字符宽度(推荐) */
|
|
151
|
+
max-width: 65ch; /* ch = 字符 "0" 的宽度 */
|
|
152
|
+
|
|
153
|
+
/* 会随字号变化自动适配 */
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 场景调节
|
|
157
|
+
|
|
158
|
+
| 场景 | 字符范围 |
|
|
159
|
+
|-----------------|-----------------------------|
|
|
160
|
+
| 桌面文章(Desktop article) | 60-75 字符 |
|
|
161
|
+
| 移动端(Mobile) | 35-50 字符 |
|
|
162
|
+
| 侧栏文本(Sidebar text) | 30-45 字符 |
|
|
163
|
+
| 超宽屏(Wide monitors) | 仍建议上限约 75ch |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## 5. 响应式排版原则
|
|
168
|
+
|
|
169
|
+
### 问题本质
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
固定字号无法良好跨端:
|
|
173
|
+
├── 桌面字号到移动端会显得过大
|
|
174
|
+
├── 移动字号到桌面端会显得过小
|
|
175
|
+
└── 断点突变会造成跳跃感
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### 流体排版(clamp)
|
|
179
|
+
|
|
180
|
+
```css
|
|
181
|
+
/* 语法:clamp(MIN, PREFERRED, MAX) */
|
|
182
|
+
font-size: clamp(
|
|
183
|
+
MINIMUM_SIZE,
|
|
184
|
+
FLUID_CALCULATION,
|
|
185
|
+
MAXIMUM_SIZE
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
/* FLUID_CALCULATION 常见形式:
|
|
189
|
+
base + viewport-relative-unit */
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### 缩放策略
|
|
193
|
+
|
|
194
|
+
| 元素 | 缩放行为 |
|
|
195
|
+
|-----------------|------------------------------|
|
|
196
|
+
| 正文(body text) | 小幅缩放(如 1rem → 1.125rem) |
|
|
197
|
+
| 副标题(subheadings) | 中等缩放 |
|
|
198
|
+
| 标题(headings) | 更明显缩放 |
|
|
199
|
+
| 展示字(display text) | 缩放幅度最大 |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 6. 字重与强调原则
|
|
204
|
+
|
|
205
|
+
### 语义化字重使用
|
|
206
|
+
|
|
207
|
+
| 字重范围 | 名称 | 用途 |
|
|
208
|
+
|--------------------------|--------------|-----------------|
|
|
209
|
+
| 300-400 | 轻/常规(Light/Normal) | 正文、段落 |
|
|
210
|
+
| 500 | 中(Medium) | 轻强调 |
|
|
211
|
+
| 600 | 半粗(Semibold) | 小标题、标签 |
|
|
212
|
+
| 700 | 粗(Bold) | 标题、强强调 |
|
|
213
|
+
| 800-900 | 重/黑(Heavy/Black) | 展示位、Hero 文本 |
|
|
214
|
+
|
|
215
|
+
### 如何制造对比
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
有效对比 = 至少跨 2 个字重层级
|
|
219
|
+
├── 400 正文 + 700 标题 = 良好
|
|
220
|
+
├── 400 正文 + 500 强调 = 轻度
|
|
221
|
+
└── 600 标题 + 700 副标题 = 过近
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 避免
|
|
225
|
+
|
|
226
|
+
- ❌ 一页使用过多字重(建议最多 3-4 种)。
|
|
227
|
+
- ❌ 相邻字重做层级(如 400/500)导致层级不清。
|
|
228
|
+
- ❌ 长文本使用过重字重。
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 7. 字间距原则(Tracking)
|
|
233
|
+
|
|
234
|
+
### 核心原则
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
大字(标题)应适度收紧字距(tracking):
|
|
238
|
+
├── 字越大,视觉空隙感越明显
|
|
239
|
+
└── 轻微负字距通常更紧凑
|
|
240
|
+
|
|
241
|
+
小字(正文)保持正常或略放宽字距:
|
|
242
|
+
├── 小字号下可读性更关键
|
|
243
|
+
└── 正文不要使用负字距
|
|
244
|
+
|
|
245
|
+
全大写(ALL CAPS)要增大字距:
|
|
246
|
+
├── 大写缺少升降部特征
|
|
247
|
+
└── 需额外空间避免拥挤
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### 调整建议
|
|
251
|
+
|
|
252
|
+
| 场景 | 字距建议 |
|
|
253
|
+
|-----------------|---------------------------------|
|
|
254
|
+
| 展示/主视觉(Display/Hero) | -2% to -4% |
|
|
255
|
+
| 标题(Headings) | -1% to -2% |
|
|
256
|
+
| 正文(Body text) | 0%(默认) |
|
|
257
|
+
| 小字号(Small text) | +1% to +2% |
|
|
258
|
+
| 全大写(ALL CAPS) | +5% to +10% |
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## 8. 层级原则
|
|
263
|
+
|
|
264
|
+
### 通过排版建立视觉层级
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
建立层级的主要手段:
|
|
268
|
+
├── 字号(Size,最直观)
|
|
269
|
+
├── 字重(Weight,突出重点)
|
|
270
|
+
├── 颜色(Color,对比等级)
|
|
271
|
+
├── 间距(Spacing,分隔区块)
|
|
272
|
+
└── 位置(Position,上方优先)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 典型层级
|
|
276
|
+
|
|
277
|
+
| 层级 | 特征 |
|
|
278
|
+
|---------------|--------------------------|
|
|
279
|
+
| 主层级(H1) | 最大、最醒目、辨识度最高 |
|
|
280
|
+
| 次层级(H2) | 明显更小,但仍突出 |
|
|
281
|
+
| 第三层级(H3) | 中等字号,可主要靠字重区分 |
|
|
282
|
+
| 正文 | 标准字号与字重 |
|
|
283
|
+
| 说明/元信息 | 更小字号,常配更浅颜色 |
|
|
284
|
+
|
|
285
|
+
### 层级自测
|
|
286
|
+
|
|
287
|
+
问自己一句:"一眼能看出哪部分最重要吗?"
|
|
288
|
+
|
|
289
|
+
将页面眯眼观察时,层级仍应清晰。
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## 9. 可读性心理学
|
|
294
|
+
|
|
295
|
+
### F 型阅读路径(F-Pattern)
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
用户常按 F 型扫描:
|
|
299
|
+
├── 先横向扫顶部(首行)
|
|
300
|
+
├── 再沿左侧纵向扫读
|
|
301
|
+
├── 再次横向扫(常在副标题)
|
|
302
|
+
└── 继续向下沿左侧浏览
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**含义**:关键信息应优先放在左侧与标题区域。
|
|
306
|
+
|
|
307
|
+
### 分块提升理解(Chunking)
|
|
308
|
+
|
|
309
|
+
- 段落保持简短(建议每段不超过 3-4 行)。
|
|
310
|
+
- 使用清晰小标题。
|
|
311
|
+
- 列表信息优先用 bullet points。
|
|
312
|
+
- 区块之间留出足够留白。
|
|
313
|
+
|
|
314
|
+
### 认知易读性(Cognitive Ease)
|
|
315
|
+
|
|
316
|
+
- 熟悉字体更容易阅读。
|
|
317
|
+
- 高对比降低视觉疲劳。
|
|
318
|
+
- 一致模式提升可预测性。
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## 10. 排版选型检查清单
|
|
323
|
+
|
|
324
|
+
在最终确定排版前:
|
|
325
|
+
|
|
326
|
+
- [ ] **是否先询问了用户的字体偏好?**
|
|
327
|
+
- [ ] **是否考虑品牌与场景语境?**
|
|
328
|
+
- [ ] **是否选择了合适的比例?**
|
|
329
|
+
- [ ] **是否限制在 2-3 个字体家族内?**
|
|
330
|
+
- [ ] **是否在所有字号下验证过可读性?**
|
|
331
|
+
- [ ] **是否检查了行长(45-75ch)?**
|
|
332
|
+
- [ ] **是否验证了无障碍对比度?**
|
|
333
|
+
- [ ] **是否与上一个项目风格有区分?**
|
|
334
|
+
|
|
335
|
+
### 反模式(Anti-Patterns)
|
|
336
|
+
|
|
337
|
+
- ❌ 每个项目都使用同一套字体。
|
|
338
|
+
- ❌ 字体家族过多。
|
|
339
|
+
- ❌ 只追求风格、忽视可读性。
|
|
340
|
+
- ❌ 固定字号且不做响应式。
|
|
341
|
+
- ❌ 正文使用装饰性字体。
|
|
342
|
+
|
|
343
|
+
---
|
|
344
|
+
|
|
345
|
+
> **记住**:Typography 的核心是“信息传达清晰”。优先依据内容需求与受众来做选择,而非个人偏好。
|