@mstar-harness/opencode 0.6.20 → 0.6.22
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/harness-skills/mstar-coding-behavior/SKILL.md +51 -4
- package/harness-skills/mstar-design-md/SKILL.md +21 -16
- package/harness-skills/mstar-design-md/references/completeness-checklist.md +40 -34
- package/harness-skills/mstar-design-md/references/design-md-spec.md +227 -97
- package/harness-skills/mstar-design-md/references/vercel-example.md +69 -7
- package/harness-skills/mstar-design-md/templates/DESIGN.dark.md.template +307 -91
- package/harness-skills/mstar-design-md/templates/DESIGN.md.template +347 -151
- package/harness-skills/mstar-dispatch-gates/SKILL.md +20 -8
- package/harness-skills/mstar-dispatch-gates/references/leaf-executor-checklist.md +6 -2
- package/harness-skills/mstar-harness-core/SKILL.md +1 -1
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +17 -4
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +8 -3
- package/package.json +1 -1
|
@@ -1,133 +1,349 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.1.0
|
|
3
|
+
name: "[Design System Name]"
|
|
4
|
+
description: "[Design System Name] is a [adjective] design system for [project/product name]. This is the Dark theme. The Light theme uses the same token names with different values and lives at /DESIGN.md."
|
|
5
|
+
|
|
6
|
+
colors:
|
|
7
|
+
# ── Background surfaces (dark) ──
|
|
8
|
+
# Level 1 — primary dark page/card surface (REQUIRED)
|
|
9
|
+
background-100: "[#000000]"
|
|
10
|
+
|
|
11
|
+
# LEVEL2_PLACEHOLDER: secondary surface, active surface — uncomment and fill when upgrading to Level 2
|
|
12
|
+
# background-200: "[#0a0a0a]"
|
|
13
|
+
# background-300: "[#141414]"
|
|
14
|
+
|
|
15
|
+
# ── Gray (solid — text and opaque fills on dark) ──
|
|
16
|
+
# Level 1 — primary and secondary text for dark surfaces (REQUIRED)
|
|
17
|
+
gray-1000: "[#ededed]"
|
|
18
|
+
gray-900: "[#a0a0a0]"
|
|
19
|
+
|
|
20
|
+
# LEVEL2_PLACEHOLDER: full 10-step gray scale (dark-inverted) — uncomment and fill values for steps 100–800
|
|
21
|
+
# gray-100: "[#1a1a1a]"
|
|
22
|
+
# gray-200: "[#1f1f1f]"
|
|
23
|
+
# gray-300: "[#292929]"
|
|
24
|
+
# gray-400: "[#2e2e2e]"
|
|
25
|
+
# gray-500: "[#454545]"
|
|
26
|
+
# gray-600: "[#878787]"
|
|
27
|
+
# gray-700: "[#8f8f8f]"
|
|
28
|
+
# gray-800: "[#7d7d7d]"
|
|
29
|
+
|
|
30
|
+
# LEVEL2_PLACEHOLDER: gray alpha (white-based translucent) scale — uncomment and fill
|
|
31
|
+
# gray-alpha-100: "#ffffff12"
|
|
32
|
+
# gray-alpha-200: "#ffffff17"
|
|
33
|
+
# gray-alpha-300: "#ffffff21"
|
|
34
|
+
# gray-alpha-400: "#ffffff24"
|
|
35
|
+
# gray-alpha-500: "#ffffff3d"
|
|
36
|
+
# gray-alpha-600: "#ffffff82"
|
|
37
|
+
# gray-alpha-700: "#ffffff8a"
|
|
38
|
+
# gray-alpha-800: "#ffffff78"
|
|
39
|
+
# gray-alpha-900: "#ffffff9c"
|
|
40
|
+
# gray-alpha-1000: "#ffffffeb"
|
|
41
|
+
|
|
42
|
+
# ── Accent — Blue (links, focus, primary actions on dark) ──
|
|
43
|
+
# Level 1 — at minimum blue-700, typically lighter on dark for contrast (REQUIRED)
|
|
44
|
+
blue-700: "[#006efe]"
|
|
45
|
+
|
|
46
|
+
# LEVEL2_PLACEHOLDER: full blue scale (dark-adjusted) — uncomment and fill
|
|
47
|
+
# blue-100: "[#06193a]"
|
|
48
|
+
# blue-200: "[#022248]"
|
|
49
|
+
# blue-300: "[#002f62]"
|
|
50
|
+
# blue-400: "[#003674]"
|
|
51
|
+
# blue-500: "[#00418b]"
|
|
52
|
+
# blue-600: "[#0090ff]"
|
|
53
|
+
# blue-700: "[#006efe]"
|
|
54
|
+
# blue-800: "[#005be7]"
|
|
55
|
+
# blue-900: "[#47a8ff]"
|
|
56
|
+
# blue-1000: "[#eaf6ff]"
|
|
57
|
+
|
|
58
|
+
# ── Accent — Red (errors on dark) ──
|
|
59
|
+
# Level 1 — at minimum red-700, typically lighter on dark (REQUIRED)
|
|
60
|
+
red-700: "[#f13242]"
|
|
61
|
+
|
|
62
|
+
# LEVEL2_PLACEHOLDER: full red scale (dark-adjusted) — uncomment and fill
|
|
63
|
+
# red-100: "[#330a11]"
|
|
64
|
+
# red-200: "[#440d13]"
|
|
65
|
+
# red-300: "[#5d0e17]"
|
|
66
|
+
# red-400: "[#6f101b]"
|
|
67
|
+
# red-500: "[#88151f]"
|
|
68
|
+
# red-600: "[#f32e40]"
|
|
69
|
+
# red-700: "[#f13242]"
|
|
70
|
+
# red-800: "[#e2162a]"
|
|
71
|
+
# red-900: "[#ff565f]"
|
|
72
|
+
# red-1000: "[#ffe9ed]"
|
|
73
|
+
|
|
74
|
+
# ── Accent — Amber (warnings on dark) ──
|
|
75
|
+
# Level 1 — at minimum amber-700 (REQUIRED)
|
|
76
|
+
amber-700: "[#ffae00]"
|
|
77
|
+
|
|
78
|
+
# LEVEL2_PLACEHOLDER: full amber scale (dark-adjusted) — uncomment and fill
|
|
79
|
+
# amber-100: "[#2a1700]"
|
|
80
|
+
# amber-200: "[#361900]"
|
|
81
|
+
# amber-300: "[#502800]"
|
|
82
|
+
# amber-400: "[#5b3000]"
|
|
83
|
+
# amber-500: "[#703e00]"
|
|
84
|
+
# amber-600: "[#ed9a00]"
|
|
85
|
+
# amber-700: "[#ffae00]"
|
|
86
|
+
# amber-800: "[#ff9300]"
|
|
87
|
+
# amber-900: "[#ff9300]"
|
|
88
|
+
# amber-1000: "[#fff3d5]"
|
|
89
|
+
|
|
90
|
+
# LEVEL2_PLACEHOLDER: additional accent scales (dark-adjusted) — uncomment and fill
|
|
91
|
+
# green-100: "[#002608]"
|
|
92
|
+
# green-200: "[#00320b]"
|
|
93
|
+
# green-300: "[#003a0e]"
|
|
94
|
+
# green-400: "[#004615]"
|
|
95
|
+
# green-500: "[#006717]"
|
|
96
|
+
# green-600: "[#00952d]"
|
|
97
|
+
# green-700: "[#00ac3a]"
|
|
98
|
+
# green-800: "[#009432]"
|
|
99
|
+
# green-900: "[#00ca50]"
|
|
100
|
+
# green-1000: "[#d8ffe4]"
|
|
101
|
+
|
|
102
|
+
# teal-100: "[#00231b]"
|
|
103
|
+
# teal-200: "[#002b22]"
|
|
104
|
+
# teal-300: "[#003d34]"
|
|
105
|
+
# teal-400: "[#004035]"
|
|
106
|
+
# teal-500: "[#006354]"
|
|
107
|
+
# teal-600: "[#009e86]"
|
|
108
|
+
# teal-700: "[#00aa95]"
|
|
109
|
+
# teal-800: "[#00927f]"
|
|
110
|
+
# teal-900: "[#00cfb7]"
|
|
111
|
+
# teal-1000: "[#cbfff5]"
|
|
112
|
+
|
|
113
|
+
# purple-100: "[#290c33]"
|
|
114
|
+
# purple-200: "[#341142]"
|
|
115
|
+
# purple-300: "[#47185e]"
|
|
116
|
+
# purple-400: "[#541a76]"
|
|
117
|
+
# purple-500: "[#642290]"
|
|
118
|
+
# purple-600: "[#9440d5]"
|
|
119
|
+
# purple-700: "[#9440d5]"
|
|
120
|
+
# purple-800: "[#7d2bba]"
|
|
121
|
+
# purple-900: "[#c472fb]"
|
|
122
|
+
# purple-1000: "[#fbecff]"
|
|
123
|
+
|
|
124
|
+
# pink-100: "[#310d1e]"
|
|
125
|
+
# pink-200: "[#420c25]"
|
|
126
|
+
# pink-300: "[#571032]"
|
|
127
|
+
# pink-400: "[#5d0c34]"
|
|
128
|
+
# pink-500: "[#76063f]"
|
|
129
|
+
# pink-600: "[#ba0056]"
|
|
130
|
+
# pink-700: "[#f12b82]"
|
|
131
|
+
# pink-800: "[#e7006d]"
|
|
132
|
+
# pink-900: "[#ff4d8d]"
|
|
133
|
+
# pink-1000: "[#ffe9f4]"
|
|
134
|
+
|
|
135
|
+
typography:
|
|
136
|
+
# ── Body text (multi-line, taller line-height) ──
|
|
137
|
+
# Level 1 — at minimum one body token; typography tokens are typically unchanged in dark mode (REQUIRED)
|
|
138
|
+
copy-16:
|
|
139
|
+
fontFamily: "[font-family]"
|
|
140
|
+
fontSize: 16px
|
|
141
|
+
fontWeight: 400
|
|
142
|
+
lineHeight: 1.6
|
|
143
|
+
letterSpacing: 0
|
|
144
|
+
|
|
145
|
+
# LEVEL2_PLACEHOLDER: additional body sizes; same as DESIGN.md unless font weight needs adjustment
|
|
146
|
+
# copy-24:
|
|
147
|
+
# fontFamily: "[font-family]"
|
|
148
|
+
# fontSize: 24px
|
|
149
|
+
# fontWeight: 400
|
|
150
|
+
# lineHeight: 36px
|
|
151
|
+
# copy-20:
|
|
152
|
+
# fontFamily: "[font-family]"
|
|
153
|
+
# fontSize: 20px
|
|
154
|
+
# fontWeight: 400
|
|
155
|
+
# lineHeight: 36px
|
|
156
|
+
# copy-14:
|
|
157
|
+
# fontFamily: "[font-family]"
|
|
158
|
+
# fontSize: 14px
|
|
159
|
+
# fontWeight: 400
|
|
160
|
+
# lineHeight: 20px
|
|
161
|
+
|
|
162
|
+
# ── Headings ──
|
|
163
|
+
# Level 1 — at minimum one heading token (REQUIRED)
|
|
164
|
+
heading-32:
|
|
165
|
+
fontFamily: "[font-family]"
|
|
166
|
+
fontSize: 32px
|
|
167
|
+
fontWeight: 600
|
|
168
|
+
lineHeight: 1.2
|
|
169
|
+
letterSpacing: -0.02em
|
|
170
|
+
|
|
171
|
+
# LEVEL2_PLACEHOLDER: full heading scale; same as DESIGN.md
|
|
172
|
+
# heading-72:
|
|
173
|
+
# fontFamily: "[font-family]"
|
|
174
|
+
# fontSize: 72px
|
|
175
|
+
# fontWeight: 600
|
|
176
|
+
# lineHeight: 72px
|
|
177
|
+
# letterSpacing: -0.04em
|
|
178
|
+
# heading-48:
|
|
179
|
+
# fontFamily: "[font-family]"
|
|
180
|
+
# fontSize: 48px
|
|
181
|
+
# fontWeight: 600
|
|
182
|
+
# lineHeight: 56px
|
|
183
|
+
# letterSpacing: -0.03em
|
|
184
|
+
# heading-24:
|
|
185
|
+
# fontFamily: "[font-family]"
|
|
186
|
+
# fontSize: 24px
|
|
187
|
+
# fontWeight: 600
|
|
188
|
+
# lineHeight: 32px
|
|
189
|
+
# letterSpacing: -0.01em
|
|
190
|
+
# heading-20:
|
|
191
|
+
# fontFamily: "[font-family]"
|
|
192
|
+
# fontSize: 20px
|
|
193
|
+
# fontWeight: 600
|
|
194
|
+
# lineHeight: 26px
|
|
195
|
+
# letterSpacing: -0.005em
|
|
196
|
+
|
|
197
|
+
# LEVEL2_PLACEHOLDER: label and button typography; same as DESIGN.md
|
|
198
|
+
# label-14:
|
|
199
|
+
# fontFamily: "[font-family]"
|
|
200
|
+
# fontSize: 14px
|
|
201
|
+
# fontWeight: 400
|
|
202
|
+
# lineHeight: 20px
|
|
203
|
+
# button-14:
|
|
204
|
+
# fontFamily: "[font-family]"
|
|
205
|
+
# fontSize: 14px
|
|
206
|
+
# fontWeight: 500
|
|
207
|
+
# lineHeight: 20px
|
|
208
|
+
|
|
209
|
+
spacing:
|
|
210
|
+
base: 4px
|
|
211
|
+
# Level 1 — same spacing scale as DESIGN.md (REQUIRED)
|
|
212
|
+
1: 4px
|
|
213
|
+
2: 8px
|
|
214
|
+
3: 12px
|
|
215
|
+
4: 16px
|
|
216
|
+
6: 24px
|
|
217
|
+
|
|
218
|
+
# LEVEL2_PLACEHOLDER: full 9-step scale; same as DESIGN.md
|
|
219
|
+
# 8: 32px
|
|
220
|
+
# 10: 40px
|
|
221
|
+
# 16: 64px
|
|
222
|
+
# 24: 96px
|
|
223
|
+
|
|
224
|
+
rounded:
|
|
225
|
+
# Level 1 — same radii as DESIGN.md (REQUIRED)
|
|
226
|
+
sm: 6px
|
|
227
|
+
|
|
228
|
+
# LEVEL2_PLACEHOLDER: additional radius tokens; same as DESIGN.md
|
|
229
|
+
# md: 12px
|
|
230
|
+
# lg: 16px
|
|
231
|
+
# full: 9999px
|
|
232
|
+
|
|
233
|
+
# LEVEL2_PLACEHOLDER: component tokens — uncomment and fill; values reference dark `colors.*` and `typography.*`
|
|
234
|
+
# components:
|
|
235
|
+
# button-primary:
|
|
236
|
+
# backgroundColor: "{colors.gray-1000}"
|
|
237
|
+
# textColor: "{colors.background-100}"
|
|
238
|
+
# typography: "{typography.button-14}"
|
|
239
|
+
# rounded: "{rounded.sm}"
|
|
240
|
+
# padding: "0 10px"
|
|
241
|
+
# height: 40px
|
|
242
|
+
# button-secondary:
|
|
243
|
+
# backgroundColor: "{colors.background-100}"
|
|
244
|
+
# textColor: "{colors.gray-1000}"
|
|
245
|
+
# typography: "{typography.button-14}"
|
|
246
|
+
# rounded: "{rounded.sm}"
|
|
247
|
+
# padding: "0 10px"
|
|
248
|
+
# height: 40px
|
|
249
|
+
# button-tertiary:
|
|
250
|
+
# textColor: "{colors.gray-1000}"
|
|
251
|
+
# typography: "{typography.button-14}"
|
|
252
|
+
# rounded: "{rounded.sm}"
|
|
253
|
+
# padding: "0 10px"
|
|
254
|
+
# height: 40px
|
|
255
|
+
# button-error:
|
|
256
|
+
# backgroundColor: "{colors.red-800}"
|
|
257
|
+
# textColor: "#ffffff"
|
|
258
|
+
# typography: "{typography.button-14}"
|
|
259
|
+
# rounded: "{rounded.sm}"
|
|
260
|
+
# padding: "0 10px"
|
|
261
|
+
# height: 40px
|
|
262
|
+
# button-small:
|
|
263
|
+
# typography: "{typography.button-14}"
|
|
264
|
+
# rounded: "{rounded.sm}"
|
|
265
|
+
# padding: "0 6px"
|
|
266
|
+
# height: 32px
|
|
267
|
+
# button-large:
|
|
268
|
+
# typography: "{typography.button-16}"
|
|
269
|
+
# rounded: "{rounded.sm}"
|
|
270
|
+
# padding: "0 14px"
|
|
271
|
+
# height: 48px
|
|
272
|
+
# input:
|
|
273
|
+
# backgroundColor: "{colors.background-100}"
|
|
274
|
+
# textColor: "{colors.gray-1000}"
|
|
275
|
+
# typography: "{typography.label-14}"
|
|
276
|
+
# rounded: "{rounded.sm}"
|
|
277
|
+
# padding: "0 12px"
|
|
278
|
+
# height: 40px
|
|
279
|
+
# input-small:
|
|
280
|
+
# typography: "{typography.label-14}"
|
|
281
|
+
# rounded: "{rounded.sm}"
|
|
282
|
+
# padding: "0 12px"
|
|
283
|
+
# height: 32px
|
|
284
|
+
# input-large:
|
|
285
|
+
# typography: "{typography.label-16}"
|
|
286
|
+
# rounded: "{rounded.sm}"
|
|
287
|
+
# padding: "0 12px"
|
|
288
|
+
# height: 48px
|
|
289
|
+
---
|
|
290
|
+
|
|
1
291
|
<!-- COMPLETENESS_LEVEL: 3 — dark theme companion to DESIGN.md -->
|
|
2
292
|
|
|
3
293
|
# [Design System Name] — Dark
|
|
4
294
|
|
|
5
295
|
## Overview
|
|
6
296
|
|
|
7
|
-
[Design System Name] Dark is the dark theme companion to [Design System Name].
|
|
297
|
+
[Design System Name] Dark is the dark theme companion to [Design System Name]. Token names are identical to DESIGN.md; only the values change. Every token in the YAML frontmatter above must have a corresponding entry in DESIGN.md.
|
|
8
298
|
|
|
9
299
|
This file uses the same structure as DESIGN.md. When DESIGN.md is updated, update this file with the dark-equivalent values.
|
|
10
300
|
|
|
11
|
-
<!--
|
|
301
|
+
<!--
|
|
12
302
|
IMPORTANT: Switch to dark mode by loading this file's values in place of DESIGN.md values.
|
|
13
303
|
Consumers reference tokens by name, not by value — the switch is transparent.
|
|
14
304
|
-->
|
|
15
305
|
|
|
16
306
|
## Colors
|
|
17
307
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
<!-- Dark backgrounds are dark grays instead of whites. background-100 is the primary dark surface. -->
|
|
21
|
-
|
|
22
|
-
| Token | Value |
|
|
23
|
-
|-------|-------|
|
|
24
|
-
| background-100 | #[dark page/card surface, e.g., #111111] |
|
|
25
|
-
|
|
26
|
-
<!-- LEVEL2_PLACEHOLDER: Match DESIGN.md Level 2 background tokens -->
|
|
27
|
-
<!--
|
|
28
|
-
| background-200 | #[slightly lighter dark surface] |
|
|
29
|
-
| background-300 | #[active dark surface] |
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
### Gray (text and fills)
|
|
33
|
-
|
|
34
|
-
<!-- Dark text colors are light grays. Invert the scale: gray-1000 is light (primary text on dark), gray-100 is dark. -->
|
|
35
|
-
|
|
36
|
-
| Token | Value |
|
|
37
|
-
|-------|-------|
|
|
38
|
-
| gray-1000 | #[primary text on dark, e.g., #eeeeee] |
|
|
39
|
-
| gray-900 | #[secondary text on dark, e.g., #999999] |
|
|
40
|
-
|
|
41
|
-
<!-- LEVEL2_PLACEHOLDER: Match DESIGN.md Level 2 gray scale with dark-appropriate values -->
|
|
42
|
-
<!--
|
|
43
|
-
| gray-100 | #[darkest fill, e.g., #1a1a1a] |
|
|
44
|
-
| gray-200 | #[hover fill, e.g., #222222] |
|
|
45
|
-
| gray-300 | #[active fill, e.g., #333333] |
|
|
46
|
-
| gray-400 | #[border, e.g., #444444] |
|
|
47
|
-
| gray-500 | #[hover border, e.g., #555555] |
|
|
48
|
-
| gray-600 | #[active border, e.g., #666666] |
|
|
49
|
-
| gray-700 | #[disabled text, e.g., #777777] |
|
|
50
|
-
| gray-800 | #[solid hover, e.g., #888888] |
|
|
51
|
-
-->
|
|
52
|
-
|
|
53
|
-
<!-- LEVEL2_PLACEHOLDER: Add gray-alpha scale with white-based transparency for dark backgrounds -->
|
|
54
|
-
<!--
|
|
55
|
-
### Gray Alpha (translucent overlays)
|
|
56
|
-
|
|
57
|
-
| Token | Value |
|
|
58
|
-
|-------|-------|
|
|
59
|
-
| gray-alpha-100 | rgba(255, 255, 255, 0.04) |
|
|
60
|
-
| gray-alpha-200 | rgba(255, 255, 255, 0.06) |
|
|
61
|
-
| gray-alpha-300 | rgba(255, 255, 255, 0.08) |
|
|
62
|
-
| gray-alpha-400 | rgba(255, 255, 255, 0.12) |
|
|
63
|
-
| gray-alpha-500 | rgba(255, 255, 255, 0.16) |
|
|
64
|
-
| gray-alpha-600 | rgba(255, 255, 255, 0.24) |
|
|
65
|
-
-->
|
|
66
|
-
|
|
67
|
-
### Accent
|
|
308
|
+
Token values are defined in the frontmatter `colors:` map. Dark theme inverts the scale: background-100 is dark (`#000000`), gray-1000 is light text (`#ededed`). Accent colors shift lighter to maintain contrast on dark surfaces. Gray-alpha tokens use white-based transparency (`rgba(255,255,255,…)`) instead of black-based.
|
|
68
309
|
|
|
69
|
-
<!--
|
|
70
|
-
|
|
71
|
-
| Token | Value | Usage |
|
|
72
|
-
|-------|-------|-------|
|
|
73
|
-
| blue-700 | #[adjusted for dark, typically lighter to maintain contrast] | Interactive elements |
|
|
74
|
-
| red-700 | #[adjusted for dark, typically lighter] | Errors |
|
|
75
|
-
| amber-700 | #[adjusted for dark, typically lighter] | Warnings |
|
|
76
|
-
|
|
77
|
-
<!-- LEVEL2_PLACEHOLDER: Match all accent scales from DESIGN.md with dark-appropriate values -->
|
|
310
|
+
<!-- LEVEL2_PLACEHOLDER: Complete all color scales in the frontmatter to match DESIGN.md. See references/completeness-checklist.md § Level 3. -->
|
|
78
311
|
|
|
79
312
|
## Typography
|
|
80
313
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
| Token | Font Family | Size | Weight | Line Height | Letter Spacing |
|
|
84
|
-
|-------|------------|------|--------|-------------|----------------|
|
|
85
|
-
| copy-16 | [same as DESIGN.md] | 16px | 400 | 1.6 | 0 |
|
|
86
|
-
| heading-32 | [same as DESIGN.md] | 32px | 600 | 1.2 | -0.02em |
|
|
314
|
+
Token values are defined in the frontmatter `typography:` map. Typography tokens are typically identical to DESIGN.md — copy verbatim from the light theme unless a font weight adjustment is needed for dark backgrounds.
|
|
87
315
|
|
|
88
316
|
## Spacing & Layout
|
|
89
317
|
|
|
90
|
-
|
|
318
|
+
Token values are defined in the frontmatter `spacing:` and `rounded:` maps. Spacing and breakpoints are identical to DESIGN.md. Copy verbatim.
|
|
91
319
|
|
|
92
|
-
|
|
320
|
+
### Breakpoints
|
|
93
321
|
|
|
94
|
-
|
|
95
|
-
|------|-------|
|
|
96
|
-
| 1x | [base × 1] |
|
|
97
|
-
| 2x | [base × 2] |
|
|
98
|
-
| 3x | [base × 3] |
|
|
99
|
-
| 4x | [base × 4] |
|
|
100
|
-
| 6x | [base × 6] |
|
|
322
|
+
Refer to DESIGN.md breakpoints; do not duplicate here. The dark theme inherits all layout tokens from the light theme.
|
|
101
323
|
|
|
102
|
-
|
|
103
|
-
|------|-----------|--------|
|
|
104
|
-
| sm | 401px | Mobile landscape |
|
|
105
|
-
| lg | 961px | Desktop |
|
|
106
|
-
|
|
107
|
-
<!-- LEVEL3_PLACEHOLDER: Add dark-mode Elevation, Components tokens, and full dark theme parity with DESIGN.md -->
|
|
324
|
+
<!-- LEVEL3_PLACEHOLDER: Add dark-mode Elevation, extended Components tokens, and full dark theme parity with DESIGN.md -->
|
|
108
325
|
<!--
|
|
109
326
|
## Elevation & Depth
|
|
110
327
|
|
|
111
|
-
Shadows on dark backgrounds use lighter,
|
|
328
|
+
Shadows on dark backgrounds use lighter, deeper values. Hierarchy still comes from tonal surfaces first.
|
|
112
329
|
|
|
113
330
|
### Shadows (dark theme)
|
|
114
331
|
|
|
115
332
|
| Element | Value |
|
|
116
333
|
|---------|-------|
|
|
117
|
-
| Card | 0
|
|
334
|
+
| Card | 0 1px 2px rgba(0, 0, 0, 0.16) |
|
|
118
335
|
| Popover | 0 1px 1px rgba(0, 0, 0, 0.08), 0 4px 8px -4px rgba(0, 0, 0, 0.12), 0 16px 24px -8px rgba(0, 0, 0, 0.16) |
|
|
119
336
|
| Modal | 0 1px 1px rgba(0, 0, 0, 0.08), 0 8px 16px -4px rgba(0, 0, 0, 0.12), 0 24px 32px -8px rgba(0, 0, 0, 0.16) |
|
|
120
337
|
|
|
121
338
|
## Components
|
|
122
339
|
|
|
123
|
-
Button tokens reference dark
|
|
340
|
+
Component tokens are defined in the frontmatter `components:` map. Button tokens reference dark `colors.*` values. Same structure as DESIGN.md, different color references. States, sizes, and focus follow the same rules as DESIGN.md.
|
|
341
|
+
|
|
342
|
+
## Motion
|
|
124
343
|
|
|
125
|
-
|
|
344
|
+
Same as DESIGN.md — motion rules are theme-independent.
|
|
126
345
|
|
|
127
|
-
|
|
128
|
-
|---------|-----------|------|--------|--------|--------|
|
|
129
|
-
| primary | gray-100 (dark value) | background-100 (dark value) | — | 6px | 40px |
|
|
130
|
-
| secondary | background-100 | gray-1000 | gray-alpha-400 | 6px | 40px |
|
|
346
|
+
## Shapes
|
|
131
347
|
|
|
132
|
-
|
|
348
|
+
Same as DESIGN.md — border radius tokens are theme-independent.
|
|
133
349
|
-->
|