@jjlmoya/utils-cooking 1.8.0 → 1.10.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,7 +1,6 @@
1
1
  ---
2
2
  import { Icon } from "astro-icon/components";
3
3
  import type { ToolLocaleContent } from "../../types";
4
- import "./Pizza.css";
5
4
 
6
5
  interface Props {
7
6
  ui: ToolLocaleContent["ui"];
@@ -235,3 +234,575 @@ const { ui } = Astro.props;
235
234
  initPizzaCalculator();
236
235
  }
237
236
  </script>
237
+
238
+ <style>
239
+ .pizza-container {
240
+ --color-primary: #f97316;
241
+ --color-primary-dark: #ea580c;
242
+ --color-primary-light: #fed7aa;
243
+ --color-secondary: #3b82f6;
244
+ --color-secondary-dark: #1e40af;
245
+ --color-secondary-light: #bfdbfe;
246
+ --color-bg: #fff;
247
+ --color-border: #e2e8f0;
248
+ --color-text-primary: #1e293b;
249
+ --color-text-secondary: #64748b;
250
+ --color-text-tertiary: #94a3b8;
251
+ --color-white: #fff;
252
+ --color-blue-400: #60a5fa;
253
+ --color-blue-500: #3b82f6;
254
+ --color-blue-100: #dbeafe;
255
+ --color-blue-300: #93c5fd;
256
+ --color-orange-100: #fed7aa;
257
+ --color-orange-300: #fdba74;
258
+ --color-slate-200: #e2e8f0;
259
+ --color-slate-400: #cbd5e1;
260
+ --color-slate-800: #1e293b;
261
+ --color-slate-900: #0f172a;
262
+ --color-amber-100: #fef08a;
263
+ --color-orange-400: #fb923c;
264
+ --color-orange-600: #b45309;
265
+ --color-orange-700: #92400e;
266
+ --color-orange-900: #78350f;
267
+ --color-bg-dark: #0f172a;
268
+ --color-border-dark: #1e293b;
269
+
270
+ width: 100%;
271
+ }
272
+
273
+ :global(.theme-dark) .pizza-container {
274
+ --color-bg: #0f172a;
275
+ --color-border: #1e293b;
276
+ --color-text-primary: #f1f5f9;
277
+ --color-text-secondary: #cbd5e1;
278
+ --color-text-tertiary: #64748b;
279
+ }
280
+
281
+ .pizza-grid {
282
+ display: grid;
283
+ gap: 1.5rem;
284
+ grid-template-columns: 1fr;
285
+ }
286
+
287
+ @media (min-width: 1024px) {
288
+ .pizza-grid {
289
+ grid-template-columns: repeat(2, 1fr);
290
+ gap: 2rem;
291
+ }
292
+ }
293
+
294
+ .pizza-controls {
295
+ display: flex;
296
+ flex-direction: column;
297
+ gap: 1.5rem;
298
+ }
299
+
300
+ @media (min-width: 1024px) {
301
+ .pizza-controls {
302
+ grid-column: span 1;
303
+ grid-row: span 2;
304
+ }
305
+ }
306
+
307
+ .pizza-card {
308
+ background-color: var(--color-bg);
309
+ border-radius: 1.5rem;
310
+ padding: 1.5rem;
311
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
312
+ border: 1px solid var(--color-border);
313
+ }
314
+
315
+ @media (min-width: 768px) {
316
+ .pizza-card {
317
+ padding: 2rem;
318
+ }
319
+ }
320
+
321
+ .pizza-title {
322
+ font-size: 1.5rem;
323
+ font-weight: 700;
324
+ margin-bottom: 2rem;
325
+ display: flex;
326
+ align-items: center;
327
+ gap: 0.75rem;
328
+ color: var(--color-text-primary);
329
+ }
330
+
331
+ .pizza-icon {
332
+ width: 1.5rem;
333
+ height: 1.5rem;
334
+ color: var(--color-primary);
335
+ }
336
+
337
+ .pizza-controls-space {
338
+ display: flex;
339
+ flex-direction: column;
340
+ gap: 2.5rem;
341
+ }
342
+
343
+ .pizza-control-group {
344
+ display: flex;
345
+ flex-direction: column;
346
+ gap: 1rem;
347
+ }
348
+
349
+ .pizza-label-row {
350
+ display: flex;
351
+ justify-content: space-between;
352
+ margin-bottom: 1rem;
353
+ align-items: center;
354
+ }
355
+
356
+ .pizza-label {
357
+ font-size: 0.875rem;
358
+ font-weight: 500;
359
+ color: var(--color-text-secondary);
360
+ text-transform: uppercase;
361
+ letter-spacing: 0.05em;
362
+ }
363
+
364
+ .pizza-value {
365
+ font-size: 1.5rem;
366
+ font-weight: 700;
367
+ font-variant-numeric: tabular-nums;
368
+ color: var(--color-text-primary);
369
+ }
370
+
371
+ .pizza-value-blue {
372
+ color: var(--color-secondary);
373
+ }
374
+
375
+ .pizza-unit {
376
+ font-size: 0.875rem;
377
+ font-weight: 400;
378
+ color: var(--color-text-tertiary);
379
+ margin-left: 0.25rem;
380
+ }
381
+
382
+ .pizza-slider {
383
+ width: 100%;
384
+ height: 0.5rem;
385
+ background-color: #e2e8f0;
386
+ border-radius: 0.5rem;
387
+ appearance: none;
388
+ cursor: pointer;
389
+ accent-color: var(--color-primary);
390
+ transition: all 0.2s;
391
+ }
392
+
393
+ .pizza-slider:hover {
394
+ accent-color: var(--color-primary-dark);
395
+ }
396
+
397
+ .pizza-slider-blue {
398
+ accent-color: var(--color-secondary);
399
+ }
400
+
401
+ .pizza-slider-blue:hover {
402
+ accent-color: var(--color-secondary-dark);
403
+ }
404
+
405
+ .pizza-slider::-webkit-slider-thumb {
406
+ -webkit-appearance: none;
407
+ appearance: none;
408
+ width: 1.25rem;
409
+ height: 1.25rem;
410
+ border-radius: 50%;
411
+ background: currentcolor;
412
+ cursor: pointer;
413
+ box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.5);
414
+ }
415
+
416
+ .pizza-slider::-moz-range-thumb {
417
+ width: 1.25rem;
418
+ height: 1.25rem;
419
+ border-radius: 50%;
420
+ background: currentcolor;
421
+ cursor: pointer;
422
+ border: none;
423
+ box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.5);
424
+ }
425
+
426
+ :global(.theme-dark) .pizza-slider::-webkit-slider-thumb {
427
+ box-shadow: 0 0 0 4px rgba(15, 23, 42, 0.5);
428
+ }
429
+
430
+ :global(.theme-dark) .pizza-slider::-moz-range-thumb {
431
+ box-shadow: 0 0 0 4px rgba(15, 23, 42, 0.5);
432
+ }
433
+
434
+ .pizza-range-labels {
435
+ display: flex;
436
+ justify-content: space-between;
437
+ font-size: 0.75rem;
438
+ color: var(--color-text-tertiary);
439
+ margin-top: 0.5rem;
440
+ }
441
+
442
+ .pizza-tip {
443
+ background-color: rgba(249, 115, 22, 0.05);
444
+ border-radius: 1.5rem;
445
+ padding: 1.5rem;
446
+ border: 1px solid rgba(249, 115, 22, 0.1);
447
+ display: flex;
448
+ gap: 1rem;
449
+ }
450
+
451
+ .pizza-tip-icon-wrapper {
452
+ padding: 0.75rem;
453
+ background-color: rgba(249, 115, 22, 0.1);
454
+ border-radius: 0.75rem;
455
+ height: fit-content;
456
+ flex-shrink: 0;
457
+ }
458
+
459
+ .pizza-tip-icon {
460
+ width: 1.5rem;
461
+ height: 1.5rem;
462
+ color: var(--color-orange-600);
463
+ }
464
+
465
+ .pizza-tip-title {
466
+ font-weight: 700;
467
+ color: var(--color-orange-900);
468
+ margin-bottom: 0.25rem;
469
+ }
470
+
471
+ :global(.theme-dark) .pizza-tip-title {
472
+ color: var(--color-orange-100);
473
+ }
474
+
475
+ .pizza-tip-text {
476
+ font-size: 0.875rem;
477
+ color: var(--color-orange-700);
478
+ line-height: 1.5;
479
+ }
480
+
481
+ :global(.theme-dark) .pizza-tip-text {
482
+ color: var(--color-amber-100);
483
+ }
484
+
485
+ .pizza-recipe {
486
+ }
487
+
488
+ @media (min-width: 1024px) {
489
+ .pizza-recipe {
490
+ grid-column: span 1;
491
+ grid-row: span 1;
492
+ }
493
+ }
494
+
495
+ .pizza-recipe-card {
496
+ background-color: var(--color-bg-dark);
497
+ color: var(--color-white);
498
+ border-radius: 1.5rem;
499
+ padding: 1.5rem;
500
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.2);
501
+ }
502
+
503
+ @media (min-width: 768px) {
504
+ .pizza-recipe-card {
505
+ padding: 3rem;
506
+ }
507
+ }
508
+
509
+ .pizza-recipe-header {
510
+ display: flex;
511
+ flex-direction: column;
512
+ gap: 1rem;
513
+ margin-bottom: 3rem;
514
+ }
515
+
516
+ @media (min-width: 768px) {
517
+ .pizza-recipe-header {
518
+ flex-direction: row;
519
+ align-items: center;
520
+ justify-content: space-between;
521
+ gap: 1rem;
522
+ }
523
+ }
524
+
525
+ .pizza-recipe-title {
526
+ font-size: 1.875rem;
527
+ font-weight: 700;
528
+ }
529
+
530
+ .pizza-yeast-buttons {
531
+ display: flex;
532
+ gap: 0.5rem;
533
+ background-color: rgba(255, 255, 255, 0.1);
534
+ padding: 0.25rem;
535
+ border-radius: 0.75rem;
536
+ width: 100%;
537
+ }
538
+
539
+ @media (min-width: 768px) {
540
+ .pizza-yeast-buttons {
541
+ width: auto;
542
+ }
543
+ }
544
+
545
+ .pizza-yeast-btn {
546
+ flex: 1;
547
+ padding: 0.5rem 1rem;
548
+ border-radius: 0.5rem;
549
+ background-color: transparent;
550
+ color: var(--color-text-tertiary);
551
+ border: none;
552
+ font-size: 0.875rem;
553
+ font-weight: 500;
554
+ cursor: pointer;
555
+ transition: all 0.2s;
556
+ text-align: center;
557
+ }
558
+
559
+ .pizza-yeast-btn:hover {
560
+ background-color: rgba(255, 255, 255, 0.1);
561
+ }
562
+
563
+ @media (min-width: 768px) {
564
+ .pizza-yeast-btn {
565
+ flex: none;
566
+ }
567
+ }
568
+
569
+ .pizza-yeast-btn-active {
570
+ background-color: rgba(255, 255, 255, 0.1);
571
+ color: var(--color-white);
572
+ }
573
+
574
+ .pizza-recipe-grid {
575
+ display: grid;
576
+ grid-template-columns: 1fr;
577
+ gap: 3rem;
578
+ }
579
+
580
+ @media (min-width: 768px) {
581
+ .pizza-recipe-grid {
582
+ grid-template-columns: repeat(2, 1fr);
583
+ gap: 2rem;
584
+ }
585
+ }
586
+
587
+ .pizza-recipe-group {
588
+ display: flex;
589
+ flex-direction: column;
590
+ gap: 1rem;
591
+ }
592
+
593
+ .pizza-recipe-label {
594
+ display: flex;
595
+ align-items: center;
596
+ gap: 0.75rem;
597
+ font-size: 0.75rem;
598
+ font-weight: 700;
599
+ text-transform: uppercase;
600
+ letter-spacing: 0.05em;
601
+ transition: color 0.2s;
602
+ }
603
+
604
+ .pizza-recipe-label-white {
605
+ color: var(--color-slate-400);
606
+ }
607
+
608
+ .pizza-recipe-label-white:hover {
609
+ color: var(--color-white);
610
+ }
611
+
612
+ .pizza-recipe-label-blue {
613
+ color: var(--color-blue-400);
614
+ }
615
+
616
+ .pizza-recipe-label-blue:hover {
617
+ color: var(--color-blue-300);
618
+ }
619
+
620
+ .pizza-recipe-label-gray {
621
+ color: var(--color-slate-400);
622
+ }
623
+
624
+ .pizza-recipe-label-gray:hover {
625
+ color: var(--color-slate-200);
626
+ }
627
+
628
+ .pizza-recipe-label-orange {
629
+ color: var(--color-orange-400);
630
+ }
631
+
632
+ .pizza-recipe-label-orange:hover {
633
+ color: var(--color-orange-300);
634
+ }
635
+
636
+ .pizza-recipe-icon {
637
+ width: 1.25rem;
638
+ height: 1.25rem;
639
+ }
640
+
641
+ .pizza-recipe-value {
642
+ font-size: 3rem;
643
+ font-weight: 900;
644
+ letter-spacing: -0.05em;
645
+ font-variant-numeric: tabular-nums;
646
+ }
647
+
648
+ @media (min-width: 768px) {
649
+ .pizza-recipe-value {
650
+ font-size: 3.75rem;
651
+ }
652
+ }
653
+
654
+ .pizza-recipe-value-blue {
655
+ color: var(--color-blue-100);
656
+ }
657
+
658
+ .pizza-recipe-value-orange {
659
+ color: var(--color-orange-100);
660
+ }
661
+
662
+ .pizza-recipe-unit {
663
+ font-size: 1.125rem;
664
+ font-weight: 400;
665
+ color: var(--color-text-secondary);
666
+ margin-left: 0.25rem;
667
+ }
668
+
669
+ .pizza-recipe-bar {
670
+ height: 0.25rem;
671
+ width: 100%;
672
+ background-color: var(--color-slate-800);
673
+ border-radius: 0.25rem;
674
+ overflow: hidden;
675
+ }
676
+
677
+ .pizza-recipe-bar-fill {
678
+ height: 100%;
679
+ background-color: var(--color-white);
680
+ width: 100%;
681
+ transform-origin: left;
682
+ transition: transform 1s;
683
+ border-radius: 0.25rem;
684
+ }
685
+
686
+ .pizza-recipe-bar-fill-blue {
687
+ background-color: var(--color-blue-500);
688
+ }
689
+
690
+ .pizza-recipe-note {
691
+ font-size: 0.75rem;
692
+ color: var(--color-text-secondary);
693
+ margin-top: 0.5rem;
694
+ }
695
+
696
+ .pizza-recipe-total {
697
+ margin-top: 3rem;
698
+ padding-top: 2rem;
699
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
700
+ display: flex;
701
+ justify-content: space-between;
702
+ align-items: flex-end;
703
+ }
704
+
705
+ .pizza-recipe-total-label {
706
+ font-size: 0.875rem;
707
+ color: var(--color-slate-400);
708
+ }
709
+
710
+ .pizza-recipe-total-value {
711
+ font-size: 1.5rem;
712
+ font-weight: 700;
713
+ }
714
+
715
+ .pizza-visual {
716
+ }
717
+
718
+ @media (min-width: 1024px) {
719
+ .pizza-visual {
720
+ grid-column: span 1;
721
+ grid-row: span 1;
722
+ }
723
+ }
724
+
725
+ .pizza-visual-card {
726
+ background-color: var(--color-bg);
727
+ border-radius: 1.5rem;
728
+ padding: 1.5rem;
729
+ border: 1px solid var(--color-border);
730
+ display: flex;
731
+ flex-direction: column;
732
+ align-items: center;
733
+ justify-content: center;
734
+ min-height: 20rem;
735
+ }
736
+
737
+ .pizza-visual-container {
738
+ position: relative;
739
+ width: 100%;
740
+ max-width: 20rem;
741
+ height: 16rem;
742
+ display: flex;
743
+ align-items: center;
744
+ justify-content: center;
745
+ }
746
+
747
+ .pizza-visual-dough {
748
+ border-radius: 50%;
749
+ background-color: #f3e5ab;
750
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.1);
751
+ transition: all 0.5s;
752
+ position: relative;
753
+ z-index: 10;
754
+ }
755
+
756
+ .pizza-visual-dough::after {
757
+ content: "";
758
+ position: absolute;
759
+ inset: 0;
760
+ border-radius: 50%;
761
+ background: linear-gradient(
762
+ 135deg,
763
+ rgba(255, 255, 255, 0.4) 0%,
764
+ rgba(0, 0, 0, 0.05) 100%
765
+ );
766
+ }
767
+
768
+ .pizza-visual-reference {
769
+ position: absolute;
770
+ bottom: 0;
771
+ right: 1rem;
772
+ display: flex;
773
+ flex-direction: column;
774
+ align-items: center;
775
+ opacity: 0.3;
776
+ pointer-events: none;
777
+ z-index: 0;
778
+ }
779
+
780
+ .pizza-visual-reference-icon {
781
+ width: 6rem;
782
+ height: 6rem;
783
+ color: var(--color-slate-400);
784
+ }
785
+
786
+ .pizza-visual-reference-label {
787
+ font-size: 0.625rem;
788
+ text-transform: uppercase;
789
+ letter-spacing: 0.05em;
790
+ font-weight: 700;
791
+ color: var(--color-slate-400);
792
+ }
793
+
794
+ .pizza-visual-diameter {
795
+ position: absolute;
796
+ bottom: -2rem;
797
+ font-size: 0.75rem;
798
+ color: var(--color-text-tertiary);
799
+ }
800
+
801
+ .pizza-visual-text {
802
+ margin-top: 2rem;
803
+ text-align: center;
804
+ font-size: 0.875rem;
805
+ color: var(--color-text-secondary);
806
+ max-width: 16rem;
807
+ }
808
+ </style>