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.
@@ -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: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.4);
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-dropdown: 10;
112
- --z-sticky: 20;
113
- --z-overlay: 30;
114
- --z-modal: 40;
115
- --z-popover: 50;
116
- --z-toast: 60;
117
- --z-tooltip: 70;
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: 250ms;
129
- --duration-slow: 400ms;
130
- --duration-slower: 700ms;
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: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.08);
200
- --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.12), 0 4px 6px -4px rgb(0 0 0 / 0.08);
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 ═══ */
@@ -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
- dropdown: "10",
115
- sticky: "20",
116
- overlay: "30",
117
- modal: "40",
118
- popover: "50",
119
- toast: "60",
120
- tooltip: "70",
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: "250ms",
127
- slow: "400ms",
128
- slower: "700ms",
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(-10px)" },
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", scale: "0.96" },
200
- to: { opacity: "1", scale: "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
- "slide-in-right": "slideInRight 0.3s var(--ease-smooth, ease) forwards",
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.2s var(--ease-default, ease) forwards",
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({