reend-components 0.4.0 → 1.1.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/dist/bin/cli.cjs +250 -7
- package/dist/lib/index.cjs +4 -1
- package/dist/lib/index.cjs.map +1 -1
- package/dist/lib/index.d.ts +583 -28
- package/dist/lib/index.mjs +4453 -1399
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/style.css +1 -1
- package/package.json +12 -3
- package/src/styles/utilities.css +580 -0
- package/src/styles/variables.css +250 -14
- package/src/tailwind-preset.ts +198 -16
package/src/styles/variables.css
CHANGED
|
@@ -103,18 +103,22 @@
|
|
|
103
103
|
/* ═══ SHADOWS ═══ */
|
|
104
104
|
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
|
|
105
105
|
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.3);
|
|
106
|
-
--shadow-lg:
|
|
106
|
+
--shadow-lg:
|
|
107
|
+
0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.4);
|
|
107
108
|
--shadow-glow: 0 0 20px hsl(var(--primary) / 0.2);
|
|
108
109
|
|
|
109
110
|
/* ═══ Z-INDEX ═══ */
|
|
111
|
+
--z-below: -1;
|
|
110
112
|
--z-base: 0;
|
|
111
|
-
--z-
|
|
112
|
-
--z-
|
|
113
|
-
--z-
|
|
114
|
-
--z-
|
|
115
|
-
--z-
|
|
116
|
-
--z-
|
|
117
|
-
--z-
|
|
113
|
+
--z-raised: 1;
|
|
114
|
+
--z-dropdown: 100;
|
|
115
|
+
--z-sticky: 200;
|
|
116
|
+
--z-header: 1000;
|
|
117
|
+
--z-overlay: 1500;
|
|
118
|
+
--z-modal: 2000;
|
|
119
|
+
--z-toast: 3000;
|
|
120
|
+
--z-tooltip: 4000;
|
|
121
|
+
--z-max: 9999;
|
|
118
122
|
|
|
119
123
|
/* ═══ ANIMATION — EASING ═══ */
|
|
120
124
|
--ease-default: cubic-bezier(0.25, 0.8, 0.25, 1);
|
|
@@ -125,9 +129,191 @@
|
|
|
125
129
|
/* ═══ ANIMATION — DURATION ═══ */
|
|
126
130
|
--duration-instant: 100ms;
|
|
127
131
|
--duration-fast: 150ms;
|
|
128
|
-
--duration-normal:
|
|
129
|
-
--duration-slow:
|
|
130
|
-
--duration-slower:
|
|
132
|
+
--duration-normal: 300ms;
|
|
133
|
+
--duration-slow: 500ms;
|
|
134
|
+
--duration-slower: 800ms;
|
|
135
|
+
|
|
136
|
+
/* ═══ GLOW ═══ */
|
|
137
|
+
--ef-yellow-glow: rgba(255, 212, 41, 0.15);
|
|
138
|
+
|
|
139
|
+
/* ═══ SEMANTIC TEXT TOKENS ═══ */
|
|
140
|
+
--text-primary: hsl(0 0% 94.1%);
|
|
141
|
+
--text-secondary: hsl(0 0% 87.8%);
|
|
142
|
+
--text-tertiary: hsl(0 0% 80%);
|
|
143
|
+
--text-muted: hsl(0 0% 60%);
|
|
144
|
+
--text-placeholder: hsl(0 0% 40%);
|
|
145
|
+
--text-disabled: hsl(0 0% 26.7%);
|
|
146
|
+
--text-link: hsl(201 66% 58%);
|
|
147
|
+
--text-accent: hsl(48 100% 58%);
|
|
148
|
+
--text-error: hsl(355 100% 64%);
|
|
149
|
+
--text-success: hsl(145 67% 51%);
|
|
150
|
+
|
|
151
|
+
/* ═══ BORDER ALIASES (spec-named) ═══ */
|
|
152
|
+
--border-subtle: 0 0% 100% / 0.06;
|
|
153
|
+
--border-default: 0 0% 100% / 0.1;
|
|
154
|
+
|
|
155
|
+
/* ═══ FONT VARS ═══ */
|
|
156
|
+
--font-display: 'Bender', 'Orbitron', sans-serif;
|
|
157
|
+
--font-ui: 'Orbitron', monospace;
|
|
158
|
+
--font-mono: 'JetBrains Mono', 'Courier New', monospace;
|
|
159
|
+
--font-body: 'Source Han Sans', 'Noto Sans SC', 'Inter', sans-serif;
|
|
160
|
+
--font-decorative: 'Morro', 'Bender', sans-serif;
|
|
161
|
+
|
|
162
|
+
/* ═══ SOFT COLORS ═══ */
|
|
163
|
+
--ef-red-soft: rgba(255, 71, 87, 0.1);
|
|
164
|
+
--ef-green-soft: rgba(46, 213, 115, 0.1);
|
|
165
|
+
--ef-orange-soft: rgba(255, 165, 2, 0.1);
|
|
166
|
+
|
|
167
|
+
/* ═══ OPACITY SCALE ═══ */
|
|
168
|
+
--opacity-overlay: 0.85;
|
|
169
|
+
--opacity-hover: 0.08;
|
|
170
|
+
--opacity-disabled: 0.38;
|
|
171
|
+
--opacity-border: 0.12;
|
|
172
|
+
--opacity-focus: 0.24;
|
|
173
|
+
--opacity-muted: 0.5;
|
|
174
|
+
|
|
175
|
+
/* ═══ GRADIENT TOKENS ═══ */
|
|
176
|
+
--ef-gradient-primary: linear-gradient(135deg, #ffd429 0%, #ffa502 100%);
|
|
177
|
+
--ef-gradient-overlay: linear-gradient(
|
|
178
|
+
180deg,
|
|
179
|
+
rgba(10, 10, 10, 0.9) 0%,
|
|
180
|
+
rgba(10, 10, 10, 0.4) 50%,
|
|
181
|
+
rgba(10, 10, 10, 0.95) 100%
|
|
182
|
+
);
|
|
183
|
+
--ef-gradient-line: linear-gradient(
|
|
184
|
+
90deg,
|
|
185
|
+
transparent 0%,
|
|
186
|
+
#ffd429 50%,
|
|
187
|
+
transparent 100%
|
|
188
|
+
);
|
|
189
|
+
--ef-gradient-card-hover: linear-gradient(
|
|
190
|
+
145deg,
|
|
191
|
+
rgba(255, 212, 41, 0.05) 0%,
|
|
192
|
+
transparent 60%
|
|
193
|
+
);
|
|
194
|
+
--ef-gradient-scanline: repeating-linear-gradient(
|
|
195
|
+
0deg,
|
|
196
|
+
transparent,
|
|
197
|
+
transparent 2px,
|
|
198
|
+
rgba(255, 255, 255, 0.015) 2px,
|
|
199
|
+
rgba(255, 255, 255, 0.015) 4px
|
|
200
|
+
);
|
|
201
|
+
|
|
202
|
+
/* ═══ CHART COLORS ═══ */
|
|
203
|
+
--chart-1: #ffd429;
|
|
204
|
+
--chart-2: #00e5ff;
|
|
205
|
+
--chart-3: #a55eea;
|
|
206
|
+
--chart-4: #2ed573;
|
|
207
|
+
--chart-5: #ffa502;
|
|
208
|
+
--chart-6: #4da8da;
|
|
209
|
+
--chart-7: #ff4757;
|
|
210
|
+
--chart-8: #7ec8e3;
|
|
211
|
+
|
|
212
|
+
/* ═══ BREAKPOINTS (reference only) ═══ */
|
|
213
|
+
--bp-mobile: 480px;
|
|
214
|
+
--bp-tablet: 768px;
|
|
215
|
+
--bp-laptop: 1024px;
|
|
216
|
+
--bp-desktop: 1280px;
|
|
217
|
+
--bp-wide: 1536px;
|
|
218
|
+
|
|
219
|
+
/* ═══ SAFE AREA INSETS (mobile notch / Dynamic Island) ═══ */
|
|
220
|
+
--safe-top: env(safe-area-inset-top, 0px);
|
|
221
|
+
--safe-right: env(safe-area-inset-right, 0px);
|
|
222
|
+
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
223
|
+
--safe-left: env(safe-area-inset-left, 0px);
|
|
224
|
+
|
|
225
|
+
/* ═══ DUAL ACCENT — v3.0 ═══ */
|
|
226
|
+
--ef-lime: 84 100% 63%; /* #CBFF40 */
|
|
227
|
+
--ef-lime-dark: 84 80% 42%; /* #72C41A */
|
|
228
|
+
--ef-lime-glow: rgba(203, 255, 64, 0.25);
|
|
229
|
+
--accent-active: 84 100% 63%;
|
|
230
|
+
|
|
231
|
+
/* ═══ GLOW SHADOWS (no Y-offset — website resmi style) ═══ */
|
|
232
|
+
--shadow-glow-sm: 0 0 6px rgba(0, 0, 0, 0.25);
|
|
233
|
+
--shadow-glow-md: 0 0 12px rgba(0, 0, 0, 0.35);
|
|
234
|
+
--shadow-glow-lg: 0 0 24px rgba(0, 0, 0, 0.5);
|
|
235
|
+
--shadow-accent: 0 0 16px hsl(var(--primary) / 0.35);
|
|
236
|
+
|
|
237
|
+
/* ═══ SPACING SCALE ═══ */
|
|
238
|
+
--space-1: 4px;
|
|
239
|
+
--space-2: 8px;
|
|
240
|
+
--space-3: 12px;
|
|
241
|
+
--space-4: 16px;
|
|
242
|
+
--space-5: 20px;
|
|
243
|
+
--space-6: 24px;
|
|
244
|
+
--space-8: 32px;
|
|
245
|
+
--space-10: 40px;
|
|
246
|
+
--space-12: 48px;
|
|
247
|
+
--space-16: 64px;
|
|
248
|
+
--space-20: 80px;
|
|
249
|
+
--space-24: 96px;
|
|
250
|
+
--space-32: 128px;
|
|
251
|
+
|
|
252
|
+
/* ═══ GRID / LAYOUT ═══ */
|
|
253
|
+
--container-max: 1280px;
|
|
254
|
+
--container-padding: 24px;
|
|
255
|
+
--grid-columns: 12;
|
|
256
|
+
--grid-gutter: 24px;
|
|
257
|
+
--content-narrow: 680px;
|
|
258
|
+
--content-default: 960px;
|
|
259
|
+
--content-wide: 1200px;
|
|
260
|
+
|
|
261
|
+
/* ═══ TYPE SCALE ═══ */
|
|
262
|
+
--type-display-xl-size: 72px;
|
|
263
|
+
--type-display-lg-size: 56px;
|
|
264
|
+
--type-h1-size: 48px;
|
|
265
|
+
--type-h2-size: 36px;
|
|
266
|
+
--type-h3-size: 28px;
|
|
267
|
+
--type-h4-size: 22px;
|
|
268
|
+
--type-body-lg-size: 18px;
|
|
269
|
+
--type-body-size: 16px;
|
|
270
|
+
--type-body-sm-size: 14px;
|
|
271
|
+
--type-caption-size: 12px;
|
|
272
|
+
--type-overline-size: 11px;
|
|
273
|
+
--lh-heading: 1;
|
|
274
|
+
--lh-display: 0.95;
|
|
275
|
+
--lh-body: 1.6;
|
|
276
|
+
--lh-caption: 1.4;
|
|
277
|
+
|
|
278
|
+
/* ═══ ICON SIZES ═══ */
|
|
279
|
+
--icon-xs: 16px;
|
|
280
|
+
--icon-sm: 20px;
|
|
281
|
+
--icon-md: 24px;
|
|
282
|
+
--icon-lg: 32px;
|
|
283
|
+
--icon-xl: 48px;
|
|
284
|
+
--icon-2xl: 64px;
|
|
285
|
+
|
|
286
|
+
/* ═══ ASPECT RATIOS ═══ */
|
|
287
|
+
--ratio-banner: 21 / 9;
|
|
288
|
+
--ratio-feature: 16 / 9;
|
|
289
|
+
--ratio-portrait: 3 / 4;
|
|
290
|
+
--ratio-cinematic: 21 / 9;
|
|
291
|
+
|
|
292
|
+
/* ═══ BACKGROUND DECORATIONS ═══ */
|
|
293
|
+
--bg-grid-size: 60px;
|
|
294
|
+
--bg-grid-color: rgba(255, 255, 255, 0.03);
|
|
295
|
+
--bg-glow-primary: radial-gradient(
|
|
296
|
+
ellipse 80% 50% at 50% 0%,
|
|
297
|
+
hsl(var(--primary) / 0.12) 0%,
|
|
298
|
+
transparent 70%
|
|
299
|
+
);
|
|
300
|
+
--bg-glow-lime: radial-gradient(
|
|
301
|
+
ellipse 80% 50% at 50% 0%,
|
|
302
|
+
hsl(var(--ef-lime) / 0.1) 0%,
|
|
303
|
+
transparent 70%
|
|
304
|
+
);
|
|
305
|
+
--bg-diagonal: repeating-linear-gradient(
|
|
306
|
+
-45deg,
|
|
307
|
+
transparent,
|
|
308
|
+
transparent 4px,
|
|
309
|
+
rgba(255, 255, 255, 0.02) 4px,
|
|
310
|
+
rgba(255, 255, 255, 0.02) 8px
|
|
311
|
+
);
|
|
312
|
+
|
|
313
|
+
/* ═══ CORNER BRACKET ═══ */
|
|
314
|
+
--bracket-size: 24px;
|
|
315
|
+
--bracket-width: 2px;
|
|
316
|
+
--bracket-color: hsl(var(--primary) / 0.4);
|
|
131
317
|
}
|
|
132
318
|
|
|
133
319
|
/* ═══ LIGHT MODE ═══ */
|
|
@@ -147,7 +333,6 @@
|
|
|
147
333
|
--ef-yellow: 42 90% 42%;
|
|
148
334
|
--ef-yellow-dark: 42 85% 30%;
|
|
149
335
|
|
|
150
|
-
/* Accent colors adjusted for light mode readability */
|
|
151
336
|
--ef-blue-light: 196 50% 55%;
|
|
152
337
|
--ef-blue-dark: 202 56% 30%;
|
|
153
338
|
--ef-cyan: 186 80% 35%;
|
|
@@ -196,9 +381,60 @@
|
|
|
196
381
|
|
|
197
382
|
/* Shadow adjustments for light mode */
|
|
198
383
|
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.08);
|
|
199
|
-
--shadow-md:
|
|
200
|
-
|
|
384
|
+
--shadow-md:
|
|
385
|
+
0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.08);
|
|
386
|
+
--shadow-lg:
|
|
387
|
+
0 10px 15px -3px rgb(0 0 0 / 0.12), 0 4px 6px -4px rgb(0 0 0 / 0.08);
|
|
201
388
|
--shadow-glow: 0 0 20px hsl(var(--primary) / 0.25);
|
|
389
|
+
--shadow-glow-sm: 0 0 6px rgba(0, 0, 0, 0.1);
|
|
390
|
+
--shadow-glow-md: 0 0 12px rgba(0, 0, 0, 0.15);
|
|
391
|
+
--shadow-glow-lg: 0 0 24px rgba(0, 0, 0, 0.2);
|
|
392
|
+
--shadow-accent: 0 0 16px hsl(var(--primary) / 0.25);
|
|
393
|
+
|
|
394
|
+
--ef-lime: 84 90% 38%;
|
|
395
|
+
--ef-lime-dark: 84 80% 28%;
|
|
396
|
+
--ef-lime-glow: rgba(100, 160, 0, 0.2);
|
|
397
|
+
--accent-active: 84 90% 38%;
|
|
398
|
+
--bg-grid-color: rgba(0, 0, 0, 0.04);
|
|
399
|
+
--bg-glow-primary: radial-gradient(
|
|
400
|
+
ellipse 80% 50% at 50% 0%,
|
|
401
|
+
hsl(var(--primary) / 0.1) 0%,
|
|
402
|
+
transparent 70%
|
|
403
|
+
);
|
|
404
|
+
--bg-glow-lime: radial-gradient(
|
|
405
|
+
ellipse 80% 50% at 50% 0%,
|
|
406
|
+
hsl(var(--ef-lime) / 0.08) 0%,
|
|
407
|
+
transparent 70%
|
|
408
|
+
);
|
|
409
|
+
--bg-diagonal: repeating-linear-gradient(
|
|
410
|
+
-45deg,
|
|
411
|
+
transparent,
|
|
412
|
+
transparent 4px,
|
|
413
|
+
rgba(0, 0, 0, 0.015) 4px,
|
|
414
|
+
rgba(0, 0, 0, 0.015) 8px
|
|
415
|
+
);
|
|
416
|
+
--bracket-color: hsl(var(--primary) / 0.35);
|
|
417
|
+
|
|
418
|
+
/* Semantic text tokens — light mode */
|
|
419
|
+
--text-primary: hsl(0 0% 8%);
|
|
420
|
+
--text-secondary: hsl(0 0% 20%);
|
|
421
|
+
--text-tertiary: hsl(0 0% 35%);
|
|
422
|
+
--text-muted: hsl(0 0% 45%);
|
|
423
|
+
--text-placeholder: hsl(0 0% 55%);
|
|
424
|
+
--text-disabled: hsl(0 0% 65%);
|
|
425
|
+
--text-link: hsl(202 56% 35%);
|
|
426
|
+
--text-accent: hsl(42 90% 42%);
|
|
427
|
+
--text-error: hsl(355 85% 48%);
|
|
428
|
+
--text-success: hsl(145 60% 38%);
|
|
429
|
+
|
|
430
|
+
/* ef-gradient-scanline — dark lines on light surfaces */
|
|
431
|
+
--ef-gradient-scanline: repeating-linear-gradient(
|
|
432
|
+
0deg,
|
|
433
|
+
transparent,
|
|
434
|
+
transparent 2px,
|
|
435
|
+
rgba(0, 0, 0, 0.04) 2px,
|
|
436
|
+
rgba(0, 0, 0, 0.04) 4px
|
|
437
|
+
);
|
|
202
438
|
}
|
|
203
439
|
|
|
204
440
|
/* ═══ BASE STYLES ═══ */
|
package/src/tailwind-preset.ts
CHANGED
|
@@ -27,7 +27,10 @@ const reendPreset: Partial<Config> = {
|
|
|
27
27
|
body: ["Source Han Sans", "Noto Sans SC", "Inter", "sans-serif"],
|
|
28
28
|
},
|
|
29
29
|
colors: {
|
|
30
|
-
border:
|
|
30
|
+
border: {
|
|
31
|
+
DEFAULT: "hsl(var(--border))",
|
|
32
|
+
strong: "hsl(var(--border-strong))",
|
|
33
|
+
},
|
|
31
34
|
input: "hsl(var(--input))",
|
|
32
35
|
ring: "hsl(var(--ring))",
|
|
33
36
|
background: "hsl(var(--background))",
|
|
@@ -74,6 +77,8 @@ const reendPreset: Partial<Config> = {
|
|
|
74
77
|
"pure-white": "hsl(var(--ef-pure-white))",
|
|
75
78
|
yellow: "hsl(var(--ef-yellow))",
|
|
76
79
|
"yellow-dark": "hsl(var(--ef-yellow-dark))",
|
|
80
|
+
lime: "hsl(var(--ef-lime))",
|
|
81
|
+
"lime-dark": "hsl(var(--ef-lime-dark))",
|
|
77
82
|
blue: "hsl(var(--ef-blue))",
|
|
78
83
|
"blue-light": "hsl(var(--ef-blue-light))",
|
|
79
84
|
"blue-dark": "hsl(var(--ef-blue-dark))",
|
|
@@ -92,6 +97,25 @@ const reendPreset: Partial<Config> = {
|
|
|
92
97
|
hover: "hsl(var(--surface-hover))",
|
|
93
98
|
active: "hsl(var(--surface-active))",
|
|
94
99
|
},
|
|
100
|
+
chart: {
|
|
101
|
+
1: "var(--chart-1)",
|
|
102
|
+
2: "var(--chart-2)",
|
|
103
|
+
3: "var(--chart-3)",
|
|
104
|
+
4: "var(--chart-4)",
|
|
105
|
+
5: "var(--chart-5)",
|
|
106
|
+
6: "var(--chart-6)",
|
|
107
|
+
7: "var(--chart-7)",
|
|
108
|
+
8: "var(--chart-8)",
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
// ─── Opacity scale ────────────────────────────────────────────────────
|
|
112
|
+
opacity: {
|
|
113
|
+
overlay: "var(--opacity-overlay)",
|
|
114
|
+
hover: "var(--opacity-hover)",
|
|
115
|
+
disabled: "var(--opacity-disabled)",
|
|
116
|
+
border: "var(--opacity-border)",
|
|
117
|
+
focus: "var(--opacity-focus)",
|
|
118
|
+
muted: "var(--opacity-muted)",
|
|
95
119
|
},
|
|
96
120
|
borderRadius: {
|
|
97
121
|
lg: "var(--radius)",
|
|
@@ -104,25 +128,32 @@ const reendPreset: Partial<Config> = {
|
|
|
104
128
|
md: "var(--shadow-md)",
|
|
105
129
|
lg: "var(--shadow-lg)",
|
|
106
130
|
glow: "var(--shadow-glow)",
|
|
131
|
+
"glow-sm": "var(--shadow-glow-sm)",
|
|
132
|
+
"glow-md": "var(--shadow-glow-md)",
|
|
133
|
+
"glow-lg": "var(--shadow-glow-lg)",
|
|
134
|
+
accent: "var(--shadow-accent)",
|
|
107
135
|
},
|
|
108
136
|
// ─── Z-Index scale matching CSS vars ────────────────────────────────
|
|
109
137
|
zIndex: {
|
|
138
|
+
below: "-1",
|
|
110
139
|
base: "0",
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
140
|
+
raised: "1",
|
|
141
|
+
dropdown: "100",
|
|
142
|
+
sticky: "200",
|
|
143
|
+
header: "1000",
|
|
144
|
+
overlay: "1500",
|
|
145
|
+
modal: "2000",
|
|
146
|
+
toast: "3000",
|
|
147
|
+
tooltip: "4000",
|
|
148
|
+
max: "9999",
|
|
118
149
|
},
|
|
119
150
|
// ─── Transition durations matching CSS vars ──────────────────────────
|
|
120
151
|
transitionDuration: {
|
|
121
152
|
instant: "100ms",
|
|
122
153
|
fast: "150ms",
|
|
123
|
-
normal: "
|
|
124
|
-
slow: "
|
|
125
|
-
slower: "
|
|
154
|
+
normal: "300ms",
|
|
155
|
+
slow: "500ms",
|
|
156
|
+
slower: "800ms",
|
|
126
157
|
},
|
|
127
158
|
// ─── Transition easing matching CSS vars ─────────────────────────────
|
|
128
159
|
transitionTimingFunction: {
|
|
@@ -131,6 +162,83 @@ const reendPreset: Partial<Config> = {
|
|
|
131
162
|
sharp: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
132
163
|
smooth: "cubic-bezier(0.45, 0, 0.55, 1)",
|
|
133
164
|
},
|
|
165
|
+
// ─── Type scale (v3.0) ───────────────────────────────────────────────
|
|
166
|
+
fontSize: {
|
|
167
|
+
"display-xl": [
|
|
168
|
+
"var(--type-display-xl-size,72px)",
|
|
169
|
+
{ lineHeight: "var(--lh-display,0.95)" },
|
|
170
|
+
],
|
|
171
|
+
"display-lg": [
|
|
172
|
+
"var(--type-display-lg-size,56px)",
|
|
173
|
+
{ lineHeight: "var(--lh-display,0.95)" },
|
|
174
|
+
],
|
|
175
|
+
h1: [
|
|
176
|
+
"var(--type-h1-size,48px)",
|
|
177
|
+
{ lineHeight: "var(--lh-heading,1.0)" },
|
|
178
|
+
],
|
|
179
|
+
h2: [
|
|
180
|
+
"var(--type-h2-size,36px)",
|
|
181
|
+
{ lineHeight: "var(--lh-heading,1.0)" },
|
|
182
|
+
],
|
|
183
|
+
h3: [
|
|
184
|
+
"var(--type-h3-size,28px)",
|
|
185
|
+
{ lineHeight: "var(--lh-heading,1.0)" },
|
|
186
|
+
],
|
|
187
|
+
h4: [
|
|
188
|
+
"var(--type-h4-size,22px)",
|
|
189
|
+
{ lineHeight: "var(--lh-heading,1.0)" },
|
|
190
|
+
],
|
|
191
|
+
"body-lg": [
|
|
192
|
+
"var(--type-body-lg-size,18px)",
|
|
193
|
+
{ lineHeight: "var(--lh-body,1.6)" },
|
|
194
|
+
],
|
|
195
|
+
body: [
|
|
196
|
+
"var(--type-body-size,16px)",
|
|
197
|
+
{ lineHeight: "var(--lh-body,1.6)" },
|
|
198
|
+
],
|
|
199
|
+
"body-sm": [
|
|
200
|
+
"var(--type-body-sm-size,14px)",
|
|
201
|
+
{ lineHeight: "var(--lh-body,1.6)" },
|
|
202
|
+
],
|
|
203
|
+
caption: [
|
|
204
|
+
"var(--type-caption-size,12px)",
|
|
205
|
+
{ lineHeight: "var(--lh-caption,1.4)" },
|
|
206
|
+
],
|
|
207
|
+
overline: [
|
|
208
|
+
"var(--type-overline-size,11px)",
|
|
209
|
+
{ lineHeight: "1.2", letterSpacing: "0.12em" },
|
|
210
|
+
],
|
|
211
|
+
},
|
|
212
|
+
// ─── Line heights (v3.0) ─────────────────────────────────────────────
|
|
213
|
+
lineHeight: {
|
|
214
|
+
heading: "var(--lh-heading, 1.0)",
|
|
215
|
+
display: "var(--lh-display, 0.95)",
|
|
216
|
+
body: "var(--lh-body, 1.6)",
|
|
217
|
+
caption: "var(--lh-caption, 1.4)",
|
|
218
|
+
},
|
|
219
|
+
// ─── Aspect ratios (v3.0) ────────────────────────────────────────────
|
|
220
|
+
aspectRatio: {
|
|
221
|
+
banner: "21 / 9",
|
|
222
|
+
feature: "16 / 9",
|
|
223
|
+
portrait: "3 / 4",
|
|
224
|
+
cinematic: "21 / 9",
|
|
225
|
+
},
|
|
226
|
+
// ─── Spacing tokens (v3.0 reference) ────────────────────────────────
|
|
227
|
+
spacing: {
|
|
228
|
+
"space-1": "var(--space-1, 4px)",
|
|
229
|
+
"space-2": "var(--space-2, 8px)",
|
|
230
|
+
"space-3": "var(--space-3, 12px)",
|
|
231
|
+
"space-4": "var(--space-4, 16px)",
|
|
232
|
+
"space-5": "var(--space-5, 20px)",
|
|
233
|
+
"space-6": "var(--space-6, 24px)",
|
|
234
|
+
"space-8": "var(--space-8, 32px)",
|
|
235
|
+
"space-10": "var(--space-10, 40px)",
|
|
236
|
+
"space-12": "var(--space-12, 48px)",
|
|
237
|
+
"space-16": "var(--space-16, 64px)",
|
|
238
|
+
"space-20": "var(--space-20, 80px)",
|
|
239
|
+
"space-24": "var(--space-24, 96px)",
|
|
240
|
+
"space-32": "var(--space-32, 128px)",
|
|
241
|
+
},
|
|
134
242
|
// ─── Keyframes ───────────────────────────────────────────────────────
|
|
135
243
|
keyframes: {
|
|
136
244
|
"accordion-down": {
|
|
@@ -149,10 +257,26 @@ const reendPreset: Partial<Config> = {
|
|
|
149
257
|
from: { opacity: "0", transform: "translateY(16px)" },
|
|
150
258
|
to: { opacity: "1", transform: "translateY(0)" },
|
|
151
259
|
},
|
|
260
|
+
fadeInDown: {
|
|
261
|
+
from: { opacity: "0", transform: "translateY(-16px)" },
|
|
262
|
+
to: { opacity: "1", transform: "translateY(0)" },
|
|
263
|
+
},
|
|
152
264
|
slideInRight: {
|
|
153
|
-
from: { opacity: "0", transform: "translateX(-
|
|
265
|
+
from: { opacity: "0", transform: "translateX(-24px)" },
|
|
154
266
|
to: { opacity: "1", transform: "translateX(0)" },
|
|
155
267
|
},
|
|
268
|
+
scaleIn: {
|
|
269
|
+
from: { opacity: "0", transform: "scale(0.92)" },
|
|
270
|
+
to: { opacity: "1", transform: "scale(1)" },
|
|
271
|
+
},
|
|
272
|
+
rotate: {
|
|
273
|
+
from: { transform: "rotate(0deg)" },
|
|
274
|
+
to: { transform: "rotate(360deg)" },
|
|
275
|
+
},
|
|
276
|
+
loadingDot: {
|
|
277
|
+
"0%, 80%, 100%": { opacity: "0.2", transform: "scale(0.8)" },
|
|
278
|
+
"40%": { opacity: "1", transform: "scale(1)" },
|
|
279
|
+
},
|
|
156
280
|
slideDown: {
|
|
157
281
|
from: { transform: "scaleY(0)", opacity: "0" },
|
|
158
282
|
to: { transform: "scaleY(1)", opacity: "1" },
|
|
@@ -193,13 +317,32 @@ const reendPreset: Partial<Config> = {
|
|
|
193
317
|
to: { opacity: "1", transform: "translateY(0)" },
|
|
194
318
|
},
|
|
195
319
|
"dialog-in": {
|
|
196
|
-
from: { opacity: "0",
|
|
197
|
-
to: { opacity: "1",
|
|
320
|
+
from: { opacity: "0", transform: "translate(-50%, -48%) scale(0.96)" },
|
|
321
|
+
to: { opacity: "1", transform: "translate(-50%, -50%) scale(1)" },
|
|
322
|
+
},
|
|
323
|
+
"switch-thumb-spin": {
|
|
324
|
+
from: { transform: "rotate(0deg)" },
|
|
325
|
+
to: { transform: "rotate(360deg)" },
|
|
198
326
|
},
|
|
199
327
|
"frequency-bar": {
|
|
200
328
|
"0%": { transform: "scaleY(0.15)" },
|
|
201
329
|
"100%": { transform: "scaleY(1)" },
|
|
202
330
|
},
|
|
331
|
+
slideUp: {
|
|
332
|
+
from: { transform: "translateY(100%)", opacity: "0" },
|
|
333
|
+
to: { transform: "translateY(0)", opacity: "1" },
|
|
334
|
+
},
|
|
335
|
+
shake: {
|
|
336
|
+
"0%, 100%": { transform: "translateX(0)" },
|
|
337
|
+
"20%, 60%": { transform: "translateX(-4px)" },
|
|
338
|
+
"40%, 80%": { transform: "translateX(4px)" },
|
|
339
|
+
},
|
|
340
|
+
particleDrift: {
|
|
341
|
+
"0%": { transform: "translate(0, 0)" },
|
|
342
|
+
"33%": { transform: "translate(2px, -3px)" },
|
|
343
|
+
"66%": { transform: "translate(-2px, 2px)" },
|
|
344
|
+
"100%": { transform: "translate(0, 0)" },
|
|
345
|
+
},
|
|
203
346
|
},
|
|
204
347
|
// ─── Animation utilities ─────────────────────────────────────────────
|
|
205
348
|
animation: {
|
|
@@ -207,18 +350,27 @@ const reendPreset: Partial<Config> = {
|
|
|
207
350
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
208
351
|
"fade-in": "fadeIn 0.3s ease forwards",
|
|
209
352
|
"fade-in-up": "fadeInUp 0.4s var(--ease-default, ease) forwards",
|
|
210
|
-
"
|
|
353
|
+
"fade-in-down": "fadeInDown 0.4s var(--ease-default, ease) forwards",
|
|
354
|
+
"slide-in-right": "slideInRight 0.4s var(--ease-default, ease) forwards",
|
|
355
|
+
"scale-in": "scaleIn 0.3s var(--ease-default, ease) forwards",
|
|
356
|
+
rotate: "rotate 1s linear infinite",
|
|
357
|
+
"loading-dot": "loadingDot 1.4s ease-in-out infinite both",
|
|
211
358
|
"slide-down": "slideDown 0.3s ease forwards",
|
|
212
359
|
glitch: "glitch 3s infinite",
|
|
213
360
|
"cursor-blink": "cursorBlink 1s step-end infinite",
|
|
214
361
|
"diamond-spin": "diamondSpin 0.8s linear infinite",
|
|
362
|
+
"switch-spin": "switch-thumb-spin 0.35s cubic-bezier(0.34, 1.56, 0.64, 1) both",
|
|
215
363
|
"pulse-glow": "pulseGlow 2s ease-in-out infinite",
|
|
216
364
|
"scan-line": "scanLine 2s linear infinite",
|
|
217
365
|
skeleton: "skeletonShimmer 1.5s infinite",
|
|
218
366
|
shrink: "shrink 5s linear forwards",
|
|
219
367
|
"count-up": "countUp 0.4s var(--ease-default, ease) forwards",
|
|
220
|
-
"dialog-in": "dialog-in 0.
|
|
368
|
+
"dialog-in": "dialog-in 0.3s var(--ease-default, ease) forwards",
|
|
221
369
|
"frequency-bar": "frequency-bar 0.8s ease-in-out infinite alternate",
|
|
370
|
+
"slide-up": "slideUp 0.3s var(--ease-sharp, ease) forwards",
|
|
371
|
+
shake: "shake 0.4s var(--ease-sharp, ease)",
|
|
372
|
+
"slide-up": "slideUp 0.3s var(--ease-sharp, ease) forwards",
|
|
373
|
+
"particle-drift": "particleDrift 3s ease-in-out infinite",
|
|
222
374
|
},
|
|
223
375
|
},
|
|
224
376
|
},
|
|
@@ -294,6 +446,36 @@ const reendPreset: Partial<Config> = {
|
|
|
294
446
|
".text-glow-yellow": {
|
|
295
447
|
"text-shadow": "0 0 20px hsl(var(--primary) / 0.3)",
|
|
296
448
|
},
|
|
449
|
+
".glow-lime": {
|
|
450
|
+
"box-shadow": "0 0 20px hsl(var(--ef-lime) / 0.2)",
|
|
451
|
+
},
|
|
452
|
+
".text-glow-lime": {
|
|
453
|
+
"text-shadow": "0 0 16px hsl(var(--ef-lime) / 0.4)",
|
|
454
|
+
},
|
|
455
|
+
});
|
|
456
|
+
|
|
457
|
+
addUtilities({
|
|
458
|
+
".bg-grid-pattern": {
|
|
459
|
+
"background-image":
|
|
460
|
+
"linear-gradient(var(--bg-grid-color,rgba(255,255,255,0.03)) 1px, transparent 1px), linear-gradient(90deg, var(--bg-grid-color,rgba(255,255,255,0.03)) 1px, transparent 1px)",
|
|
461
|
+
"background-size":
|
|
462
|
+
"var(--bg-grid-size,60px) var(--bg-grid-size,60px)",
|
|
463
|
+
},
|
|
464
|
+
".bg-radial-glow": {
|
|
465
|
+
"background-image": "var(--bg-glow-primary)",
|
|
466
|
+
"background-repeat": "no-repeat",
|
|
467
|
+
"background-position": "center top",
|
|
468
|
+
"background-size": "100% 600px",
|
|
469
|
+
},
|
|
470
|
+
".bg-radial-glow-lime": {
|
|
471
|
+
"background-image": "var(--bg-glow-lime)",
|
|
472
|
+
"background-repeat": "no-repeat",
|
|
473
|
+
"background-position": "center top",
|
|
474
|
+
"background-size": "100% 600px",
|
|
475
|
+
},
|
|
476
|
+
".bg-diagonal-lines": {
|
|
477
|
+
"background-image": "var(--bg-diagonal)",
|
|
478
|
+
},
|
|
297
479
|
});
|
|
298
480
|
|
|
299
481
|
addUtilities({
|