@jjlmoya/utils-cooking 1.22.0 → 1.23.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-cooking",
3
- "version": "1.22.0",
3
+ "version": "1.23.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -1,450 +1,22 @@
1
- .cw-container {
2
- width: 100%;
3
- max-width: 100%;
4
- padding: 1rem;
5
- }
6
-
7
- .cw-card {
8
- background: var(--cw-bg-card);
9
- border: 1px solid var(--cw-border);
10
- border-radius: var(--cw-radius);
11
- box-shadow: var(--cw-shadow-xl);
12
- overflow: hidden;
13
- transition: all 0.3s ease;
14
- }
15
-
16
- .cw-progress-bar {
17
- height: 0.375rem;
18
- width: 0%;
19
- background: linear-gradient(to right, var(--cw-primary), hsl(270deg, 94%, 60%));
20
- transition: width 0.5s ease;
21
- }
22
-
23
- .cw-content {
24
- padding: 2rem;
25
- }
26
-
27
- @media (max-width: 1024px) {
28
- .cw-content {
29
- padding: 1.5rem;
30
- }
31
- }
32
-
33
- @media (max-width: 640px) {
34
- .cw-content {
35
- padding: 1rem;
36
- }
37
- }
38
-
39
- .cw-grid {
40
- display: grid;
41
- grid-template-columns: 1fr;
42
- gap: 2rem;
43
- }
44
-
45
- @media (min-width: 1024px) {
46
- .cw-grid {
47
- grid-template-columns: 1.4fr 1fr;
48
- gap: 2rem;
49
- }
50
- }
51
-
52
- .cw-left {
53
- display: flex;
54
- flex-direction: column;
55
- gap: 2rem;
56
- }
57
-
58
- .cw-right {
59
- display: flex;
60
- flex-direction: column;
61
- gap: 1.5rem;
62
- }
63
-
64
- .cw-section {
65
- display: flex;
66
- flex-direction: column;
67
- gap: 1rem;
68
- }
69
-
70
- .cw-step-label {
71
- display: flex;
72
- align-items: center;
73
- gap: 0.75rem;
74
- font-size: 0.625rem;
75
- font-weight: 900;
76
- color: var(--cw-text-muted);
77
- text-transform: uppercase;
78
- letter-spacing: 0.2em;
79
- }
80
-
81
- .cw-step-number {
82
- display: flex;
83
- align-items: center;
84
- justify-content: center;
85
- width: 1.25rem;
86
- height: 1.25rem;
87
- border-radius: 50%;
88
- background: var(--cw-primary-light);
89
- color: var(--cw-primary);
90
- font-weight: 900;
91
- font-size: 0.625rem;
92
- flex-shrink: 0;
93
- }
94
-
95
- .theme-dark .cw-step-number {
96
- background: hsl(240deg, 100%, 20%);
97
- }
98
-
99
- .cw-style-grid {
100
- display: grid;
101
- grid-template-columns: repeat(2, 1fr);
102
- gap: 0.75rem;
103
- }
104
-
105
- .cw-style-btn {
106
- display: flex;
107
- flex-direction: column;
108
- align-items: flex-start;
109
- gap: 0.5rem;
110
- padding: 1rem;
111
- border: 2px solid var(--cw-border);
112
- border-radius: 0.75rem;
113
- background: var(--cw-bg-card);
114
- color: var(--cw-text-muted);
115
- cursor: pointer;
116
- transition: all 0.3s ease;
117
- text-align: left;
118
- font-size: inherit;
119
- }
120
-
121
- .cw-style-btn:hover {
122
- border-color: var(--cw-primary-light);
123
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
124
- }
125
-
126
- .cw-style-btn.active {
127
- background: var(--cw-primary-light);
128
- border-color: var(--cw-primary);
129
- color: var(--cw-primary);
130
- }
131
-
132
- .theme-dark .cw-style-btn.active {
133
- background: hsl(240deg, 100%, 35%);
134
- color: hsl(0deg, 0%, 100%);
135
- }
136
-
137
- .theme-dark .cw-style-btn.active .cw-style-name {
138
- color: hsl(0deg, 0%, 100%);
139
- }
140
-
141
- .theme-dark .cw-style-btn.active .cw-style-desc {
142
- color: hsl(0deg, 0%, 100%);
143
- }
144
-
145
- .cw-icon {
146
- width: 1.5rem;
147
- height: 1.5rem;
148
- }
149
-
150
- .cw-icon-large {
151
- width: 6rem;
152
- height: 6rem;
153
- color: var(--cw-text-light);
154
- }
155
-
156
- .cw-icon-orange {
157
- color: hsl(33deg, 100%, 50%);
158
- }
159
-
160
- .cw-icon-yellow {
161
- color: hsl(45deg, 100%, 50%);
162
- }
163
-
164
- .cw-icon-red {
165
- color: hsl(0deg, 100%, 50%);
166
- }
167
-
168
- .cw-icon-blue {
169
- color: hsl(217deg, 100%, 50%);
170
- }
171
-
172
- .cw-style-name {
173
- font-size: 0.75rem;
174
- font-weight: 900;
175
- display: block;
176
- color: var(--cw-text-main);
177
- }
178
-
179
- .cw-style-btn.active .cw-style-name {
180
- color: var(--cw-primary);
181
- }
182
-
183
- .cw-style-desc {
184
- font-weight: 600;
185
- opacity: 0.7;
186
- display: block;
187
- text-transform: uppercase;
188
- }
189
-
190
- .cw-maint-grid {
191
- display: grid;
192
- grid-template-columns: 1fr;
193
- gap: 0.75rem;
194
- }
195
-
196
- @media (min-width: 640px) {
197
- .cw-maint-grid {
198
- grid-template-columns: repeat(3, 1fr);
199
- }
200
- }
201
-
202
- .cw-maint-btn {
203
- display: flex;
204
- flex-direction: column;
205
- align-items: center;
206
- text-align: center;
207
- gap: 0.75rem;
208
- padding: 1.25rem;
209
- border: 2px solid var(--cw-border);
210
- border-radius: 0.75rem;
211
- background: var(--cw-bg-card);
212
- color: var(--cw-text-muted);
213
- cursor: pointer;
214
- transition: all 0.3s ease;
215
- font-size: inherit;
216
- }
217
-
218
- .cw-maint-btn:hover {
219
- border-color: var(--cw-primary-light);
220
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
221
- }
222
-
223
- .cw-maint-btn.active {
224
- background: var(--cw-primary-light);
225
- border-color: var(--cw-primary);
226
- }
227
-
228
- .theme-dark .cw-maint-btn.active {
229
- background: hsl(240deg, 100%, 20%);
230
- }
231
-
232
- .cw-maint-icon {
233
- width: 3rem;
234
- height: 3rem;
235
- border-radius: 0.75rem;
236
- background: var(--cw-bg-app);
237
- display: flex;
238
- align-items: center;
239
- justify-content: center;
240
- color: var(--cw-text-muted);
241
- transition: all 0.3s ease;
242
- }
243
-
244
- .cw-maint-btn.active .cw-maint-icon {
245
- color: var(--cw-primary);
246
- }
247
-
248
- .cw-maint-btn:hover .cw-maint-icon {
249
- color: var(--cw-primary);
250
- }
251
-
252
- .cw-maint-name {
253
- font-size: 0.75rem;
254
- font-weight: 900;
255
- display: block;
256
- color: var(--cw-text-main);
257
- }
258
-
259
- .cw-maint-btn.active .cw-maint-name {
260
- color: var(--cw-primary);
261
- }
262
-
263
- .cw-maint-desc {
264
- font-size: 0.625rem;
265
- font-weight: 500;
266
- opacity: 0.7;
267
- display: block;
268
- line-height: 1.3;
269
- }
270
-
271
- .cw-result-card {
272
- background: hsl(217deg, 33%, 17%);
273
- border-radius: var(--cw-radius);
274
- padding: 2rem;
275
- color: hsl(0deg, 0%, 100%);
276
- box-shadow: var(--cw-shadow-xl);
277
- position: relative;
278
- overflow: hidden;
279
- min-height: 320px;
280
- display: flex;
281
- flex-direction: column;
282
- justify-content: center;
283
- transition: all 0.3s ease;
284
- }
285
-
286
- .cw-card-bg {
287
- position: absolute;
288
- inset: 0;
289
- background: linear-gradient(135deg, hsl(217deg, 33%, 17%), hsl(217deg, 33%, 7%));
290
- transition: background 1s ease;
291
- }
292
-
293
- .cw-card-glow {
294
- position: absolute;
295
- right: -3rem;
296
- top: -3rem;
297
- width: 12rem;
298
- height: 12rem;
299
- background: rgba(255, 255, 255, 0.1);
300
- border-radius: 50%;
301
- filter: blur(3rem);
302
- transition: transform 0.7s ease;
303
- }
304
-
305
- .cw-result-card:hover .cw-card-glow {
306
- transform: scale(1.25);
307
- }
308
-
309
- .cw-card-content {
310
- position: relative;
311
- z-index: 10;
312
- display: flex;
313
- flex-direction: column;
314
- gap: 1.5rem;
315
- text-align: center;
316
- }
317
-
318
- .cw-icon-container {
319
- display: flex;
320
- justify-content: center;
321
- align-items: center;
322
- height: 6rem;
323
- }
324
-
325
- .cw-result-icon {
326
- display: none;
327
- }
328
-
329
- .cw-result-icon:not(.cw-hidden) {
330
- display: block;
331
- }
332
-
333
- .cw-result-label {
334
- font-size: 0.625rem;
335
- font-weight: 900;
336
- text-transform: uppercase;
337
- letter-spacing: 0.3em;
338
- color: rgba(255, 255, 255, 0.4);
339
- margin-bottom: 0.5rem;
340
- }
341
-
342
- .cw-result-name {
343
- font-size: 1.875rem;
344
- font-weight: 900;
345
- letter-spacing: -0.02em;
346
- margin: 0;
347
- }
348
-
349
- .cw-result-tag {
350
- font-size: 0.75rem;
351
- font-weight: 500;
352
- color: rgba(255, 255, 255, 0.6);
353
- margin: 0;
354
- }
355
-
356
- .cw-result-details {
357
- display: none;
358
- grid-template-columns: 1fr 1fr;
359
- gap: 0.75rem;
360
- padding-top: 1rem;
361
- border-top: 1px solid rgba(255, 255, 255, 0.1);
362
- }
363
-
364
- .cw-result-details:not(.cw-hidden) {
365
- display: grid;
366
- }
367
-
368
- .cw-detail-box {
369
- background: rgba(255, 255, 255, 0.05);
370
- border: 1px solid rgba(255, 255, 255, 0.05);
371
- border-radius: 0.75rem;
372
- padding: 0.75rem;
373
- }
374
-
375
- .cw-detail-label {
376
- font-size: 0.5rem;
377
- font-weight: 900;
378
- text-transform: uppercase;
379
- letter-spacing: 0.1em;
380
- display: block;
381
- margin-bottom: 0.25rem;
382
- }
383
-
384
- .cw-detail-text {
385
- font-size: 0.625rem;
386
- line-height: 1.4;
387
- color: rgba(255, 255, 255, 0.9);
388
- margin: 0;
389
- }
390
-
391
- .cw-tip-card {
392
- background: var(--cw-bg-app);
393
- border: 1px solid var(--cw-border);
394
- border-radius: var(--cw-radius);
395
- padding: 1.5rem;
396
- display: flex;
397
- flex-direction: column;
398
- gap: 1rem;
399
- }
400
-
401
- .cw-tip-header {
402
- display: flex;
403
- align-items: center;
404
- gap: 0.75rem;
405
- }
406
-
407
- .cw-tip-icon {
408
- padding: 0.5rem;
409
- background: var(--cw-primary-light);
410
- border-radius: 0.75rem;
411
- display: flex;
412
- align-items: center;
413
- justify-content: center;
414
- color: var(--cw-primary);
415
- flex-shrink: 0;
416
- }
417
-
418
- .theme-dark .cw-tip-icon {
419
- background: hsl(240deg, 100%, 20%);
420
- }
421
-
422
- .cw-tip-title {
423
- font-size: 0.875rem;
424
- font-weight: 900;
425
- color: var(--cw-text-main);
426
- text-transform: uppercase;
427
- letter-spacing: 0.05em;
428
- }
429
-
430
- .cw-tip-text {
431
- font-size: 0.6875rem;
432
- line-height: 1.6;
433
- color: var(--cw-text-muted);
434
- font-weight: 400;
435
- font-style: italic;
436
- background: rgba(var(--cw-primary-rgb, 99, 102, 241), 0.03);
437
- padding: 1.25rem;
438
- border-radius: 0.75rem;
439
- border: 1px solid var(--cw-border);
440
- margin: 0;
441
- }
442
-
443
- .theme-dark .cw-tip-text {
444
- color: var(--cw-text-main);
445
- background: rgba(255, 255, 255, 0.03);
446
- }
447
-
448
- .cw-hidden {
449
- display: none;
1
+ :root {
2
+ --cw-primary: hsl(240deg, 94%, 60%);
3
+ --cw-primary-light: hsl(240deg, 100%, 95%);
4
+ --cw-bg-card: hsl(0deg, 0%, 100%);
5
+ --cw-bg-app: hsl(210deg, 40%, 98%);
6
+ --cw-border: hsl(210deg, 14%, 89%);
7
+ --cw-text-main: hsl(210deg, 40%, 14%);
8
+ --cw-text-muted: hsl(210deg, 8%, 40%);
9
+ --cw-text-light: hsl(210deg, 40%, 98%);
10
+ --cw-shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);
11
+ --cw-radius: 1.5rem;
12
+ }
13
+
14
+ .theme-dark {
15
+ --cw-bg-card: hsl(217deg, 33%, 12%);
16
+ --cw-bg-app: hsl(217deg, 39%, 8%);
17
+ --cw-border: hsl(217deg, 33%, 25%);
18
+ --cw-text-main: hsl(210deg, 40%, 98%);
19
+ --cw-text-muted: hsl(210deg, 14%, 75%);
20
+ --cw-text-light: hsl(210deg, 40%, 98%);
21
+ --cw-primary-light: hsl(240deg, 100%, 20%);
450
22
  }
@@ -1,272 +1,20 @@
1
- .ingredient-rescaler-container {
2
- max-width: 100%;
3
- padding: 1.5rem;
4
- background: var(--ir-bg-card);
5
- border: 1px solid var(--ir-border);
6
- border-radius: var(--ir-radius);
7
- box-shadow: var(--ir-shadow-lg);
8
- }
9
-
10
- .ir-grid {
11
- display: grid;
12
- grid-template-columns: 1fr;
13
- gap: 2rem;
14
- margin-bottom: 2rem;
15
- }
16
-
17
- @media (min-width: 768px) {
18
- .ir-grid {
19
- grid-template-columns: 1fr 1fr;
20
- }
21
- }
22
-
23
- .ir-section {
24
- background: var(--ir-bg-app);
25
- padding: 1.5rem;
26
- border-radius: 1.25rem;
27
- border: 1px solid var(--ir-border);
28
- }
29
-
30
- .ir-section-primary {
31
- background: var(--ir-bg-card);
32
- border: 2px solid var(--ir-primary);
33
- }
34
-
35
- .ir-section-title {
36
- font-size: 1.125rem;
37
- font-weight: 700;
38
- color: var(--ir-text-main);
39
- margin-bottom: 1rem;
40
- display: flex;
41
- align-items: center;
42
- gap: 0.5rem;
43
- }
44
-
45
- .ir-section-primary .ir-section-title {
46
- color: var(--ir-primary);
47
- }
48
-
49
- .ir-fields {
50
- display: grid;
51
- grid-template-columns: 1fr 1fr;
52
- gap: 1rem;
53
- margin-bottom: 1.5rem;
54
- }
55
-
56
- .ir-field {
57
- display: flex;
58
- flex-direction: column;
59
- gap: 0.5rem;
60
- }
61
-
62
- .ir-label {
63
- font-size: 0.75rem;
64
- font-weight: 700;
65
- color: var(--ir-text-muted);
66
- text-transform: uppercase;
67
- letter-spacing: 0.05em;
68
- }
69
-
70
- .ir-input {
71
- width: 100%;
72
- padding: 0.75rem 1rem;
73
- border-radius: 0.75rem;
74
- border: 1px solid var(--ir-border);
75
- background: var(--ir-bg-card);
76
- color: var(--ir-text-main);
77
- font-weight: 600;
78
- font-size: 1.125rem;
79
- text-align: center;
80
- transition: all 0.3s ease;
81
- }
82
-
83
- .ir-input:focus {
84
- outline: none;
85
- border-color: var(--ir-primary);
86
- box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
87
- }
88
-
89
- .ir-factor-display {
90
- margin-top: 1rem;
91
- padding: 1rem;
92
- background: var(--ir-primary-light);
93
- border-radius: 0.75rem;
94
- border: 1px solid var(--ir-primary);
95
- display: flex;
96
- justify-content: space-between;
97
- align-items: center;
98
- }
99
-
100
- .ir-factor-label {
101
- font-size: 0.875rem;
102
- font-weight: 600;
103
- color: var(--ir-text-muted);
104
- }
105
-
106
- .ir-factor-value {
107
- font-size: 2rem;
108
- font-weight: 800;
109
- color: var(--ir-primary);
110
- }
111
-
112
- .ir-textarea-container {
113
- display: flex;
114
- flex-direction: column;
115
- height: 100%;
116
- gap: 0.5rem;
117
- }
118
-
119
- .ir-textarea {
120
- width: 100%;
121
- flex: 1;
122
- min-height: 200px;
123
- padding: 1rem;
124
- border-radius: 0.75rem;
125
- border: 1px solid var(--ir-border);
126
- background: var(--ir-bg-card);
127
- color: var(--ir-text-main);
128
- font-size: 0.875rem;
129
- resize: none;
130
- line-height: 1.6;
131
- transition: all 0.3s ease;
132
- }
133
-
134
- .ir-textarea:focus {
135
- outline: none;
136
- border-color: var(--ir-primary);
137
- box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
138
- }
139
-
140
- .ir-textarea::placeholder {
141
- color: hsl(210deg, 15%, 75%);
142
- }
143
-
144
- .ir-results-card {
145
- background: var(--ir-text-main);
146
- border-radius: 1.25rem;
147
- border: 1px solid var(--ir-border);
148
- overflow: hidden;
149
- box-shadow: var(--ir-shadow-lg);
150
- }
151
-
152
- .ir-results-header {
153
- padding: 1rem 1.5rem;
154
- background: hsl(210deg, 30%, 15%);
155
- border-bottom: 1px solid hsl(210deg, 30%, 25%);
156
- display: flex;
157
- justify-content: space-between;
158
- align-items: center;
159
- }
160
-
161
- .theme-dark .ir-results-header {
162
- background: hsl(220deg, 25%, 8%);
163
- border-bottom-color: hsl(220deg, 25%, 20%);
164
- }
165
-
166
- .ir-results-title {
167
- color: var(--ir-bg-card);
168
- font-weight: 700;
169
- display: flex;
170
- align-items: center;
171
- gap: 0.5rem;
172
- }
173
-
174
- .theme-dark .ir-results-title {
175
- color: var(--ir-text-main);
176
- }
177
-
178
- .ir-copy-btn {
179
- font-size: 0.75rem;
180
- background: hsl(210deg, 30%, 35%);
181
- color: var(--ir-bg-card);
182
- padding: 0.5rem 1rem;
183
- border-radius: 0.5rem;
184
- border: none;
185
- cursor: pointer;
186
- transition: all 0.3s ease;
187
- font-weight: 600;
188
- display: flex;
189
- align-items: center;
190
- gap: 0.5rem;
191
- }
192
-
193
- .theme-dark .ir-copy-btn {
194
- background: hsl(220deg, 25%, 30%);
195
- color: var(--ir-text-main);
196
- }
197
-
198
- .ir-copy-btn:hover {
199
- background: hsl(210deg, 30%, 45%);
200
- }
201
-
202
- .theme-dark .ir-copy-btn:hover {
203
- background: hsl(220deg, 25%, 40%);
204
- }
205
-
206
- .ir-copy-btn.ir-copied {
207
- background: hsl(142deg, 72%, 45%);
208
- }
209
-
210
- .ir-results-container {
211
- padding: 2rem;
212
- font-size: 1rem;
213
- display: flex;
214
- flex-direction: column;
215
- gap: 0.75rem;
216
- min-height: 200px;
217
- background: var(--ir-bg-card);
218
- color: var(--ir-text-main);
219
- }
220
-
221
- .ir-empty-state {
222
- height: 100%;
223
- display: flex;
224
- flex-direction: column;
225
- align-items: center;
226
- justify-content: center;
227
- gap: 1rem;
228
- opacity: 0.5;
229
- color: var(--ir-text-muted);
230
- }
231
-
232
- .ir-empty-icon {
233
- width: 3rem;
234
- height: 3rem;
235
- }
236
-
237
- .ir-result-row {
238
- display: flex;
239
- justify-content: space-between;
240
- align-items: center;
241
- background: var(--ir-bg-app);
242
- padding: 0.75rem;
243
- border-radius: 0.5rem;
244
- border-left: 4px solid transparent;
245
- transition: all 0.3s ease;
246
- }
247
-
248
- .ir-result-row:hover {
249
- background: var(--ir-primary-light);
250
- border-left-color: var(--ir-primary);
251
- }
252
-
253
- .ir-original-amount {
254
- color: hsl(210deg, 15%, 75%);
255
- font-size: 0.75rem;
256
- text-decoration: line-through;
257
- opacity: 0.75;
258
- }
259
-
260
- .ir-new-value {
261
- color: var(--ir-primary);
262
- font-weight: 800;
263
- font-size: 1.125rem;
264
- }
265
-
266
- .ir-no-amount-row {
267
- color: var(--ir-text-muted);
268
- font-style: italic;
269
- font-size: 0.875rem;
270
- padding: 0.5rem;
271
- background: transparent;
1
+ :root {
2
+ --ir-primary: hsl(220deg, 90%, 56%);
3
+ --ir-primary-light: hsl(220deg, 90%, 92%);
4
+ --ir-bg-card: hsl(0deg, 0%, 100%);
5
+ --ir-bg-app: hsl(210deg, 20%, 98%);
6
+ --ir-border: hsl(210deg, 20%, 90%);
7
+ --ir-text-main: hsl(210deg, 30%, 20%);
8
+ --ir-text-muted: hsl(210deg, 15%, 50%);
9
+ --ir-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1);
10
+ --ir-radius: 1rem;
11
+ }
12
+
13
+ .theme-dark {
14
+ --ir-bg-card: hsl(220deg, 25%, 12%);
15
+ --ir-bg-app: hsl(220deg, 30%, 7%);
16
+ --ir-border: hsl(220deg, 20%, 20%);
17
+ --ir-text-main: hsl(210deg, 20%, 95%);
18
+ --ir-text-muted: hsl(210deg, 15%, 70%);
19
+ --ir-primary-light: hsl(220deg, 90%, 12%);
272
20
  }
@@ -1,461 +1,21 @@
1
- input[type='number']::-webkit-outer-spin-button,
2
- input[type='number']::-webkit-inner-spin-button {
3
- -webkit-appearance: none;
4
- margin: 0;
5
- }
6
-
7
- .rg-container {
8
- width: 100%;
9
- max-width: 100%;
10
- padding: 1rem;
11
- }
12
-
13
- .rg-card {
14
- background: var(--rg-bg-card);
15
- border: 1px solid var(--rg-border);
16
- border-radius: var(--rg-radius);
17
- box-shadow: var(--rg-shadow-lg);
18
- overflow: hidden;
19
- }
20
-
21
- .rg-progress-wrapper {
22
- height: 0.375rem;
23
- width: 100%;
24
- background: var(--rg-bg-app);
25
- position: relative;
26
- }
27
-
28
- .rg-progress-bar {
29
- height: 100%;
30
- background: linear-gradient(to right, var(--rg-primary), var(--rg-secondary));
31
- transition: width 0.3s ease;
32
- width: 50%;
33
- }
34
-
35
- .rg-content {
36
- padding: 2rem;
37
- }
38
-
39
- @media (max-width: 1024px) {
40
- .rg-content {
41
- padding: 1.5rem;
42
- }
43
- }
44
-
45
- @media (max-width: 640px) {
46
- .rg-content {
47
- padding: 1rem;
48
- }
49
- }
50
-
51
- .rg-grid {
52
- display: grid;
53
- grid-template-columns: 1fr;
54
- gap: 3rem;
55
- }
56
-
57
- @media (min-width: 1024px) {
58
- .rg-grid {
59
- grid-template-columns: 1fr 1fr;
60
- }
61
- }
62
-
63
- .rg-controls {
64
- display: flex;
65
- flex-direction: column;
66
- gap: 2.5rem;
67
- }
68
-
69
- .rg-control-group {
70
- display: flex;
71
- flex-direction: column;
72
- gap: 1rem;
73
- }
74
-
75
- .rg-label {
76
- font-size: 0.75rem;
77
- font-weight: 700;
78
- color: var(--rg-text-muted);
79
- text-transform: uppercase;
80
- letter-spacing: 0.05em;
81
- display: flex;
82
- align-items: center;
83
- gap: 0.75rem;
84
- }
85
-
86
- .rg-step {
87
- width: 1.5rem;
88
- height: 1.5rem;
89
- border-radius: 50%;
90
- background: hsl(38deg, 92%, 90%);
91
- color: var(--rg-primary);
92
- display: flex;
93
- align-items: center;
94
- justify-content: center;
95
- font-weight: 700;
96
- font-size: 0.75rem;
97
- }
98
-
99
- .theme-dark .rg-step {
100
- background: hsl(38deg, 92%, 12%);
101
- }
102
-
103
- .rg-volume-wrapper {
104
- display: flex;
105
- flex-direction: column;
106
- gap: 1rem;
107
- }
108
-
109
- @media (min-width: 640px) {
110
- .rg-volume-wrapper {
111
- flex-direction: row;
112
- gap: 1rem;
113
- }
114
- }
115
-
116
- .rg-input-group {
117
- position: relative;
118
- flex: 1;
119
- }
120
-
121
- .rg-input {
122
- width: 100%;
123
- padding: 1rem 2rem 1rem 1rem;
124
- border: 2px solid var(--rg-border);
125
- border-radius: 0.75rem;
126
- background: var(--rg-bg-app);
127
- color: var(--rg-text-main);
128
- font-weight: 600;
129
- font-size: 1.875rem;
130
- text-align: center;
131
- transition: all 0.3s ease;
132
- }
133
-
134
- .rg-input:focus {
135
- outline: none;
136
- border-color: var(--rg-primary);
137
- box-shadow: 0 0 0 3px hsl(38deg, 92%, 50%, 0.1);
138
- }
139
-
140
- .rg-unit {
141
- position: absolute;
142
- right: 1rem;
143
- top: 50%;
144
- transform: translateY(-50%);
145
- color: var(--rg-text-muted);
146
- font-weight: 600;
147
- font-size: 0.875rem;
148
- text-transform: uppercase;
149
- letter-spacing: 0.05em;
150
- pointer-events: none;
151
- }
152
-
153
- .rg-liquid-buttons {
154
- display: grid;
155
- grid-template-columns: repeat(4, 1fr);
156
- gap: 0.5rem;
157
- }
158
-
159
- @media (max-width: 640px) {
160
- .rg-liquid-buttons {
161
- grid-template-columns: repeat(2, 1fr);
162
- }
163
- }
164
-
165
- .rg-liquid-btn {
166
- display: flex;
167
- align-items: center;
168
- justify-content: center;
169
- padding: 0.75rem;
170
- border: 2px solid var(--rg-border);
171
- border-radius: 0.75rem;
172
- background: var(--rg-bg-card);
173
- color: var(--rg-text-muted);
174
- cursor: pointer;
175
- transition: all 0.3s ease;
176
- }
177
-
178
- .rg-liquid-btn:hover {
179
- border-color: var(--rg-primary);
180
- color: var(--rg-primary);
181
- }
182
-
183
- .rg-liquid-btn.active {
184
- background: var(--rg-bg-app);
185
- border-color: var(--rg-primary);
186
- color: var(--rg-primary);
187
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
188
- }
189
-
190
- .rg-btn-icon {
191
- width: 1.5rem;
192
- height: 1.5rem;
193
- }
194
-
195
- .rg-texture-grid {
196
- display: grid;
197
- grid-template-columns: repeat(2, 1fr);
198
- gap: 0.75rem;
199
- }
200
-
201
- @media (min-width: 640px) {
202
- .rg-texture-grid {
203
- grid-template-columns: repeat(4, 1fr);
204
- }
205
- }
206
-
207
- .rg-texture-btn {
208
- display: flex;
209
- flex-direction: column;
210
- align-items: center;
211
- gap: 0.75rem;
212
- padding: 1rem 0.75rem;
213
- border: 2px solid var(--rg-border);
214
- border-radius: 0.75rem;
215
- background: var(--rg-bg-card);
216
- color: var(--rg-text-muted);
217
- cursor: pointer;
218
- transition: all 0.3s ease;
219
- text-align: center;
220
- }
221
-
222
- .rg-texture-btn:hover {
223
- border-color: var(--rg-primary);
224
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
225
- }
226
-
227
- .rg-texture-btn.active {
228
- background: var(--rg-primary-light);
229
- border-color: var(--rg-primary);
230
- color: var(--rg-primary);
231
- }
232
-
233
- .rg-texture-visual {
234
- width: 1.5rem;
235
- height: 1.5rem;
236
- border: 1px solid currentcolor;
237
- border-radius: 0.25rem;
238
- overflow: hidden;
239
- display: flex;
240
- align-items: flex-end;
241
- }
242
-
243
- .rg-texture-bar {
244
- width: 100%;
245
- background: currentcolor;
246
- transition: height 0.3s ease;
247
- }
248
-
249
- .rg-texture-btn[data-level="1"] .rg-texture-bar {
250
- height: 25%;
251
- }
252
-
253
- .rg-texture-btn[data-level="2"] .rg-texture-bar {
254
- height: 50%;
255
- }
256
-
257
- .rg-texture-btn[data-level="3"] .rg-texture-bar {
258
- height: 75%;
259
- }
260
-
261
- .rg-texture-btn[data-level="4"] .rg-texture-bar {
262
- height: 100%;
263
- }
264
-
265
- .rg-texture-label {
266
- font-size: 0.75rem;
267
- font-weight: 600;
268
- line-height: 1.2;
269
- }
270
-
271
- .rg-results {
272
- display: flex;
273
- flex-direction: column;
274
- gap: 1.5rem;
275
- }
276
-
277
- .rg-result-hero {
278
- background: linear-gradient(135deg, var(--rg-primary), var(--rg-secondary));
279
- border-radius: var(--rg-radius);
280
- padding: 2rem;
281
- color: var(--rg-bg-card);
282
- box-shadow: var(--rg-shadow-lg);
283
- position: relative;
284
- overflow: hidden;
285
- }
286
-
287
- .rg-result-hero::before {
288
- content: '';
289
- position: absolute;
290
- top: -50%;
291
- left: -50%;
292
- width: 200%;
293
- height: 200%;
294
- background: radial-gradient(circle, hsla(0deg, 0%, 100%, 0.1), transparent 60%);
295
- pointer-events: none;
296
- }
297
-
298
- .rg-result-header {
299
- display: flex;
300
- justify-content: space-between;
301
- align-items: center;
302
- margin-bottom: 1.5rem;
303
- position: relative;
304
- z-index: 1;
305
- }
306
-
307
- .rg-result-label {
308
- font-size: 0.75rem;
309
- font-weight: 700;
310
- text-transform: uppercase;
311
- letter-spacing: 0.1em;
312
- opacity: 0.8;
313
- }
314
-
315
- .rg-roux-type {
316
- font-size: 0.75rem;
317
- font-weight: 600;
318
- background: hsla(0deg, 0%, 0%, 0.2);
319
- padding: 0.5rem 1rem;
320
- border-radius: 0.5rem;
321
- text-transform: capitalize;
322
- }
323
-
324
- .rg-result-amounts {
325
- display: flex;
326
- align-items: center;
327
- justify-content: space-around;
328
- margin-bottom: 1.5rem;
329
- position: relative;
330
- z-index: 1;
331
- text-align: center;
332
- }
333
-
334
- .rg-amount {
335
- flex: 1;
336
- }
337
-
338
- .rg-amount-value {
339
- font-size: 2.5rem;
340
- font-weight: 800;
341
- margin-bottom: 0.5rem;
342
- line-height: 1;
343
- }
344
-
345
- .rg-amount-unit {
346
- font-size: 0.75rem;
347
- font-weight: 600;
348
- text-transform: uppercase;
349
- opacity: 0.8;
350
- }
351
-
352
- .rg-amount-plus {
353
- font-size: 1.5rem;
354
- opacity: 0.3;
355
- margin: 0 1rem;
356
- }
357
-
358
- .rg-instructions-box {
359
- background: hsla(0deg, 0%, 0%, 0.2);
360
- border-radius: 0.75rem;
361
- border: 1px solid hsla(0deg, 0%, 100%, 0.1);
362
- padding: 1rem;
363
- position: relative;
364
- z-index: 1;
365
- backdrop-filter: blur(4px);
366
- }
367
-
368
- .rg-instructions-header {
369
- display: flex;
370
- align-items: center;
371
- gap: 0.5rem;
372
- margin-bottom: 0.75rem;
373
- color: hsl(38deg, 92%, 90%);
374
- }
375
-
376
- .rg-instructions-icon {
377
- width: 1rem;
378
- height: 1rem;
379
- }
380
-
381
- .rg-instructions-title {
382
- font-size: 0.75rem;
383
- font-weight: 700;
384
- text-transform: uppercase;
385
- letter-spacing: 0.1em;
386
- }
387
-
388
- .rg-instructions-text {
389
- font-size: 0.875rem;
390
- font-weight: 500;
391
- line-height: 1.5;
392
- color: hsl(38deg, 92%, 95%);
393
- margin: 0;
394
- }
395
-
396
- .rg-sauce-info {
397
- background: var(--rg-bg-app);
398
- border: 1px solid var(--rg-border);
399
- border-radius: var(--rg-radius);
400
- padding: 1.5rem;
401
- display: flex;
402
- flex-direction: column;
403
- gap: 1rem;
404
- }
405
-
406
- .rg-sauce-header {
407
- display: flex;
408
- align-items: center;
409
- gap: 1rem;
410
- margin-bottom: 0.5rem;
411
- }
412
-
413
- .rg-sauce-icon {
414
- width: 2.5rem;
415
- height: 2.5rem;
416
- border-radius: 0.5rem;
417
- background: hsl(38deg, 92%, 90%);
418
- color: var(--rg-primary);
419
- display: flex;
420
- align-items: center;
421
- justify-content: center;
422
- flex-shrink: 0;
423
- }
424
-
425
- .theme-dark .rg-sauce-icon {
426
- background: hsl(38deg, 92%, 12%);
427
- }
428
-
429
- .rg-icon-lg {
430
- width: 1.25rem;
431
- height: 1.25rem;
432
- }
433
-
434
- .rg-sauce-name {
435
- font-size: 1rem;
436
- font-weight: 700;
437
- color: var(--rg-text-main);
438
- flex: 1;
439
- }
440
-
441
- .rg-sauce-ratio {
442
- font-size: 0.75rem;
443
- font-weight: 700;
444
- color: var(--rg-text-muted);
445
- text-transform: uppercase;
446
- letter-spacing: 0.05em;
447
- white-space: nowrap;
448
- }
449
-
450
- .rg-sauce-tip {
451
- font-size: 0.875rem;
452
- font-weight: 500;
453
- line-height: 1.6;
454
- color: var(--rg-text-muted);
455
- font-style: italic;
456
- background: var(--rg-bg-card);
457
- padding: 1rem;
458
- border-radius: 0.75rem;
459
- border: 1px solid var(--rg-border);
460
- margin: 0;
1
+ :root {
2
+ --rg-primary: hsl(38deg, 92%, 50%);
3
+ --rg-primary-light: hsl(38deg, 92%, 90%);
4
+ --rg-secondary: hsl(25deg, 95%, 53%);
5
+ --rg-bg-card: hsl(0deg, 0%, 100%);
6
+ --rg-bg-app: hsl(210deg, 20%, 98%);
7
+ --rg-border: hsl(210deg, 20%, 90%);
8
+ --rg-text-main: hsl(210deg, 30%, 20%);
9
+ --rg-text-muted: hsl(210deg, 15%, 50%);
10
+ --rg-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1);
11
+ --rg-radius: 1rem;
12
+ }
13
+
14
+ .theme-dark {
15
+ --rg-bg-card: hsl(220deg, 25%, 12%);
16
+ --rg-bg-app: hsl(220deg, 30%, 7%);
17
+ --rg-border: hsl(220deg, 20%, 20%);
18
+ --rg-text-main: hsl(210deg, 20%, 95%);
19
+ --rg-text-muted: hsl(210deg, 15%, 70%);
20
+ --rg-primary-light: hsl(38deg, 92%, 12%);
461
21
  }