@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,432 @@
|
|
|
1
|
+
# 移动端排版参考(Mobile Typography Reference)
|
|
2
|
+
|
|
3
|
+
> 字号比例、系统字体、Dynamic Type、无障碍与暗色模式排版。
|
|
4
|
+
> **排版失败是移动端不可读的头号原因。**
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. 移动端排版基础(Mobile Typography Fundamentals)
|
|
9
|
+
|
|
10
|
+
### 为什么移动端排版不同(Why Mobile Type is Different)
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
DESKTOP: MOBILE:
|
|
14
|
+
├── 20-30" 观看距离 ├── 12-15" 观看距离
|
|
15
|
+
├── 视口大 ├── 视口小且窄
|
|
16
|
+
├── Hover 获取信息 ├── Tap/Scroll 获取信息
|
|
17
|
+
├── 光照可控 ├── 光照变化大(户外等)
|
|
18
|
+
├── 字号固定 ├── 用户可调字号
|
|
19
|
+
└── 长时阅读 └── 快速扫读
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### 移动端排版规则(Mobile Type Rules)
|
|
23
|
+
|
|
24
|
+
| 规则(Rule) | Desktop | Mobile |
|
|
25
|
+
|-------------|---------|--------|
|
|
26
|
+
| **正文最小字号** | 14px | 16px(14pt/14sp) |
|
|
27
|
+
| **最大行长** | 75 字符 | 40-60 字符 |
|
|
28
|
+
| **行高** | 1.4-1.5 | 1.4-1.6(更宽松) |
|
|
29
|
+
| **字重** | 可变 | 正文字重偏 Regular,Bold 克制 |
|
|
30
|
+
| **对比度** | AA(4.5:1) | AA 最低,优选 AAA |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 2. 系统字体(System Fonts)
|
|
35
|
+
|
|
36
|
+
### iOS:SF Pro 家族
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
San Francisco(SF)家族:
|
|
40
|
+
├── SF Pro Display:大标题(≥ 20pt)
|
|
41
|
+
├── SF Pro Text:正文(< 20pt)
|
|
42
|
+
├── SF Pro Rounded:更亲和场景
|
|
43
|
+
├── SF Mono:等宽字体
|
|
44
|
+
└── SF Compact:Apple Watch / 紧凑 UI
|
|
45
|
+
|
|
46
|
+
特性:
|
|
47
|
+
├── Optical sizing(自动光学尺寸调整)
|
|
48
|
+
├── Dynamic tracking(动态字距)
|
|
49
|
+
├── Tabular/Proportional 数字
|
|
50
|
+
├── 可读性极强
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Android:Roboto 家族
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Roboto 家族:
|
|
57
|
+
├── Roboto:默认无衬线
|
|
58
|
+
├── Roboto Flex:可变字体
|
|
59
|
+
├── Roboto Serif:衬线
|
|
60
|
+
├── Roboto Mono:等宽
|
|
61
|
+
├── Roboto Condensed:紧凑版
|
|
62
|
+
|
|
63
|
+
特性:
|
|
64
|
+
├── 屏幕优化
|
|
65
|
+
├── 多语言覆盖
|
|
66
|
+
├── 丰富字重
|
|
67
|
+
├── 小字号清晰
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 何时使用系统字体(When to Use System Fonts)
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
✅ 适合系统字体:
|
|
74
|
+
├── 品牌不要求自定义字体
|
|
75
|
+
├── 阅读效率优先
|
|
76
|
+
├── 原生一致感更重要
|
|
77
|
+
├── 性能关键
|
|
78
|
+
├── 需要广泛语言支持
|
|
79
|
+
|
|
80
|
+
❌ 不适合系统字体:
|
|
81
|
+
├── 强品牌识别必须自定义
|
|
82
|
+
├── 需要视觉差异化
|
|
83
|
+
├── 编辑/杂志型排版
|
|
84
|
+
└──(但仍需兼顾无障碍)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 自定义字体注意事项(Custom Font Considerations)
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
使用自定义字体时:
|
|
91
|
+
├── 仅引入必要字重
|
|
92
|
+
├── 子集化减小体积
|
|
93
|
+
├── 所有 Dynamic Type 尺寸都测试
|
|
94
|
+
├── 兜底为系统字体
|
|
95
|
+
├── 评估渲染质量
|
|
96
|
+
└── 检查语言覆盖
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 3. 字号比例(Type Scale)
|
|
102
|
+
|
|
103
|
+
### iOS 字号体系(Built-in)
|
|
104
|
+
|
|
105
|
+
| Style | Size | Weight | Line Height |
|
|
106
|
+
|-------|------|--------|-------------|
|
|
107
|
+
| Large Title | 34pt | Bold | 41pt |
|
|
108
|
+
| Title 1 | 28pt | Bold | 34pt |
|
|
109
|
+
| Title 2 | 22pt | Bold | 28pt |
|
|
110
|
+
| Title 3 | 20pt | Semibold | 25pt |
|
|
111
|
+
| Headline | 17pt | Semibold | 22pt |
|
|
112
|
+
| Body | 17pt | Regular | 22pt |
|
|
113
|
+
| Callout | 16pt | Regular | 21pt |
|
|
114
|
+
| Subhead | 15pt | Regular | 20pt |
|
|
115
|
+
| Footnote | 13pt | Regular | 18pt |
|
|
116
|
+
| Caption 1 | 12pt | Regular | 16pt |
|
|
117
|
+
| Caption 2 | 11pt | Regular | 13pt |
|
|
118
|
+
|
|
119
|
+
### Android 字号体系(Material 3)
|
|
120
|
+
|
|
121
|
+
| Role | Size | Weight | Line Height |
|
|
122
|
+
|------|------|--------|-------------|
|
|
123
|
+
| Display Large | 57sp | 400 | 64sp |
|
|
124
|
+
| Display Medium | 45sp | 400 | 52sp |
|
|
125
|
+
| Display Small | 36sp | 400 | 44sp |
|
|
126
|
+
| Headline Large | 32sp | 400 | 40sp |
|
|
127
|
+
| Headline Medium | 28sp | 400 | 36sp |
|
|
128
|
+
| Headline Small | 24sp | 400 | 32sp |
|
|
129
|
+
| Title Large | 22sp | 400 | 28sp |
|
|
130
|
+
| Title Medium | 16sp | 500 | 24sp |
|
|
131
|
+
| Title Small | 14sp | 500 | 20sp |
|
|
132
|
+
| Body Large | 16sp | 400 | 24sp |
|
|
133
|
+
| Body Medium | 14sp | 400 | 20sp |
|
|
134
|
+
| Body Small | 12sp | 400 | 16sp |
|
|
135
|
+
| Label Large | 14sp | 500 | 20sp |
|
|
136
|
+
| Label Medium | 12sp | 500 | 16sp |
|
|
137
|
+
| Label Small | 11sp | 500 | 16sp |
|
|
138
|
+
|
|
139
|
+
### 自定义比例(Creating Custom Scale)
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
若需自定义比例,使用 modular ratio:
|
|
143
|
+
|
|
144
|
+
推荐比例:
|
|
145
|
+
├── 1.125(Major second):密集 UI
|
|
146
|
+
├── 1.200(Minor third):紧凑
|
|
147
|
+
├── 1.250(Major third):平衡(常见)
|
|
148
|
+
├── 1.333(Perfect fourth):宽松
|
|
149
|
+
└── 1.500(Perfect fifth):戏剧化
|
|
150
|
+
|
|
151
|
+
以 1.25 比例,16px 为 base 示例:
|
|
152
|
+
├── xs: 10px(16 ÷ 1.25 ÷ 1.25)
|
|
153
|
+
├── sm: 13px(16 ÷ 1.25)
|
|
154
|
+
├── base: 16px
|
|
155
|
+
├── lg: 20px(16 × 1.25)
|
|
156
|
+
├── xl: 25px(16 × 1.25 × 1.25)
|
|
157
|
+
├── 2xl: 31px
|
|
158
|
+
├── 3xl: 39px
|
|
159
|
+
└── 4xl: 49px
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 4. Dynamic Type / Text Scaling
|
|
165
|
+
|
|
166
|
+
### iOS Dynamic Type(必须支持)
|
|
167
|
+
|
|
168
|
+
```swift
|
|
169
|
+
// ❌ 错误:固定字号(不随用户设置缩放)
|
|
170
|
+
Text("Hello")
|
|
171
|
+
.font(.system(size: 17))
|
|
172
|
+
|
|
173
|
+
// ✅ 正确:Dynamic Type
|
|
174
|
+
Text("Hello")
|
|
175
|
+
.font(.body) // 随系统设置缩放
|
|
176
|
+
|
|
177
|
+
// 自定义字体 + Dynamic Type
|
|
178
|
+
Text("Hello")
|
|
179
|
+
.font(.custom("MyFont", size: 17, relativeTo: .body))
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Android 文本缩放(必须支持)
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
始终用 sp:
|
|
186
|
+
├── sp = Scale-independent pixels
|
|
187
|
+
├── 随系统字体设置缩放
|
|
188
|
+
├── dp 不会缩放(不要用于文字)
|
|
189
|
+
|
|
190
|
+
用户可从 85% 放大到 200%:
|
|
191
|
+
├── 默认(100%):14sp = 14dp
|
|
192
|
+
├── 最大(200%):14sp = 28dp
|
|
193
|
+
|
|
194
|
+
必须测试 200%!
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 缩放挑战(Scaling Challenges)
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
大字号问题:
|
|
201
|
+
├── 文本溢出容器
|
|
202
|
+
├── 按钮过高
|
|
203
|
+
├── 图标相对文字显得过小
|
|
204
|
+
├── 布局断裂
|
|
205
|
+
|
|
206
|
+
解决方案:
|
|
207
|
+
├── 使用弹性容器(不要固定高度)
|
|
208
|
+
├── 允许文本换行
|
|
209
|
+
├── 图标随文字缩放
|
|
210
|
+
├── 开发时测试极端字号
|
|
211
|
+
├── 长文用可滚动容器
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## 5. 排版无障碍(Typography Accessibility)
|
|
217
|
+
|
|
218
|
+
### 最小字号(Minimum Sizes)
|
|
219
|
+
|
|
220
|
+
| 元素(Element) | 最小值(Minimum) | 推荐值(Recommended) |
|
|
221
|
+
|----------------|-------------------|------------------------|
|
|
222
|
+
| Body text | 14px/pt/sp | 16px/pt/sp |
|
|
223
|
+
| Secondary text | 12px/pt/sp | 13-14px/pt/sp |
|
|
224
|
+
| Captions | 11px/pt/sp | 12px/pt/sp |
|
|
225
|
+
| Buttons | 14px/pt/sp | 14-16px/pt/sp |
|
|
226
|
+
| **Nothing smaller** | 11px | - |
|
|
227
|
+
|
|
228
|
+
### 对比度要求(Contrast Requirements, WCAG)
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
普通文本(< 18pt 或 < 14pt bold):
|
|
232
|
+
├── AA:最小 4.5:1
|
|
233
|
+
├── AAA:建议 7:1
|
|
234
|
+
|
|
235
|
+
大文本(≥ 18pt 或 ≥ 14pt bold):
|
|
236
|
+
├── AA:最小 3:1
|
|
237
|
+
├── AAA:建议 4.5:1
|
|
238
|
+
|
|
239
|
+
Logo/装饰性文本:无硬性要求
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### 无障碍行高(Line Height for Accessibility)
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
WCAG Success Criterion 1.4.12:
|
|
246
|
+
|
|
247
|
+
行高(line spacing):≥ 1.5×
|
|
248
|
+
段落间距:≥ 字号的 2×
|
|
249
|
+
字母间距:≥ 字号的 0.12×
|
|
250
|
+
词间距:≥ 字号的 0.16×
|
|
251
|
+
|
|
252
|
+
移动端建议:
|
|
253
|
+
├── 正文:1.4-1.6
|
|
254
|
+
├── 标题:1.2-1.3
|
|
255
|
+
├── 不低于 1.2
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 6. 暗色模式排版(Dark Mode Typography)
|
|
261
|
+
|
|
262
|
+
### 颜色调整(Color Adjustments)
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
Light Mode: Dark Mode:
|
|
266
|
+
├── 黑字(#000) ├── 白/浅灰(#E0E0E0)
|
|
267
|
+
├── 高对比 ├── 对比略降
|
|
268
|
+
├── 饱和度更高 ├── 去饱和
|
|
269
|
+
└── 深色用于强调 └── 浅色用于强调
|
|
270
|
+
|
|
271
|
+
规则:不要在深色背景用纯白(#FFF)。
|
|
272
|
+
用 off-white(#E0E0E0 ~ #F0F0F0)减少视觉疲劳。
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### 暗色模式层级(Dark Mode Hierarchy)
|
|
276
|
+
|
|
277
|
+
| 层级(Level) | Light Mode | Dark Mode |
|
|
278
|
+
|--------------|------------|-----------|
|
|
279
|
+
| Primary text | #000000 | #E8E8E8 |
|
|
280
|
+
| Secondary text | #666666 | #A0A0A0 |
|
|
281
|
+
| Tertiary text | #999999 | #707070 |
|
|
282
|
+
| Disabled text | #CCCCCC | #505050 |
|
|
283
|
+
|
|
284
|
+
### 暗色模式字重(Weight in Dark Mode)
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
暗色模式下文字视觉更细(光晕效应)。
|
|
288
|
+
|
|
289
|
+
建议:
|
|
290
|
+
├── 正文可用 medium 替代 regular
|
|
291
|
+
├── 轻微增加字距
|
|
292
|
+
├── 在 OLED 真机测试
|
|
293
|
+
└── 比亮色模式稍加粗
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## 7. 排版反模式(Typography Anti-Patterns)
|
|
299
|
+
|
|
300
|
+
### ❌ 常见错误
|
|
301
|
+
|
|
302
|
+
| 错误(Mistake) | 问题(Problem) | 修复(Fix) |
|
|
303
|
+
|----------------|-----------------|-------------|
|
|
304
|
+
| **固定字号** | 无障碍失效 | 动态缩放 |
|
|
305
|
+
| **文字过小** | 不可读 | 正文 ≥ 14pt/sp |
|
|
306
|
+
| **对比度过低** | 阳光下不可见 | ≥ 4.5:1 |
|
|
307
|
+
| **行过长** | 难追踪 | ≤ 60 字符 |
|
|
308
|
+
| **行高过紧** | 拥挤难读 | ≥ 1.4× |
|
|
309
|
+
| **字号过多** | 视觉混乱 | ≤ 5-7 个字号 |
|
|
310
|
+
| **正文全大写** | 难读 | 仅标题使用 |
|
|
311
|
+
| **浅灰对白** | 强光下不可见 | 提高对比 |
|
|
312
|
+
|
|
313
|
+
### ❌ AI 排版常见错误
|
|
314
|
+
|
|
315
|
+
```
|
|
316
|
+
AI 常见问题:
|
|
317
|
+
├── 使用固定 px 而非 pt/sp
|
|
318
|
+
├── 忽略 Dynamic Type
|
|
319
|
+
├── 正文过小(12-14px)
|
|
320
|
+
├── 忽略行高
|
|
321
|
+
├── 低对比“美学灰”
|
|
322
|
+
├── 移动端套用桌面比例
|
|
323
|
+
└── 不做大字号测试
|
|
324
|
+
|
|
325
|
+
规则:排版必须能缩放。
|
|
326
|
+
必须测试最小与最大设置。
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 8. 字体加载与性能(Font Loading & Performance)
|
|
332
|
+
|
|
333
|
+
### 字体文件优化(Font File Optimization)
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
字体体积在移动端很敏感:
|
|
337
|
+
├── 完整字体:每个字重 100-300KB
|
|
338
|
+
├── 子集(Latin):每个字重 15-40KB
|
|
339
|
+
├── 变量字体:100-200KB(含所有字重)
|
|
340
|
+
|
|
341
|
+
建议:
|
|
342
|
+
├── 只保留必要字符集
|
|
343
|
+
├── 使用 WOFF2
|
|
344
|
+
├── 最多 2-3 个字体文件
|
|
345
|
+
├── 可优先 variable font
|
|
346
|
+
├── 合理缓存
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### 加载策略(Loading Strategy)
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
1. 系统字体兜底
|
|
353
|
+
先显示系统字体 → 自定义字体加载后替换
|
|
354
|
+
|
|
355
|
+
2. font-display: swap
|
|
356
|
+
避免文字空白
|
|
357
|
+
|
|
358
|
+
3. 预加载关键字体
|
|
359
|
+
首屏必要字体预加载
|
|
360
|
+
|
|
361
|
+
4. 不阻塞渲染
|
|
362
|
+
不要为了字体延迟内容展示
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## 9. 排版检查清单(Typography Checklist)
|
|
368
|
+
|
|
369
|
+
### 任意文本设计前(Before Any Text Design)
|
|
370
|
+
|
|
371
|
+
- [ ] 正文 ≥ 16px/pt/sp?
|
|
372
|
+
- [ ] 行高 ≥ 1.4?
|
|
373
|
+
- [ ] 行长 ≤ 60 字符?
|
|
374
|
+
- [ ] 字号层级明确(≤ 5-7 个字号)?
|
|
375
|
+
- [ ] iOS 使用 pt / Android 使用 sp?
|
|
376
|
+
|
|
377
|
+
### 发布前(Before Release)
|
|
378
|
+
|
|
379
|
+
- [ ] iOS Dynamic Type 测试通过?
|
|
380
|
+
- [ ] Android 字体缩放 200% 测试?
|
|
381
|
+
- [ ] 暗色模式对比度检查?
|
|
382
|
+
- [ ] 强光可读性测试?
|
|
383
|
+
- [ ] 文本层级清晰?
|
|
384
|
+
- [ ] 自定义字体有系统兜底?
|
|
385
|
+
- [ ] 长文本滚动正常?
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## 10. 速查(Quick Reference)
|
|
390
|
+
|
|
391
|
+
### 排版 Token
|
|
392
|
+
|
|
393
|
+
```
|
|
394
|
+
// iOS
|
|
395
|
+
.largeTitle // 34pt, Bold
|
|
396
|
+
.title // 28pt, Bold
|
|
397
|
+
.title2 // 22pt, Bold
|
|
398
|
+
.title3 // 20pt, Semibold
|
|
399
|
+
.headline // 17pt, Semibold
|
|
400
|
+
.body // 17pt, Regular
|
|
401
|
+
.subheadline // 15pt, Regular
|
|
402
|
+
.footnote // 13pt, Regular
|
|
403
|
+
.caption // 12pt, Regular
|
|
404
|
+
|
|
405
|
+
// Android (Material 3)
|
|
406
|
+
displayLarge // 57sp
|
|
407
|
+
headlineLarge // 32sp
|
|
408
|
+
titleLarge // 22sp
|
|
409
|
+
bodyLarge // 16sp
|
|
410
|
+
labelLarge // 14sp
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### 最小字号(Minimum Sizes)
|
|
414
|
+
|
|
415
|
+
```
|
|
416
|
+
Body: 14-16pt/sp(16 优先)
|
|
417
|
+
Secondary: 12-13pt/sp
|
|
418
|
+
Caption: 11-12pt/sp
|
|
419
|
+
Nothing: < 11pt/sp
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### 行高(Line Height)
|
|
423
|
+
|
|
424
|
+
```
|
|
425
|
+
Headings: 1.1-1.3
|
|
426
|
+
Body: 1.4-1.6
|
|
427
|
+
Long text: 1.5-1.75
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
> **记住(Remember)**:如果用户读不清你的文字,App 就是坏的。排版不是装饰,它是主要界面。必须在真实设备、真实光线与无障碍设置下测试。
|