@jjlmoya/utils-creative 1.2.0 → 1.4.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.
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  import { Icon } from 'astro-icon/components';
3
- import './style.css';
4
3
  ---
5
4
 
6
5
  <section class="zg-section">
@@ -193,3 +192,556 @@ import './style.css';
193
192
 
194
193
  update();
195
194
  </script>
195
+
196
+ <style>
197
+ .zg-section {
198
+ max-width: 64rem;
199
+ margin: 0 auto;
200
+ padding: 3rem 1rem;
201
+ position: relative;
202
+ }
203
+
204
+ .zg-grid {
205
+ display: grid;
206
+ grid-template-columns: 1fr 2fr;
207
+ gap: 2rem;
208
+ align-items: start;
209
+ }
210
+
211
+ @media (max-width: 768px) {
212
+ .zg-grid {
213
+ grid-template-columns: 1fr;
214
+ }
215
+ }
216
+
217
+ .zg-left {
218
+ display: flex;
219
+ flex-direction: column;
220
+ gap: 1rem;
221
+ }
222
+
223
+ .zg-config-card {
224
+ position: relative;
225
+ background: rgba(255, 255, 255, 0.85);
226
+ backdrop-filter: blur(12px);
227
+ border: 1px solid #e2e8f0;
228
+ border-radius: 1.5rem;
229
+ padding: 1.5rem;
230
+ box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
231
+ overflow: hidden;
232
+ }
233
+
234
+ :global(.theme-dark) .zg-config-card {
235
+ background: rgba(24, 24, 27, 0.85);
236
+ border-color: #27272a;
237
+ }
238
+
239
+ .zg-config-hover-bg {
240
+ position: absolute;
241
+ inset: 0;
242
+ background: linear-gradient(135deg, rgba(147, 51, 234, 0.05), transparent);
243
+ opacity: 0;
244
+ pointer-events: none;
245
+ transition: opacity 0.5s;
246
+ }
247
+
248
+ .zg-config-card:hover .zg-config-hover-bg {
249
+ opacity: 1;
250
+ }
251
+
252
+ .zg-config-title {
253
+ font-size: 1.1rem;
254
+ font-weight: 700;
255
+ color: #0f172a;
256
+ display: flex;
257
+ align-items: center;
258
+ gap: 0.5rem;
259
+ margin: 0 0 1.5rem;
260
+ }
261
+
262
+ :global(.theme-dark) .zg-config-title {
263
+ color: #fff;
264
+ }
265
+
266
+ .zg-config-body {
267
+ display: flex;
268
+ flex-direction: column;
269
+ gap: 2rem;
270
+ }
271
+
272
+ .zg-field {
273
+ display: flex;
274
+ flex-direction: column;
275
+ gap: 0.75rem;
276
+ }
277
+
278
+ .zg-field-header {
279
+ display: flex;
280
+ justify-content: space-between;
281
+ align-items: center;
282
+ }
283
+
284
+ .zg-field-label {
285
+ font-size: 0.7rem;
286
+ font-weight: 700;
287
+ text-transform: uppercase;
288
+ letter-spacing: 0.1em;
289
+ color: #64748b;
290
+ }
291
+
292
+ :global(.theme-dark) .zg-field-label {
293
+ color: #71717a;
294
+ }
295
+
296
+ .zg-intensity-val {
297
+ font-size: 0.875rem;
298
+ font-weight: 700;
299
+ color: #9333ea;
300
+ }
301
+
302
+ .zg-slider {
303
+ width: 100%;
304
+ height: 0.375rem;
305
+ border-radius: 999px;
306
+ background: #e2e8f0;
307
+ appearance: none;
308
+ cursor: pointer;
309
+ accent-color: #9333ea;
310
+ }
311
+
312
+ :global(.theme-dark) .zg-slider {
313
+ background: #27272a;
314
+ }
315
+
316
+ .zg-toggles {
317
+ display: flex;
318
+ flex-direction: column;
319
+ gap: 0.75rem;
320
+ }
321
+
322
+ .zg-toggle-row {
323
+ display: flex;
324
+ align-items: center;
325
+ justify-content: space-between;
326
+ padding: 0.75rem;
327
+ background: #f8fafc;
328
+ border-radius: 1rem;
329
+ cursor: pointer;
330
+ border: 1px solid transparent;
331
+ transition: background 0.15s, border-color 0.15s;
332
+ }
333
+
334
+ .zg-toggle-row:hover {
335
+ background: #f1f5f9;
336
+ border-color: rgba(147, 51, 234, 0.15);
337
+ }
338
+
339
+ :global(.theme-dark) .zg-toggle-row {
340
+ background: rgba(9, 9, 11, 0.5);
341
+ }
342
+
343
+ :global(.theme-dark) .zg-toggle-row:hover {
344
+ background: #27272a;
345
+ }
346
+
347
+ .zg-toggle-label {
348
+ font-size: 0.875rem;
349
+ font-weight: 500;
350
+ color: #374151;
351
+ }
352
+
353
+ :global(.theme-dark) .zg-toggle-label {
354
+ color: #d4d4d8;
355
+ }
356
+
357
+ .zg-switch {
358
+ position: relative;
359
+ display: inline-flex;
360
+ align-items: center;
361
+ }
362
+
363
+ .zg-switch-input {
364
+ position: absolute;
365
+ opacity: 0;
366
+ width: 0;
367
+ height: 0;
368
+ }
369
+
370
+ .zg-switch-track {
371
+ width: 2.5rem;
372
+ height: 1.25rem;
373
+ background: #d1d5db;
374
+ border-radius: 999px;
375
+ transition: background 0.2s;
376
+ position: relative;
377
+ }
378
+
379
+ .zg-switch-track::after {
380
+ content: '';
381
+ position: absolute;
382
+ top: 2px;
383
+ left: 2px;
384
+ width: 1rem;
385
+ height: 1rem;
386
+ background: #fff;
387
+ border-radius: 50%;
388
+ transition: transform 0.2s;
389
+ }
390
+
391
+ .zg-switch-input:checked+.zg-switch-track {
392
+ background: #9333ea;
393
+ }
394
+
395
+ .zg-switch-input:checked+.zg-switch-track::after {
396
+ transform: translateX(1.25rem);
397
+ }
398
+
399
+ :global(.theme-dark) .zg-switch-track {
400
+ background: #3f3f46;
401
+ }
402
+
403
+ .zg-reset-btn {
404
+ display: flex;
405
+ align-items: center;
406
+ justify-content: center;
407
+ gap: 0.5rem;
408
+ width: 100%;
409
+ padding: 0.75rem;
410
+ background: transparent;
411
+ border: none;
412
+ cursor: pointer;
413
+ font-size: 0.7rem;
414
+ font-weight: 700;
415
+ text-transform: uppercase;
416
+ letter-spacing: 0.1em;
417
+ color: #94a3b8;
418
+ transition: color 0.15s;
419
+ }
420
+
421
+ .zg-reset-btn:hover {
422
+ color: #9333ea;
423
+ }
424
+
425
+ :global(.theme-dark) .zg-reset-btn {
426
+ color: #52525b;
427
+ }
428
+
429
+ :global(.theme-dark) .zg-reset-btn:hover {
430
+ color: #a855f7;
431
+ }
432
+
433
+ .zg-warning {
434
+ padding: 1rem;
435
+ background: rgba(99, 102, 241, 0.05);
436
+ border: 1px solid rgba(99, 102, 241, 0.1);
437
+ border-radius: 1rem;
438
+ }
439
+
440
+ .zg-warning p {
441
+ font-size: 0.65rem;
442
+ line-height: 1.6;
443
+ color: #4338ca;
444
+ font-weight: 500;
445
+ margin: 0;
446
+ }
447
+
448
+ :global(.theme-dark) .zg-warning p {
449
+ color: rgba(165, 180, 252, 0.8);
450
+ }
451
+
452
+ .zg-right {
453
+ display: flex;
454
+ flex-direction: column;
455
+ gap: 2rem;
456
+ }
457
+
458
+ .zg-editor-card {
459
+ background: #fff;
460
+ border: 1px solid #e2e8f0;
461
+ border-radius: 1.5rem;
462
+ overflow: hidden;
463
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
464
+ display: flex;
465
+ flex-direction: column;
466
+ }
467
+
468
+ :global(.theme-dark) .zg-editor-card {
469
+ background: #09090b;
470
+ border-color: #27272a;
471
+ }
472
+
473
+ .zg-editor-bar {
474
+ display: flex;
475
+ align-items: center;
476
+ justify-content: space-between;
477
+ padding: 1rem 1.5rem;
478
+ border-bottom: 1px solid #f1f5f9;
479
+ background: rgba(248, 250, 252, 0.5);
480
+ }
481
+
482
+ :global(.theme-dark) .zg-editor-bar {
483
+ border-color: #18181b;
484
+ background: rgba(24, 24, 27, 0.3);
485
+ }
486
+
487
+ .zg-editor-bar-left {
488
+ display: flex;
489
+ align-items: center;
490
+ gap: 0.75rem;
491
+ }
492
+
493
+ .zg-editor-filename {
494
+ font-size: 0.7rem;
495
+ color: #94a3b8;
496
+ text-transform: uppercase;
497
+ letter-spacing: 0.05em;
498
+ }
499
+
500
+ :global(.theme-dark) .zg-editor-filename {
501
+ color: #52525b;
502
+ }
503
+
504
+ .zg-textarea {
505
+ width: 100%;
506
+ padding: 2rem;
507
+ background: transparent;
508
+ color: #1e293b;
509
+ font-size: 1.125rem;
510
+ font-weight: 500;
511
+ outline: none;
512
+ resize: none;
513
+ min-height: 10rem;
514
+ border: none;
515
+ }
516
+
517
+ :global(.theme-dark) .zg-textarea {
518
+ color: #e4e4e7;
519
+ }
520
+
521
+ .zg-textarea::placeholder {
522
+ color: #cbd5e1;
523
+ }
524
+
525
+ :global(.theme-dark) .zg-textarea::placeholder {
526
+ color: #3f3f46;
527
+ }
528
+
529
+ .zg-editor-footer {
530
+ display: flex;
531
+ align-items: center;
532
+ gap: 1rem;
533
+ padding: 0 2rem 2rem;
534
+ justify-content: flex-end;
535
+ }
536
+
537
+ .zg-char-count {
538
+ font-size: 0.65rem;
539
+ color: #94a3b8;
540
+ }
541
+
542
+ :global(.theme-dark) .zg-char-count {
543
+ color: #3f3f46;
544
+ }
545
+
546
+ .zg-footer-sep {
547
+ height: 1rem;
548
+ width: 1px;
549
+ background: #e2e8f0;
550
+ }
551
+
552
+ :global(.theme-dark) .zg-footer-sep {
553
+ background: #27272a;
554
+ }
555
+
556
+ .zg-copy-btn {
557
+ display: flex;
558
+ align-items: center;
559
+ gap: 0.5rem;
560
+ padding: 0.75rem 1.5rem;
561
+ background: #9333ea;
562
+ color: #fff;
563
+ border: none;
564
+ border-radius: 0.75rem;
565
+ font-weight: 700;
566
+ cursor: pointer;
567
+ box-shadow: 0 4px 14px rgba(147, 51, 234, 0.25);
568
+ transition: background 0.15s, transform 0.1s;
569
+ }
570
+
571
+ .zg-copy-btn:hover {
572
+ background: #7c3aed;
573
+ }
574
+
575
+ .zg-copy-btn:active {
576
+ transform: scale(0.95);
577
+ }
578
+
579
+ .zg-clear-btn {
580
+ padding: 0.75rem;
581
+ background: #f1f5f9;
582
+ color: #64748b;
583
+ border: none;
584
+ border-radius: 0.75rem;
585
+ cursor: pointer;
586
+ transition: background 0.15s;
587
+ }
588
+
589
+ .zg-clear-btn:hover {
590
+ background: #e2e8f0;
591
+ }
592
+
593
+ :global(.theme-dark) .zg-clear-btn {
594
+ background: #18181b;
595
+ color: #71717a;
596
+ }
597
+
598
+ :global(.theme-dark) .zg-clear-btn:hover {
599
+ background: #27272a;
600
+ }
601
+
602
+ .zg-preview-wrap {
603
+ position: relative;
604
+ }
605
+
606
+ .zg-preview-badge {
607
+ position: absolute;
608
+ top: -0.75rem;
609
+ left: -0.5rem;
610
+ z-index: 10;
611
+ background: #9333ea;
612
+ color: #fff;
613
+ font-size: 0.6rem;
614
+ font-weight: 900;
615
+ padding: 0.2rem 0.5rem;
616
+ border-radius: 0.25rem;
617
+ letter-spacing: 0.1em;
618
+ text-transform: uppercase;
619
+ box-shadow: 0 4px 8px rgba(147, 51, 234, 0.3);
620
+ }
621
+
622
+ .zg-preview-body {
623
+ background: #fff;
624
+ border: 1px solid #e2e8f0;
625
+ border-radius: 1.5rem;
626
+ padding: 2rem;
627
+ box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.04);
628
+ transition: border-color 0.5s, box-shadow 0.5s;
629
+ min-height: 15rem;
630
+ display: flex;
631
+ align-items: center;
632
+ justify-content: center;
633
+ position: relative;
634
+ overflow: visible;
635
+ }
636
+
637
+ :global(.theme-dark) .zg-preview-body {
638
+ background: #18181b;
639
+ border-color: #27272a;
640
+ }
641
+
642
+ .zg-preview-dots {
643
+ position: absolute;
644
+ inset: 0;
645
+ pointer-events: none;
646
+ border-radius: 1.5rem;
647
+ overflow: hidden;
648
+ opacity: 0.03;
649
+ background-image: radial-gradient(circle at 2px 2px, currentcolor 1px, transparent 0);
650
+ background-size: 24px 24px;
651
+ }
652
+
653
+ .zg-output {
654
+ font-size: 2rem;
655
+ font-weight: 700;
656
+ text-align: center;
657
+ max-width: 100%;
658
+ line-height: 1.5;
659
+ z-index: 10;
660
+ transition: color 0.3s;
661
+ overflow-wrap: anywhere;
662
+ color: var(--zalgo-color, inherit);
663
+ }
664
+
665
+ @media (min-width: 768px) {
666
+ .zg-output {
667
+ font-size: 3rem;
668
+ }
669
+ }
670
+
671
+ .zg-output-empty {
672
+ color: #e2e8f0;
673
+ font-style: italic;
674
+ font-weight: 500;
675
+ transition: color 0.5s;
676
+ }
677
+
678
+ :global(.theme-dark) .zg-output-empty {
679
+ color: #27272a;
680
+ }
681
+
682
+ .zg-glitch-overlay {
683
+ position: absolute;
684
+ inset: 0;
685
+ pointer-events: none;
686
+ opacity: 0;
687
+ transition: opacity 0.3s;
688
+ }
689
+
690
+ .zg-glitch-line {
691
+ position: absolute;
692
+ left: 0;
693
+ width: 100%;
694
+ height: 1px;
695
+ }
696
+
697
+ .zg-glitch-line-1 {
698
+ top: 25%;
699
+ background: rgba(147, 51, 234, 0.2);
700
+ animation: zg-pulse 2s infinite;
701
+ }
702
+
703
+ .zg-glitch-line-2 {
704
+ top: 66%;
705
+ background: rgba(99, 102, 241, 0.2);
706
+ animation: zg-pulse 2s 1s infinite;
707
+ }
708
+
709
+ @keyframes zg-pulse {
710
+ 0%, 100% {
711
+ opacity: 0.3
712
+ }
713
+
714
+ 50% {
715
+ opacity: 1
716
+ }
717
+ }
718
+
719
+ .zg-preview-note {
720
+ margin-top: 1rem;
721
+ text-align: center;
722
+ font-size: 0.65rem;
723
+ color: #94a3b8;
724
+ text-transform: uppercase;
725
+ letter-spacing: 0.1em;
726
+ }
727
+
728
+ :global(.theme-dark) .zg-preview-note {
729
+ color: #52525b;
730
+ }
731
+
732
+ .zg-slider::-webkit-slider-thumb {
733
+ -webkit-appearance: none;
734
+ appearance: none;
735
+ width: 18px;
736
+ height: 18px;
737
+ background: #9333ea;
738
+ border-radius: 50%;
739
+ cursor: pointer;
740
+ border: 3px solid #fff;
741
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
742
+ }
743
+
744
+ :global(.theme-dark) .zg-slider::-webkit-slider-thumb {
745
+ border-color: #18181b;
746
+ }
747
+ </style>