@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,298 +0,0 @@
1
- .meringue-calculator-container {
2
- --primary: #f472b6;
3
- --primary-dark: #db2777;
4
- --text-dark: #1e293b;
5
- --text-muted: #64748b;
6
- --text-light: #cbd5e1;
7
- --bg-light: #f1f5f9;
8
- --border-dark: #334155;
9
- --border-muted: #e2e8f0;
10
- --pink-light: #f472b6;
11
- --card-bg: #fff;
12
- --card-border: #e2e8f0;
13
- --card-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.1);
14
- --card-hover-shadow: 0 12px 40px 0 rgba(31, 38, 135, 0.15);
15
- --input-bg: #fff;
16
- --input-border: #e2e8f0;
17
- --input-dark-bg: #334155;
18
- --input-dark-border: #475569;
19
- --time-bg: #f1f5f9;
20
- --pro-tip-bg: #fdf2f8;
21
- --pro-tip-border: #f472b6;
22
-
23
- max-width: 800px;
24
- margin: 2rem auto;
25
- padding: 1rem;
26
- display: flex;
27
- flex-direction: column;
28
- gap: 2rem;
29
- }
30
-
31
- .theme-dark .meringue-calculator-container {
32
- --text-dark: #f1f5f9;
33
- --text-muted: #94a3b8;
34
- --text-light: #cbd5e1;
35
- --bg-light: #1e293b;
36
- --border-dark: #475569;
37
- --border-muted: #334155;
38
- --card-bg: #1e293b;
39
- --card-border: #334155;
40
- --card-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5);
41
- --card-hover-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.3);
42
- --input-bg: #334155;
43
- --input-border: #475569;
44
- --input-dark-bg: #1e293b;
45
- --input-dark-border: #475569;
46
- --time-bg: #1e293b;
47
- --pro-tip-bg: #4c1d3a;
48
- --pro-tip-border: #db2777;
49
- }
50
-
51
- .meringue-card {
52
- background: var(--card-bg);
53
- backdrop-filter: blur(12px);
54
- -webkit-backdrop-filter: blur(12px);
55
- border: 1px solid var(--card-border);
56
- border-radius: 24px;
57
- padding: 2.5rem;
58
- box-shadow: var(--card-shadow);
59
- transition: transform 0.3s ease, box-shadow 0.3s ease;
60
- }
61
-
62
- .meringue-card:hover {
63
- transform: translateY(-4px);
64
- box-shadow: var(--card-hover-shadow);
65
- }
66
-
67
- .meringue-input-section {
68
- display: grid;
69
- grid-template-columns: 1fr 1fr;
70
- gap: 2rem;
71
- margin-bottom: 2.5rem;
72
- }
73
-
74
- @media (max-width: 640px) {
75
- .meringue-input-section {
76
- grid-template-columns: 1fr;
77
- }
78
- }
79
-
80
- .meringue-input-group {
81
- display: flex;
82
- flex-direction: column;
83
- gap: 0.75rem;
84
- }
85
-
86
- .meringue-input-group label {
87
- font-size: 0.875rem;
88
- font-weight: 700;
89
- color: var(--text-muted);
90
- text-transform: uppercase;
91
- letter-spacing: 0.05em;
92
- }
93
-
94
- .meringue-input-wrapper {
95
- position: relative;
96
- display: flex;
97
- align-items: center;
98
- }
99
-
100
- .meringue-input-wrapper input {
101
- width: 100%;
102
- padding: 1rem 1.25rem;
103
- padding-right: 3rem;
104
- border-radius: 16px;
105
- border: 2px solid var(--input-border);
106
- background: var(--input-bg);
107
- font-size: 1.125rem;
108
- font-weight: 600;
109
- color: var(--text-dark);
110
- transition: all 0.2s ease;
111
- outline: none;
112
- }
113
-
114
- .meringue-input-wrapper input:focus {
115
- border-color: var(--primary);
116
- box-shadow: 0 0 0 4px rgba(244, 114, 182, 0.1);
117
- }
118
-
119
- .theme-dark .meringue-input-wrapper input:focus {
120
- box-shadow: 0 0 0 4px rgba(244, 114, 182, 0.2);
121
- }
122
-
123
- .meringue-input-unit {
124
- position: absolute;
125
- right: 1.25rem;
126
- font-weight: 700;
127
- color: var(--text-light);
128
- pointer-events: none;
129
- }
130
-
131
- .meringue-type-selector {
132
- display: flex;
133
- background: var(--bg-light);
134
- padding: 0.5rem;
135
- border-radius: 16px;
136
- gap: 0.25rem;
137
- }
138
-
139
- .meringue-type-btn {
140
- flex: 1;
141
- padding: 0.75rem;
142
- border: none;
143
- background: transparent;
144
- border-radius: 12px;
145
- font-size: 0.875rem;
146
- font-weight: 600;
147
- color: var(--text-muted);
148
- cursor: pointer;
149
- transition: all 0.2s ease;
150
- }
151
-
152
- .meringue-type-btn.active {
153
- background: var(--card-bg);
154
- color: var(--primary-dark);
155
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
156
- }
157
-
158
- .theme-dark .meringue-type-btn.active {
159
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
160
- }
161
-
162
- .meringue-results-grid {
163
- display: grid;
164
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
165
- gap: 1.5rem;
166
- }
167
-
168
- .meringue-result-item {
169
- background: var(--time-bg);
170
- border: 1px solid var(--card-border);
171
- border-radius: 20px;
172
- padding: 1.5rem;
173
- display: flex;
174
- flex-direction: column;
175
- gap: 0.5rem;
176
- transition: all 0.2s ease;
177
- }
178
-
179
- .meringue-result-item:hover {
180
- background: var(--card-bg);
181
- transform: scale(1.02);
182
- }
183
-
184
- .meringue-result-label {
185
- font-size: 0.75rem;
186
- font-weight: 700;
187
- color: var(--text-light);
188
- text-transform: uppercase;
189
- }
190
-
191
- .meringue-result-value {
192
- font-size: 1.5rem;
193
- font-weight: 800;
194
- color: var(--text-dark);
195
- display: flex;
196
- align-items: baseline;
197
- gap: 0.25rem;
198
- }
199
-
200
- .meringue-result-unit {
201
- font-size: 0.875rem;
202
- font-weight: 600;
203
- color: var(--text-light);
204
- }
205
-
206
- .meringue-time-section {
207
- margin-top: 2.5rem;
208
- padding-top: 2.5rem;
209
- border-top: 1px solid var(--card-border);
210
- }
211
-
212
- .meringue-time-grid {
213
- display: flex;
214
- flex-direction: column;
215
- gap: 1rem;
216
- }
217
-
218
- .meringue-time-row {
219
- display: flex;
220
- align-items: center;
221
- justify-content: space-between;
222
- padding: 1rem 1.5rem;
223
- border-radius: 16px;
224
- background: var(--time-bg);
225
- transition: all 0.2s ease;
226
- }
227
-
228
- .meringue-time-info {
229
- display: flex;
230
- flex-direction: column;
231
- }
232
-
233
- .meringue-time-stage {
234
- font-weight: 700;
235
- color: var(--border-dark);
236
- }
237
-
238
- .meringue-time-desc {
239
- font-size: 0.75rem;
240
- color: var(--text-muted);
241
- }
242
-
243
- .meringue-time-val {
244
- font-weight: 800;
245
- color: var(--primary-dark);
246
- font-size: 1.125rem;
247
- }
248
-
249
- .theme-dark .meringue-time-val {
250
- color: var(--primary);
251
- }
252
-
253
- .meringue-pro-tip {
254
- margin-top: 2rem;
255
- padding: 1.25rem;
256
- border-radius: 16px;
257
- background: var(--pro-tip-bg);
258
- border: 1px dashed var(--pro-tip-border);
259
- display: flex;
260
- gap: 1rem;
261
- align-items: center;
262
- }
263
-
264
- .meringue-pro-tip svg {
265
- color: var(--primary-dark);
266
- flex-shrink: 0;
267
- }
268
-
269
- .theme-dark .meringue-pro-tip svg {
270
- color: var(--primary);
271
- }
272
-
273
- .meringue-pro-tip p {
274
- font-size: 0.875rem;
275
- color: var(--primary-dark);
276
- line-height: 1.5;
277
- margin: 0;
278
- }
279
-
280
- .theme-dark .meringue-pro-tip p {
281
- color: var(--pink-light);
282
- }
283
-
284
- .meringue-fade-in {
285
- animation: meringue-fade-in 0.5s ease forwards;
286
- }
287
-
288
- @keyframes meringue-fade-in {
289
- from {
290
- opacity: 0;
291
- transform: translateY(10px);
292
- }
293
-
294
- to {
295
- opacity: 1;
296
- transform: translateY(0);
297
- }
298
- }
@@ -1,406 +0,0 @@
1
- :root {
2
- --ms-primary: hsl(262deg, 83%, 58%);
3
- --ms-primary-light: hsl(262deg, 83%, 95%);
4
- --ms-primary-dark: hsl(262deg, 83%, 45%);
5
- --ms-accent: hsl(190deg, 90%, 45%);
6
- --ms-success: hsl(150deg, 80%, 40%);
7
- --ms-warning: hsl(35deg, 95%, 55%);
8
- --ms-danger: hsl(0deg, 85%, 60%);
9
- --ms-bg-card: hsl(0deg, 0%, 100%);
10
- --ms-bg-app: hsl(210deg, 20%, 98%);
11
- --ms-border: hsl(210deg, 20%, 90%);
12
- --ms-text-main: hsl(210deg, 30%, 20%);
13
- --ms-text-muted: hsl(210deg, 15%, 50%);
14
- --ms-shadow-sm: 0 1px 2px 0 rgb(0, 0, 0, 0.05);
15
- --ms-shadow-md: 0 4px 6px -1px rgb(0, 0, 0, 0.1), 0 2px 4px -2px rgb(0, 0, 0, 0.1);
16
- --ms-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1), 0 4px 6px -4px rgb(0, 0, 0, 0.1);
17
- --ms-radius: 1rem;
18
- --ms-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
19
- }
20
-
21
- .theme-dark {
22
- --ms-bg-card: hsl(220deg, 25%, 12%);
23
- --ms-bg-app: hsl(220deg, 30%, 7%);
24
- --ms-border: hsl(220deg, 20%, 20%);
25
- --ms-text-main: hsl(210deg, 20%, 95%);
26
- --ms-text-muted: hsl(210deg, 15%, 70%);
27
- --ms-primary-light: hsl(262deg, 83%, 15%);
28
- }
29
-
30
- .theme-dark .ms-sidebar {
31
- background: linear-gradient(to bottom, var(--ms-bg-card), hsl(220deg, 25%, 15%));
32
- }
33
-
34
- .theme-dark .ms-results-header {
35
- background: hsl(220deg, 25%, 8%);
36
- border-bottom-color: hsl(220deg, 25%, 20%);
37
- }
38
-
39
- .theme-dark .ms-copy-btn {
40
- background: hsl(220deg, 25%, 30%);
41
- }
42
-
43
- .theme-dark .ms-copy-btn:hover {
44
- background: hsl(220deg, 25%, 40%);
45
- }
46
-
47
- .mold-scaler-container {
48
- max-width: 1000px;
49
- margin: 0 auto;
50
- padding: 1rem;
51
- }
52
-
53
- .ms-card {
54
- background: var(--ms-bg-card);
55
- border: 1px solid var(--ms-border);
56
- border-radius: var(--ms-radius);
57
- box-shadow: var(--ms-shadow-lg);
58
- overflow: hidden;
59
- display: flex;
60
- flex-direction: column;
61
- }
62
-
63
- @media (min-width: 1024px) {
64
- .ms-card {
65
- flex-direction: row;
66
- min-height: 700px;
67
- }
68
- }
69
-
70
- .ms-sidebar {
71
- flex: 1;
72
- padding: 2rem;
73
- border-bottom: 1px solid var(--ms-border);
74
- background: linear-gradient(to bottom, var(--ms-bg-card), var(--ms-primary-light));
75
- }
76
-
77
- @media (min-width: 1024px) {
78
- .ms-sidebar {
79
- border-bottom: none;
80
- border-right: 1px solid var(--ms-border);
81
- max-width: 450px;
82
- }
83
- }
84
-
85
- .ms-main {
86
- flex: 1.5;
87
- padding: 2rem;
88
- display: flex;
89
- flex-direction: column;
90
- gap: 2rem;
91
- }
92
-
93
- .ms-section {
94
- margin-bottom: 2rem;
95
- }
96
-
97
- .ms-section-title {
98
- display: flex;
99
- align-items: center;
100
- gap: 0.75rem;
101
- font-size: 1.25rem;
102
- font-weight: 700;
103
- color: var(--ms-text-main);
104
- margin-bottom: 1.5rem;
105
- }
106
-
107
- .ms-section-badge {
108
- display: flex;
109
- align-items: center;
110
- justify-content: center;
111
- width: 1.75rem;
112
- height: 1.75rem;
113
- background: var(--ms-primary);
114
- color: var(--ms-bg-card);
115
- border-radius: 50%;
116
- font-size: 0.875rem;
117
- }
118
-
119
- .ms-shape-selector {
120
- display: grid;
121
- grid-template-columns: repeat(3, 1fr);
122
- gap: 0.75rem;
123
- margin-bottom: 1.25rem;
124
- }
125
-
126
- .ms-shape-btn {
127
- display: flex;
128
- flex-direction: column;
129
- align-items: center;
130
- padding: 0.75rem;
131
- border-radius: 0.75rem;
132
- border: 1px solid var(--ms-border);
133
- background: var(--ms-bg-card);
134
- color: var(--ms-text-muted);
135
- cursor: pointer;
136
- transition: var(--ms-transition);
137
- font-size: 0.875rem;
138
- font-weight: 600;
139
- }
140
-
141
- .ms-shape-btn:hover {
142
- border-color: var(--ms-primary);
143
- color: var(--ms-primary);
144
- }
145
-
146
- .ms-shape-btn.active {
147
- background: var(--ms-primary);
148
- color: var(--ms-bg-card);
149
- border-color: var(--ms-primary);
150
- box-shadow: 0 4px 12px hsla(262deg, 83%, 58%, 0.3);
151
- }
152
-
153
- .ms-shape-icon {
154
- width: 2rem;
155
- height: 2rem;
156
- margin-bottom: 0.5rem;
157
- border: 2px solid currentcolor;
158
- transition: var(--ms-transition);
159
- }
160
-
161
- .ms-shape-btn[data-shape="round"] .ms-shape-icon {
162
- border-radius: 50%;
163
- }
164
-
165
- .ms-shape-btn[data-shape="square"] .ms-shape-icon {
166
- border-radius: 4px;
167
- }
168
-
169
- .ms-shape-btn[data-shape="rectangular"] .ms-shape-icon {
170
- border-radius: 2px;
171
- width: 2.5rem;
172
- }
173
-
174
- .ms-inputs-grid {
175
- display: grid;
176
- grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
177
- gap: 1rem;
178
- }
179
-
180
- .ms-input-group {
181
- display: flex;
182
- flex-direction: column;
183
- gap: 0.5rem;
184
- }
185
-
186
- .ms-label {
187
- font-size: 0.75rem;
188
- font-weight: 700;
189
- color: var(--ms-text-muted);
190
- text-transform: uppercase;
191
- letter-spacing: 0.05em;
192
- }
193
-
194
- .ms-input {
195
- width: 100%;
196
- padding: 0.75rem 1rem;
197
- border-radius: 0.5rem;
198
- border: 1px solid var(--ms-border);
199
- background: var(--ms-bg-card);
200
- color: var(--ms-text-main);
201
- font-weight: 600;
202
- transition: var(--ms-transition);
203
- }
204
-
205
- .ms-input:focus {
206
- outline: none;
207
- border-color: var(--ms-primary);
208
- box-shadow: 0 0 0 3px hsla(262deg, 83%, 58%, 0.1);
209
- }
210
-
211
- /* Result Section */
212
- .ms-hero-result {
213
- text-align: center;
214
- padding: 2.5rem;
215
- background: linear-gradient(135deg, var(--ms-primary), var(--ms-primary-dark));
216
- color: var(--ms-bg-card);
217
- border-radius: var(--ms-radius);
218
- box-shadow: var(--ms-shadow-md);
219
- position: relative;
220
- overflow: hidden;
221
- }
222
-
223
- .ms-hero-result::before {
224
- content: '';
225
- position: absolute;
226
- top: -50%;
227
- left: -50%;
228
- width: 200%;
229
- height: 200%;
230
- background: radial-gradient(circle, hsla(0deg, 0%, 100%, 0.1), transparent 60%);
231
- pointer-events: none;
232
- }
233
-
234
- .ms-result-label {
235
- font-size: 0.875rem;
236
- font-weight: 600;
237
- text-transform: uppercase;
238
- letter-spacing: 0.1em;
239
- opacity: 0.8;
240
- margin-bottom: 0.5rem;
241
- }
242
-
243
- .ms-result-value {
244
- font-size: 4rem;
245
- font-weight: 800;
246
- margin-bottom: 0.5rem;
247
- line-height: 1;
248
- }
249
-
250
- .ms-result-text {
251
- font-size: 1rem;
252
- opacity: 0.9;
253
- max-width: 300px;
254
- margin: 0 auto;
255
- }
256
-
257
- .ms-result-text strong {
258
- font-weight: 700;
259
- }
260
-
261
- /* Visualizer */
262
- .ms-viz-container {
263
- background: var(--ms-bg-app);
264
- border: 1px solid var(--ms-border);
265
- border-radius: var(--ms-radius);
266
- padding: 1.5rem;
267
- position: relative;
268
- aspect-ratio: 4 / 3;
269
- display: flex;
270
- flex-direction: column;
271
- }
272
-
273
- .ms-viz-svg {
274
- flex: 1;
275
- width: 100%;
276
- height: 100%;
277
- }
278
-
279
- .ms-viz-legend {
280
- display: flex;
281
- justify-content: center;
282
- gap: 1.5rem;
283
- padding-top: 1rem;
284
- font-size: 0.75rem;
285
- font-weight: 600;
286
- }
287
-
288
- .ms-legend-item {
289
- display: flex;
290
- align-items: center;
291
- gap: 0.5rem;
292
- }
293
-
294
- .ms-dot {
295
- width: 0.75rem;
296
- height: 0.75rem;
297
- border-radius: 50%;
298
- }
299
-
300
- .ms-dot.original {
301
- background: var(--ms-primary);
302
- opacity: 0.5;
303
- border: 1px dashed var(--ms-primary);
304
- }
305
-
306
- .ms-dot.target {
307
- background: var(--ms-success);
308
- opacity: 0.8;
309
- border: 1px solid var(--ms-success);
310
- }
311
-
312
- /* Ingredients */
313
- .ms-ingredients-card {
314
- border: 1px solid var(--ms-border);
315
- border-radius: var(--ms-radius);
316
- padding: 1.5rem;
317
- }
318
-
319
- .ms-ingredients-list {
320
- display: flex;
321
- flex-direction: column;
322
- gap: 0.75rem;
323
- margin-bottom: 1.5rem;
324
- }
325
-
326
- .ms-ingredient-row {
327
- display: grid;
328
- grid-template-columns: 1fr;
329
- gap: 0.75rem;
330
- padding: 1rem;
331
- background: var(--ms-bg-app);
332
- border-radius: 0.75rem;
333
- border: 1px solid var(--ms-border);
334
- position: relative;
335
- animation: slide-in 0.3s ease-out;
336
- }
337
-
338
- @keyframes slide-in {
339
- from {
340
- opacity: 0;
341
- transform: translateY(10px);
342
- }
343
-
344
- to {
345
- opacity: 1;
346
- transform: translateY(0);
347
- }
348
- }
349
-
350
- @media (min-width: 640px) {
351
- .ms-ingredient-row {
352
- grid-template-columns: 2fr 1fr 1fr auto;
353
- align-items: center;
354
- }
355
- }
356
-
357
- .ms-ingredient-final {
358
- font-weight: 800;
359
- color: var(--ms-success);
360
- font-size: 1.125rem;
361
- padding: 0.5rem;
362
- text-align: center;
363
- }
364
-
365
- .ms-del-btn {
366
- background: transparent;
367
- border: none;
368
- color: var(--ms-text-muted);
369
- cursor: pointer;
370
- padding: 0.5rem;
371
- border-radius: 0.5rem;
372
- transition: var(--ms-transition);
373
- }
374
-
375
- .ms-del-btn:hover {
376
- background: var(--ms-danger);
377
- color: var(--ms-bg-card);
378
- }
379
-
380
- .ms-add-btn {
381
- width: 100%;
382
- padding: 1rem;
383
- background: transparent;
384
- border: 2px dashed var(--ms-primary);
385
- color: var(--ms-primary);
386
- border-radius: 0.75rem;
387
- font-weight: 700;
388
- cursor: pointer;
389
- transition: var(--ms-transition);
390
- display: flex;
391
- align-items: center;
392
- justify-content: center;
393
- gap: 0.5rem;
394
- }
395
-
396
- .ms-add-btn:hover {
397
- background: var(--ms-primary-light);
398
- border-style: solid;
399
- }
400
-
401
- .ms-empty-state {
402
- text-align: center;
403
- padding: 2rem;
404
- color: var(--ms-text-muted);
405
- font-style: italic;
406
- }