@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,308 +0,0 @@
1
- :root {
2
- --ir-primary: hsl(220deg, 90%, 56%);
3
- --ir-primary-light: hsl(220deg, 90%, 92%);
4
- --ir-primary-dark: hsl(220deg, 85%, 45%);
5
- --ir-success: hsl(142deg, 72%, 45%);
6
- --ir-danger: hsl(0deg, 84%, 60%);
7
- --ir-bg-card: hsl(0deg, 0%, 100%);
8
- --ir-bg-app: hsl(210deg, 20%, 98%);
9
- --ir-border: hsl(210deg, 20%, 90%);
10
- --ir-text-main: hsl(210deg, 30%, 20%);
11
- --ir-text-muted: hsl(210deg, 15%, 50%);
12
- --ir-text-disabled: hsl(210deg, 15%, 75%);
13
- --ir-shadow-sm: 0 1px 2px 0 rgb(0, 0, 0, 0.05);
14
- --ir-shadow-md: 0 4px 6px -1px rgb(0, 0, 0, 0.1), 0 2px 4px -2px rgb(0, 0, 0, 0.1);
15
- --ir-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1), 0 4px 6px -4px rgb(0, 0, 0, 0.1);
16
- --ir-radius: 1rem;
17
- --ir-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
18
- }
19
-
20
- .theme-dark {
21
- --ir-bg-card: hsl(220deg, 25%, 12%);
22
- --ir-bg-app: hsl(220deg, 30%, 7%);
23
- --ir-border: hsl(220deg, 20%, 20%);
24
- --ir-text-main: hsl(210deg, 20%, 95%);
25
- --ir-text-muted: hsl(210deg, 15%, 70%);
26
- --ir-text-disabled: hsl(210deg, 15%, 50%);
27
- --ir-primary-light: hsl(220deg, 90%, 12%);
28
- }
29
-
30
- .ingredient-rescaler-container {
31
- max-width: 100%;
32
- padding: 1.5rem;
33
- background: var(--ir-bg-card);
34
- border: 1px solid var(--ir-border);
35
- border-radius: var(--ir-radius);
36
- box-shadow: var(--ir-shadow-lg);
37
- }
38
-
39
- .ir-grid {
40
- display: grid;
41
- grid-template-columns: 1fr;
42
- gap: 2rem;
43
- margin-bottom: 2rem;
44
- }
45
-
46
- @media (min-width: 768px) {
47
- .ir-grid {
48
- grid-template-columns: 1fr 1fr;
49
- }
50
- }
51
-
52
- .ir-section {
53
- background: var(--ir-bg-app);
54
- padding: 1.5rem;
55
- border-radius: 1.25rem;
56
- border: 1px solid var(--ir-border);
57
- }
58
-
59
- .ir-section-primary {
60
- background: var(--ir-bg-card);
61
- border: 2px solid var(--ir-primary);
62
- }
63
-
64
- .ir-section-title {
65
- font-size: 1.125rem;
66
- font-weight: 700;
67
- color: var(--ir-text-main);
68
- margin-bottom: 1rem;
69
- display: flex;
70
- align-items: center;
71
- gap: 0.5rem;
72
- }
73
-
74
- .ir-section-primary .ir-section-title {
75
- color: var(--ir-primary);
76
- }
77
-
78
- .ir-fields {
79
- display: grid;
80
- grid-template-columns: 1fr 1fr;
81
- gap: 1rem;
82
- margin-bottom: 1.5rem;
83
- }
84
-
85
- .ir-field {
86
- display: flex;
87
- flex-direction: column;
88
- gap: 0.5rem;
89
- }
90
-
91
- .ir-label {
92
- font-size: 0.75rem;
93
- font-weight: 700;
94
- color: var(--ir-text-muted);
95
- text-transform: uppercase;
96
- letter-spacing: 0.05em;
97
- }
98
-
99
- .ir-input {
100
- width: 100%;
101
- padding: 0.75rem 1rem;
102
- border-radius: 0.75rem;
103
- border: 1px solid var(--ir-border);
104
- background: var(--ir-bg-card);
105
- color: var(--ir-text-main);
106
- font-weight: 600;
107
- font-size: 1.125rem;
108
- text-align: center;
109
- transition: var(--ir-transition);
110
- }
111
-
112
- .ir-input:focus {
113
- outline: none;
114
- border-color: var(--ir-primary);
115
- box-shadow: 0 0 0 3px hsl(25deg, 95%, 53%, 0.1);
116
- }
117
-
118
- .ir-factor-display {
119
- margin-top: 1rem;
120
- padding: 1rem;
121
- background: var(--ir-primary-light);
122
- border-radius: 0.75rem;
123
- border: 1px solid var(--ir-primary);
124
- display: flex;
125
- justify-content: space-between;
126
- align-items: center;
127
- }
128
-
129
- .ir-factor-label {
130
- font-size: 0.875rem;
131
- font-weight: 600;
132
- color: var(--ir-text-muted);
133
- }
134
-
135
- .ir-factor-value {
136
- font-size: 2rem;
137
- font-weight: 800;
138
- color: var(--ir-primary);
139
- }
140
-
141
- .ir-textarea-container {
142
- display: flex;
143
- flex-direction: column;
144
- height: 100%;
145
- gap: 0.5rem;
146
- }
147
-
148
- .ir-textarea {
149
- width: 100%;
150
- flex: 1;
151
- min-height: 200px;
152
- padding: 1rem;
153
- border-radius: 0.75rem;
154
- border: 1px solid var(--ir-border);
155
- background: var(--ir-bg-card);
156
- color: var(--ir-text-main);
157
- font-size: 0.875rem;
158
- resize: none;
159
- line-height: 1.6;
160
- transition: var(--ir-transition);
161
- }
162
-
163
- .ir-textarea:focus {
164
- outline: none;
165
- border-color: var(--ir-primary);
166
- box-shadow: 0 0 0 3px hsl(25deg, 95%, 53%, 0.1);
167
- }
168
-
169
- .ir-textarea::placeholder {
170
- color: var(--ir-text-disabled);
171
- }
172
-
173
- .ir-results-card {
174
- background: var(--ir-text-main);
175
- border-radius: 1.25rem;
176
- border: 1px solid var(--ir-border);
177
- overflow: hidden;
178
- box-shadow: var(--ir-shadow-md);
179
- }
180
-
181
- .ir-results-header {
182
- padding: 1rem 1.5rem;
183
- background: hsl(210deg, 30%, 15%);
184
- border-bottom: 1px solid hsl(210deg, 30%, 25%);
185
- display: flex;
186
- justify-content: space-between;
187
- align-items: center;
188
- }
189
-
190
- .theme-dark .ir-results-header {
191
- background: hsl(220deg, 25%, 8%);
192
- border-bottom-color: hsl(220deg, 25%, 20%);
193
- }
194
-
195
- .ir-results-title {
196
- color: var(--ir-bg-card);
197
- font-weight: 700;
198
- display: flex;
199
- align-items: center;
200
- gap: 0.5rem;
201
- }
202
-
203
- .ir-copy-btn {
204
- font-size: 0.75rem;
205
- background: hsl(210deg, 30%, 35%);
206
- color: var(--ir-bg-card);
207
- padding: 0.5rem 1rem;
208
- border-radius: 0.5rem;
209
- border: none;
210
- cursor: pointer;
211
- transition: var(--ir-transition);
212
- font-weight: 600;
213
- display: flex;
214
- align-items: center;
215
- gap: 0.5rem;
216
- }
217
-
218
- .theme-dark .ir-copy-btn {
219
- background: hsl(220deg, 25%, 30%);
220
- }
221
-
222
- .ir-copy-btn:hover {
223
- background: hsl(210deg, 30%, 45%);
224
- }
225
-
226
- .theme-dark .ir-copy-btn:hover {
227
- background: hsl(220deg, 25%, 40%);
228
- }
229
-
230
- .ir-copy-btn.ir-copied {
231
- background: var(--ir-success);
232
- }
233
-
234
- .ir-copy-btn.ir-copied:hover {
235
- background: hsl(142deg, 72%, 35%);
236
- }
237
-
238
- .ir-results-container {
239
- padding: 2rem;
240
- font-size: 1rem;
241
- display: flex;
242
- flex-direction: column;
243
- gap: 0.75rem;
244
- min-height: 200px;
245
- background: var(--ir-bg-card);
246
- color: var(--ir-text-main);
247
- }
248
-
249
- .ir-empty-state {
250
- height: 100%;
251
- display: flex;
252
- flex-direction: column;
253
- align-items: center;
254
- justify-content: center;
255
- gap: 1rem;
256
- opacity: 0.5;
257
- color: var(--ir-text-muted);
258
- }
259
-
260
- .ir-empty-icon {
261
- width: 3rem;
262
- height: 3rem;
263
- }
264
-
265
- .ir-result-row {
266
- display: flex;
267
- justify-content: space-between;
268
- align-items: center;
269
- background: var(--ir-bg-app);
270
- padding: 0.75rem;
271
- border-radius: 0.5rem;
272
- border-left: 4px solid transparent;
273
- transition: var(--ir-transition);
274
- }
275
-
276
- .ir-result-row:hover {
277
- background: var(--ir-primary-light);
278
- border-left-color: var(--ir-primary);
279
- }
280
-
281
- .ir-original-amount {
282
- color: var(--ir-text-disabled);
283
- font-size: 0.75rem;
284
- text-decoration: line-through;
285
- opacity: 0.75;
286
- max-width: 30%;
287
- overflow: hidden;
288
- text-overflow: ellipsis;
289
- }
290
-
291
- .ir-new-amount {
292
- font-weight: 500;
293
- color: var(--ir-text-main);
294
- }
295
-
296
- .ir-new-value {
297
- color: var(--ir-primary);
298
- font-weight: 800;
299
- font-size: 1.125rem;
300
- }
301
-
302
- .ir-no-amount-row {
303
- color: var(--ir-text-muted);
304
- font-style: italic;
305
- font-size: 0.875rem;
306
- padding: 0.5rem;
307
- background: transparent;
308
- }
@@ -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
- }