@deernova/style 0.2.0 → 0.3.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/README.md +19 -9
- package/bin/cli.mjs +212 -32
- package/package.json +1 -1
- package/skill/SKILL.md +90 -22
- package/skill/assets/DeernovaTokens.swift +376 -0
- package/skill/assets/screens/iphone-button-sizes-dark.png +0 -0
- package/skill/assets/screens/iphone-button-sizes-light.png +0 -0
- package/skill/assets/screens/iphone-screens-dark.png +0 -0
- package/skill/assets/screens/iphone-screens-light.png +0 -0
- package/skill/assets/screens/mac-window-dark.png +0 -0
- package/skill/assets/screens/mac-window-light.png +0 -0
- package/skill/assets/tailwind.css +106 -0
- package/skill/assets/tokens.css +533 -0
- package/skill/assets/tokens.json +1686 -0
- package/skill/manifest.json +2 -22
- package/skill/references/components/banner.md +95 -0
- package/skill/references/components/button.md +181 -0
- package/skill/references/components/card.md +89 -0
- package/skill/references/components/code-block.md +77 -0
- package/skill/references/components/composer.md +206 -0
- package/skill/references/components/empty-state.md +63 -0
- package/skill/references/components/glass-controls.md +127 -0
- package/skill/references/components/list.md +130 -0
- package/skill/references/components/message.md +94 -0
- package/skill/references/components/segmented.md +79 -0
- package/skill/references/components/sheet.md +84 -0
- package/skill/references/components/sidebar.md +139 -0
- package/skill/references/components/step-row.md +135 -0
- package/skill/references/components/tag.md +86 -0
- package/skill/references/components/task-list.md +83 -0
- package/skill/references/components/text-field.md +86 -0
- package/skill/references/components/toolbar.md +139 -0
- package/skill/references/foundations/accessibility.md +27 -0
- package/skill/references/foundations/color.md +58 -0
- package/skill/references/foundations/elevation.md +17 -0
- package/skill/references/foundations/glass.md +36 -0
- package/skill/references/foundations/iconography.md +44 -0
- package/skill/references/foundations/motion.md +22 -0
- package/skill/references/foundations/radius.md +31 -0
- package/skill/references/foundations/spacing.md +38 -0
- package/skill/references/foundations/stroke.md +35 -0
- package/skill/references/foundations/typography.md +54 -0
- package/skill/references/foundations/writing.md +10 -0
- package/skill/references/review.md +26 -13
- package/skill/references/scenes/ios.md +61 -0
- package/skill/references/scenes/ipados.md +42 -0
- package/skill/references/scenes/macos.md +65 -0
- package/skill/references/scenes/swiftui.md +94 -0
- package/skill/references/scenes/web-marketing.md +34 -0
- package/skill/references/scenes/web.md +83 -0
- package/skill/references/tokens.md +441 -74
- package/skill/assets/design/README.md +0 -170
- package/skill/assets/design/components/Banner/README.md +0 -33
- package/skill/assets/design/components/Banner/preview.html +0 -26
- package/skill/assets/design/components/Button/README.md +0 -59
- package/skill/assets/design/components/Button/preview.html +0 -27
- package/skill/assets/design/components/Card/README.md +0 -31
- package/skill/assets/design/components/Card/preview.html +0 -24
- package/skill/assets/design/components/CodeBlock/README.md +0 -34
- package/skill/assets/design/components/CodeBlock/preview.html +0 -16
- package/skill/assets/design/components/Composer/README.md +0 -42
- package/skill/assets/design/components/Composer/preview.html +0 -28
- package/skill/assets/design/components/Cover/preview.html +0 -53
- package/skill/assets/design/components/EmptyState/README.md +0 -28
- package/skill/assets/design/components/EmptyState/preview.html +0 -16
- package/skill/assets/design/components/GlassControls/README.md +0 -43
- package/skill/assets/design/components/GlassControls/preview.html +0 -40
- package/skill/assets/design/components/ListGroup/README.md +0 -39
- package/skill/assets/design/components/ListGroup/preview.html +0 -22
- package/skill/assets/design/components/MacWindow/README.md +0 -27
- package/skill/assets/design/components/MacWindow/preview.html +0 -70
- package/skill/assets/design/components/Message/README.md +0 -31
- package/skill/assets/design/components/Message/preview.html +0 -21
- package/skill/assets/design/components/PhoneScreen/README.md +0 -25
- package/skill/assets/design/components/PhoneScreen/preview.html +0 -74
- package/skill/assets/design/components/Segmented/README.md +0 -21
- package/skill/assets/design/components/Segmented/preview.html +0 -21
- package/skill/assets/design/components/Sheet/README.md +0 -29
- package/skill/assets/design/components/Sheet/preview.html +0 -31
- package/skill/assets/design/components/Sidebar/README.md +0 -36
- package/skill/assets/design/components/Sidebar/preview.html +0 -20
- package/skill/assets/design/components/StepRow/README.md +0 -35
- package/skill/assets/design/components/StepRow/preview.html +0 -17
- package/skill/assets/design/components/Tag/README.md +0 -36
- package/skill/assets/design/components/Tag/preview.html +0 -22
- package/skill/assets/design/components/TextField/README.md +0 -29
- package/skill/assets/design/components/TextField/preview.html +0 -28
- package/skill/assets/design/components/bundle.css +0 -189
- package/skill/assets/design/design-system.json +0 -25
- package/skill/assets/design/images/Banner-dark.png +0 -0
- package/skill/assets/design/images/Banner-light.png +0 -0
- package/skill/assets/design/images/Button-dark.png +0 -0
- package/skill/assets/design/images/Button-light.png +0 -0
- package/skill/assets/design/images/Card-dark.png +0 -0
- package/skill/assets/design/images/Card-light.png +0 -0
- package/skill/assets/design/images/CodeBlock-dark.png +0 -0
- package/skill/assets/design/images/CodeBlock-light.png +0 -0
- package/skill/assets/design/images/Composer-dark.png +0 -0
- package/skill/assets/design/images/Composer-light.png +0 -0
- package/skill/assets/design/images/Cover-dark.png +0 -0
- package/skill/assets/design/images/Cover-light.png +0 -0
- package/skill/assets/design/images/EmptyState-dark.png +0 -0
- package/skill/assets/design/images/EmptyState-light.png +0 -0
- package/skill/assets/design/images/Example-iOSButtonsInPhone-dark.png +0 -0
- package/skill/assets/design/images/Example-iOSButtonsInPhone-light.png +0 -0
- package/skill/assets/design/images/GlassControls-dark.png +0 -0
- package/skill/assets/design/images/GlassControls-light.png +0 -0
- package/skill/assets/design/images/ListGroup-dark.png +0 -0
- package/skill/assets/design/images/ListGroup-light.png +0 -0
- package/skill/assets/design/images/MacWindow-dark.png +0 -0
- package/skill/assets/design/images/MacWindow-light.png +0 -0
- package/skill/assets/design/images/Message-dark.png +0 -0
- package/skill/assets/design/images/Message-light.png +0 -0
- package/skill/assets/design/images/PhoneScreen-dark.png +0 -0
- package/skill/assets/design/images/PhoneScreen-light.png +0 -0
- package/skill/assets/design/images/Segmented-dark.png +0 -0
- package/skill/assets/design/images/Segmented-light.png +0 -0
- package/skill/assets/design/images/Sheet-dark.png +0 -0
- package/skill/assets/design/images/Sheet-light.png +0 -0
- package/skill/assets/design/images/Sidebar-dark.png +0 -0
- package/skill/assets/design/images/Sidebar-light.png +0 -0
- package/skill/assets/design/images/StepRow-dark.png +0 -0
- package/skill/assets/design/images/StepRow-light.png +0 -0
- package/skill/assets/design/images/Tag-dark.png +0 -0
- package/skill/assets/design/images/Tag-light.png +0 -0
- package/skill/assets/design/images/TextField-dark.png +0 -0
- package/skill/assets/design/images/TextField-light.png +0 -0
- package/skill/assets/design/tokens.css +0 -187
- package/skill/assets/design/tokens.json +0 -142
- package/skill/references/components.md +0 -648
- package/skill/references/foundations.md +0 -170
- package/skill/references/native.md +0 -7
- package/skill/references/web.md +0 -11
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/* Generated from design/tokens.json. Do not edit. */
|
|
2
|
-
:root {
|
|
3
|
-
--canvas: #f5f5f5;
|
|
4
|
-
--surface: #fafafa;
|
|
5
|
-
--surface-raised: #ffffff;
|
|
6
|
-
--surface-sunken: #ebebeb;
|
|
7
|
-
--ink: #171717;
|
|
8
|
-
--ink-secondary: #525252;
|
|
9
|
-
--ink-tertiary: #666666;
|
|
10
|
-
--line: #e3e3e3;
|
|
11
|
-
--line-control: #8a8a8a;
|
|
12
|
-
--accent: var(--ink);
|
|
13
|
-
--accent-soft: #e8e8e8;
|
|
14
|
-
--on-accent: #ffffff;
|
|
15
|
-
--focus-ring: var(--accent);
|
|
16
|
-
--success: #1f6b66;
|
|
17
|
-
--success-soft: #ddeeec;
|
|
18
|
-
--warning: #8a5a0b;
|
|
19
|
-
--warning-soft: #f5ead3;
|
|
20
|
-
--danger: #b0283f;
|
|
21
|
-
--danger-soft: #f7e1e4;
|
|
22
|
-
--info: #2c5f86;
|
|
23
|
-
--info-soft: #e1ebf3;
|
|
24
|
-
--fill-hover: #0000000a;
|
|
25
|
-
--fill-selected: #00000012;
|
|
26
|
-
--knob: #ffffff;
|
|
27
|
-
--scrim: #00000052;
|
|
28
|
-
--glass-fill: #ffffffa6;
|
|
29
|
-
--glass-stroke: #ffffffcc;
|
|
30
|
-
--shadow-control: 0 1px 1px rgba(0, 0, 0, 0.05);
|
|
31
|
-
--shadow-float: 0 1px 2px rgba(0, 0, 0, 0.05), 0 6px 20px rgba(0, 0, 0, 0.08);
|
|
32
|
-
--shadow-glass: 0 4px 14px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.70);
|
|
33
|
-
--space-1: 4px;
|
|
34
|
-
--space-2: 8px;
|
|
35
|
-
--space-3: 12px;
|
|
36
|
-
--space-4: 16px;
|
|
37
|
-
--space-5: 20px;
|
|
38
|
-
--space-6: 24px;
|
|
39
|
-
--space-8: 32px;
|
|
40
|
-
--space-10: 40px;
|
|
41
|
-
--radius-xs: 4px;
|
|
42
|
-
--radius-sm: 6px;
|
|
43
|
-
--radius-md: 8px;
|
|
44
|
-
--radius-lg: 12px;
|
|
45
|
-
--radius-xl: 24px;
|
|
46
|
-
--radius-full: 999px;
|
|
47
|
-
--stroke-hairline: 0.5px;
|
|
48
|
-
--stroke-control: 1px;
|
|
49
|
-
--stroke-focus: 2px;
|
|
50
|
-
--control-mac-sm: 20px;
|
|
51
|
-
--control-mac: 24px;
|
|
52
|
-
--control-mac-lg: 28px;
|
|
53
|
-
--row-mac: 26px;
|
|
54
|
-
--control-ios: 44px;
|
|
55
|
-
--button-ios-sm: 30px;
|
|
56
|
-
--button-ios: 36px;
|
|
57
|
-
--control-ios-lg: 46px;
|
|
58
|
-
--sidebar-mac: 220px;
|
|
59
|
-
--content-max: 680px;
|
|
60
|
-
--font-serif: ui-serif, "New York", "Iowan Old Style", Georgia, "PingFang SC", serif;
|
|
61
|
-
--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif;
|
|
62
|
-
--font-mono: ui-monospace, "SF Mono", Menlo, "PingFang SC", monospace;
|
|
63
|
-
}
|
|
64
|
-
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){
|
|
65
|
-
--canvas: #161616;
|
|
66
|
-
--surface: #1c1c1c;
|
|
67
|
-
--surface-raised: #252525;
|
|
68
|
-
--surface-sunken: #111111;
|
|
69
|
-
--ink: #ededed;
|
|
70
|
-
--ink-secondary: #a3a3a3;
|
|
71
|
-
--ink-tertiary: #8c8c8c;
|
|
72
|
-
--line: #2f2f2f;
|
|
73
|
-
--line-control: #737373;
|
|
74
|
-
--accent: var(--ink);
|
|
75
|
-
--accent-soft: #2e2e2e;
|
|
76
|
-
--on-accent: #161616;
|
|
77
|
-
--focus-ring: var(--accent);
|
|
78
|
-
--success: #6cc3b4;
|
|
79
|
-
--success-soft: #183230;
|
|
80
|
-
--warning: #e2b054;
|
|
81
|
-
--warning-soft: #3a2e17;
|
|
82
|
-
--danger: #f07a8a;
|
|
83
|
-
--danger-soft: #3d2027;
|
|
84
|
-
--info: #82b4dc;
|
|
85
|
-
--info-soft: #1d2c3a;
|
|
86
|
-
--fill-hover: #ffffff0f;
|
|
87
|
-
--fill-selected: #ffffff1a;
|
|
88
|
-
--knob: #ffffff;
|
|
89
|
-
--scrim: #00000080;
|
|
90
|
-
--glass-fill: #2a2a2aa6;
|
|
91
|
-
--glass-stroke: #ffffff24;
|
|
92
|
-
--shadow-control: 0 1px 1px rgba(0, 0, 0, 0.30);
|
|
93
|
-
--shadow-float: 0 1px 2px rgba(0, 0, 0, 0.40), 0 6px 20px rgba(0, 0, 0, 0.45);
|
|
94
|
-
--shadow-glass: 0 4px 14px rgba(0, 0, 0, 0.40), inset 0 1px 0 rgba(255, 255, 255, 0.10);
|
|
95
|
-
--space-1: 4px;
|
|
96
|
-
--space-2: 8px;
|
|
97
|
-
--space-3: 12px;
|
|
98
|
-
--space-4: 16px;
|
|
99
|
-
--space-5: 20px;
|
|
100
|
-
--space-6: 24px;
|
|
101
|
-
--space-8: 32px;
|
|
102
|
-
--space-10: 40px;
|
|
103
|
-
--radius-xs: 4px;
|
|
104
|
-
--radius-sm: 6px;
|
|
105
|
-
--radius-md: 8px;
|
|
106
|
-
--radius-lg: 12px;
|
|
107
|
-
--radius-xl: 24px;
|
|
108
|
-
--radius-full: 999px;
|
|
109
|
-
--stroke-hairline: 0.5px;
|
|
110
|
-
--stroke-control: 1px;
|
|
111
|
-
--stroke-focus: 2px;
|
|
112
|
-
--control-mac-sm: 20px;
|
|
113
|
-
--control-mac: 24px;
|
|
114
|
-
--control-mac-lg: 28px;
|
|
115
|
-
--row-mac: 26px;
|
|
116
|
-
--control-ios: 44px;
|
|
117
|
-
--button-ios-sm: 30px;
|
|
118
|
-
--button-ios: 36px;
|
|
119
|
-
--control-ios-lg: 46px;
|
|
120
|
-
--sidebar-mac: 220px;
|
|
121
|
-
--content-max: 680px;
|
|
122
|
-
--font-serif: ui-serif, "New York", "Iowan Old Style", Georgia, "PingFang SC", serif;
|
|
123
|
-
--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif;
|
|
124
|
-
--font-mono: ui-monospace, "SF Mono", Menlo, "PingFang SC", monospace;
|
|
125
|
-
}}
|
|
126
|
-
:root[data-theme="dark"]{
|
|
127
|
-
--canvas: #161616;
|
|
128
|
-
--surface: #1c1c1c;
|
|
129
|
-
--surface-raised: #252525;
|
|
130
|
-
--surface-sunken: #111111;
|
|
131
|
-
--ink: #ededed;
|
|
132
|
-
--ink-secondary: #a3a3a3;
|
|
133
|
-
--ink-tertiary: #8c8c8c;
|
|
134
|
-
--line: #2f2f2f;
|
|
135
|
-
--line-control: #737373;
|
|
136
|
-
--accent: var(--ink);
|
|
137
|
-
--accent-soft: #2e2e2e;
|
|
138
|
-
--on-accent: #161616;
|
|
139
|
-
--focus-ring: var(--accent);
|
|
140
|
-
--success: #6cc3b4;
|
|
141
|
-
--success-soft: #183230;
|
|
142
|
-
--warning: #e2b054;
|
|
143
|
-
--warning-soft: #3a2e17;
|
|
144
|
-
--danger: #f07a8a;
|
|
145
|
-
--danger-soft: #3d2027;
|
|
146
|
-
--info: #82b4dc;
|
|
147
|
-
--info-soft: #1d2c3a;
|
|
148
|
-
--fill-hover: #ffffff0f;
|
|
149
|
-
--fill-selected: #ffffff1a;
|
|
150
|
-
--knob: #ffffff;
|
|
151
|
-
--scrim: #00000080;
|
|
152
|
-
--glass-fill: #2a2a2aa6;
|
|
153
|
-
--glass-stroke: #ffffff24;
|
|
154
|
-
--shadow-control: 0 1px 1px rgba(0, 0, 0, 0.30);
|
|
155
|
-
--shadow-float: 0 1px 2px rgba(0, 0, 0, 0.40), 0 6px 20px rgba(0, 0, 0, 0.45);
|
|
156
|
-
--shadow-glass: 0 4px 14px rgba(0, 0, 0, 0.40), inset 0 1px 0 rgba(255, 255, 255, 0.10);
|
|
157
|
-
--space-1: 4px;
|
|
158
|
-
--space-2: 8px;
|
|
159
|
-
--space-3: 12px;
|
|
160
|
-
--space-4: 16px;
|
|
161
|
-
--space-5: 20px;
|
|
162
|
-
--space-6: 24px;
|
|
163
|
-
--space-8: 32px;
|
|
164
|
-
--space-10: 40px;
|
|
165
|
-
--radius-xs: 4px;
|
|
166
|
-
--radius-sm: 6px;
|
|
167
|
-
--radius-md: 8px;
|
|
168
|
-
--radius-lg: 12px;
|
|
169
|
-
--radius-xl: 24px;
|
|
170
|
-
--radius-full: 999px;
|
|
171
|
-
--stroke-hairline: 0.5px;
|
|
172
|
-
--stroke-control: 1px;
|
|
173
|
-
--stroke-focus: 2px;
|
|
174
|
-
--control-mac-sm: 20px;
|
|
175
|
-
--control-mac: 24px;
|
|
176
|
-
--control-mac-lg: 28px;
|
|
177
|
-
--row-mac: 26px;
|
|
178
|
-
--control-ios: 44px;
|
|
179
|
-
--button-ios-sm: 30px;
|
|
180
|
-
--button-ios: 36px;
|
|
181
|
-
--control-ios-lg: 46px;
|
|
182
|
-
--sidebar-mac: 220px;
|
|
183
|
-
--content-max: 680px;
|
|
184
|
-
--font-serif: ui-serif, "New York", "Iowan Old Style", Georgia, "PingFang SC", serif;
|
|
185
|
-
--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", system-ui, sans-serif;
|
|
186
|
-
--font-mono: ui-monospace, "SF Mono", Menlo, "PingFang SC", monospace;
|
|
187
|
-
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Deernova",
|
|
3
|
-
"version": 2,
|
|
4
|
-
"color": {
|
|
5
|
-
"themes": [
|
|
6
|
-
{ "id": "light", "name": "Light" },
|
|
7
|
-
{ "id": "dark", "name": "Dark" }
|
|
8
|
-
],
|
|
9
|
-
"tokens": [
|
|
10
|
-
{ "name": "canvas", "value": { "light": "#f5f5f5", "dark": "#161616" }, "usage": "窗口底色、iOS 分组列表的底色。最底层的纸面。" },
|
|
11
|
-
{ "name": "surface", "value": { "light": "#fafafa", "dark": "#1c1c1c" }, "usage": "内容区、卡片。比 canvas 略亮一层。" },
|
|
12
|
-
{ "name": "surface-raised", "value": { "light": "#ffffff", "dark": "#252525" }, "usage": "输入框、Composer、iOS 分组列表、弹出层。最亮的纸面。" },
|
|
13
|
-
{ "name": "surface-sunken", "value": { "light": "#ebebeb", "dark": "#111111" }, "usage": "代码块、用户消息气泡、展开的步骤详情。凹下去的纸面。" },
|
|
14
|
-
{ "name": "ink", "value": { "light": "#171717", "dark": "#ededed" }, "usage": "正文与标题,用在四种纸面上(最低 13:1)。" },
|
|
15
|
-
{ "name": "ink-secondary", "value": { "light": "#525252", "dark": "#a3a3a3" }, "usage": "次要文字、说明、列表的值、未选中图标,用在四种纸面上(最低 6:1)。" },
|
|
16
|
-
{ "name": "ink-tertiary", "value": { "light": "#666666", "dark": "#8c8c8c" }, "usage": "占位符、时间戳、计数、分组标题,用在四种纸面上(最低 4.5:1)。" },
|
|
17
|
-
{ "name": "line", "value": { "light": "#e3e3e3", "dark": "#2f2f2f" }, "usage": "分隔线、卡片描边、按钮描边。装饰性,不承载信息。" },
|
|
18
|
-
{ "name": "line-control", "value": { "light": "#8a8a8a", "dark": "#737373" }, "usage": "输入框边框、拖拽条。在 canvas、surface、surface-raised 上不低于 3:1,让人一眼看出可输入。" },
|
|
19
|
-
{ "name": "accent", "value": "{ink}", "usage": "强调:主按钮填充、选中指示、焦点环。就是墨色本身,浅色主题为黑、深色主题为白;强调靠明暗对比,不靠彩色。" },
|
|
20
|
-
{ "name": "accent-soft", "value": { "light": "#e8e8e8", "dark": "#2e2e2e" }, "usage": "强调的浅底:强调标签、列表图标底、输入框聚焦光晕。上面的文字用 ink。" },
|
|
21
|
-
{ "name": "on-accent", "value": { "light": "#ffffff", "dark": "#161616" }, "usage": "accent 填充上的文字和图标:浅色主题白字,深色主题黑字。" },
|
|
22
|
-
{ "name": "focus-ring", "value": "{accent}", "usage": "键盘焦点环:2pt 实线,外偏移 2pt。在所有纸面上不低于 13:1。" },
|
|
23
|
-
{ "name": "success", "value": { "light": "#1f6b66", "dark": "#6cc3b4" }, "usage": "成功、已完成、已同步。界面里只有状态色是彩色,只在表达状态时出现。作为文字用在纸面和 success-soft 上。" },
|
|
24
|
-
{ "name": "success-soft", "value": { "light": "#ddeeec", "dark": "#183230" }, "usage": "成功状态的浅底(标签、横幅)。" },
|
|
25
|
-
{ "name": "warning", "value": { "light": "#8a5a0b", "dark": "#e2b054" }, "usage": "需要注意但不阻断:额度将用完、网络较慢。作为文字用在纸面和 warning-soft 上。" },
|
|
26
|
-
{ "name": "warning-soft", "value": { "light": "#f5ead3", "dark": "#3a2e17" }, "usage": "警告状态的浅底。" },
|
|
27
|
-
{ "name": "danger", "value": { "light": "#b0283f", "dark": "#f07a8a" }, "usage": "错误、失败、删除。永远同时配图标或文字。作为文字用在纸面和 danger-soft 上。" },
|
|
28
|
-
{ "name": "danger-soft", "value": { "light": "#f7e1e4", "dark": "#3d2027" }, "usage": "错误状态的浅底、危险按钮的底色。" },
|
|
29
|
-
{ "name": "info", "value": { "light": "#2c5f86", "dark": "#82b4dc" }, "usage": "中性提示。作为文字用在纸面和 info-soft 上。" },
|
|
30
|
-
{ "name": "info-soft", "value": { "light": "#e1ebf3", "dark": "#1d2c3a" }, "usage": "提示状态的浅底。" },
|
|
31
|
-
{ "name": "fill-hover", "value": { "light": "#0000000a", "dark": "#ffffff0f" }, "usage": "悬停底色,叠在任何纸面上(列表行、文字按钮、侧边栏项)。" },
|
|
32
|
-
{ "name": "fill-selected", "value": { "light": "#00000012", "dark": "#ffffff1a" }, "usage": "选中底色(侧边栏当前项、分段控件底槽、中性标签底)。" },
|
|
33
|
-
{ "name": "knob", "value": { "light": "#ffffff", "dark": "#ffffff" }, "usage": "开关的圆钮,两套主题都是白色,与系统一致。" },
|
|
34
|
-
{ "name": "scrim", "value": { "light": "#00000052", "dark": "#00000080" }, "usage": "弹窗背后压暗内容的遮罩。" },
|
|
35
|
-
{ "name": "glass-fill", "value": { "light": "#ffffffa6", "dark": "#2a2a2aa6" }, "usage": "仅用于网页预览模拟 Liquid Glass。App 里用系统 .glassEffect(),不要用这个值自己画玻璃。" },
|
|
36
|
-
{ "name": "glass-stroke", "value": { "light": "#ffffffcc", "dark": "#ffffff24" }, "usage": "仅用于网页预览:玻璃边缘的高光描边。" }
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
"type": {
|
|
40
|
-
"fonts": [],
|
|
41
|
-
"families": {
|
|
42
|
-
"serif": "ui-serif, \"New York\", \"Iowan Old Style\", Georgia, \"PingFang SC\", serif",
|
|
43
|
-
"sans": "-apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"PingFang SC\", \"Hiragino Sans GB\", system-ui, sans-serif",
|
|
44
|
-
"mono": "ui-monospace, \"SF Mono\", Menlo, \"PingFang SC\", monospace"
|
|
45
|
-
},
|
|
46
|
-
"groups": [
|
|
47
|
-
{
|
|
48
|
-
"name": "macOS",
|
|
49
|
-
"family": "sans",
|
|
50
|
-
"note": "Mac 正文 13pt,行高收紧到约 1.4 倍。衬线只用于标题和长文阅读,界面文字一律无衬线。",
|
|
51
|
-
"styles": [
|
|
52
|
-
{ "name": "mac-display", "family": "serif", "fontSize": "22px", "lineHeight": "28px", "fontWeight": 600, "letterSpacing": "-0.01em", "sample": "还没有笔记", "usage": "空状态、引导页的大标题。每屏最多一个。SwiftUI: .system(size: 22, weight: .semibold, design: .serif)" },
|
|
53
|
-
{ "name": "mac-title", "family": "serif", "fontSize": "17px", "lineHeight": "22px", "fontWeight": 600, "sample": "本周回顾", "usage": "文章标题、设置页标题。SwiftUI: .system(.title3, design: .serif).weight(.semibold)" },
|
|
54
|
-
{ "name": "mac-headline", "fontSize": "13px", "lineHeight": "17px", "fontWeight": 600, "sample": "最近项目", "usage": "窗口标题、区块标题、横幅标题。SwiftUI: .headline" },
|
|
55
|
-
{ "name": "mac-body", "fontSize": "13px", "lineHeight": "18px", "fontWeight": 400, "sample": "同步到 iCloud 后,所有设备上都能看到这条笔记。", "usage": "界面正文、按钮、列表、表单、用户消息。SwiftUI: .body" },
|
|
56
|
-
{ "name": "mac-prose", "family": "serif", "fontSize": "14px", "lineHeight": "22px", "fontWeight": 400, "sample": "长文和 AI 的回答用衬线排,读起来更像一页纸,而不是一块界面。", "usage": "长文阅读、AI 回答。栏宽不超过 content-max。" },
|
|
57
|
-
{ "name": "mac-callout", "fontSize": "12px", "lineHeight": "16px", "fontWeight": 400, "sample": "上次同步:今天 09:41", "usage": "表单说明、卡片摘要、次要信息。SwiftUI: .callout" },
|
|
58
|
-
{ "name": "mac-caption", "fontSize": "11px", "lineHeight": "13px", "fontWeight": 500, "sample": "3 个文件 · 12 KB", "usage": "时间戳、计数、侧边栏分组标题、标签。SwiftUI: .caption" }
|
|
59
|
-
]
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"name": "iOS",
|
|
63
|
-
"family": "sans",
|
|
64
|
-
"note": "iOS 正文保持系统默认的 17pt,让动态字体正常缩放,只收紧行高和标题。",
|
|
65
|
-
"styles": [
|
|
66
|
-
{ "name": "ios-large-title", "family": "serif", "fontSize": "30px", "lineHeight": "36px", "fontWeight": 600, "letterSpacing": "-0.01em", "sample": "笔记", "usage": "页面大标题。SwiftUI: .system(.largeTitle, design: .serif).weight(.semibold)" },
|
|
67
|
-
{ "name": "ios-title", "family": "serif", "fontSize": "20px", "lineHeight": "25px", "fontWeight": 600, "sample": "本周回顾", "usage": "弹窗标题、文章标题、空状态标题。SwiftUI: .system(.title3, design: .serif)" },
|
|
68
|
-
{ "name": "ios-headline", "fontSize": "17px", "lineHeight": "22px", "fontWeight": 600, "sample": "最近项目", "usage": "列表行标题、卡片标题、按钮。SwiftUI: .headline" },
|
|
69
|
-
{ "name": "ios-body", "fontSize": "17px", "lineHeight": "23px", "fontWeight": 400, "sample": "同步到 iCloud 后,所有设备上都能看到这条笔记。", "usage": "界面正文、列表行。SwiftUI: .body" },
|
|
70
|
-
{ "name": "ios-prose", "family": "serif", "fontSize": "17px", "lineHeight": "26px", "fontWeight": 400, "sample": "长文和 AI 的回答用衬线排,读起来更像一页纸。", "usage": "长文阅读、AI 回答。SwiftUI: .system(.body, design: .serif),行距 .lineSpacing(4)" },
|
|
71
|
-
{ "name": "ios-callout", "fontSize": "15px", "lineHeight": "20px", "fontWeight": 400, "sample": "上次同步:今天 09:41", "usage": "说明文字、弹窗正文、用户消息。SwiftUI: .callout" },
|
|
72
|
-
{ "name": "ios-footnote", "fontSize": "13px", "lineHeight": "17px", "fontWeight": 400, "sample": "关闭后,新笔记只保存在这台设备上。", "usage": "分组列表的页头页脚、卡片摘要。SwiftUI: .footnote" },
|
|
73
|
-
{ "name": "ios-caption", "fontSize": "12px", "lineHeight": "15px", "fontWeight": 500, "sample": "3 个文件 · 12 KB", "usage": "时间戳、计数、标签。SwiftUI: .caption" }
|
|
74
|
-
]
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"name": "Code",
|
|
78
|
-
"family": "mono",
|
|
79
|
-
"note": "代码、命令、文件路径、数据。",
|
|
80
|
-
"styles": [
|
|
81
|
-
{ "name": "code-mac", "fontSize": "12px", "lineHeight": "17px", "fontWeight": 400, "sample": "let total = items.reduce(0, +)", "usage": "Mac 上的代码块、步骤摘要。SwiftUI: .system(.callout, design: .monospaced)" },
|
|
82
|
-
{ "name": "code-ios", "fontSize": "13px", "lineHeight": "18px", "fontWeight": 400, "sample": "let total = items.reduce(0, +)", "usage": "iOS 上的代码块。SwiftUI: .system(.footnote, design: .monospaced)" }
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
},
|
|
87
|
-
"spacing": {
|
|
88
|
-
"note": "4pt 网格,整体偏紧凑。组与组之间的间距至少是组内间距的 2 倍。",
|
|
89
|
-
"tokens": [
|
|
90
|
-
{ "name": "space-1", "value": "4px", "usage": "图标与文字之间、卡片内标题与摘要之间。" },
|
|
91
|
-
{ "name": "space-2", "value": "8px", "usage": "Mac 列表项内边距、横幅上下内边距、Composer 内边距。" },
|
|
92
|
-
{ "name": "space-3", "value": "12px", "usage": "Mac 按钮左右内边距、卡片内边距、横幅左右内边距。" },
|
|
93
|
-
{ "name": "space-4", "value": "16px", "usage": "Mac 内容区边距、对话中消息之间、iOS 页面左右边距。" },
|
|
94
|
-
{ "name": "space-5", "value": "20px", "usage": "iOS 分组之间、Mac 区块之间。" },
|
|
95
|
-
{ "name": "space-6", "value": "24px", "usage": "空状态内边距、大区块之间。" },
|
|
96
|
-
{ "name": "space-8", "value": "32px", "usage": "页面级留白。" },
|
|
97
|
-
{ "name": "space-10", "value": "40px", "usage": "引导页、首屏的大留白。" }
|
|
98
|
-
]
|
|
99
|
-
},
|
|
100
|
-
"radius": {
|
|
101
|
-
"note": "嵌套保持同心:内圆角 = 外圆角 − 内边距。",
|
|
102
|
-
"tokens": [
|
|
103
|
-
{ "name": "radius-xs", "value": "4px", "usage": "标签、复选框、分段控件里的选中块(外层 radius-sm、内边距 2)。" },
|
|
104
|
-
{ "name": "radius-sm", "value": "6px", "usage": "Mac 按钮、输入框、侧边栏选中块、iOS 列表图标底。" },
|
|
105
|
-
{ "name": "radius-md", "value": "8px", "usage": "Mac 卡片、横幅、代码块、弹出菜单。" },
|
|
106
|
-
{ "name": "radius-lg", "value": "12px", "usage": "iOS 卡片、iOS 分组列表、Composer、用户消息气泡、Mac 侧边栏面板。" },
|
|
107
|
-
{ "name": "radius-xl", "value": "24px", "usage": "iOS 底部弹窗、iOS 单行 Composer。" },
|
|
108
|
-
{ "name": "radius-full", "value": "999px", "usage": "胶囊与圆形:玻璃按钮、iOS 主按钮、发送按钮、状态圆点。" }
|
|
109
|
-
]
|
|
110
|
-
},
|
|
111
|
-
"shadow": {
|
|
112
|
-
"note": "卡片不加阴影。只有真正浮起来的东西才有阴影。",
|
|
113
|
-
"tokens": [
|
|
114
|
-
{ "name": "shadow-control", "value": { "light": "0 1px 1px rgba(0, 0, 0, 0.05)", "dark": "0 1px 1px rgba(0, 0, 0, 0.30)" }, "usage": "次按钮、分段控件的选中块:一点点厚度。" },
|
|
115
|
-
{ "name": "shadow-float", "value": { "light": "0 1px 2px rgba(0, 0, 0, 0.05), 0 6px 20px rgba(0, 0, 0, 0.08)", "dark": "0 1px 2px rgba(0, 0, 0, 0.40), 0 6px 20px rgba(0, 0, 0, 0.45)" }, "usage": "Composer、弹出菜单、弹窗、浮动面板。" },
|
|
116
|
-
{ "name": "shadow-glass", "value": { "light": "0 4px 14px rgba(0, 0, 0, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.70)", "dark": "0 4px 14px rgba(0, 0, 0, 0.40), inset 0 1px 0 rgba(255, 255, 255, 0.10)" }, "usage": "仅用于网页预览模拟玻璃。App 里系统玻璃自带阴影。" }
|
|
117
|
-
]
|
|
118
|
-
},
|
|
119
|
-
"stroke": {
|
|
120
|
-
"note": "线宽。",
|
|
121
|
-
"tokens": [
|
|
122
|
-
{ "name": "stroke-hairline", "value": "0.5px", "usage": "分隔线、卡片描边:1 个物理像素。SwiftUI: 1 / displayScale。" },
|
|
123
|
-
{ "name": "stroke-control", "value": "1px", "usage": "输入框边框。" },
|
|
124
|
-
{ "name": "stroke-focus", "value": "2px", "usage": "焦点环。" }
|
|
125
|
-
]
|
|
126
|
-
},
|
|
127
|
-
"size": {
|
|
128
|
-
"note": "控件高度与布局尺寸。Mac 偏紧凑,iOS 遵守 44pt 最小点击区域。",
|
|
129
|
-
"tokens": [
|
|
130
|
-
{ "name": "control-mac-sm", "value": "20px", "usage": "Mac 小按钮、行内操作、分段控件。" },
|
|
131
|
-
{ "name": "control-mac", "value": "24px", "usage": "Mac 默认按钮、输入框、图标按钮、步骤行。" },
|
|
132
|
-
{ "name": "control-mac-lg", "value": "28px", "usage": "Mac 大按钮(引导页、空状态)。" },
|
|
133
|
-
{ "name": "row-mac", "value": "26px", "usage": "Mac 侧边栏项、列表行。" },
|
|
134
|
-
{ "name": "control-ios", "value": "44px", "usage": "iOS 最小可点区域(按钮看起来可以更小,点击区域仍补足到 44)、列表行、输入框、导航栏玻璃按钮。" },
|
|
135
|
-
{ "name": "button-ios-sm", "value": "30px", "usage": "iOS 小按钮的可见高度:卡片和列表里的「获取」「关注」这类行内操作。" },
|
|
136
|
-
{ "name": "button-ios", "value": "36px", "usage": "iOS 默认按钮的可见高度。" },
|
|
137
|
-
{ "name": "control-ios-lg", "value": "46px", "usage": "iOS 通栏主按钮(页面底部、弹窗里的唯一主操作)。" },
|
|
138
|
-
{ "name": "sidebar-mac", "value": "220px", "usage": "Mac 侧边栏默认宽度。" },
|
|
139
|
-
{ "name": "content-max", "value": "680px", "usage": "长文阅读栏的最大宽度,14pt 下约每行 45 个汉字。" }
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
}
|