reend-components 1.0.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 +249 -6
- package/dist/lib/index.cjs +4 -1
- package/dist/lib/index.cjs.map +1 -1
- package/dist/lib/index.d.ts +574 -19
- package/dist/lib/index.mjs +4414 -1403
- package/dist/lib/index.mjs.map +1 -1
- package/dist/lib/style.css +1 -1
- package/package.json +10 -1
- package/src/styles/utilities.css +580 -0
- package/src/styles/variables.css +250 -14
- package/src/tailwind-preset.ts +194 -15
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
|
@@ -77,6 +77,8 @@ const reendPreset: Partial<Config> = {
|
|
|
77
77
|
"pure-white": "hsl(var(--ef-pure-white))",
|
|
78
78
|
yellow: "hsl(var(--ef-yellow))",
|
|
79
79
|
"yellow-dark": "hsl(var(--ef-yellow-dark))",
|
|
80
|
+
lime: "hsl(var(--ef-lime))",
|
|
81
|
+
"lime-dark": "hsl(var(--ef-lime-dark))",
|
|
80
82
|
blue: "hsl(var(--ef-blue))",
|
|
81
83
|
"blue-light": "hsl(var(--ef-blue-light))",
|
|
82
84
|
"blue-dark": "hsl(var(--ef-blue-dark))",
|
|
@@ -95,6 +97,25 @@ const reendPreset: Partial<Config> = {
|
|
|
95
97
|
hover: "hsl(var(--surface-hover))",
|
|
96
98
|
active: "hsl(var(--surface-active))",
|
|
97
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)",
|
|
98
119
|
},
|
|
99
120
|
borderRadius: {
|
|
100
121
|
lg: "var(--radius)",
|
|
@@ -107,25 +128,32 @@ const reendPreset: Partial<Config> = {
|
|
|
107
128
|
md: "var(--shadow-md)",
|
|
108
129
|
lg: "var(--shadow-lg)",
|
|
109
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)",
|
|
110
135
|
},
|
|
111
136
|
// ─── Z-Index scale matching CSS vars ────────────────────────────────
|
|
112
137
|
zIndex: {
|
|
138
|
+
below: "-1",
|
|
113
139
|
base: "0",
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
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",
|
|
121
149
|
},
|
|
122
150
|
// ─── Transition durations matching CSS vars ──────────────────────────
|
|
123
151
|
transitionDuration: {
|
|
124
152
|
instant: "100ms",
|
|
125
153
|
fast: "150ms",
|
|
126
|
-
normal: "
|
|
127
|
-
slow: "
|
|
128
|
-
slower: "
|
|
154
|
+
normal: "300ms",
|
|
155
|
+
slow: "500ms",
|
|
156
|
+
slower: "800ms",
|
|
129
157
|
},
|
|
130
158
|
// ─── Transition easing matching CSS vars ─────────────────────────────
|
|
131
159
|
transitionTimingFunction: {
|
|
@@ -134,6 +162,83 @@ const reendPreset: Partial<Config> = {
|
|
|
134
162
|
sharp: "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
135
163
|
smooth: "cubic-bezier(0.45, 0, 0.55, 1)",
|
|
136
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
|
+
},
|
|
137
242
|
// ─── Keyframes ───────────────────────────────────────────────────────
|
|
138
243
|
keyframes: {
|
|
139
244
|
"accordion-down": {
|
|
@@ -152,10 +257,26 @@ const reendPreset: Partial<Config> = {
|
|
|
152
257
|
from: { opacity: "0", transform: "translateY(16px)" },
|
|
153
258
|
to: { opacity: "1", transform: "translateY(0)" },
|
|
154
259
|
},
|
|
260
|
+
fadeInDown: {
|
|
261
|
+
from: { opacity: "0", transform: "translateY(-16px)" },
|
|
262
|
+
to: { opacity: "1", transform: "translateY(0)" },
|
|
263
|
+
},
|
|
155
264
|
slideInRight: {
|
|
156
|
-
from: { opacity: "0", transform: "translateX(-
|
|
265
|
+
from: { opacity: "0", transform: "translateX(-24px)" },
|
|
157
266
|
to: { opacity: "1", transform: "translateX(0)" },
|
|
158
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
|
+
},
|
|
159
280
|
slideDown: {
|
|
160
281
|
from: { transform: "scaleY(0)", opacity: "0" },
|
|
161
282
|
to: { transform: "scaleY(1)", opacity: "1" },
|
|
@@ -196,13 +317,32 @@ const reendPreset: Partial<Config> = {
|
|
|
196
317
|
to: { opacity: "1", transform: "translateY(0)" },
|
|
197
318
|
},
|
|
198
319
|
"dialog-in": {
|
|
199
|
-
from: { opacity: "0",
|
|
200
|
-
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)" },
|
|
201
326
|
},
|
|
202
327
|
"frequency-bar": {
|
|
203
328
|
"0%": { transform: "scaleY(0.15)" },
|
|
204
329
|
"100%": { transform: "scaleY(1)" },
|
|
205
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
|
+
},
|
|
206
346
|
},
|
|
207
347
|
// ─── Animation utilities ─────────────────────────────────────────────
|
|
208
348
|
animation: {
|
|
@@ -210,18 +350,27 @@ const reendPreset: Partial<Config> = {
|
|
|
210
350
|
"accordion-up": "accordion-up 0.2s ease-out",
|
|
211
351
|
"fade-in": "fadeIn 0.3s ease forwards",
|
|
212
352
|
"fade-in-up": "fadeInUp 0.4s var(--ease-default, ease) forwards",
|
|
213
|
-
"
|
|
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",
|
|
214
358
|
"slide-down": "slideDown 0.3s ease forwards",
|
|
215
359
|
glitch: "glitch 3s infinite",
|
|
216
360
|
"cursor-blink": "cursorBlink 1s step-end infinite",
|
|
217
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",
|
|
218
363
|
"pulse-glow": "pulseGlow 2s ease-in-out infinite",
|
|
219
364
|
"scan-line": "scanLine 2s linear infinite",
|
|
220
365
|
skeleton: "skeletonShimmer 1.5s infinite",
|
|
221
366
|
shrink: "shrink 5s linear forwards",
|
|
222
367
|
"count-up": "countUp 0.4s var(--ease-default, ease) forwards",
|
|
223
|
-
"dialog-in": "dialog-in 0.
|
|
368
|
+
"dialog-in": "dialog-in 0.3s var(--ease-default, ease) forwards",
|
|
224
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",
|
|
225
374
|
},
|
|
226
375
|
},
|
|
227
376
|
},
|
|
@@ -297,6 +446,36 @@ const reendPreset: Partial<Config> = {
|
|
|
297
446
|
".text-glow-yellow": {
|
|
298
447
|
"text-shadow": "0 0 20px hsl(var(--primary) / 0.3)",
|
|
299
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
|
+
},
|
|
300
479
|
});
|
|
301
480
|
|
|
302
481
|
addUtilities({
|