@verdify/tokens 0.6.0
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/LICENSE +12 -0
- package/README.md +155 -0
- package/dist/preset-adaptive.css +17 -0
- package/dist/preset.css +221 -0
- package/dist/tokens.css +232 -0
- package/dist/tokens.d.ts +370 -0
- package/dist/tokens.js +4546 -0
- package/dist/tokens.json +228 -0
- package/dist/tokens.mjs +235 -0
- package/package.json +48 -0
- package/src/tokens/border-width.tokens.json +8 -0
- package/src/tokens/breakpoint.tokens.json +9 -0
- package/src/tokens/color.tokens.json +275 -0
- package/src/tokens/component.tokens.json +65 -0
- package/src/tokens/container.tokens.json +9 -0
- package/src/tokens/focus.tokens.json +9 -0
- package/src/tokens/font.tokens.json +22 -0
- package/src/tokens/motion.tokens.json +35 -0
- package/src/tokens/opacity.tokens.json +17 -0
- package/src/tokens/print.tokens.json +120 -0
- package/src/tokens/radius.tokens.json +10 -0
- package/src/tokens/shadow.tokens.json +29 -0
- package/src/tokens/size.tokens.json +14 -0
- package/src/tokens/space.tokens.json +23 -0
- package/src/tokens/state.tokens.json +11 -0
- package/src/tokens/text.tokens.json +64 -0
- package/src/tokens/verdify-print.ase +0 -0
- package/src/tokens/z-index.tokens.json +10 -0
package/dist/tokens.json
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
{
|
|
2
|
+
"BorderWidth0": "0",
|
|
3
|
+
"BorderWidth2": "2px",
|
|
4
|
+
"BorderWidth4": "4px",
|
|
5
|
+
"BorderWidthDefault": "1px",
|
|
6
|
+
"BreakpointSm": "40rem",
|
|
7
|
+
"BreakpointMd": "48rem",
|
|
8
|
+
"BreakpointLg": "64rem",
|
|
9
|
+
"BreakpointXl": "80rem",
|
|
10
|
+
"Breakpoint2xl": "96rem",
|
|
11
|
+
"ColorBrandBrand": "#7c5cff",
|
|
12
|
+
"ColorBrandBrandDeep": "#5b3ee8",
|
|
13
|
+
"ColorNeutralObsidian300": "#c8d0de",
|
|
14
|
+
"ColorNeutralObsidian400": "#8a95a8",
|
|
15
|
+
"ColorNeutralObsidian500": "#4a5567",
|
|
16
|
+
"ColorNeutralObsidian600": "#2a3142",
|
|
17
|
+
"ColorNeutralObsidian700": "#1f2638",
|
|
18
|
+
"ColorNeutralObsidian800": "#161b2a",
|
|
19
|
+
"ColorNeutralObsidian850": "#0f1320",
|
|
20
|
+
"ColorNeutralObsidian900": "#0b0f19",
|
|
21
|
+
"ColorNeutralObsidian950": "#060912",
|
|
22
|
+
"ColorNeutralMist50": "#fbfcfe",
|
|
23
|
+
"ColorNeutralMist100": "#f4f6fa",
|
|
24
|
+
"ColorNeutralMist200": "#e8ecf4",
|
|
25
|
+
"ColorNeutralMist300": "#d6dce8",
|
|
26
|
+
"ColorNeutralMist400": "#b0baca",
|
|
27
|
+
"ColorNeutralMist500": "#8a95a8",
|
|
28
|
+
"ColorNeutralMist600": "#4a5567",
|
|
29
|
+
"ColorNeutralMist800": "#2a3142",
|
|
30
|
+
"ColorNeutralMist950": "#0b0f19",
|
|
31
|
+
"ColorSemanticVerified": "#00d17a",
|
|
32
|
+
"ColorSemanticVerifiedStrong": "#007947",
|
|
33
|
+
"ColorSemanticSignal": "#4d9dff",
|
|
34
|
+
"ColorSemanticSignalStrong": "#346bad",
|
|
35
|
+
"ColorSemanticCaution": "#f5a623",
|
|
36
|
+
"ColorSemanticCautionStrong": "#8e6014",
|
|
37
|
+
"ColorSemanticCritical": "#ff4d4d",
|
|
38
|
+
"ColorSemanticCriticalStrong": "#be3939",
|
|
39
|
+
"ColorAdaptiveDawnSurface": "#f0eee9",
|
|
40
|
+
"ColorAdaptiveDawnText": "#2a3142",
|
|
41
|
+
"ColorAdaptiveDaySurface": "#f4f6fa",
|
|
42
|
+
"ColorAdaptiveDayText": "#2a3142",
|
|
43
|
+
"ColorAdaptiveDuskSurface": "#1a1a26",
|
|
44
|
+
"ColorAdaptiveDuskText": "#c8d0de",
|
|
45
|
+
"ColorAdaptiveNightSurface": "#060912",
|
|
46
|
+
"ColorAdaptiveNightText": "#c8d0de",
|
|
47
|
+
"ColorSurfaceCanvas": "#f4f6fa",
|
|
48
|
+
"ColorSurfaceRaised": "#e8ecf4",
|
|
49
|
+
"ColorSurfaceInput": "#d6dce8",
|
|
50
|
+
"ColorSurfaceBorder": "#b0baca",
|
|
51
|
+
"ColorSurfaceBorderMuted": "#8a95a8",
|
|
52
|
+
"ColorTextPrimary": "#0b0f19",
|
|
53
|
+
"ColorTextSecondary": "#4a5567",
|
|
54
|
+
"ColorTextMuted": "#8a95a8",
|
|
55
|
+
"ColorTextDisabled": "#b0baca",
|
|
56
|
+
"ColorTextInverse": "#fbfcfe",
|
|
57
|
+
"ColorTextOnBrand": "#fbfcfe",
|
|
58
|
+
"ColorScrimLight": "#0b0f1980",
|
|
59
|
+
"ColorScrimDark": "#060912b3",
|
|
60
|
+
"ColorActionPrimaryBg": "#7c5cff",
|
|
61
|
+
"ColorActionPrimaryFg": "#fbfcfe",
|
|
62
|
+
"ColorActionPrimaryBorder": "#7c5cff",
|
|
63
|
+
"ColorActionPrimaryBgHover": "#5b3ee8",
|
|
64
|
+
"ColorActionPrimaryBgActive": "#5b3ee8",
|
|
65
|
+
"ColorActionSecondaryBg": "#e8ecf4",
|
|
66
|
+
"ColorActionSecondaryFg": "#0b0f19",
|
|
67
|
+
"ColorActionSecondaryBorder": "#b0baca",
|
|
68
|
+
"ColorActionSecondaryBgHover": "#d6dce8",
|
|
69
|
+
"ColorActionGhostFg": "#0b0f19",
|
|
70
|
+
"ColorActionGhostBgHover": "#e8ecf4",
|
|
71
|
+
"ColorActionDestructiveBg": "#ff4d4d",
|
|
72
|
+
"ColorActionDestructiveFg": "#fbfcfe",
|
|
73
|
+
"ColorActionDestructiveBorder": "#ff4d4d",
|
|
74
|
+
"ColorStatusVerifiedFg": "#007947",
|
|
75
|
+
"ColorStatusVerifiedBg": "#e8ecf4",
|
|
76
|
+
"ColorStatusVerifiedBorder": "#007947",
|
|
77
|
+
"ColorStatusVerifiedAccent": "#00d17a",
|
|
78
|
+
"ColorStatusSignalFg": "#346bad",
|
|
79
|
+
"ColorStatusSignalBg": "#e8ecf4",
|
|
80
|
+
"ColorStatusSignalBorder": "#346bad",
|
|
81
|
+
"ColorStatusSignalAccent": "#4d9dff",
|
|
82
|
+
"ColorStatusCautionFg": "#8e6014",
|
|
83
|
+
"ColorStatusCautionBg": "#e8ecf4",
|
|
84
|
+
"ColorStatusCautionBorder": "#8e6014",
|
|
85
|
+
"ColorStatusCautionAccent": "#f5a623",
|
|
86
|
+
"ColorStatusCriticalFg": "#be3939",
|
|
87
|
+
"ColorStatusCriticalBg": "#e8ecf4",
|
|
88
|
+
"ColorStatusCriticalBorder": "#be3939",
|
|
89
|
+
"ColorStatusCriticalAccent": "#ff4d4d",
|
|
90
|
+
"ColorBorderDefault": "#b0baca",
|
|
91
|
+
"ColorBorderStrong": "#8a95a8",
|
|
92
|
+
"ColorBorderFocus": "#4d9dff",
|
|
93
|
+
"ColorControlBg": "#d6dce8",
|
|
94
|
+
"ColorControlBorder": "#b0baca",
|
|
95
|
+
"ColorControlFg": "#0b0f19",
|
|
96
|
+
"ColorControlPlaceholder": "#8a95a8",
|
|
97
|
+
"ContainerSm": "40rem",
|
|
98
|
+
"ContainerMd": "48rem",
|
|
99
|
+
"ContainerLg": "64rem",
|
|
100
|
+
"ContainerXl": "80rem",
|
|
101
|
+
"Container2xl": "96rem",
|
|
102
|
+
"FocusRingWidth": "2px",
|
|
103
|
+
"FocusRingColor": "#4d9dff",
|
|
104
|
+
"FocusRingOffset": "2px",
|
|
105
|
+
"FontFamilySans": "Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
|
|
106
|
+
"FontFamilyMono": "'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace",
|
|
107
|
+
"FontWeightRegular": "400",
|
|
108
|
+
"FontWeightMedium": "500",
|
|
109
|
+
"FontWeightSemibold": "600",
|
|
110
|
+
"FontWeightBold": "700",
|
|
111
|
+
"MotionDurationInstant": "0ms",
|
|
112
|
+
"MotionDurationFast": "120ms",
|
|
113
|
+
"MotionDurationBase": "200ms",
|
|
114
|
+
"MotionDurationDeliberate": "350ms",
|
|
115
|
+
"MotionDurationAmbient": "1200ms",
|
|
116
|
+
"MotionEasingVerdify": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
117
|
+
"MotionEasingEmphasis": "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
118
|
+
"MotionEasingAmbient": "cubic-bezier(0.4, 0, 0.6, 1)",
|
|
119
|
+
"MotionEasingExit": "cubic-bezier(0.4, 0, 1, 1)",
|
|
120
|
+
"MotionTransitionMicroDuration": "120ms",
|
|
121
|
+
"MotionTransitionMicroEasing": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
122
|
+
"MotionTransitionLayoutDuration": "200ms",
|
|
123
|
+
"MotionTransitionLayoutEasing": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
124
|
+
"MotionTransitionModalDuration": "350ms",
|
|
125
|
+
"MotionTransitionModalEasing": "cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
126
|
+
"MotionTransitionAmbientDuration": "1200ms",
|
|
127
|
+
"MotionTransitionAmbientEasing": "cubic-bezier(0.4, 0, 0.6, 1)",
|
|
128
|
+
"Opacity0": "0",
|
|
129
|
+
"Opacity5": "0.05",
|
|
130
|
+
"Opacity10": "0.1",
|
|
131
|
+
"Opacity20": "0.2",
|
|
132
|
+
"Opacity30": "0.3",
|
|
133
|
+
"Opacity40": "0.4",
|
|
134
|
+
"Opacity50": "0.5",
|
|
135
|
+
"Opacity60": "0.6",
|
|
136
|
+
"Opacity70": "0.7",
|
|
137
|
+
"Opacity80": "0.8",
|
|
138
|
+
"Opacity90": "0.9",
|
|
139
|
+
"Opacity95": "0.95",
|
|
140
|
+
"Opacity100": "1",
|
|
141
|
+
"RadiusNone": "0",
|
|
142
|
+
"RadiusSm": "0.25rem",
|
|
143
|
+
"RadiusMd": "0.5rem",
|
|
144
|
+
"RadiusLg": "0.75rem",
|
|
145
|
+
"RadiusXl": "1rem",
|
|
146
|
+
"RadiusFull": "9999px",
|
|
147
|
+
"ShadowNone": "none",
|
|
148
|
+
"ShadowSm": "0 1px 2px 0 rgb(11 15 25 / 0.05)",
|
|
149
|
+
"ShadowMd": "0 4px 6px -1px rgb(11 15 25 / 0.08), 0 2px 4px -2px rgb(11 15 25 / 0.08)",
|
|
150
|
+
"ShadowLg": "0 10px 15px -3px rgb(11 15 25 / 0.10), 0 4px 6px -4px rgb(11 15 25 / 0.10)",
|
|
151
|
+
"ShadowXl": "0 20px 25px -5px rgb(11 15 25 / 0.10), 0 8px 10px -6px rgb(11 15 25 / 0.10)",
|
|
152
|
+
"SizeIconSm": "1rem",
|
|
153
|
+
"SizeIconMd": "1.25rem",
|
|
154
|
+
"SizeIconLg": "1.5rem",
|
|
155
|
+
"SizeIconXl": "2rem",
|
|
156
|
+
"SizeTargetMobile": "2.75rem",
|
|
157
|
+
"SizeTargetDesktop": "2.5rem",
|
|
158
|
+
"Space0": "0",
|
|
159
|
+
"Space1": "0.25rem",
|
|
160
|
+
"Space2": "0.5rem",
|
|
161
|
+
"Space3": "0.75rem",
|
|
162
|
+
"Space4": "1rem",
|
|
163
|
+
"Space5": "1.25rem",
|
|
164
|
+
"Space6": "1.5rem",
|
|
165
|
+
"Space7": "1.75rem",
|
|
166
|
+
"Space8": "2rem",
|
|
167
|
+
"Space9": "2.25rem",
|
|
168
|
+
"Space10": "2.5rem",
|
|
169
|
+
"Space11": "2.75rem",
|
|
170
|
+
"Space12": "3rem",
|
|
171
|
+
"Space14": "3.5rem",
|
|
172
|
+
"Space16": "4rem",
|
|
173
|
+
"Space20": "5rem",
|
|
174
|
+
"Space24": "6rem",
|
|
175
|
+
"Space28": "7rem",
|
|
176
|
+
"Space32": "8rem",
|
|
177
|
+
"StateOpacityHover": "0.08",
|
|
178
|
+
"StateOpacityPressed": "0.12",
|
|
179
|
+
"StateOpacityFocus": "0.12",
|
|
180
|
+
"StateOpacityDisabled": "0.38",
|
|
181
|
+
"StateOpacityDragged": "0.16",
|
|
182
|
+
"TextDisplaySize": "3.5rem",
|
|
183
|
+
"TextDisplayLineHeight": "1.05",
|
|
184
|
+
"TextDisplayLetterSpacing": "-0.025em",
|
|
185
|
+
"TextDisplayWeight": "600",
|
|
186
|
+
"TextH1Size": "2.25rem",
|
|
187
|
+
"TextH1LineHeight": "1.15",
|
|
188
|
+
"TextH1LetterSpacing": "-0.022em",
|
|
189
|
+
"TextH1Weight": "600",
|
|
190
|
+
"TextH2Size": "1.625rem",
|
|
191
|
+
"TextH2LineHeight": "1.25",
|
|
192
|
+
"TextH2LetterSpacing": "-0.018em",
|
|
193
|
+
"TextH2Weight": "500",
|
|
194
|
+
"TextH3Size": "1.25rem",
|
|
195
|
+
"TextH3LineHeight": "1.35",
|
|
196
|
+
"TextH3LetterSpacing": "-0.015em",
|
|
197
|
+
"TextH3Weight": "500",
|
|
198
|
+
"TextBodyLgSize": "1.0625rem",
|
|
199
|
+
"TextBodyLgLineHeight": "1.55",
|
|
200
|
+
"TextBodyLgLetterSpacing": "0",
|
|
201
|
+
"TextBodyLgWeight": "400",
|
|
202
|
+
"TextBodySize": "0.9375rem",
|
|
203
|
+
"TextBodyLineHeight": "1.55",
|
|
204
|
+
"TextBodyLetterSpacing": "0",
|
|
205
|
+
"TextBodyWeight": "400",
|
|
206
|
+
"TextCaptionSize": "0.75rem",
|
|
207
|
+
"TextCaptionLineHeight": "1.45",
|
|
208
|
+
"TextCaptionLetterSpacing": "0.005em",
|
|
209
|
+
"TextCaptionWeight": "400",
|
|
210
|
+
"TextLabelSize": "0.6875rem",
|
|
211
|
+
"TextLabelLineHeight": "1.4",
|
|
212
|
+
"TextLabelLetterSpacing": "0.18em",
|
|
213
|
+
"TextLabelWeight": "500",
|
|
214
|
+
"TextMonoSmSize": "0.75rem",
|
|
215
|
+
"TextMonoSmLineHeight": "1.5",
|
|
216
|
+
"TextMonoSmLetterSpacing": "0",
|
|
217
|
+
"TextMonoSmWeight": "400",
|
|
218
|
+
"TextMonoSize": "0.875rem",
|
|
219
|
+
"TextMonoLineHeight": "1.55",
|
|
220
|
+
"TextMonoLetterSpacing": "0",
|
|
221
|
+
"TextMonoWeight": "400",
|
|
222
|
+
"ZIndexBase": "0",
|
|
223
|
+
"ZIndexDropdown": "1000",
|
|
224
|
+
"ZIndexSticky": "1100",
|
|
225
|
+
"ZIndexModal": "1200",
|
|
226
|
+
"ZIndexPopover": "1300",
|
|
227
|
+
"ZIndexToast": "1400"
|
|
228
|
+
}
|
package/dist/tokens.mjs
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Do not edit directly, this file was auto-generated.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export const BorderWidth0 = "0"; // No border
|
|
6
|
+
export const BorderWidth2 = "2px"; // Emphasized border width
|
|
7
|
+
export const BorderWidth4 = "4px"; // Heavy border width — reserved for focus indicators or active states
|
|
8
|
+
export const BorderWidthDefault = "1px"; // Default border width
|
|
9
|
+
export const BreakpointSm = "40rem"; // Small breakpoint (640px) — landscape phones
|
|
10
|
+
export const BreakpointMd = "48rem"; // Medium breakpoint (768px) — tablets portrait
|
|
11
|
+
export const BreakpointLg = "64rem"; // Large breakpoint (1024px) — tablets landscape, small laptops
|
|
12
|
+
export const BreakpointXl = "80rem"; // Extra large breakpoint (1280px) — desktops
|
|
13
|
+
export const Breakpoint2xl = "96rem"; // 2X large breakpoint (1536px) — wide desktops
|
|
14
|
+
export const ColorBrandBrand = "#7c5cff"; // Sovereign Violet — the single brand anchor. Identity color; the logo seam and primary brand moments. Sits outside the traffic-light status register.
|
|
15
|
+
export const ColorBrandBrandDeep = "#5b3ee8"; // Companion to brand.brand — used on light surfaces where #7C5CFF fails WCAG 2.2 non-text contrast (>=3:1). Luminance shift only.
|
|
16
|
+
export const ColorNeutralObsidian300 = "#c8d0de"; // Primary text on dark
|
|
17
|
+
export const ColorNeutralObsidian400 = "#8a95a8"; // Secondary text
|
|
18
|
+
export const ColorNeutralObsidian500 = "#4a5567"; // Muted text
|
|
19
|
+
export const ColorNeutralObsidian600 = "#2a3142"; // Muted border
|
|
20
|
+
export const ColorNeutralObsidian700 = "#1f2638"; // Border / divider
|
|
21
|
+
export const ColorNeutralObsidian800 = "#161b2a"; // Input / well
|
|
22
|
+
export const ColorNeutralObsidian850 = "#0f1320"; // Raised surface · cards
|
|
23
|
+
export const ColorNeutralObsidian900 = "#0b0f19"; // Default dark canvas
|
|
24
|
+
export const ColorNeutralObsidian950 = "#060912"; // Deepest backdrop · night-band canvas
|
|
25
|
+
export const ColorNeutralMist50 = "#fbfcfe"; // Deepest light backdrop
|
|
26
|
+
export const ColorNeutralMist100 = "#f4f6fa"; // Default light canvas
|
|
27
|
+
export const ColorNeutralMist200 = "#e8ecf4"; // Raised surface · cards
|
|
28
|
+
export const ColorNeutralMist300 = "#d6dce8"; // Input / well
|
|
29
|
+
export const ColorNeutralMist400 = "#b0baca"; // Border / divider
|
|
30
|
+
export const ColorNeutralMist500 = "#8a95a8"; // Muted (shared with obsidian.400)
|
|
31
|
+
export const ColorNeutralMist600 = "#4a5567"; // Secondary text (shared with obsidian.500)
|
|
32
|
+
export const ColorNeutralMist800 = "#2a3142"; // Strong text
|
|
33
|
+
export const ColorNeutralMist950 = "#0b0f19"; // Highest-contrast text (shared with obsidian.900)
|
|
34
|
+
export const ColorSemanticVerified = "#00d17a"; // Trust / success / verification passed — bright decorative accent (icons/fills). Fails WCAG AA as text on light surfaces; use verified-strong for readable fg/border.
|
|
35
|
+
export const ColorSemanticVerifiedStrong = "#007947"; // Verified, darkened to WCAG AA — in-hue luminance shift of verified; 4.64:1 on Mist-200 (#E8ECF4). Status chip foreground/border.
|
|
36
|
+
export const ColorSemanticSignal = "#4d9dff"; // Info / hyperlinks / neutral interactive accent — bright decorative accent. Fails WCAG AA as text on light surfaces; use signal-strong for readable fg/border.
|
|
37
|
+
export const ColorSemanticSignalStrong = "#346bad"; // Signal, darkened to WCAG AA — in-hue luminance shift of signal; 4.60:1 on Mist-200 (#E8ECF4). Status chip foreground/border.
|
|
38
|
+
export const ColorSemanticCaution = "#f5a623"; // Warning / pending / verification in progress — bright decorative accent. Fails WCAG AA as text on light surfaces; use caution-strong for readable fg/border.
|
|
39
|
+
export const ColorSemanticCautionStrong = "#8e6014"; // Caution, darkened to WCAG AA — in-hue luminance shift of caution; 4.63:1 on Mist-200 (#E8ECF4). Status chip foreground/border.
|
|
40
|
+
export const ColorSemanticCritical = "#ff4d4d"; // Error / verification failure / destructive action — bright decorative accent. Fails WCAG AA as text on light surfaces; use critical-strong for readable fg/border.
|
|
41
|
+
export const ColorSemanticCriticalStrong = "#be3939"; // Critical, darkened to WCAG AA — in-hue luminance shift of critical; 4.63:1 on Mist-200 (#E8ECF4). Status chip foreground/border.
|
|
42
|
+
export const ColorAdaptiveDawnSurface = "#f0eee9"; // Adaptive dawn band surface (05:00-09:00)
|
|
43
|
+
export const ColorAdaptiveDawnText = "#2a3142"; // Adaptive dawn band primary text (05:00-09:00)
|
|
44
|
+
export const ColorAdaptiveDaySurface = "#f4f6fa"; // Adaptive day band surface (09:00-17:00)
|
|
45
|
+
export const ColorAdaptiveDayText = "#2a3142"; // Adaptive day band primary text (09:00-17:00)
|
|
46
|
+
export const ColorAdaptiveDuskSurface = "#1a1a26"; // Adaptive dusk band surface (17:00-21:00)
|
|
47
|
+
export const ColorAdaptiveDuskText = "#c8d0de"; // Adaptive dusk band primary text (17:00-21:00)
|
|
48
|
+
export const ColorAdaptiveNightSurface = "#060912"; // Adaptive night band surface (21:00-05:00)
|
|
49
|
+
export const ColorAdaptiveNightText = "#c8d0de"; // Adaptive night band primary text (21:00-05:00)
|
|
50
|
+
export const ColorSurfaceCanvas = "#f4f6fa"; // Default canvas (light); reassigned per adaptive band at runtime. Per BR-1 §4.2 'Default light canvas'.
|
|
51
|
+
export const ColorSurfaceRaised = "#e8ecf4"; // Raised surface — cards. Per BR-1 §4.2 'Raised surface · cards'.
|
|
52
|
+
export const ColorSurfaceInput = "#d6dce8"; // Input / well. Per BR-1 §4.2 'Input / well'.
|
|
53
|
+
export const ColorSurfaceBorder = "#b0baca"; // Border / divider. Per BR-1 §4.2 'Border / divider'.
|
|
54
|
+
export const ColorSurfaceBorderMuted = "#8a95a8"; // Muted border — implicit in Mist scale (mid-range collision with Obsidian 600). Per BR-1 §4.2.
|
|
55
|
+
export const ColorTextPrimary = "#0b0f19"; // Primary text on canvas; reassigned per adaptive band. Per BR-1 §4.2 'Highest-contrast text'.
|
|
56
|
+
export const ColorTextSecondary = "#4a5567"; // Secondary text role; aliases to mist.600, whose hex (#4A5567) is shared with obsidian.500 per BR-1 §4.2 mid-range collision.
|
|
57
|
+
export const ColorTextMuted = "#8a95a8"; // Muted text — shared with obsidian.400 per BR-1 §4.2 mid-range collision. Contrast on surface.canvas is ~2.8:1 — intentionally below WCAG AA for body text; use only for de-emphasised auxiliary text where ≥3:1 (UI components) is the relevant bar.
|
|
58
|
+
export const ColorTextDisabled = "#b0baca"; // Disabled text — low-contrast, deliberate. Aliases mist.400; downstream consumers may alternatively compose text.primary with state.opacity.disabled (0.38) for a different visual register.
|
|
59
|
+
export const ColorTextInverse = "#fbfcfe"; // Text on dark surfaces (e.g. obsidian backdrop, dark scrim). Aliases mist.50 — the lightest neutral. Distinct from on-brand: inverse is for neutral-dark contexts; on-brand is reserved for brand backgrounds.
|
|
60
|
+
export const ColorTextOnBrand = "#fbfcfe"; // Text on brand backgrounds (e.g. CTA buttons). Constant per brand discipline.
|
|
61
|
+
export const ColorScrimLight = "#0b0f1980"; // Modal/sheet backdrop on light surfaces — obsidian-900 at 50% opacity (per BR-2 spec §4).
|
|
62
|
+
export const ColorScrimDark = "#060912b3"; // Modal/sheet backdrop on dark surfaces — obsidian-950 at 70% opacity for stronger isolation.
|
|
63
|
+
export const ColorActionPrimaryBg = "#7c5cff"; // Primary action background — Sovereign Violet. The single high-emphasis CTA per surface.
|
|
64
|
+
export const ColorActionPrimaryFg = "#fbfcfe"; // Text/icon on a primary action.
|
|
65
|
+
export const ColorActionPrimaryBorder = "#7c5cff"; // Primary action border — matches bg.
|
|
66
|
+
export const ColorActionPrimaryBgHover = "#5b3ee8"; // Primary action hover — deep companion.
|
|
67
|
+
export const ColorActionPrimaryBgActive = "#5b3ee8"; // Primary action pressed/active.
|
|
68
|
+
export const ColorActionSecondaryBg = "#e8ecf4"; // Secondary action background — neutral raised surface.
|
|
69
|
+
export const ColorActionSecondaryFg = "#0b0f19"; // Text/icon on a secondary action.
|
|
70
|
+
export const ColorActionSecondaryBorder = "#b0baca"; // Secondary action border.
|
|
71
|
+
export const ColorActionSecondaryBgHover = "#d6dce8"; // Secondary action hover.
|
|
72
|
+
export const ColorActionGhostFg = "#0b0f19"; // Ghost action text/icon — no fill until hover.
|
|
73
|
+
export const ColorActionGhostBgHover = "#e8ecf4"; // Ghost action hover fill.
|
|
74
|
+
export const ColorActionDestructiveBg = "#ff4d4d"; // Destructive action background — Critical. A status color used for a destructive control; never the brand.
|
|
75
|
+
export const ColorActionDestructiveFg = "#fbfcfe"; // Text/icon on a destructive action.
|
|
76
|
+
export const ColorActionDestructiveBorder = "#ff4d4d"; // Destructive action border.
|
|
77
|
+
export const ColorStatusVerifiedFg = "#007947"; // Verified status foreground — Verified Green darkened to WCAG AA (#007947, ≥4.5:1 on the chip bg). The in-product success state; never the brand.
|
|
78
|
+
export const ColorStatusVerifiedBg = "#e8ecf4"; // Verified status chip background — neutral; color carried by fg/border (restraint over volume).
|
|
79
|
+
export const ColorStatusVerifiedBorder = "#007947"; // Verified status border — AA-dark shade (≥3:1 non-text).
|
|
80
|
+
export const ColorStatusVerifiedAccent = "#00d17a"; // Verified bright decorative accent (#00D17A) — for icons/fills where contrast is not a text/border requirement.
|
|
81
|
+
export const ColorStatusSignalFg = "#346bad"; // Informational status foreground — Signal darkened to WCAG AA (#346BAD, ≥4.5:1 on the chip bg).
|
|
82
|
+
export const ColorStatusSignalBg = "#e8ecf4"; // Informational status chip background — neutral.
|
|
83
|
+
export const ColorStatusSignalBorder = "#346bad"; // Informational status border — AA-dark shade (≥3:1 non-text).
|
|
84
|
+
export const ColorStatusSignalAccent = "#4d9dff"; // Signal bright decorative accent (#4D9DFF) — for icons/fills.
|
|
85
|
+
export const ColorStatusCautionFg = "#8e6014"; // Caution status foreground — Caution darkened to WCAG AA (#8E6014, ≥4.5:1 on the chip bg); pending / in-progress.
|
|
86
|
+
export const ColorStatusCautionBg = "#e8ecf4"; // Caution status chip background — neutral.
|
|
87
|
+
export const ColorStatusCautionBorder = "#8e6014"; // Caution status border — AA-dark shade (≥3:1 non-text).
|
|
88
|
+
export const ColorStatusCautionAccent = "#f5a623"; // Caution bright decorative accent (#F5A623) — for icons/fills.
|
|
89
|
+
export const ColorStatusCriticalFg = "#be3939"; // Critical status foreground — Critical darkened to WCAG AA (#BE3939, ≥4.5:1 on the chip bg); error / failure.
|
|
90
|
+
export const ColorStatusCriticalBg = "#e8ecf4"; // Critical status chip background — neutral.
|
|
91
|
+
export const ColorStatusCriticalBorder = "#be3939"; // Critical status border — AA-dark shade (≥3:1 non-text).
|
|
92
|
+
export const ColorStatusCriticalAccent = "#ff4d4d"; // Critical bright decorative accent (#FF4D4D) — for icons/fills.
|
|
93
|
+
export const ColorBorderDefault = "#b0baca"; // Default component border — divider weight.
|
|
94
|
+
export const ColorBorderStrong = "#8a95a8"; // Higher-contrast component border for emphasis.
|
|
95
|
+
export const ColorBorderFocus = "#4d9dff"; // Focused-input border color — matches the focus ring (single source: focus.ring.color).
|
|
96
|
+
export const ColorControlBg = "#d6dce8"; // Form control background — input / well.
|
|
97
|
+
export const ColorControlBorder = "#b0baca"; // Form control border.
|
|
98
|
+
export const ColorControlFg = "#0b0f19"; // Form control text/value.
|
|
99
|
+
export const ColorControlPlaceholder = "#8a95a8"; // Form control placeholder text — de-emphasised.
|
|
100
|
+
export const ContainerSm = "40rem"; // Container max-width at sm breakpoint
|
|
101
|
+
export const ContainerMd = "48rem"; // Container max-width at md breakpoint
|
|
102
|
+
export const ContainerLg = "64rem"; // Container max-width at lg breakpoint
|
|
103
|
+
export const ContainerXl = "80rem"; // Container max-width at xl breakpoint
|
|
104
|
+
export const Container2xl = "96rem"; // Container max-width at 2xl breakpoint
|
|
105
|
+
export const FocusRingWidth = "2px"; // Focus ring width. Per WCAG 2.4.7.
|
|
106
|
+
export const FocusRingColor = "#4d9dff"; // Focus ring color — semantic.signal (#4D9DFF). Contrast ≥3:1 verified in Task 7 (contrast-validation).
|
|
107
|
+
export const FocusRingOffset = "2px"; // Focus ring offset (gap between target and ring).
|
|
108
|
+
export const FontFamilySans =
|
|
109
|
+
"Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"; // Primary UI and reading family — Inter Variable per BR-1 §5.1. System fallbacks listed in priority order.
|
|
110
|
+
export const FontFamilyMono =
|
|
111
|
+
"'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace"; // Technical family for IDs, hashes, code, timestamps — JetBrains Mono Variable per BR-1 §5.1.
|
|
112
|
+
export const FontWeightRegular = "400"; // Body / paragraph weight
|
|
113
|
+
export const FontWeightMedium = "500"; // H2/H3, labels, wordmark
|
|
114
|
+
export const FontWeightSemibold = "600"; // Display / H1
|
|
115
|
+
export const FontWeightBold = "700"; // Reserved for rare emphasis; not used in default scale
|
|
116
|
+
export const MotionDurationInstant = "0ms"; // State changes — selection, focus state (no animation). Per BR-1 §9.1.
|
|
117
|
+
export const MotionDurationFast = "120ms"; // Hover, focus rings, button presses. Per BR-1 §9.1.
|
|
118
|
+
export const MotionDurationBase = "200ms"; // Most UI transitions — panels, tooltips. Per BR-1 §9.1.
|
|
119
|
+
export const MotionDurationDeliberate = "350ms"; // Verification moments, modals, the check. Per BR-1 §9.1.
|
|
120
|
+
export const MotionDurationAmbient = "1200ms"; // Band transitions, time-of-day, hero entrances. Per BR-1 §9.1. NOT for UI feedback.
|
|
121
|
+
export const MotionEasingVerdify = "cubic-bezier(0.2, 0.8, 0.2, 1)"; // Default — natural, slightly snappy. Per BR-1 §9.2.
|
|
122
|
+
export const MotionEasingEmphasis = "cubic-bezier(0.34, 1.56, 0.64, 1)"; // The check moment only — slight overshoot. Per BR-1 §9.2.
|
|
123
|
+
export const MotionEasingAmbient = "cubic-bezier(0.4, 0, 0.6, 1)"; // Long, gentle — adaptive bands. Per BR-1 §9.2.
|
|
124
|
+
export const MotionEasingExit = "cubic-bezier(0.4, 0, 1, 1)"; // Things leaving feel decisive. Per BR-1 §9.2.
|
|
125
|
+
export const MotionTransitionMicroDuration = "120ms"; // Hover/press feedback duration. Per BR-2 spec D-11.
|
|
126
|
+
export const MotionTransitionMicroEasing = "cubic-bezier(0.2, 0.8, 0.2, 1)"; // Hover/press feedback easing.
|
|
127
|
+
export const MotionTransitionLayoutDuration = "200ms"; // Most UI layout transitions duration.
|
|
128
|
+
export const MotionTransitionLayoutEasing = "cubic-bezier(0.2, 0.8, 0.2, 1)"; // Most UI layout transitions easing.
|
|
129
|
+
export const MotionTransitionModalDuration = "350ms"; // Modal/sheet entry/exit duration. Per BR-1 §9.3 — restraint (no ease-emphasis; that is reserved for the check).
|
|
130
|
+
export const MotionTransitionModalEasing = "cubic-bezier(0.2, 0.8, 0.2, 1)"; // Modal/sheet entry/exit easing.
|
|
131
|
+
export const MotionTransitionAmbientDuration = "1200ms"; // Adaptive band transitions duration. NOT for primary UI feedback.
|
|
132
|
+
export const MotionTransitionAmbientEasing = "cubic-bezier(0.4, 0, 0.6, 1)"; // Adaptive band transitions easing.
|
|
133
|
+
export const Opacity0 = "0"; // Fully transparent
|
|
134
|
+
export const Opacity5 = "0.05"; // Opacity 5%
|
|
135
|
+
export const Opacity10 = "0.1"; // Opacity 10%
|
|
136
|
+
export const Opacity20 = "0.2"; // Opacity 20%
|
|
137
|
+
export const Opacity30 = "0.3"; // Opacity 30%
|
|
138
|
+
export const Opacity40 = "0.4"; // Opacity 40%
|
|
139
|
+
export const Opacity50 = "0.5"; // Opacity 50%
|
|
140
|
+
export const Opacity60 = "0.6"; // Opacity 60%
|
|
141
|
+
export const Opacity70 = "0.7"; // Opacity 70%
|
|
142
|
+
export const Opacity80 = "0.8"; // Opacity 80%
|
|
143
|
+
export const Opacity90 = "0.9"; // Opacity 90%
|
|
144
|
+
export const Opacity95 = "0.95"; // Opacity 95%
|
|
145
|
+
export const Opacity100 = "1"; // Fully opaque
|
|
146
|
+
export const RadiusNone = "0"; // No border radius — squared corners
|
|
147
|
+
export const RadiusSm = "0.25rem"; // Small radius (4px) — inputs, chips
|
|
148
|
+
export const RadiusMd = "0.5rem"; // Medium radius (8px) — buttons, cards
|
|
149
|
+
export const RadiusLg = "0.75rem"; // Large radius (12px) — modals, sheets
|
|
150
|
+
export const RadiusXl = "1rem"; // Extra large radius (16px) — feature surfaces
|
|
151
|
+
export const RadiusFull = "9999px"; // Full radius — pills, circular avatars
|
|
152
|
+
export const ShadowNone = "none"; // No shadow
|
|
153
|
+
export const ShadowSm = "0 1px 2px 0 rgb(11 15 25 / 0.05)"; // Subtle elevation — inputs, low cards
|
|
154
|
+
export const ShadowMd =
|
|
155
|
+
"0 4px 6px -1px rgb(11 15 25 / 0.08), 0 2px 4px -2px rgb(11 15 25 / 0.08)"; // Standard elevation — raised cards, dropdowns
|
|
156
|
+
export const ShadowLg =
|
|
157
|
+
"0 10px 15px -3px rgb(11 15 25 / 0.10), 0 4px 6px -4px rgb(11 15 25 / 0.10)"; // Strong elevation — popovers, sheets
|
|
158
|
+
export const ShadowXl =
|
|
159
|
+
"0 20px 25px -5px rgb(11 15 25 / 0.10), 0 8px 10px -6px rgb(11 15 25 / 0.10)"; // Hero elevation — modals, feature emphasis. Max opacity (brand-voice ceiling).
|
|
160
|
+
export const SizeIconSm = "1rem"; // Small icon (16px) — inline, captions
|
|
161
|
+
export const SizeIconMd = "1.25rem"; // Medium icon (20px) — buttons, inline body
|
|
162
|
+
export const SizeIconLg = "1.5rem"; // Large icon (24px) — primary actions, headers
|
|
163
|
+
export const SizeIconXl = "2rem"; // Extra large icon (32px) — feature emphasis
|
|
164
|
+
export const SizeTargetMobile = "2.75rem"; // Mobile minimum tap target (44px). Per WCAG 2.5.5 and Apple HIG.
|
|
165
|
+
export const SizeTargetDesktop = "2.5rem"; // Desktop minimum click target (40px). Per Material Design.
|
|
166
|
+
export const Space0 = "0"; // Spacing step 0 (0px)
|
|
167
|
+
export const Space1 = "0.25rem"; // Spacing step 1 (4px)
|
|
168
|
+
export const Space2 = "0.5rem"; // Spacing step 2 (8px)
|
|
169
|
+
export const Space3 = "0.75rem"; // Spacing step 3 (12px)
|
|
170
|
+
export const Space4 = "1rem"; // Spacing step 4 (16px) — base unit
|
|
171
|
+
export const Space5 = "1.25rem"; // Spacing step 5 (20px)
|
|
172
|
+
export const Space6 = "1.5rem"; // Spacing step 6 (24px)
|
|
173
|
+
export const Space7 = "1.75rem"; // Spacing step 7 (28px)
|
|
174
|
+
export const Space8 = "2rem"; // Spacing step 8 (32px)
|
|
175
|
+
export const Space9 = "2.25rem"; // Spacing step 9 (36px)
|
|
176
|
+
export const Space10 = "2.5rem"; // Spacing step 10 (40px)
|
|
177
|
+
export const Space11 = "2.75rem"; // Spacing step 11 (44px)
|
|
178
|
+
export const Space12 = "3rem"; // Spacing step 12 (48px)
|
|
179
|
+
export const Space14 = "3.5rem"; // Spacing step 14 (56px)
|
|
180
|
+
export const Space16 = "4rem"; // Spacing step 16 (64px)
|
|
181
|
+
export const Space20 = "5rem"; // Spacing step 20 (80px)
|
|
182
|
+
export const Space24 = "6rem"; // Spacing step 24 (96px)
|
|
183
|
+
export const Space28 = "7rem"; // Spacing step 28 (112px)
|
|
184
|
+
export const Space32 = "8rem"; // Spacing step 32 (128px)
|
|
185
|
+
export const StateOpacityHover = "0.08"; // Hover state-layer opacity overlay. Material-derived; per BR-2 spec D-10.
|
|
186
|
+
export const StateOpacityPressed = "0.12"; // Pressed/active state-layer opacity overlay.
|
|
187
|
+
export const StateOpacityFocus = "0.12"; // Focused state-layer opacity overlay (in addition to focus ring).
|
|
188
|
+
export const StateOpacityDisabled = "0.38"; // Disabled state opacity — applied to text or icon, not as overlay.
|
|
189
|
+
export const StateOpacityDragged = "0.16"; // Dragged state-layer opacity overlay.
|
|
190
|
+
export const TextDisplaySize = "3.5rem"; // Display heading size (56px); per BR-1 §5.2
|
|
191
|
+
export const TextDisplayLineHeight = "1.05"; // Display heading line-height
|
|
192
|
+
export const TextDisplayLetterSpacing = "-0.025em"; // Display heading tracking
|
|
193
|
+
export const TextDisplayWeight = "600"; // Display heading weight (semibold)
|
|
194
|
+
export const TextH1Size = "2.25rem"; // H1 size (36px); per BR-1 §5.2
|
|
195
|
+
export const TextH1LineHeight = "1.15"; // H1 line-height
|
|
196
|
+
export const TextH1LetterSpacing = "-0.022em"; // H1 tracking
|
|
197
|
+
export const TextH1Weight = "600"; // H1 weight (semibold)
|
|
198
|
+
export const TextH2Size = "1.625rem"; // H2 size (26px); per BR-1 §5.2
|
|
199
|
+
export const TextH2LineHeight = "1.25"; // H2 line-height
|
|
200
|
+
export const TextH2LetterSpacing = "-0.018em"; // H2 tracking
|
|
201
|
+
export const TextH2Weight = "500"; // H2 weight (medium)
|
|
202
|
+
export const TextH3Size = "1.25rem"; // H3 size (20px); per BR-1 §5.2
|
|
203
|
+
export const TextH3LineHeight = "1.35"; // H3 line-height
|
|
204
|
+
export const TextH3LetterSpacing = "-0.015em"; // H3 tracking
|
|
205
|
+
export const TextH3Weight = "500"; // H3 weight (medium)
|
|
206
|
+
export const TextBodyLgSize = "1.0625rem"; // Body large size (17px); per BR-1 §5.2
|
|
207
|
+
export const TextBodyLgLineHeight = "1.55"; // Body large line-height
|
|
208
|
+
export const TextBodyLgLetterSpacing = "0"; // Body large tracking (none)
|
|
209
|
+
export const TextBodyLgWeight = "400"; // Body large weight (regular)
|
|
210
|
+
export const TextBodySize = "0.9375rem"; // Body size (15px); per BR-1 §5.2. Consumers MUST apply a 16px reset on inputs to avoid iOS auto-zoom (per spec D-12).
|
|
211
|
+
export const TextBodyLineHeight = "1.55"; // Body line-height
|
|
212
|
+
export const TextBodyLetterSpacing = "0"; // Body tracking (none)
|
|
213
|
+
export const TextBodyWeight = "400"; // Body weight (regular)
|
|
214
|
+
export const TextCaptionSize = "0.75rem"; // Caption size (12px); per BR-1 §5.2
|
|
215
|
+
export const TextCaptionLineHeight = "1.45"; // Caption line-height
|
|
216
|
+
export const TextCaptionLetterSpacing = "0.005em"; // Caption tracking
|
|
217
|
+
export const TextCaptionWeight = "400"; // Caption weight (regular)
|
|
218
|
+
export const TextLabelSize = "0.6875rem"; // Label size (11px); UPPERCASE per BR-1 §5.4
|
|
219
|
+
export const TextLabelLineHeight = "1.4"; // Label line-height
|
|
220
|
+
export const TextLabelLetterSpacing = "0.18em"; // Label tracking (wide; for eyebrows/labels)
|
|
221
|
+
export const TextLabelWeight = "500"; // Label weight (medium)
|
|
222
|
+
export const TextMonoSmSize = "0.75rem"; // Mono small size (12px); per BR-1 §5.2
|
|
223
|
+
export const TextMonoSmLineHeight = "1.5"; // Mono small line-height
|
|
224
|
+
export const TextMonoSmLetterSpacing = "0"; // Mono small tracking (none)
|
|
225
|
+
export const TextMonoSmWeight = "400"; // Mono small weight (regular)
|
|
226
|
+
export const TextMonoSize = "0.875rem"; // Mono size (14px); per BR-1 §5.2
|
|
227
|
+
export const TextMonoLineHeight = "1.55"; // Mono line-height
|
|
228
|
+
export const TextMonoLetterSpacing = "0"; // Mono tracking (none)
|
|
229
|
+
export const TextMonoWeight = "400"; // Mono weight (regular)
|
|
230
|
+
export const ZIndexBase = "0"; // Base stacking — flat content
|
|
231
|
+
export const ZIndexDropdown = "1000"; // Dropdown menus, comboboxes
|
|
232
|
+
export const ZIndexSticky = "1100"; // Sticky headers, fixed bars
|
|
233
|
+
export const ZIndexModal = "1200"; // Modal dialogs, sheets
|
|
234
|
+
export const ZIndexPopover = "1300"; // Popovers, tooltips above modals
|
|
235
|
+
export const ZIndexToast = "1400"; // Toasts, notifications — highest
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@verdify/tokens",
|
|
3
|
+
"version": "0.6.0",
|
|
4
|
+
"description": "Verdify design tokens — W3C DTCG sources with Tailwind v4 preset, CSS vars, JS/TS, and raw JSON outputs",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
|
+
"publishConfig": {
|
|
7
|
+
"registry": "https://registry.npmjs.org",
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/mirinsim/verdify-brand.git",
|
|
13
|
+
"directory": "packages/tokens"
|
|
14
|
+
},
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./dist/tokens.mjs",
|
|
18
|
+
"require": "./dist/tokens.js",
|
|
19
|
+
"types": "./dist/tokens.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./css": "./dist/tokens.css",
|
|
22
|
+
"./preset": "./dist/preset.css",
|
|
23
|
+
"./preset-adaptive": "./dist/preset-adaptive.css",
|
|
24
|
+
"./json": "./dist/tokens.json",
|
|
25
|
+
"./tokens/*": "./src/tokens/*"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist/",
|
|
29
|
+
"src/tokens/",
|
|
30
|
+
"README.md"
|
|
31
|
+
],
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"style-dictionary": "^4.0.0",
|
|
34
|
+
"tsx": "^4.7.0",
|
|
35
|
+
"typescript": "^5.4.0",
|
|
36
|
+
"ajv": "^8.12.0",
|
|
37
|
+
"@types/node": "^20.0.0"
|
|
38
|
+
},
|
|
39
|
+
"scripts": {
|
|
40
|
+
"sync": "tsx scripts/sync-color.ts",
|
|
41
|
+
"sync:print": "tsx scripts/sync-print.ts",
|
|
42
|
+
"build:ase": "tsx scripts/build-ase.ts",
|
|
43
|
+
"validate": "tsx scripts/validate.ts",
|
|
44
|
+
"build": "pnpm run sync && pnpm run sync:print && pnpm run build:ase && pnpm run validate && tsx scripts/build.ts",
|
|
45
|
+
"verify": "pnpm run build && git diff --exit-code src/",
|
|
46
|
+
"test": "tsx scripts/test.ts"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"border-width": {
|
|
3
|
+
"0": { "$value": "0", "$type": "dimension", "$description": "No border" },
|
|
4
|
+
"default": { "$value": "1px", "$type": "dimension", "$description": "Default border width" },
|
|
5
|
+
"2": { "$value": "2px", "$type": "dimension", "$description": "Emphasized border width" },
|
|
6
|
+
"4": { "$value": "4px", "$type": "dimension", "$description": "Heavy border width — reserved for focus indicators or active states" }
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"breakpoint": {
|
|
3
|
+
"sm": { "$value": "40rem", "$type": "dimension", "$description": "Small breakpoint (640px) — landscape phones" },
|
|
4
|
+
"md": { "$value": "48rem", "$type": "dimension", "$description": "Medium breakpoint (768px) — tablets portrait" },
|
|
5
|
+
"lg": { "$value": "64rem", "$type": "dimension", "$description": "Large breakpoint (1024px) — tablets landscape, small laptops" },
|
|
6
|
+
"xl": { "$value": "80rem", "$type": "dimension", "$description": "Extra large breakpoint (1280px) — desktops" },
|
|
7
|
+
"2xl": { "$value": "96rem", "$type": "dimension", "$description": "2X large breakpoint (1536px) — wide desktops" }
|
|
8
|
+
}
|
|
9
|
+
}
|