@jjlmoya/utils-cooking 1.9.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,6 +1,5 @@
1
1
  ---
2
2
  import { Icon } from 'astro-icon/components';
3
- import './RouxGuide.css';
4
3
 
5
4
  interface Props {
6
5
  ui: Record<string, string>;
@@ -185,10 +184,490 @@ const { ui } = Astro.props;
185
184
  }
186
185
  </script>
187
186
 
187
+ <style is:global>
188
+ :root {
189
+ --rg-primary: hsl(38deg, 92%, 50%);
190
+ --rg-primary-light: hsl(38deg, 92%, 90%);
191
+ --rg-secondary: hsl(25deg, 95%, 53%);
192
+ --rg-bg-card: hsl(0deg, 0%, 100%);
193
+ --rg-bg-app: hsl(210deg, 20%, 98%);
194
+ --rg-border: hsl(210deg, 20%, 90%);
195
+ --rg-text-main: hsl(210deg, 30%, 20%);
196
+ --rg-text-muted: hsl(210deg, 15%, 50%);
197
+ --rg-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1);
198
+ --rg-radius: 1rem;
199
+ }
200
+
201
+ .theme-dark {
202
+ --rg-bg-card: hsl(220deg, 25%, 12%);
203
+ --rg-bg-app: hsl(220deg, 30%, 7%);
204
+ --rg-border: hsl(220deg, 20%, 20%);
205
+ --rg-text-main: hsl(210deg, 20%, 95%);
206
+ --rg-text-muted: hsl(210deg, 15%, 70%);
207
+ --rg-primary-light: hsl(38deg, 92%, 12%);
208
+ }
209
+ </style>
210
+
188
211
  <style>
189
212
  input[type='number']::-webkit-outer-spin-button,
190
213
  input[type='number']::-webkit-inner-spin-button {
191
214
  -webkit-appearance: none;
192
215
  margin: 0;
193
216
  }
217
+
218
+ .rg-container {
219
+ width: 100%;
220
+ max-width: 100%;
221
+ padding: 1rem;
222
+ }
223
+
224
+ .rg-card {
225
+ background: var(--rg-bg-card);
226
+ border: 1px solid var(--rg-border);
227
+ border-radius: var(--rg-radius);
228
+ box-shadow: var(--rg-shadow-lg);
229
+ overflow: hidden;
230
+ }
231
+
232
+ .rg-progress-wrapper {
233
+ height: 0.375rem;
234
+ width: 100%;
235
+ background: var(--rg-bg-app);
236
+ position: relative;
237
+ }
238
+
239
+ .rg-progress-bar {
240
+ height: 100%;
241
+ background: linear-gradient(to right, var(--rg-primary), var(--rg-secondary));
242
+ transition: width 0.3s ease;
243
+ width: 50%;
244
+ }
245
+
246
+ .rg-content {
247
+ padding: 2rem;
248
+ }
249
+
250
+ @media (max-width: 1024px) {
251
+ .rg-content {
252
+ padding: 1.5rem;
253
+ }
254
+ }
255
+
256
+ @media (max-width: 640px) {
257
+ .rg-content {
258
+ padding: 1rem;
259
+ }
260
+ }
261
+
262
+ .rg-grid {
263
+ display: grid;
264
+ grid-template-columns: 1fr;
265
+ gap: 3rem;
266
+ }
267
+
268
+ @media (min-width: 1024px) {
269
+ .rg-grid {
270
+ grid-template-columns: 1fr 1fr;
271
+ }
272
+ }
273
+
274
+ .rg-controls {
275
+ display: flex;
276
+ flex-direction: column;
277
+ gap: 2.5rem;
278
+ }
279
+
280
+ .rg-control-group {
281
+ display: flex;
282
+ flex-direction: column;
283
+ gap: 1rem;
284
+ }
285
+
286
+ .rg-label {
287
+ font-size: 0.75rem;
288
+ font-weight: 700;
289
+ color: var(--rg-text-muted);
290
+ text-transform: uppercase;
291
+ letter-spacing: 0.05em;
292
+ display: flex;
293
+ align-items: center;
294
+ gap: 0.75rem;
295
+ }
296
+
297
+ .rg-step {
298
+ width: 1.5rem;
299
+ height: 1.5rem;
300
+ border-radius: 50%;
301
+ background: hsl(38deg, 92%, 90%);
302
+ color: var(--rg-primary);
303
+ display: flex;
304
+ align-items: center;
305
+ justify-content: center;
306
+ font-weight: 700;
307
+ font-size: 0.75rem;
308
+ }
309
+
310
+ :global(.theme-dark) .rg-step {
311
+ background: hsl(38deg, 92%, 12%);
312
+ }
313
+
314
+ .rg-volume-wrapper {
315
+ display: flex;
316
+ flex-direction: column;
317
+ gap: 1rem;
318
+ }
319
+
320
+ @media (min-width: 640px) {
321
+ .rg-volume-wrapper {
322
+ flex-direction: row;
323
+ gap: 1rem;
324
+ }
325
+ }
326
+
327
+ .rg-input-group {
328
+ position: relative;
329
+ flex: 1;
330
+ }
331
+
332
+ .rg-input {
333
+ width: 100%;
334
+ padding: 1rem 2rem 1rem 1rem;
335
+ border: 2px solid var(--rg-border);
336
+ border-radius: 0.75rem;
337
+ background: var(--rg-bg-app);
338
+ color: var(--rg-text-main);
339
+ font-weight: 600;
340
+ font-size: 1.875rem;
341
+ text-align: center;
342
+ transition: all 0.3s ease;
343
+ }
344
+
345
+ .rg-input:focus {
346
+ outline: none;
347
+ border-color: var(--rg-primary);
348
+ box-shadow: 0 0 0 3px hsl(38deg, 92%, 50%, 0.1);
349
+ }
350
+
351
+ .rg-unit {
352
+ position: absolute;
353
+ right: 1rem;
354
+ top: 50%;
355
+ transform: translateY(-50%);
356
+ color: var(--rg-text-muted);
357
+ font-weight: 600;
358
+ font-size: 0.875rem;
359
+ text-transform: uppercase;
360
+ letter-spacing: 0.05em;
361
+ pointer-events: none;
362
+ }
363
+
364
+ .rg-liquid-buttons {
365
+ display: grid;
366
+ grid-template-columns: repeat(4, 1fr);
367
+ gap: 0.5rem;
368
+ }
369
+
370
+ @media (max-width: 640px) {
371
+ .rg-liquid-buttons {
372
+ grid-template-columns: repeat(2, 1fr);
373
+ }
374
+ }
375
+
376
+ .rg-liquid-btn {
377
+ display: flex;
378
+ align-items: center;
379
+ justify-content: center;
380
+ padding: 0.75rem;
381
+ border: 2px solid var(--rg-border);
382
+ border-radius: 0.75rem;
383
+ background: var(--rg-bg-card);
384
+ color: var(--rg-text-muted);
385
+ cursor: pointer;
386
+ transition: all 0.3s ease;
387
+ }
388
+
389
+ .rg-liquid-btn:hover {
390
+ border-color: var(--rg-primary);
391
+ color: var(--rg-primary);
392
+ }
393
+
394
+ .rg-liquid-btn.active {
395
+ background: var(--rg-bg-app);
396
+ border-color: var(--rg-primary);
397
+ color: var(--rg-primary);
398
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
399
+ }
400
+
401
+ .rg-btn-icon {
402
+ width: 1.5rem;
403
+ height: 1.5rem;
404
+ }
405
+
406
+ .rg-texture-grid {
407
+ display: grid;
408
+ grid-template-columns: repeat(2, 1fr);
409
+ gap: 0.75rem;
410
+ }
411
+
412
+ @media (min-width: 640px) {
413
+ .rg-texture-grid {
414
+ grid-template-columns: repeat(4, 1fr);
415
+ }
416
+ }
417
+
418
+ .rg-texture-btn {
419
+ display: flex;
420
+ flex-direction: column;
421
+ align-items: center;
422
+ gap: 0.75rem;
423
+ padding: 1rem 0.75rem;
424
+ border: 2px solid var(--rg-border);
425
+ border-radius: 0.75rem;
426
+ background: var(--rg-bg-card);
427
+ color: var(--rg-text-muted);
428
+ cursor: pointer;
429
+ transition: all 0.3s ease;
430
+ text-align: center;
431
+ }
432
+
433
+ .rg-texture-btn:hover {
434
+ border-color: var(--rg-primary);
435
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
436
+ }
437
+
438
+ .rg-texture-btn.active {
439
+ background: var(--rg-primary-light);
440
+ border-color: var(--rg-primary);
441
+ color: var(--rg-primary);
442
+ }
443
+
444
+ .rg-texture-visual {
445
+ width: 1.5rem;
446
+ height: 1.5rem;
447
+ border: 1px solid currentcolor;
448
+ border-radius: 0.25rem;
449
+ overflow: hidden;
450
+ display: flex;
451
+ align-items: flex-end;
452
+ }
453
+
454
+ .rg-texture-bar {
455
+ width: 100%;
456
+ background: currentcolor;
457
+ transition: height 0.3s ease;
458
+ }
459
+
460
+ .rg-texture-btn[data-level="1"] .rg-texture-bar {
461
+ height: 25%;
462
+ }
463
+
464
+ .rg-texture-btn[data-level="2"] .rg-texture-bar {
465
+ height: 50%;
466
+ }
467
+
468
+ .rg-texture-btn[data-level="3"] .rg-texture-bar {
469
+ height: 75%;
470
+ }
471
+
472
+ .rg-texture-btn[data-level="4"] .rg-texture-bar {
473
+ height: 100%;
474
+ }
475
+
476
+ .rg-texture-label {
477
+ font-size: 0.75rem;
478
+ font-weight: 600;
479
+ line-height: 1.2;
480
+ }
481
+
482
+ .rg-results {
483
+ display: flex;
484
+ flex-direction: column;
485
+ gap: 1.5rem;
486
+ }
487
+
488
+ .rg-result-hero {
489
+ background: linear-gradient(135deg, var(--rg-primary), var(--rg-secondary));
490
+ border-radius: var(--rg-radius);
491
+ padding: 2rem;
492
+ color: var(--rg-bg-card);
493
+ box-shadow: var(--rg-shadow-lg);
494
+ position: relative;
495
+ overflow: hidden;
496
+ }
497
+
498
+ .rg-result-hero::before {
499
+ content: '';
500
+ position: absolute;
501
+ top: -50%;
502
+ left: -50%;
503
+ width: 200%;
504
+ height: 200%;
505
+ background: radial-gradient(circle, hsla(0deg, 0%, 100%, 0.1), transparent 60%);
506
+ pointer-events: none;
507
+ }
508
+
509
+ .rg-result-header {
510
+ display: flex;
511
+ justify-content: space-between;
512
+ align-items: center;
513
+ margin-bottom: 1.5rem;
514
+ position: relative;
515
+ z-index: 1;
516
+ }
517
+
518
+ .rg-result-label {
519
+ font-size: 0.75rem;
520
+ font-weight: 700;
521
+ text-transform: uppercase;
522
+ letter-spacing: 0.1em;
523
+ opacity: 0.8;
524
+ }
525
+
526
+ .rg-roux-type {
527
+ font-size: 0.75rem;
528
+ font-weight: 600;
529
+ background: hsla(0deg, 0%, 0%, 0.2);
530
+ padding: 0.5rem 1rem;
531
+ border-radius: 0.5rem;
532
+ text-transform: capitalize;
533
+ }
534
+
535
+ .rg-result-amounts {
536
+ display: flex;
537
+ align-items: center;
538
+ justify-content: space-around;
539
+ margin-bottom: 1.5rem;
540
+ position: relative;
541
+ z-index: 1;
542
+ text-align: center;
543
+ }
544
+
545
+ .rg-amount {
546
+ flex: 1;
547
+ }
548
+
549
+ .rg-amount-value {
550
+ font-size: 2.5rem;
551
+ font-weight: 800;
552
+ margin-bottom: 0.5rem;
553
+ line-height: 1;
554
+ }
555
+
556
+ .rg-amount-unit {
557
+ font-size: 0.75rem;
558
+ font-weight: 600;
559
+ text-transform: uppercase;
560
+ opacity: 0.8;
561
+ }
562
+
563
+ .rg-amount-plus {
564
+ font-size: 1.5rem;
565
+ opacity: 0.3;
566
+ margin: 0 1rem;
567
+ }
568
+
569
+ .rg-instructions-box {
570
+ background: hsla(0deg, 0%, 0%, 0.2);
571
+ border-radius: 0.75rem;
572
+ border: 1px solid hsla(0deg, 0%, 100%, 0.1);
573
+ padding: 1rem;
574
+ position: relative;
575
+ z-index: 1;
576
+ backdrop-filter: blur(4px);
577
+ }
578
+
579
+ .rg-instructions-header {
580
+ display: flex;
581
+ align-items: center;
582
+ gap: 0.5rem;
583
+ margin-bottom: 0.75rem;
584
+ color: hsl(38deg, 92%, 90%);
585
+ }
586
+
587
+ .rg-instructions-icon {
588
+ width: 1rem;
589
+ height: 1rem;
590
+ }
591
+
592
+ .rg-instructions-title {
593
+ font-size: 0.75rem;
594
+ font-weight: 700;
595
+ text-transform: uppercase;
596
+ letter-spacing: 0.1em;
597
+ }
598
+
599
+ .rg-instructions-text {
600
+ font-size: 0.875rem;
601
+ font-weight: 500;
602
+ line-height: 1.5;
603
+ color: hsl(38deg, 92%, 95%);
604
+ margin: 0;
605
+ }
606
+
607
+ .rg-sauce-info {
608
+ background: var(--rg-bg-app);
609
+ border: 1px solid var(--rg-border);
610
+ border-radius: var(--rg-radius);
611
+ padding: 1.5rem;
612
+ display: flex;
613
+ flex-direction: column;
614
+ gap: 1rem;
615
+ }
616
+
617
+ .rg-sauce-header {
618
+ display: flex;
619
+ align-items: center;
620
+ gap: 1rem;
621
+ margin-bottom: 0.5rem;
622
+ }
623
+
624
+ .rg-sauce-icon {
625
+ width: 2.5rem;
626
+ height: 2.5rem;
627
+ border-radius: 0.5rem;
628
+ background: hsl(38deg, 92%, 90%);
629
+ color: var(--rg-primary);
630
+ display: flex;
631
+ align-items: center;
632
+ justify-content: center;
633
+ flex-shrink: 0;
634
+ }
635
+
636
+ :global(.theme-dark) .rg-sauce-icon {
637
+ background: hsl(38deg, 92%, 12%);
638
+ }
639
+
640
+ .rg-icon-lg {
641
+ width: 1.25rem;
642
+ height: 1.25rem;
643
+ }
644
+
645
+ .rg-sauce-name {
646
+ font-size: 1rem;
647
+ font-weight: 700;
648
+ color: var(--rg-text-main);
649
+ flex: 1;
650
+ }
651
+
652
+ .rg-sauce-ratio {
653
+ font-size: 0.75rem;
654
+ font-weight: 700;
655
+ color: var(--rg-text-muted);
656
+ text-transform: uppercase;
657
+ letter-spacing: 0.05em;
658
+ white-space: nowrap;
659
+ }
660
+
661
+ .rg-sauce-tip {
662
+ font-size: 0.875rem;
663
+ font-weight: 500;
664
+ line-height: 1.6;
665
+ color: var(--rg-text-muted);
666
+ font-style: italic;
667
+ background: var(--rg-bg-card);
668
+ padding: 1rem;
669
+ border-radius: 0.75rem;
670
+ border: 1px solid var(--rg-border);
671
+ margin: 0;
672
+ }
194
673
  </style>