@jjlmoya/utils-creative 1.17.0 → 1.18.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.
@@ -138,321 +138,3 @@ const { ui } = Astro.props;
138
138
  els.genBtn?.addEventListener('click', generateExcuse);
139
139
  </script>
140
140
 
141
- <style>
142
- .excuse-generator {
143
- --excuse-generator-bg: #fff;
144
- --excuse-generator-bg-transparent: rgba(255, 255, 255, 0.8);
145
- --excuse-generator-bg-muted: #f1f5f9;
146
- --excuse-generator-text: #0f172a;
147
- --excuse-generator-text-muted: #475569;
148
- --excuse-generator-text-dim: #64748b;
149
- --excuse-generator-border: #e2e8f0;
150
- --excuse-generator-shadow: rgba(0, 0, 0, 0.05);
151
- --excuse-generator-primary: #ec4899;
152
- --excuse-generator-primary-on: #fff;
153
- --excuse-generator-accent: #f43f5e;
154
- --excuse-generator-success: #10b981;
155
- --excuse-generator-warning: #f59e0b;
156
- --excuse-generator-error: #f43f5e;
157
- --excuse-generator-ring: rgba(236, 72, 153, 0.2);
158
- }
159
-
160
- :global(.theme-dark) .excuse-generator {
161
- --excuse-generator-bg: #0f172a;
162
- --excuse-generator-bg-transparent: rgba(15, 23, 42, 0.8);
163
- --excuse-generator-bg-muted: #1e293b;
164
- --excuse-generator-text: #f8fafc;
165
- --excuse-generator-text-muted: #94a3b8;
166
- --excuse-generator-text-dim: #64748b;
167
- --excuse-generator-border: #334155;
168
- --excuse-generator-shadow: rgba(0, 0, 0, 0.3);
169
- --excuse-generator-primary: #f472b6;
170
- --excuse-generator-primary-on: #fff;
171
- --excuse-generator-accent: #fb7185;
172
- --excuse-generator-success: #34d399;
173
- --excuse-generator-warning: #fbbf24;
174
- --excuse-generator-error: #fb7185;
175
- --excuse-generator-ring: rgba(244, 114, 182, 0.2);
176
- }
177
-
178
- .excuse-generator-root {
179
- max-width: 64rem;
180
- margin-left: auto;
181
- margin-right: auto;
182
- padding: 1rem;
183
- }
184
-
185
- @media (min-width: 768px) {
186
- .excuse-generator-root {
187
- padding: 2rem;
188
- }
189
- }
190
-
191
- .excuse-generator-card {
192
- position: relative;
193
- background-color: var(--excuse-generator-bg-transparent);
194
- backdrop-filter: blur(24px);
195
- border-radius: 2rem;
196
- padding: 2rem;
197
- box-shadow: 0 25px 50px -12px var(--excuse-generator-shadow);
198
- border: 1px solid var(--excuse-generator-border);
199
- min-height: 500px;
200
- display: flex;
201
- flex-direction: column;
202
- align-items: center;
203
- justify-content: center;
204
- text-align: center;
205
- overflow: hidden;
206
- }
207
-
208
- @media (min-width: 768px) {
209
- .excuse-generator-card {
210
- padding: 3rem;
211
- }
212
- }
213
-
214
- .excuse-generator-blob {
215
- position: absolute;
216
- width: 24rem;
217
- height: 24rem;
218
- border-radius: 9999px;
219
- filter: blur(64px);
220
- pointer-events: none;
221
- }
222
-
223
- .excuse-generator-blob-1 {
224
- top: 0;
225
- right: 0;
226
- transform: translate(50%, -50%);
227
- background-color: rgba(244, 114, 182, 0.2);
228
- }
229
-
230
- .excuse-generator-blob-2 {
231
- bottom: 0;
232
- left: 0;
233
- transform: translate(-50%, 50%);
234
- background-color: rgba(251, 113, 133, 0.2);
235
- }
236
-
237
- .excuse-generator-slots {
238
- position: relative;
239
- z-index: 10;
240
- width: 100%;
241
- max-width: 80rem;
242
- min-height: 200px;
243
- display: flex;
244
- flex-direction: column;
245
- gap: 1rem;
246
- margin-bottom: 3rem;
247
- }
248
-
249
- @media (min-width: 1024px) {
250
- .excuse-generator-slots {
251
- flex-direction: row;
252
- align-items: center;
253
- }
254
- }
255
-
256
- .excuse-generator-slot {
257
- position: relative;
258
- flex: 1;
259
- min-width: 200px;
260
- background-color: rgba(255, 255, 255, 0.6);
261
- backdrop-filter: blur(4px);
262
- border-radius: 1rem;
263
- padding: 1.5rem;
264
- border: 2px solid var(--excuse-generator-border);
265
- box-shadow: 0 10px 15px -3px var(--excuse-generator-shadow);
266
- display: flex;
267
- align-items: center;
268
- justify-content: center;
269
- text-align: center;
270
- transition-property: all;
271
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
272
- transition-duration: 300ms;
273
- }
274
-
275
- :global(.theme-dark) .excuse-generator-slot {
276
- background-color: rgba(15, 23, 42, 0.6);
277
- }
278
-
279
- .excuse-generator-slot:hover {
280
- transform: scale(1.05);
281
- background-color: var(--excuse-generator-bg);
282
- border-color: var(--excuse-generator-primary);
283
- }
284
-
285
- .excuse-generator-slot-label {
286
- position: absolute;
287
- top: 0.5rem;
288
- left: 50%;
289
- transform: translateX(-50%);
290
- color: var(--excuse-generator-text-dim);
291
- font-size: 0.75rem;
292
- line-height: 1rem;
293
- text-transform: uppercase;
294
- letter-spacing: 0.1em;
295
- opacity: 0.5;
296
- }
297
-
298
- .excuse-generator-slot-text {
299
- font-size: 1.5rem;
300
- font-weight: 900;
301
- color: var(--excuse-generator-primary);
302
- line-height: 1.25;
303
- overflow-wrap: break-word;
304
- width: 100%;
305
- transition-property: all;
306
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
307
- transition-duration: 100ms;
308
- }
309
-
310
- @media (min-width: 768px) {
311
- .excuse-generator-slot-text {
312
- font-size: 1.875rem;
313
- line-height: 2.25rem;
314
- }
315
- }
316
-
317
- .excuse-generator-slot-text.blur {
318
- filter: blur(3px);
319
- opacity: 0.7;
320
- transform: scale(0.95);
321
- }
322
-
323
- .excuse-generator-separator {
324
- display: none;
325
- font-size: 2rem;
326
- color: var(--excuse-generator-border);
327
- }
328
-
329
- @media (min-width: 1024px) {
330
- .excuse-generator-separator {
331
- display: block;
332
- }
333
- }
334
-
335
- .excuse-generator-separator-mobile {
336
- display: flex;
337
- justify-content: center;
338
- color: var(--excuse-generator-border);
339
- }
340
-
341
- @media (min-width: 1024px) {
342
- .excuse-generator-separator-mobile {
343
- display: none;
344
- }
345
- }
346
-
347
- .excuse-generator-actions {
348
- position: relative;
349
- z-index: 10;
350
- display: flex;
351
- flex-direction: column;
352
- gap: 1.5rem;
353
- align-items: center;
354
- }
355
-
356
- .excuse-generator-btn {
357
- position: relative;
358
- padding-left: 2.5rem;
359
- padding-right: 2.5rem;
360
- padding-top: 1.25rem;
361
- padding-bottom: 1.25rem;
362
- background-color: #0f172a;
363
- border-radius: 1rem;
364
- color: #fff;
365
- font-weight: 900;
366
- font-size: 1.25rem;
367
- line-height: 1.75rem;
368
- box-shadow: 0 25px 50px -12px rgba(236, 72, 153, 0.2);
369
- border: none;
370
- cursor: pointer;
371
- overflow: hidden;
372
- transition-property: all;
373
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
374
- transition-duration: 300ms;
375
- }
376
-
377
- :global(.theme-dark) .excuse-generator-btn {
378
- background-color: #f8fafc;
379
- color: #0f172a;
380
- }
381
-
382
- .excuse-generator-btn:hover {
383
- transform: translateY(-0.25rem);
384
- box-shadow: 0 25px 50px -12px rgba(236, 72, 153, 0.4);
385
- }
386
-
387
- .excuse-generator-btn:active {
388
- transform: translateY(0);
389
- }
390
-
391
- .excuse-generator-btn:disabled {
392
- opacity: 0.7;
393
- cursor: not-allowed;
394
- }
395
-
396
- .excuse-generator-btn-content {
397
- position: relative;
398
- z-index: 10;
399
- display: flex;
400
- align-items: center;
401
- gap: 0.75rem;
402
- }
403
-
404
- .excuse-generator-btn-gradient {
405
- position: absolute;
406
- inset: 0;
407
- background-image: linear-gradient(to right, var(--excuse-generator-primary), var(--excuse-generator-accent), var(--excuse-generator-primary));
408
- opacity: 0;
409
- transition-property: opacity;
410
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
411
- transition-duration: 300ms;
412
- }
413
-
414
- .excuse-generator-btn:hover .excuse-generator-btn-gradient {
415
- opacity: 1;
416
- }
417
-
418
- .excuse-generator-btn:hover .excuse-generator-btn-content {
419
- color: var(--excuse-generator-primary-on);
420
- }
421
-
422
- .excuse-generator-copy {
423
- background: none;
424
- border: none;
425
- cursor: pointer;
426
- color: var(--excuse-generator-text-dim);
427
- font-size: 0.875rem;
428
- line-height: 1.25rem;
429
- font-weight: 700;
430
- display: flex;
431
- align-items: center;
432
- gap: 0.5rem;
433
- transition-property: all;
434
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
435
- transition-duration: 200ms;
436
- opacity: 0;
437
- pointer-events: none;
438
- transform: translateY(0.5rem);
439
- }
440
-
441
- .excuse-generator-copy.visible {
442
- opacity: 1;
443
- pointer-events: auto;
444
- transform: translateY(0);
445
- }
446
-
447
- .excuse-generator-copy:hover {
448
- color: var(--excuse-generator-primary);
449
- }
450
-
451
- .excuse-generator-copy-success {
452
- color: var(--excuse-generator-success);
453
- font-weight: 700;
454
- display: flex;
455
- align-items: center;
456
- gap: 0.5rem;
457
- }
458
- </style>
@@ -0,0 +1,316 @@
1
+ .excuse-generator {
2
+ --excuse-generator-bg: #fff;
3
+ --excuse-generator-bg-transparent: rgba(255, 255, 255, 0.8);
4
+ --excuse-generator-bg-muted: #f1f5f9;
5
+ --excuse-generator-text: #0f172a;
6
+ --excuse-generator-text-muted: #475569;
7
+ --excuse-generator-text-dim: #64748b;
8
+ --excuse-generator-border: #e2e8f0;
9
+ --excuse-generator-shadow: rgba(0, 0, 0, 0.05);
10
+ --excuse-generator-primary: #ec4899;
11
+ --excuse-generator-primary-on: #fff;
12
+ --excuse-generator-accent: #f43f5e;
13
+ --excuse-generator-success: #10b981;
14
+ --excuse-generator-warning: #f59e0b;
15
+ --excuse-generator-error: #f43f5e;
16
+ --excuse-generator-ring: rgba(236, 72, 153, 0.2);
17
+ }
18
+
19
+ :global(.theme-dark) .excuse-generator {
20
+ --excuse-generator-bg: #0f172a;
21
+ --excuse-generator-bg-transparent: rgba(15, 23, 42, 0.8);
22
+ --excuse-generator-bg-muted: #1e293b;
23
+ --excuse-generator-text: #f8fafc;
24
+ --excuse-generator-text-muted: #94a3b8;
25
+ --excuse-generator-text-dim: #64748b;
26
+ --excuse-generator-border: #334155;
27
+ --excuse-generator-shadow: rgba(0, 0, 0, 0.3);
28
+ --excuse-generator-primary: #f472b6;
29
+ --excuse-generator-primary-on: #fff;
30
+ --excuse-generator-accent: #fb7185;
31
+ --excuse-generator-success: #34d399;
32
+ --excuse-generator-warning: #fbbf24;
33
+ --excuse-generator-error: #fb7185;
34
+ --excuse-generator-ring: rgba(244, 114, 182, 0.2);
35
+ }
36
+
37
+ .excuse-generator-root {
38
+ max-width: 64rem;
39
+ margin-left: auto;
40
+ margin-right: auto;
41
+ padding: 1rem;
42
+ }
43
+
44
+ @media (min-width: 768px) {
45
+ .excuse-generator-root {
46
+ padding: 2rem;
47
+ }
48
+ }
49
+
50
+ .excuse-generator-card {
51
+ position: relative;
52
+ background-color: var(--excuse-generator-bg-transparent);
53
+ backdrop-filter: blur(24px);
54
+ border-radius: 2rem;
55
+ padding: 2rem;
56
+ box-shadow: 0 25px 50px -12px var(--excuse-generator-shadow);
57
+ border: 1px solid var(--excuse-generator-border);
58
+ min-height: 500px;
59
+ display: flex;
60
+ flex-direction: column;
61
+ align-items: center;
62
+ justify-content: center;
63
+ text-align: center;
64
+ overflow: hidden;
65
+ }
66
+
67
+ @media (min-width: 768px) {
68
+ .excuse-generator-card {
69
+ padding: 3rem;
70
+ }
71
+ }
72
+
73
+ .excuse-generator-blob {
74
+ position: absolute;
75
+ width: 24rem;
76
+ height: 24rem;
77
+ border-radius: 9999px;
78
+ filter: blur(64px);
79
+ pointer-events: none;
80
+ }
81
+
82
+ .excuse-generator-blob-1 {
83
+ top: 0;
84
+ right: 0;
85
+ transform: translate(50%, -50%);
86
+ background-color: rgba(244, 114, 182, 0.2);
87
+ }
88
+
89
+ .excuse-generator-blob-2 {
90
+ bottom: 0;
91
+ left: 0;
92
+ transform: translate(-50%, 50%);
93
+ background-color: rgba(251, 113, 133, 0.2);
94
+ }
95
+
96
+ .excuse-generator-slots {
97
+ position: relative;
98
+ z-index: 10;
99
+ width: 100%;
100
+ max-width: 80rem;
101
+ min-height: 200px;
102
+ display: flex;
103
+ flex-direction: column;
104
+ gap: 1rem;
105
+ margin-bottom: 3rem;
106
+ }
107
+
108
+ @media (min-width: 1024px) {
109
+ .excuse-generator-slots {
110
+ flex-direction: row;
111
+ align-items: center;
112
+ }
113
+ }
114
+
115
+ .excuse-generator-slot {
116
+ position: relative;
117
+ flex: 1;
118
+ min-width: 200px;
119
+ background-color: rgba(255, 255, 255, 0.6);
120
+ backdrop-filter: blur(4px);
121
+ border-radius: 1rem;
122
+ padding: 1.5rem;
123
+ border: 2px solid var(--excuse-generator-border);
124
+ box-shadow: 0 10px 15px -3px var(--excuse-generator-shadow);
125
+ display: flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+ text-align: center;
129
+ transition-property: all;
130
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
131
+ transition-duration: 300ms;
132
+ }
133
+
134
+ :global(.theme-dark) .excuse-generator-slot {
135
+ background-color: rgba(15, 23, 42, 0.6);
136
+ }
137
+
138
+ .excuse-generator-slot:hover {
139
+ transform: scale(1.05);
140
+ background-color: var(--excuse-generator-bg);
141
+ border-color: var(--excuse-generator-primary);
142
+ }
143
+
144
+ .excuse-generator-slot-label {
145
+ position: absolute;
146
+ top: 0.5rem;
147
+ left: 50%;
148
+ transform: translateX(-50%);
149
+ color: var(--excuse-generator-text-dim);
150
+ font-size: 0.75rem;
151
+ line-height: 1rem;
152
+ text-transform: uppercase;
153
+ letter-spacing: 0.1em;
154
+ opacity: 0.5;
155
+ }
156
+
157
+ .excuse-generator-slot-text {
158
+ font-size: 1.5rem;
159
+ font-weight: 900;
160
+ color: var(--excuse-generator-primary);
161
+ line-height: 1.25;
162
+ overflow-wrap: break-word;
163
+ width: 100%;
164
+ transition-property: all;
165
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
166
+ transition-duration: 100ms;
167
+ }
168
+
169
+ @media (min-width: 768px) {
170
+ .excuse-generator-slot-text {
171
+ font-size: 1.875rem;
172
+ line-height: 2.25rem;
173
+ }
174
+ }
175
+
176
+ .excuse-generator-slot-text.blur {
177
+ filter: blur(3px);
178
+ opacity: 0.7;
179
+ transform: scale(0.95);
180
+ }
181
+
182
+ .excuse-generator-separator {
183
+ display: none;
184
+ font-size: 2rem;
185
+ color: var(--excuse-generator-border);
186
+ }
187
+
188
+ @media (min-width: 1024px) {
189
+ .excuse-generator-separator {
190
+ display: block;
191
+ }
192
+ }
193
+
194
+ .excuse-generator-separator-mobile {
195
+ display: flex;
196
+ justify-content: center;
197
+ color: var(--excuse-generator-border);
198
+ }
199
+
200
+ @media (min-width: 1024px) {
201
+ .excuse-generator-separator-mobile {
202
+ display: none;
203
+ }
204
+ }
205
+
206
+ .excuse-generator-actions {
207
+ position: relative;
208
+ z-index: 10;
209
+ display: flex;
210
+ flex-direction: column;
211
+ gap: 1.5rem;
212
+ align-items: center;
213
+ }
214
+
215
+ .excuse-generator-btn {
216
+ position: relative;
217
+ padding-left: 2.5rem;
218
+ padding-right: 2.5rem;
219
+ padding-top: 1.25rem;
220
+ padding-bottom: 1.25rem;
221
+ background-color: #0f172a;
222
+ border-radius: 1rem;
223
+ color: #fff;
224
+ font-weight: 900;
225
+ font-size: 1.25rem;
226
+ line-height: 1.75rem;
227
+ box-shadow: 0 25px 50px -12px rgba(236, 72, 153, 0.2);
228
+ border: none;
229
+ cursor: pointer;
230
+ overflow: hidden;
231
+ transition-property: all;
232
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
233
+ transition-duration: 300ms;
234
+ }
235
+
236
+ :global(.theme-dark) .excuse-generator-btn {
237
+ background-color: #f8fafc;
238
+ color: #0f172a;
239
+ }
240
+
241
+ .excuse-generator-btn:hover {
242
+ transform: translateY(-0.25rem);
243
+ box-shadow: 0 25px 50px -12px rgba(236, 72, 153, 0.4);
244
+ }
245
+
246
+ .excuse-generator-btn:active {
247
+ transform: translateY(0);
248
+ }
249
+
250
+ .excuse-generator-btn:disabled {
251
+ opacity: 0.7;
252
+ cursor: not-allowed;
253
+ }
254
+
255
+ .excuse-generator-btn-content {
256
+ position: relative;
257
+ z-index: 10;
258
+ display: flex;
259
+ align-items: center;
260
+ gap: 0.75rem;
261
+ }
262
+
263
+ .excuse-generator-btn-gradient {
264
+ position: absolute;
265
+ inset: 0;
266
+ background-image: linear-gradient(to right, var(--excuse-generator-primary), var(--excuse-generator-accent), var(--excuse-generator-primary));
267
+ opacity: 0;
268
+ transition-property: opacity;
269
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
270
+ transition-duration: 300ms;
271
+ }
272
+
273
+ .excuse-generator-btn:hover .excuse-generator-btn-gradient {
274
+ opacity: 1;
275
+ }
276
+
277
+ .excuse-generator-btn:hover .excuse-generator-btn-content {
278
+ color: var(--excuse-generator-primary-on);
279
+ }
280
+
281
+ .excuse-generator-copy {
282
+ background: none;
283
+ border: none;
284
+ cursor: pointer;
285
+ color: var(--excuse-generator-text-dim);
286
+ font-size: 0.875rem;
287
+ line-height: 1.25rem;
288
+ font-weight: 700;
289
+ display: flex;
290
+ align-items: center;
291
+ gap: 0.5rem;
292
+ transition-property: all;
293
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
294
+ transition-duration: 200ms;
295
+ opacity: 0;
296
+ pointer-events: none;
297
+ transform: translateY(0.5rem);
298
+ }
299
+
300
+ .excuse-generator-copy.visible {
301
+ opacity: 1;
302
+ pointer-events: auto;
303
+ transform: translateY(0);
304
+ }
305
+
306
+ .excuse-generator-copy:hover {
307
+ color: var(--excuse-generator-primary);
308
+ }
309
+
310
+ .excuse-generator-copy-success {
311
+ color: var(--excuse-generator-success);
312
+ font-weight: 700;
313
+ display: flex;
314
+ align-items: center;
315
+ gap: 0.5rem;
316
+ }