@nebutra/tokens 0.1.2 → 2.0.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/brands/README.md +66 -0
  3. package/brands/cosmos/DESIGN.md +356 -0
  4. package/brands/cosmos/brand.json +209 -0
  5. package/brands/cosmos/refero-tokens.json +312 -0
  6. package/brands/gsap/brand.json +18 -91
  7. package/brands/linear/DESIGN.md +478 -0
  8. package/brands/linear/brand.json +20 -76
  9. package/brands/notion/brand.json +20 -90
  10. package/brands/raycast/brand.json +19 -81
  11. package/brands/stripe/brand.json +17 -88
  12. package/brands/vanta/brand.json +17 -101
  13. package/brands/vercel/brand.json +17 -68
  14. package/dist/brand-package/index.d.ts +123 -0
  15. package/dist/brand-package/index.js +2316 -0
  16. package/dist/brand-package/index.js.map +1 -0
  17. package/dist/brand-package/use-brand.d.ts +2 -0
  18. package/dist/brand-package/use-brand.js +963 -0
  19. package/dist/brand-package/use-brand.js.map +1 -0
  20. package/dist/index.d.ts +81 -0
  21. package/dist/index.js +2581 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/use-brand-ClmvK_lC.d.ts +387 -0
  24. package/package.json +41 -10
  25. package/recipe.css +330 -1
  26. package/skins/README.md +2 -4
  27. package/skins/cosmos.css +239 -0
  28. package/skins/gsap.css +62 -138
  29. package/skins/linear.css +85 -132
  30. package/skins/notion.css +62 -141
  31. package/skins/raycast.css +68 -137
  32. package/skins/stripe.css +60 -143
  33. package/skins/vanta.css +60 -151
  34. package/skins/vercel.css +83 -128
  35. package/styles.css +477 -115
  36. package/.turbo/turbo-build.log +0 -8
  37. package/.turbo/turbo-typecheck.log +0 -4
  38. package/AGENTS.md +0 -45
  39. package/DESIGN.md +0 -357
  40. package/scripts/compile-brand-run.ts +0 -79
  41. package/scripts/compile-brand.mjs +0 -25
  42. package/scripts/emit-skins-run.ts +0 -62
  43. package/scripts/emit-skins.mjs +0 -31
  44. package/scripts/sync-styles.mjs +0 -29
  45. package/src/brand-package/__tests__/compile-refero.test.ts +0 -427
  46. package/src/brand-package/__tests__/emit-css.test.ts +0 -130
  47. package/src/brand-package/apply-brand.ts +0 -92
  48. package/src/brand-package/compile-helpers.ts +0 -170
  49. package/src/brand-package/compile-refero.ts +0 -69
  50. package/src/brand-package/emit-css.ts +0 -468
  51. package/src/brand-package/hex-to-hsl.ts +0 -100
  52. package/src/brand-package/index.ts +0 -71
  53. package/src/brand-package/infer-recipe.ts +0 -198
  54. package/src/brand-package/normalize.ts +0 -295
  55. package/src/brand-package/presets/context.ts +0 -17
  56. package/src/brand-package/presets/generic.ts +0 -214
  57. package/src/brand-package/presets/gsap.ts +0 -146
  58. package/src/brand-package/presets/index.ts +0 -31
  59. package/src/brand-package/presets/linear.ts +0 -183
  60. package/src/brand-package/presets/notion.ts +0 -208
  61. package/src/brand-package/presets/raycast.ts +0 -138
  62. package/src/brand-package/presets/recipe.ts +0 -61
  63. package/src/brand-package/presets/stripe.ts +0 -207
  64. package/src/brand-package/presets/vanta.ts +0 -220
  65. package/src/brand-package/presets/vercel.ts +0 -187
  66. package/src/brand-package/types.ts +0 -285
  67. package/src/brand-package/use-brand.ts +0 -207
  68. package/src/brand-package/validate.ts +0 -108
  69. package/src/index.ts +0 -67
  70. package/src/theme-provider.tsx +0 -246
  71. package/tsconfig.json +0 -11
  72. package/turbo.json +0 -15
@@ -13,9 +13,8 @@
13
13
  "quiet": "208 92% 95%",
14
14
  "quietForeground": "208 100% 44%",
15
15
  "muted": "208 92% 95%",
16
- "mutedForeground": "0 0% 46%",
16
+ "mutedForeground": "0 0% 43%",
17
17
  "border": "30 5% 88%",
18
- "input": "0 0% 100%",
19
18
  "ring": "208 100% 44%",
20
19
  "destructive": "7 92% 58%",
21
20
  "destructiveForeground": "0 0% 100%",
@@ -44,7 +43,6 @@
44
43
  "destructive": "7 92% 58%",
45
44
  "destructiveForeground": "0 0% 100%",
46
45
  "border": "30 5% 88%",
47
- "input": "0 0% 100%",
48
46
  "ring": "208 100% 44%",
49
47
  "warning": "40 100% 53%",
50
48
  "warningForeground": "0 0% 0%",
@@ -72,91 +70,23 @@
72
70
  "typography": {
73
71
  "fontSans": "'NotionInter', 'Inter', ui-sans-serif, system-ui, sans-serif",
74
72
  "fontDisplay": "'NotionInter', 'Inter', ui-sans-serif, system-ui, sans-serif",
75
- "headingWeight": 700,
76
- "faces": [
77
- {
78
- "family": "NotionInter",
79
- "src": [
80
- {
81
- "url": "https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2",
82
- "format": "woff2"
83
- }
84
- ],
85
- "weight": "100 900",
86
- "display": "swap"
87
- },
88
- {
89
- "family": "Lyon Text",
90
- "src": [
91
- {
92
- "url": "/brand-assets/lyon-text-regular.woff2",
93
- "format": "woff2"
94
- }
95
- ],
96
- "weight": 400,
97
- "display": "swap"
98
- }
99
- ]
73
+ "headingWeight": 700
100
74
  },
101
- "zones": {
102
- "product": {
103
- "caption": {
104
- "fontSize": "12px",
105
- "lineHeight": 1.33,
106
- "fontWeight": 500,
107
- "letterSpacing": "0.12px"
108
- },
109
- "bodySm": {
110
- "fontSize": "14px",
111
- "lineHeight": 1.43,
112
- "fontWeight": 500
113
- },
114
- "body": {
115
- "fontSize": "16px",
116
- "lineHeight": 1.5,
117
- "fontWeight": 400
118
- },
119
- "subheading": {
120
- "fontSize": "20px",
121
- "lineHeight": 1,
122
- "fontWeight": 500
123
- },
124
- "headingSm": {
125
- "fontSize": "22px",
126
- "lineHeight": 1.27,
127
- "fontWeight": 600,
128
- "letterSpacing": "-0.242px"
129
- },
130
- "heading": {
131
- "fontSize": "40px",
132
- "lineHeight": 1.5,
133
- "fontWeight": 600
134
- }
135
- },
136
- "marketing": {
137
- "body": {
138
- "fontSize": "16px",
139
- "lineHeight": 1.5,
140
- "fontWeight": 400
141
- },
142
- "heading": {
143
- "fontSize": "48px",
144
- "lineHeight": 1.5,
145
- "fontWeight": 700
146
- },
147
- "headingLg": {
148
- "fontSize": "54px",
149
- "lineHeight": 1.04,
150
- "fontWeight": 700,
151
- "letterSpacing": "-1.89px"
152
- },
153
- "display": {
154
- "fontSize": "72px",
155
- "lineHeight": 1.21,
156
- "fontWeight": 700,
157
- "letterSpacing": "-2.016px"
158
- }
159
- }
75
+ "motion": {
76
+ "easeOut": "cubic-bezier(0.25, 0.46, 0.45, 0.94)",
77
+ "easeInOut": "cubic-bezier(0.4, 0, 0.2, 1)",
78
+ "micro": 120,
79
+ "flow": 200,
80
+ "reveal": 280,
81
+ "cinematic": 460
82
+ },
83
+ "spacing": {
84
+ "xs": "0.625rem",
85
+ "sm": "1rem",
86
+ "md": "1.5rem",
87
+ "lg": "2rem",
88
+ "xl": "2.75rem",
89
+ "2xl": "3.75rem"
160
90
  },
161
91
  "extensions": {
162
92
  "categories": {
@@ -180,10 +110,10 @@
180
110
  "notes": [
181
111
  "roles.action = Notion Blue (only filled CTA). Accent hues are decorative card washes.",
182
112
  "roles.brand = Ink Black (logo / wordmark / text hierarchy via alpha).",
183
- "Canvas = Paper Warmth; cards = Pure White — never invert.",
184
- "Card elev=none + hairline border; sticky nav soft shadow → elevation raised slot.",
113
+ "Canvas = Paper Warmth; cards = Pure White \u2014 never invert.",
114
+ "Card elev=none + hairline border; sticky nav soft shadow \u2192 elevation raised slot.",
185
115
  "Buttons 8px, cards 12px, pills 9999px.",
186
- "Lyon Text is editorial accent only — not product chrome UI."
116
+ "Lyon Text is editorial accent only \u2014 not product chrome UI."
187
117
  ]
188
118
  }
189
119
  }
@@ -21,7 +21,6 @@
21
21
  "destructive": "0 72% 51%",
22
22
  "destructiveForeground": "0 0% 100%",
23
23
  "border": "210 2% 19%",
24
- "input": "220 8% 7%",
25
24
  "ring": "240 1% 61%",
26
25
  "success": "151 59% 59%",
27
26
  "successForeground": "210 20% 2%",
@@ -49,84 +48,24 @@
49
48
  "fontSans": "'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif",
50
49
  "fontMono": "'Geist Mono', 'GeistMono', ui-monospace, Menlo, monospace",
51
50
  "fontDisplay": "'Inter', ui-sans-serif, system-ui, sans-serif",
52
- "headingWeight": 400,
53
- "faces": [
54
- {
55
- "family": "Inter",
56
- "src": [
57
- {
58
- "url": "https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2",
59
- "format": "woff2"
60
- }
61
- ],
62
- "weight": "100 900",
63
- "display": "swap"
64
- }
65
- ]
51
+ "headingWeight": 400
66
52
  },
67
- "zones": {
68
- "product": {
69
- "caption": {
70
- "fontSize": "11px",
71
- "lineHeight": 0.91,
72
- "fontWeight": 500,
73
- "letterSpacing": "0.8px"
74
- },
75
- "bodySm": {
76
- "fontSize": "13px",
77
- "lineHeight": 1.2,
78
- "fontWeight": 500
79
- },
80
- "body": {
81
- "fontSize": "16px",
82
- "lineHeight": 1.15,
83
- "fontWeight": 400
84
- },
85
- "bodyLg": {
86
- "fontSize": "18px",
87
- "lineHeight": 1.15,
88
- "fontWeight": 400
89
- },
90
- "subheading": {
91
- "fontSize": "20px",
92
- "lineHeight": 1.2,
93
- "fontWeight": 400,
94
- "letterSpacing": "0.2px"
95
- },
96
- "headingSm": {
97
- "fontSize": "24px",
98
- "lineHeight": 1.15,
99
- "fontWeight": 500
100
- },
101
- "heading": {
102
- "fontSize": "32px",
103
- "lineHeight": 1.15,
104
- "fontWeight": 500
105
- }
106
- },
107
- "marketing": {
108
- "body": {
109
- "fontSize": "16px",
110
- "lineHeight": 1.15,
111
- "fontWeight": 400
112
- },
113
- "heading": {
114
- "fontSize": "32px",
115
- "lineHeight": 1.15,
116
- "fontWeight": 500
117
- },
118
- "headingLg": {
119
- "fontSize": "56px",
120
- "lineHeight": 1.17,
121
- "fontWeight": 400,
122
- "letterSpacing": "0.22px"
123
- },
124
- "display": {
125
- "fontSize": "64px",
126
- "lineHeight": 1.1,
127
- "fontWeight": 600
128
- }
129
- }
53
+ "motion": {
54
+ "easeOut": "cubic-bezier(0.16, 1, 0.3, 1)",
55
+ "easeInOut": "cubic-bezier(0.4, 0, 0.2, 1)",
56
+ "easeSpring": "cubic-bezier(0.34, 1.56, 0.64, 1)",
57
+ "micro": 90,
58
+ "flow": 160,
59
+ "reveal": 220,
60
+ "cinematic": 340
61
+ },
62
+ "spacing": {
63
+ "xs": "0.375rem",
64
+ "sm": "0.5rem",
65
+ "md": "0.75rem",
66
+ "lg": "1rem",
67
+ "xl": "1.375rem",
68
+ "2xl": "2rem"
130
69
  },
131
70
  "extensions": {
132
71
  "categories": {
@@ -137,7 +76,7 @@
137
76
  "sourceUrl": "https://raycast.com",
138
77
  "notes": [
139
78
  "Primary CTA = Mist fill + Iron text (neutral solid).",
140
- "Coral Pulse is brand mark only — do not use for general product chrome CTAs.",
79
+ "Coral Pulse is brand mark only \u2014 do not use for general product chrome CTAs.",
141
80
  "Cards use elevation=key (keyboard-key inset shadow stack)."
142
81
  ]
143
82
  },
@@ -151,9 +90,8 @@
151
90
  "quiet": "220 5% 11%",
152
91
  "quietForeground": "0 0% 100%",
153
92
  "muted": "220 8% 7%",
154
- "mutedForeground": "210 1% 42%",
93
+ "mutedForeground": "210 1% 48%",
155
94
  "border": "210 2% 19%",
156
- "input": "220 8% 7%",
157
95
  "ring": "240 1% 61%",
158
96
  "destructive": "0 72% 51%",
159
97
  "destructiveForeground": "0 0% 100%",
@@ -15,7 +15,6 @@
15
15
  "muted": "216 56% 98%",
16
16
  "mutedForeground": "217 17% 47%",
17
17
  "border": "210 44% 93%",
18
- "input": "0 0% 100%",
19
18
  "ring": "248 98% 61%",
20
19
  "destructive": "0 72% 51%",
21
20
  "destructiveForeground": "0 0% 100%",
@@ -42,7 +41,6 @@
42
41
  "destructive": "0 72% 51%",
43
42
  "destructiveForeground": "0 0% 100%",
44
43
  "border": "210 44% 93%",
45
- "input": "0 0% 100%",
46
44
  "ring": "248 98% 61%",
47
45
  "info": "231 100% 73%",
48
46
  "infoForeground": "211 78% 11%"
@@ -68,92 +66,23 @@
68
66
  "typography": {
69
67
  "fontSans": "'sohne-var', 'Inter Tight', 'Inter', ui-sans-serif, system-ui, sans-serif",
70
68
  "fontDisplay": "'sohne-var', 'Inter Tight', ui-sans-serif, system-ui, sans-serif",
71
- "headingWeight": 300,
72
- "faces": [
73
- {
74
- "family": "sohne-var",
75
- "src": [
76
- {
77
- "url": "/brand-assets/sohne-var.woff2",
78
- "format": "woff2"
79
- }
80
- ],
81
- "weight": "300 400",
82
- "display": "swap"
83
- }
84
- ]
69
+ "headingWeight": 300
85
70
  },
86
- "zones": {
87
- "product": {
88
- "caption": {
89
- "fontSize": "12px",
90
- "lineHeight": 1.45,
91
- "fontWeight": 300,
92
- "letterSpacing": "-0.12px"
93
- },
94
- "bodySm": {
95
- "fontSize": "14px",
96
- "lineHeight": 1.4,
97
- "fontWeight": 400,
98
- "letterSpacing": "-0.14px"
99
- },
100
- "body": {
101
- "fontSize": "16px",
102
- "lineHeight": 1.2,
103
- "fontWeight": 400,
104
- "letterSpacing": "-0.16px"
105
- },
106
- "bodyLg": {
107
- "fontSize": "20px",
108
- "lineHeight": 1.4,
109
- "fontWeight": 300,
110
- "letterSpacing": "-0.2px"
111
- },
112
- "subheading": {
113
- "fontSize": "22px",
114
- "lineHeight": 1.1,
115
- "fontWeight": 300,
116
- "letterSpacing": "-0.22px"
117
- },
118
- "headingSm": {
119
- "fontSize": "26px",
120
- "lineHeight": 1.12,
121
- "fontWeight": 300,
122
- "letterSpacing": "-0.26px"
123
- },
124
- "heading": {
125
- "fontSize": "32px",
126
- "lineHeight": 1.1,
127
- "fontWeight": 300,
128
- "letterSpacing": "-0.64px"
129
- }
130
- },
131
- "marketing": {
132
- "body": {
133
- "fontSize": "16px",
134
- "lineHeight": 1.4,
135
- "fontWeight": 300,
136
- "letterSpacing": "-0.16px"
137
- },
138
- "heading": {
139
- "fontSize": "32px",
140
- "lineHeight": 1.1,
141
- "fontWeight": 300,
142
- "letterSpacing": "-0.64px"
143
- },
144
- "headingLg": {
145
- "fontSize": "48px",
146
- "lineHeight": 1.03,
147
- "fontWeight": 300,
148
- "letterSpacing": "-0.96px"
149
- },
150
- "display": {
151
- "fontSize": "56px",
152
- "lineHeight": 1.03,
153
- "fontWeight": 300,
154
- "letterSpacing": "-1.4px"
155
- }
156
- }
71
+ "motion": {
72
+ "easeOut": "cubic-bezier(0.215, 0.61, 0.355, 1)",
73
+ "easeInOut": "cubic-bezier(0.645, 0.045, 0.355, 1)",
74
+ "micro": 100,
75
+ "flow": 180,
76
+ "reveal": 260,
77
+ "cinematic": 400
78
+ },
79
+ "spacing": {
80
+ "xs": "0.5rem",
81
+ "sm": "0.75rem",
82
+ "md": "1.125rem",
83
+ "lg": "1.75rem",
84
+ "xl": "2.25rem",
85
+ "2xl": "3.25rem"
157
86
  },
158
87
  "extensions": {
159
88
  "categories": {
@@ -174,7 +103,7 @@
174
103
  "sourceUrl": "https://stripe.com",
175
104
  "notes": [
176
105
  "roles.action = Indigo Ink filled CTA; roles.brand = Midnight Ink wordmark.",
177
- "Elevation none — tint ladder + 1px frost rules; never box-shadow.",
106
+ "Elevation none \u2014 tint ladder + 1px frost rules; never box-shadow.",
178
107
  "Control radius 4px (not pill); tags may stay full-pill.",
179
108
  "Typography weight 300 is the product signature (Inter Tight substitute).",
180
109
  "Pair solid CTA with ghost outline (lavender border) as secondary."
@@ -15,7 +15,6 @@
15
15
  "muted": "240 20% 93%",
16
16
  "mutedForeground": "238 11% 48%",
17
17
  "border": "240 17% 11%",
18
- "input": "0 0% 100%",
19
18
  "ring": "268 95% 39%",
20
19
  "destructive": "0 72% 51%",
21
20
  "destructiveForeground": "0 0% 100%",
@@ -44,7 +43,6 @@
44
43
  "destructive": "0 72% 51%",
45
44
  "destructiveForeground": "0 0% 100%",
46
45
  "border": "240 17% 11%",
47
- "input": "0 0% 100%",
48
46
  "ring": "268 95% 39%",
49
47
  "warning": "44 100% 53%",
50
48
  "warningForeground": "240 17% 11%",
@@ -72,105 +70,23 @@
72
70
  "typography": {
73
71
  "fontSans": "'Inter Variable', 'Inter', ui-sans-serif, system-ui, sans-serif",
74
72
  "fontDisplay": "'Reckless', 'Source Serif 4', 'Lora', ui-serif, Georgia, serif",
75
- "headingWeight": 500,
76
- "faces": [
77
- {
78
- "family": "Inter Variable",
79
- "src": [
80
- {
81
- "url": "https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2",
82
- "format": "woff2"
83
- }
84
- ],
85
- "weight": "100 900",
86
- "display": "swap"
87
- },
88
- {
89
- "family": "Reckless",
90
- "src": [
91
- {
92
- "url": "/brand-assets/reckless-regular.woff2",
93
- "format": "woff2"
94
- }
95
- ],
96
- "weight": 400,
97
- "display": "swap"
98
- },
99
- {
100
- "family": "Reckless",
101
- "src": [
102
- {
103
- "url": "/brand-assets/reckless-medium.woff2",
104
- "format": "woff2"
105
- }
106
- ],
107
- "weight": 500,
108
- "display": "swap"
109
- }
110
- ]
73
+ "headingWeight": 500
111
74
  },
112
- "zones": {
113
- "product": {
114
- "caption": {
115
- "fontSize": "12px",
116
- "lineHeight": 1.5,
117
- "fontWeight": 500,
118
- "letterSpacing": "-0.02px"
119
- },
120
- "bodySm": {
121
- "fontSize": "14px",
122
- "lineHeight": 1.43,
123
- "fontWeight": 400,
124
- "letterSpacing": "-0.02px"
125
- },
126
- "body": {
127
- "fontSize": "16px",
128
- "lineHeight": 1.5,
129
- "fontWeight": 400,
130
- "letterSpacing": "-0.02px"
131
- },
132
- "subheading": {
133
- "fontSize": "20px",
134
- "lineHeight": 1.4,
135
- "fontWeight": 500
136
- },
137
- "headingSm": {
138
- "fontSize": "24px",
139
- "lineHeight": 1.35,
140
- "fontWeight": 500
141
- },
142
- "heading": {
143
- "fontSize": "32px",
144
- "lineHeight": 1.3,
145
- "fontWeight": 500
146
- }
147
- },
148
- "marketing": {
149
- "body": {
150
- "fontSize": "16px",
151
- "lineHeight": 1.5,
152
- "fontWeight": 400,
153
- "letterSpacing": "-0.02px"
154
- },
155
- "heading": {
156
- "fontSize": "42px",
157
- "lineHeight": 1.2,
158
- "fontWeight": 400,
159
- "letterSpacing": "-0.84px"
160
- },
161
- "headingLg": {
162
- "fontSize": "56px",
163
- "lineHeight": 1.15,
164
- "fontWeight": 400,
165
- "letterSpacing": "-1.12px"
166
- },
167
- "display": {
168
- "fontSize": "90px",
169
- "lineHeight": 1.1,
170
- "fontWeight": 400,
171
- "letterSpacing": "-1.62px"
172
- }
173
- }
75
+ "motion": {
76
+ "easeOut": "cubic-bezier(0.33, 1, 0.68, 1)",
77
+ "easeInOut": "cubic-bezier(0.37, 0, 0.63, 1)",
78
+ "micro": 120,
79
+ "flow": 240,
80
+ "reveal": 380,
81
+ "cinematic": 620
82
+ },
83
+ "spacing": {
84
+ "xs": "0.75rem",
85
+ "sm": "1.125rem",
86
+ "md": "1.75rem",
87
+ "lg": "2.5rem",
88
+ "xl": "3.5rem",
89
+ "2xl": "5rem"
174
90
  },
175
91
  "extensions": {
176
92
  "categories": {
@@ -189,7 +105,7 @@
189
105
  "notes": [
190
106
  "roles.action = Vivid Violet (filled CTA only).",
191
107
  "roles.brand = Indigo Ink (logo / wordmark / brand-mark).",
192
- "Elevation none — 1px carbon borders frame cards; no drop-shadow.",
108
+ "Elevation none \u2014 1px carbon borders frame cards; no drop-shadow.",
193
109
  "Full-pill controls (999px); cards 16px.",
194
110
  "UI = Inter Variable; marketing display = Reckless serif.",
195
111
  "Lavender wash is marketing hero surface (decorative), not product chrome fill."
@@ -21,7 +21,6 @@
21
21
  "destructive": "0 72% 51%",
22
22
  "destructiveForeground": "0 0% 100%",
23
23
  "border": "0 0% 92%",
24
- "input": "0 0% 100%",
25
24
  "ring": "0 0% 9%",
26
25
  "success": "133 50% 32%",
27
26
  "successForeground": "0 0% 100%",
@@ -48,7 +47,6 @@
48
47
  "destructive": "0 72% 51%",
49
48
  "destructiveForeground": "0 0% 100%",
50
49
  "border": "0 0% 92%",
51
- "input": "0 0% 100%",
52
50
  "ring": "0 0% 9%",
53
51
  "success": "133 50% 32%",
54
52
  "successForeground": "0 0% 100%",
@@ -75,7 +73,6 @@
75
73
  "destructive": "0 72% 51%",
76
74
  "destructiveForeground": "0 0% 100%",
77
75
  "border": "0 0% 16%",
78
- "input": "0 0% 4%",
79
76
  "ring": "0 0% 100%",
80
77
  "success": "133 49% 40%",
81
78
  "successForeground": "0 0% 100%",
@@ -106,70 +103,23 @@
106
103
  "fontSans": "'Geist Sans', 'Geist', ui-sans-serif, system-ui, sans-serif",
107
104
  "fontMono": "'Geist Mono', ui-monospace, Menlo, monospace",
108
105
  "fontDisplay": "'Geist Sans', 'Geist', ui-sans-serif, system-ui, sans-serif",
109
- "headingWeight": 450,
110
- "faces": [
111
- {
112
- "family": "Geist Sans",
113
- "src": [
114
- {
115
- "url": "https://cdn.jsdelivr.net/fontsource/fonts/geist-sans:vf@latest/latin-wght-normal.woff2",
116
- "format": "woff2"
117
- }
118
- ],
119
- "weight": "100 900",
120
- "display": "swap"
121
- }
122
- ]
106
+ "headingWeight": 450
123
107
  },
124
- "zones": {
125
- "product": {
126
- "caption": {
127
- "fontSize": "13px",
128
- "lineHeight": 1.54,
129
- "fontWeight": 400
130
- },
131
- "bodySm": {
132
- "fontSize": "14px",
133
- "lineHeight": 1.43,
134
- "fontWeight": 400
135
- },
136
- "body": {
137
- "fontSize": "16px",
138
- "lineHeight": 1.5,
139
- "fontWeight": 400
140
- },
141
- "heading": {
142
- "fontSize": "30px",
143
- "lineHeight": 1.1,
144
- "fontWeight": 500,
145
- "letterSpacing": "-1.5px"
146
- }
147
- },
148
- "marketing": {
149
- "body": {
150
- "fontSize": "16px",
151
- "lineHeight": 1.5,
152
- "fontWeight": 400
153
- },
154
- "heading": {
155
- "fontSize": "30px",
156
- "lineHeight": 1.1,
157
- "fontWeight": 450,
158
- "letterSpacing": "-1.5px"
159
- },
160
- "headingLg": {
161
- "fontSize": "56px",
162
- "lineHeight": 1,
163
- "fontWeight": 450,
164
- "letterSpacing": "-3.36px"
165
- },
166
- "display": {
167
- "fontSize": "64px",
168
- "lineHeight": 1,
169
- "fontWeight": 450,
170
- "letterSpacing": "-3.84px"
171
- }
172
- }
108
+ "motion": {
109
+ "easeOut": "cubic-bezier(0, 0, 0.2, 1)",
110
+ "easeInOut": "cubic-bezier(0.4, 0, 0.2, 1)",
111
+ "micro": 100,
112
+ "flow": 150,
113
+ "reveal": 200,
114
+ "cinematic": 300
115
+ },
116
+ "spacing": {
117
+ "xs": "0.5rem",
118
+ "sm": "0.75rem",
119
+ "md": "1rem",
120
+ "lg": "1.5rem",
121
+ "xl": "2rem",
122
+ "2xl": "3rem"
173
123
  },
174
124
  "extensions": {
175
125
  "categories": {
@@ -178,7 +128,7 @@
178
128
  },
179
129
  "sourceUrl": "https://vercel.com",
180
130
  "notes": [
181
- "Dual-mode monochrome — light: Obsidian CTA; dark: white CTA on carbon.",
131
+ "Dual-mode monochrome \u2014 light: Obsidian CTA; dark: white CTA on carbon.",
182
132
  "Elevation is hairline double-ring, never drop-shadow.",
183
133
  "Spectrum/solar gradients are marketing-only decorative (not product chrome)."
184
134
  ]
@@ -195,7 +145,6 @@
195
145
  "muted": "0 0% 92%",
196
146
  "mutedForeground": "0 0% 40%",
197
147
  "border": "0 0% 92%",
198
- "input": "0 0% 100%",
199
148
  "ring": "0 0% 9%",
200
149
  "destructive": "0 72% 51%",
201
150
  "destructiveForeground": "0 0% 100%",