@jjlmoya/utils-home 1.34.0 → 1.35.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 +1 -1
- package/src/entries.ts +4 -1
- package/src/index.ts +1 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/humidityCalculator/bibliography.astro +14 -0
- package/src/tool/humidityCalculator/bibliography.ts +14 -0
- package/src/tool/humidityCalculator/component.astro +296 -0
- package/src/tool/humidityCalculator/entry.ts +29 -0
- package/src/tool/humidityCalculator/humidity-calculator.css +469 -0
- package/src/tool/humidityCalculator/i18n/de.ts +217 -0
- package/src/tool/humidityCalculator/i18n/en.ts +217 -0
- package/src/tool/humidityCalculator/i18n/es.ts +217 -0
- package/src/tool/humidityCalculator/i18n/fr.ts +217 -0
- package/src/tool/humidityCalculator/i18n/id.ts +217 -0
- package/src/tool/humidityCalculator/i18n/it.ts +217 -0
- package/src/tool/humidityCalculator/i18n/ja.ts +217 -0
- package/src/tool/humidityCalculator/i18n/ko.ts +217 -0
- package/src/tool/humidityCalculator/i18n/nl.ts +217 -0
- package/src/tool/humidityCalculator/i18n/pl.ts +217 -0
- package/src/tool/humidityCalculator/i18n/pt.ts +217 -0
- package/src/tool/humidityCalculator/i18n/ru.ts +217 -0
- package/src/tool/humidityCalculator/i18n/sv.ts +217 -0
- package/src/tool/humidityCalculator/i18n/tr.ts +217 -0
- package/src/tool/humidityCalculator/i18n/zh.ts +217 -0
- package/src/tool/humidityCalculator/index.ts +9 -0
- package/src/tool/humidityCalculator/logic.ts +60 -0
- package/src/tool/humidityCalculator/seo.astro +15 -0
- package/src/tool/humidityCalculator/ui.ts +29 -0
- package/src/tools.ts +2 -0
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
.hc-root {
|
|
2
|
+
--hc-accent: #3b82f6;
|
|
3
|
+
--hc-accent-glow: rgba(59, 130, 246, 0.35);
|
|
4
|
+
--hc-success: #22c55e;
|
|
5
|
+
--hc-success-glow: rgba(34, 197, 94, 0.35);
|
|
6
|
+
--hc-warn: #f59e0b;
|
|
7
|
+
--hc-warn-glow: rgba(245, 158, 11, 0.35);
|
|
8
|
+
--hc-danger: #ef4444;
|
|
9
|
+
--hc-danger-glow: rgba(239, 68, 68, 0.35);
|
|
10
|
+
--hc-surface: var(--bg-surface);
|
|
11
|
+
--hc-page: var(--bg-page);
|
|
12
|
+
--hc-text: var(--text-main);
|
|
13
|
+
--hc-muted: var(--text-muted);
|
|
14
|
+
--hc-base: var(--text-base);
|
|
15
|
+
--hc-border: var(--border-color);
|
|
16
|
+
--hc-track: var(--border-color);
|
|
17
|
+
|
|
18
|
+
width: 100%;
|
|
19
|
+
padding: 1rem 0;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.hc-card {
|
|
23
|
+
width: 100%;
|
|
24
|
+
max-width: 640px;
|
|
25
|
+
margin: 0 auto;
|
|
26
|
+
background: var(--hc-surface);
|
|
27
|
+
border: 1px solid var(--hc-border);
|
|
28
|
+
border-radius: 28px;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 8px 24px -4px rgba(0, 0, 0, 0.08);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.hc-stage {
|
|
36
|
+
position: relative;
|
|
37
|
+
padding: 2rem 1.5rem 1.5rem;
|
|
38
|
+
border-bottom: 1px solid var(--hc-border);
|
|
39
|
+
overflow: hidden;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.hc-stage-glow {
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 50%;
|
|
45
|
+
left: 50%;
|
|
46
|
+
width: 320px;
|
|
47
|
+
height: 320px;
|
|
48
|
+
border-radius: 50%;
|
|
49
|
+
background: radial-gradient(circle, var(--hc-accent-glow) 0%, transparent 70%);
|
|
50
|
+
transform: translate(-50%, -50%);
|
|
51
|
+
pointer-events: none;
|
|
52
|
+
opacity: 0.5;
|
|
53
|
+
transition: opacity 0.6s ease;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.hc-section-label {
|
|
57
|
+
font-size: 0.6rem;
|
|
58
|
+
font-weight: 900;
|
|
59
|
+
text-transform: uppercase;
|
|
60
|
+
letter-spacing: 0.2em;
|
|
61
|
+
color: var(--hc-accent);
|
|
62
|
+
margin: 0 0 1rem;
|
|
63
|
+
position: relative;
|
|
64
|
+
z-index: 1;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.hc-dial {
|
|
68
|
+
width: 100%;
|
|
69
|
+
max-width: 280px;
|
|
70
|
+
margin: 0 auto;
|
|
71
|
+
display: block;
|
|
72
|
+
position: relative;
|
|
73
|
+
z-index: 1;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.hc-dial-center {
|
|
77
|
+
font-size: 0.85rem;
|
|
78
|
+
font-weight: 900;
|
|
79
|
+
fill: var(--hc-base);
|
|
80
|
+
letter-spacing: 0.02em;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.hc-dial-sub {
|
|
84
|
+
font-size: 0.55rem;
|
|
85
|
+
font-weight: 800;
|
|
86
|
+
text-transform: uppercase;
|
|
87
|
+
letter-spacing: 0.18em;
|
|
88
|
+
fill: var(--hc-muted);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.hc-fields-3 {
|
|
92
|
+
grid-template-columns: 1fr 1fr 1fr;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.hc-dial-labels {
|
|
96
|
+
display: flex;
|
|
97
|
+
justify-content: space-between;
|
|
98
|
+
margin-top: 0.5rem;
|
|
99
|
+
position: relative;
|
|
100
|
+
z-index: 1;
|
|
101
|
+
font-size: 0.75rem;
|
|
102
|
+
font-weight: 700;
|
|
103
|
+
color: var(--hc-muted);
|
|
104
|
+
padding: 0 1rem;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.hc-dial-labels b {
|
|
108
|
+
color: var(--hc-text);
|
|
109
|
+
margin-left: 0.25rem;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.hc-body {
|
|
113
|
+
padding: 1.5rem;
|
|
114
|
+
display: flex;
|
|
115
|
+
flex-direction: column;
|
|
116
|
+
gap: 1.5rem;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.hc-fields {
|
|
120
|
+
display: grid;
|
|
121
|
+
grid-template-columns: 1fr 1fr;
|
|
122
|
+
gap: 1rem;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.hc-field {
|
|
126
|
+
display: flex;
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
gap: 0.4rem;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.hc-field-label {
|
|
132
|
+
font-size: 0.6rem;
|
|
133
|
+
font-weight: 900;
|
|
134
|
+
text-transform: uppercase;
|
|
135
|
+
letter-spacing: 0.18em;
|
|
136
|
+
color: var(--hc-muted);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.hc-field-row {
|
|
140
|
+
display: flex;
|
|
141
|
+
align-items: baseline;
|
|
142
|
+
gap: 0.4rem;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.hc-field-input {
|
|
146
|
+
width: 100%;
|
|
147
|
+
font-size: 1.2rem;
|
|
148
|
+
font-weight: 800;
|
|
149
|
+
color: var(--hc-text);
|
|
150
|
+
background: transparent;
|
|
151
|
+
border: none;
|
|
152
|
+
border-bottom: 2px solid var(--hc-border);
|
|
153
|
+
padding: 0.2rem 0;
|
|
154
|
+
outline: none;
|
|
155
|
+
transition: border-color 0.2s;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.hc-field-input:focus {
|
|
159
|
+
border-color: var(--hc-accent);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.hc-field-unit {
|
|
163
|
+
font-size: 0.75rem;
|
|
164
|
+
font-weight: 600;
|
|
165
|
+
color: var(--hc-muted);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.hc-sliders {
|
|
169
|
+
display: flex;
|
|
170
|
+
flex-direction: column;
|
|
171
|
+
gap: 1.25rem;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.hc-slider-group {
|
|
175
|
+
display: flex;
|
|
176
|
+
flex-direction: column;
|
|
177
|
+
gap: 0.5rem;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.hc-slider-label {
|
|
181
|
+
font-size: 0.65rem;
|
|
182
|
+
font-weight: 900;
|
|
183
|
+
text-transform: uppercase;
|
|
184
|
+
letter-spacing: 0.16em;
|
|
185
|
+
color: var(--hc-muted);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.hc-slider {
|
|
189
|
+
width: 100%;
|
|
190
|
+
accent-color: var(--hc-accent);
|
|
191
|
+
cursor: pointer;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.hc-slider-val {
|
|
195
|
+
font-size: 0.85rem;
|
|
196
|
+
font-weight: 800;
|
|
197
|
+
color: var(--hc-base);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.hc-tank {
|
|
201
|
+
background: var(--hc-page);
|
|
202
|
+
border: 1px solid var(--hc-border);
|
|
203
|
+
border-radius: 20px;
|
|
204
|
+
padding: 1.25rem;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.hc-tank-visual {
|
|
208
|
+
display: flex;
|
|
209
|
+
align-items: center;
|
|
210
|
+
gap: 1rem;
|
|
211
|
+
margin-top: 0.5rem;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.hc-tank-body {
|
|
215
|
+
width: 36px;
|
|
216
|
+
height: 72px;
|
|
217
|
+
border-radius: 10px;
|
|
218
|
+
border: 2px solid var(--hc-border);
|
|
219
|
+
background: var(--hc-surface);
|
|
220
|
+
position: relative;
|
|
221
|
+
overflow: hidden;
|
|
222
|
+
flex-shrink: 0;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.hc-tank-water {
|
|
226
|
+
position: absolute;
|
|
227
|
+
bottom: 0;
|
|
228
|
+
left: 0;
|
|
229
|
+
right: 0;
|
|
230
|
+
height: 0%;
|
|
231
|
+
background: linear-gradient(180deg, rgba(59, 130, 246, 0.55), rgba(59, 130, 246, 0.85));
|
|
232
|
+
border-radius: 0 0 8px 8px;
|
|
233
|
+
transition: height 0.6s cubic-bezier(0.16, 1, 0.3, 1);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.hc-tank-water::after {
|
|
237
|
+
content: '';
|
|
238
|
+
position: absolute;
|
|
239
|
+
top: -5px;
|
|
240
|
+
left: 0;
|
|
241
|
+
width: 200%;
|
|
242
|
+
height: 10px;
|
|
243
|
+
background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.35) 0%, transparent 70%);
|
|
244
|
+
animation: hc-wave 2.5s linear infinite;
|
|
245
|
+
opacity: 0.6;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@keyframes hc-wave {
|
|
249
|
+
0% { transform: translateX(-25%); }
|
|
250
|
+
100% { transform: translateX(-75%); }
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.hc-tank-marks {
|
|
254
|
+
position: absolute;
|
|
255
|
+
inset: 0;
|
|
256
|
+
display: flex;
|
|
257
|
+
flex-direction: column;
|
|
258
|
+
justify-content: space-between;
|
|
259
|
+
padding: 6px 0;
|
|
260
|
+
pointer-events: none;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
.hc-tank-marks span {
|
|
264
|
+
display: block;
|
|
265
|
+
height: 1px;
|
|
266
|
+
background: rgba(128, 128, 128, 0.15);
|
|
267
|
+
margin: 0 4px;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.hc-tank-info {
|
|
271
|
+
display: flex;
|
|
272
|
+
align-items: baseline;
|
|
273
|
+
gap: 0.35rem;
|
|
274
|
+
flex-wrap: wrap;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.hc-tank-num {
|
|
278
|
+
font-size: 1.5rem;
|
|
279
|
+
font-weight: 900;
|
|
280
|
+
color: var(--hc-base);
|
|
281
|
+
line-height: 1;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.hc-tank-unit {
|
|
285
|
+
font-size: 0.75rem;
|
|
286
|
+
font-weight: 800;
|
|
287
|
+
text-transform: uppercase;
|
|
288
|
+
letter-spacing: 0.1em;
|
|
289
|
+
color: var(--hc-muted);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.hc-tank-sub {
|
|
293
|
+
font-size: 0.8rem;
|
|
294
|
+
font-weight: 700;
|
|
295
|
+
color: var(--hc-accent);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.hc-runtime {
|
|
299
|
+
text-align: center;
|
|
300
|
+
padding: 1rem;
|
|
301
|
+
background: var(--hc-page);
|
|
302
|
+
border: 1px solid var(--hc-border);
|
|
303
|
+
border-radius: 20px;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.hc-runtime-ring {
|
|
307
|
+
display: inline-flex;
|
|
308
|
+
align-items: center;
|
|
309
|
+
padding: 0.6rem 1.2rem;
|
|
310
|
+
border-radius: 999px;
|
|
311
|
+
background: var(--hc-surface);
|
|
312
|
+
border: 1px solid var(--hc-border);
|
|
313
|
+
box-shadow: 0 4px 16px -4px var(--hc-accent-glow);
|
|
314
|
+
transition: box-shadow 0.4s ease, transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.hc-runtime-ring.hc-pulse {
|
|
318
|
+
animation: hc-pulse 0.5s cubic-bezier(0.16, 1, 0.3, 1);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
@keyframes hc-pulse {
|
|
322
|
+
0% { transform: scale(1); }
|
|
323
|
+
50% { transform: scale(1.08); }
|
|
324
|
+
100% { transform: scale(1); }
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.hc-runtime-value {
|
|
328
|
+
font-size: 1.8rem;
|
|
329
|
+
font-weight: 900;
|
|
330
|
+
color: var(--hc-base);
|
|
331
|
+
line-height: 1;
|
|
332
|
+
letter-spacing: -0.02em;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.hc-runtime-label {
|
|
336
|
+
font-size: 0.65rem;
|
|
337
|
+
font-weight: 900;
|
|
338
|
+
text-transform: uppercase;
|
|
339
|
+
letter-spacing: 0.18em;
|
|
340
|
+
color: var(--hc-accent);
|
|
341
|
+
margin: 0.5rem 0 0;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
.hc-mold {
|
|
345
|
+
display: flex;
|
|
346
|
+
align-items: center;
|
|
347
|
+
gap: 0.875rem;
|
|
348
|
+
padding: 1rem 1.25rem;
|
|
349
|
+
border-radius: 16px;
|
|
350
|
+
background: var(--hc-page);
|
|
351
|
+
border: 1px solid var(--hc-border);
|
|
352
|
+
transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.hc-mold-icon svg {
|
|
356
|
+
width: 28px;
|
|
357
|
+
height: 28px;
|
|
358
|
+
flex-shrink: 0;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.hc-mold-text {
|
|
362
|
+
flex: 1;
|
|
363
|
+
font-size: 0.9rem;
|
|
364
|
+
font-weight: 800;
|
|
365
|
+
color: var(--hc-text);
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.hc-mold-badge {
|
|
369
|
+
font-size: 0.7rem;
|
|
370
|
+
font-weight: 900;
|
|
371
|
+
text-transform: uppercase;
|
|
372
|
+
letter-spacing: 0.1em;
|
|
373
|
+
padding: 0.35rem 0.75rem;
|
|
374
|
+
border-radius: 999px;
|
|
375
|
+
background: var(--hc-surface);
|
|
376
|
+
border: 1px solid var(--hc-border);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
.hc-mold-high {
|
|
380
|
+
background: rgba(239, 68, 68, 0.06);
|
|
381
|
+
border-color: rgba(239, 68, 68, 0.25);
|
|
382
|
+
box-shadow: 0 4px 16px -4px var(--hc-danger-glow);
|
|
383
|
+
animation: hc-shiver 0.4s cubic-bezier(0.16, 1, 0.3, 1);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
@keyframes hc-shiver {
|
|
387
|
+
0% { transform: translateX(0); }
|
|
388
|
+
20% { transform: translateX(-3px); }
|
|
389
|
+
40% { transform: translateX(3px); }
|
|
390
|
+
60% { transform: translateX(-2px); }
|
|
391
|
+
80% { transform: translateX(2px); }
|
|
392
|
+
100% { transform: translateX(0); }
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.hc-mold-high .hc-mold-icon {
|
|
396
|
+
color: var(--hc-danger);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.hc-mold-high .hc-mold-badge {
|
|
400
|
+
color: var(--hc-danger);
|
|
401
|
+
border-color: rgba(239, 68, 68, 0.3);
|
|
402
|
+
background: rgba(239, 68, 68, 0.08);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.hc-mold-medium {
|
|
406
|
+
background: rgba(245, 158, 11, 0.06);
|
|
407
|
+
border-color: rgba(245, 158, 11, 0.25);
|
|
408
|
+
box-shadow: 0 4px 16px -4px var(--hc-warn-glow);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.hc-mold-medium .hc-mold-icon {
|
|
412
|
+
color: var(--hc-warn);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.hc-mold-medium .hc-mold-badge {
|
|
416
|
+
color: var(--hc-warn);
|
|
417
|
+
border-color: rgba(245, 158, 11, 0.3);
|
|
418
|
+
background: rgba(245, 158, 11, 0.08);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.hc-mold-low {
|
|
422
|
+
background: rgba(34, 197, 94, 0.06);
|
|
423
|
+
border-color: rgba(34, 197, 94, 0.25);
|
|
424
|
+
box-shadow: 0 4px 16px -4px var(--hc-success-glow);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.hc-mold-low .hc-mold-icon {
|
|
428
|
+
color: var(--hc-success);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.hc-mold-low .hc-mold-badge {
|
|
432
|
+
color: var(--hc-success);
|
|
433
|
+
border-color: rgba(34, 197, 94, 0.3);
|
|
434
|
+
background: rgba(34, 197, 94, 0.08);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
@media (max-width: 520px) {
|
|
438
|
+
.hc-card {
|
|
439
|
+
border-radius: 22px;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
.hc-stage {
|
|
443
|
+
padding: 1.5rem 1rem 1.25rem;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.hc-body {
|
|
447
|
+
padding: 1.25rem 1rem;
|
|
448
|
+
gap: 1.25rem;
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
.hc-fields,
|
|
452
|
+
.hc-fields-3 {
|
|
453
|
+
grid-template-columns: 1fr;
|
|
454
|
+
gap: 0.875rem;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
.hc-tank-visual {
|
|
458
|
+
gap: 0.75rem;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.hc-tank-body {
|
|
462
|
+
height: 64px;
|
|
463
|
+
width: 32px;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.hc-tank-num {
|
|
467
|
+
font-size: 1.3rem;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { HumidityCalculatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'luftfeuchtigkeitsrechner';
|
|
7
|
+
const title = 'Rechner für Luftfeuchtigkeit und Entfeuchtungsdauer zu Hause';
|
|
8
|
+
const description =
|
|
9
|
+
'Berechnen Sie, wie viel Wasser Ihr Entfeuchter entfernen muss, um ein feuchtes Zimmer auf einen gesunden Feuchtigkeitsgrad zu bringen. Sehen Sie die geschätzte Laufzeit, Schimmelwarnungen und Komfortzonen auf einen Blick in einem interaktiven Tool.';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Wie lange sollte ein Entfeuchter pro Tag laufen?',
|
|
14
|
+
answer:
|
|
15
|
+
'In einem mäßig feuchten Raum muss ein standardmäßiger Hausentfeuchter in der Regel zwischen 8 und 12 Stunden pro Tag laufen, um 50 Prozent relative Luftfeuchtigkeit zu halten. Bei sehr feuchten Bedingungen oder nach Wasserschäden kann ein durchgehender Betrieb von 24 bis 48 Stunden nötig sein, um einen trockenen Grundzustand zu erreichen.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Welcher Raumluftfeuchtigkeitswert verhindert Schimmel?',
|
|
19
|
+
answer:
|
|
20
|
+
'Schimmelwachstum wird gehemmt, wenn die relative Luftfeuchtigkeit im Innenbereich unter 60 Prozent gehalten wird. Die ideale Komfortzone für die menschliche Gesundheit und Gebäudeerhaltung liegt zwischen 40 und 50 Prozent relativer Luftfeuchtigkeit. Werte über 70 Prozent schaffen ein Hochrisikoumfeld, in dem Schimmelsporen innerhalb von 24 bis 48 Stunden keimen können.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Wie viel Wasser kann Luft halten?',
|
|
24
|
+
answer:
|
|
25
|
+
'Die Menge an Wasserdampf, die Luft halten kann, hängt von der Temperatur ab. Bei 20 Grad Celsius enthält gesättigte Luft etwa 17 Gramm Wasser pro Kubikmeter. Bei 25 Grad Celsius steigt dies auf etwa 23 Gramm pro Kubikmeter. Ein 30 Quadratmeter großer Raum bei 25 Grad Celsius und 70 Prozent Luftfeuchtigkeit enthält etwa 8 Liter unsichtbares Wasser in der Luft.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Beeinflusst die Temperatur die Effizienz des Entfeuchters?',
|
|
29
|
+
answer:
|
|
30
|
+
'Ja. Kompressorbasierte Entfeuchter arbeiten am besten über 18 Grad Celsius. Unter 15 Grad Celsius sinkt ihre Leistung, da Verdampferschlangen vereisen können. Sorptionsentfeuchter sind besser für kalte Räume wie Garagen oder Keller geeignet, da sie einen chemischen Trocknungsprozess anstelle von Kondensation verwenden.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Welche Entfeuchtergröße brauche ich?',
|
|
34
|
+
answer:
|
|
35
|
+
'Für einen mäßig feuchten Raum bis zu 50 Quadratmetern ist in der Regel ein Gerät mit 10 bis 12 Litern pro Tag ausreichend. Für sehr feuchte Räume oder Räume über 50 Quadratmetern wählen Sie ein Modell mit 20 Litern pro Tag. Nach einer Überschwemmung oder starkem Feuchtigkeitsschaden wird ein industrielles Gerät mit 30 Litern pro Tag die Verhältnisse schneller wiederherstellen.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Kann ein Entfeuchter Wäsche trocknen?',
|
|
39
|
+
answer:
|
|
40
|
+
'Ja. Ein Entfeuchter mit Wäschetrocknungsmodus kann Kleidung im Innenbereich effizient trocknen und dabei Feuchtigkeit aus der Umgebungsluft entziehen. Er verbraucht weniger Energie als ein Wäschetrockner und verhindert Kondensation an Fenstern und Wänden. Erwarten Sie Trocknungszeiten ähnlich dem Trocknen an der Leine bei warmem Wetter.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howToData = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Raumgröße eingeben',
|
|
47
|
+
text: 'Geben Sie die Bodenfläche des Raums in Quadratmetern ein. Der Rechner geht von einer Standardraumhöhe von 2,5 Metern aus, um das Gesamtluftvolumen zu schätzen.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Temperatur einstellen',
|
|
51
|
+
text: 'Geben Sie die aktuelle Raumtemperatur in Grad Celsius ein. Wärmere Luft kann mehr Feuchtigkeit aufnehmen, daher beeinflusst die Temperatur direkt, wie viel Wasser entfernt werden muss.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Aktuelle Luftfeuchtigkeit auswählen',
|
|
55
|
+
text: 'Verwenden Sie den Komfortregler oder die numerische Eingabe, um die aktuelle relative Luftfeuchtigkeit in Prozent einzustellen. Werte über 60 Prozent werden in Warntönen hervorgehoben.',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Gewünschte Luftfeuchtigkeit wählen',
|
|
59
|
+
text: 'Stellen Sie Ihre gewünschte relative Luftfeuchtigkeit ein. 50 Prozent werden für Komfort und Schimmelvermeidung empfohlen. 40 Prozent sind ideal für Allergiker.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Entfeuchterleistung eingeben',
|
|
63
|
+
text: 'Geben Sie die Entzugsrate Ihres Geräts in Litern pro Tag ein. Diese ist in der Regel auf dem vorderen Etikett oder im Handbuch angegeben.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Ergebnisse überprüfen',
|
|
67
|
+
text: 'Lesen Sie die Wasserentzugssimulation, die Laufzeitschätzung und das Schimmelrisikobanner, um zu entscheiden, wie lange Sie Ihr Gerät laufen lassen sollten.',
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
|
|
71
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
72
|
+
'@context': 'https://schema.org',
|
|
73
|
+
'@type': 'FAQPage',
|
|
74
|
+
mainEntity: faqData.map((item) => ({
|
|
75
|
+
'@type': 'Question',
|
|
76
|
+
name: item.question,
|
|
77
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
78
|
+
})),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const howToSchema: WithContext<HowTo> = {
|
|
82
|
+
'@context': 'https://schema.org',
|
|
83
|
+
'@type': 'HowTo',
|
|
84
|
+
name: title,
|
|
85
|
+
description,
|
|
86
|
+
step: howToData.map((step) => ({
|
|
87
|
+
'@type': 'HowToStep',
|
|
88
|
+
name: step.name,
|
|
89
|
+
text: step.text,
|
|
90
|
+
})),
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
94
|
+
'@context': 'https://schema.org',
|
|
95
|
+
'@type': 'SoftwareApplication',
|
|
96
|
+
name: title,
|
|
97
|
+
description,
|
|
98
|
+
applicationCategory: 'UtilityApplication',
|
|
99
|
+
operatingSystem: 'All',
|
|
100
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
101
|
+
inLanguage: 'de',
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export const content: ToolLocaleContent<HumidityCalculatorUI> = {
|
|
105
|
+
slug,
|
|
106
|
+
title,
|
|
107
|
+
description,
|
|
108
|
+
faq: faqData,
|
|
109
|
+
bibliography,
|
|
110
|
+
howTo: howToData,
|
|
111
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
112
|
+
seo: [
|
|
113
|
+
{
|
|
114
|
+
type: 'title',
|
|
115
|
+
text: 'Das verborgene Wasser in Ihren Wänden',
|
|
116
|
+
level: 2,
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'paragraph',
|
|
120
|
+
html: 'Die meisten Hausbesitzer erkennen nie, dass feuchte Luft nicht nur unangenehm, sondern teuer und gefährlich ist. Ein einziges feuchtes Zimmer kann mehrere Liter unsichtbaren Wasserdampf enthalten. Mit der Zeit kondensiert diese Feuchtigkeit an kalten Oberflächen, nährt Schimmelkolonien und beschädigt Putz, Farbe und Holz. Genau zu verstehen, wie viel Wasser entfernt werden muss und wie lange das dauert, ist der erste Schritt, um Ihr Zuhause und Ihre Gesundheit zu schützen.',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'stats',
|
|
124
|
+
items: [
|
|
125
|
+
{ value: '50%', label: 'Ideale Raumluftfeuchtigkeit', icon: 'mdi:water-percent' },
|
|
126
|
+
{ value: '8h', label: 'Durchschnittliche tägliche Laufzeit', icon: 'mdi:timer-outline' },
|
|
127
|
+
{ value: '70%', label: 'Schimmelrisikoschwelle', icon: 'mdi:alert-outline' },
|
|
128
|
+
],
|
|
129
|
+
columns: 3,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Warum relative Luftfeuchtigkeit wichtig ist',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Relative Luftfeuchtigkeit ist nicht die Menge an Wasser in der Luft, sondern der Prozentsatz an Wasser, den die Luft relativ zum Maximum bei dieser Temperatur aufnehmen kann. Warme Luft ist wie ein größerer Schwamm. Bei 30 Grad Celsius kann Luft fast doppelt so viel Feuchtigkeit aufnehmen wie bei 15 Grad Celsius. Deshalb kann ein Raum sich klebrig anfühlen, selbst nachdem Sie die Fenster geöffnet haben. Die Feuchtigkeit ist immer noch da, nur weniger sichtbar.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'comparative',
|
|
142
|
+
items: [
|
|
143
|
+
{
|
|
144
|
+
title: 'Hohe Luftfeuchtigkeit',
|
|
145
|
+
description: 'Über 60 Prozent relative Luftfeuchtigkeit. Risiko von Schimmel, Hausstaubmilben und Kondensationsschäden.',
|
|
146
|
+
icon: 'mdi:alert',
|
|
147
|
+
points: ['Kondensation an Fenstern und Wänden', 'Muffiger Geruch und mikrobielles Wachstum', 'Erhöhte Atemwegsreizung', 'Höhere Heizkosten aufgrund der Wärmeleitfähigkeit feuchter Luft'],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
title: 'Optimale Luftfeuchtigkeit',
|
|
151
|
+
description: 'Zwischen 40 und 50 Prozent relative Luftfeuchtigkeit. Komfortabel, gesund und energieeffizient.',
|
|
152
|
+
icon: 'mdi:check-circle',
|
|
153
|
+
points: ['Keine Kondensation an kalten Oberflächen', 'Schimmelsporen bleiben inaktiv', 'Haut und Atemwegskomfort', 'Erhalt von Möbeln und Holz'],
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
columns: 2,
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'diagnostic',
|
|
160
|
+
variant: 'info',
|
|
161
|
+
title: 'Schnelle Feuchtigkeitsprüfung',
|
|
162
|
+
icon: 'mdi:clipboard-check',
|
|
163
|
+
badge: 'Aktion',
|
|
164
|
+
html: '<p style="margin:0">Überprüfen Sie jeden Morgen die Fenster auf Kondensation. Wenn sich regelmäßig Tropfen bilden, ist Ihre Luftfeuchtigkeit zu hoch. Lassen Sie den Entfeuchter 12 Stunden täglich laufen, bis die Kondensation aufhört. Stellen Sie das Gerät in den feuchtesten Raum, meist die Küche, das Badezimmer oder den Keller. Leeren Sie den Tank täglich und reinigen Sie den Filter alle zwei Wochen.</p>',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'title',
|
|
168
|
+
text: 'Ihren Entfeuchter korrekt dimensionieren',
|
|
169
|
+
level: 3,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'paragraph',
|
|
173
|
+
html: 'Ein häufiger Fehler ist der Kauf eines zu kleinen Entfeuchters für den Raum. Ein 10 Liter pro Tag Gerät in einem 60 Quadratmeter feuchten Keller läuft durchgehend, ohne je die Zielfeuchtigkeit zu erreichen. Verwenden Sie diesen Rechner, um das genaue Extraktionsvolumen zu sehen, das Ihr Raum benötigt. Wenn die Laufzeitschätzung 20 Stunden pro Tag übersteigt, benötigen Sie ein leistungsfähigeres Gerät oder eine bessere Belüftung.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'summary',
|
|
177
|
+
title: 'So halten Sie Ihr Zuhause trocken',
|
|
178
|
+
items: [
|
|
179
|
+
'Verwenden Sie diesen Rechner, um das genaue Wasserentzugsvolumen für jeden Raum zu bestimmen.',
|
|
180
|
+
'Halten Sie die relative Raumluftfeuchtigkeit zwischen 40 und 50 Prozent für Gesundheit und Komfort.',
|
|
181
|
+
'Lassen Sie den Entfeuchter laufen, bis das Schimmelrisikobanner grün wird.',
|
|
182
|
+
'Leeren Sie den Wassertank, bevor er voll ist, um eine automatische Abschaltung zu verhindern.',
|
|
183
|
+
'Reinigen Sie die Filter regelmäßig, um Luftstrom und Entzugsraten auf dem Maximum zu halten.',
|
|
184
|
+
'Verbessern Sie die Raumbelüftung zusätzlich zur Entfeuchtung für schnellere Ergebnisse.',
|
|
185
|
+
],
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
ui: {
|
|
189
|
+
labelRoomSize: 'Raumgröße',
|
|
190
|
+
unitM2: 'm2',
|
|
191
|
+
labelTemperature: 'Temperatur',
|
|
192
|
+
unitCelsius: '°C',
|
|
193
|
+
labelCurrentHumidity: 'Aktuelle Luftfeuchtigkeit',
|
|
194
|
+
labelTargetHumidity: 'Gewünschte Luftfeuchtigkeit',
|
|
195
|
+
labelCapacity: 'Entfeuchterleistung',
|
|
196
|
+
unitLitersDay: 'L/day',
|
|
197
|
+
comfortDialTitle: 'Komfortzone',
|
|
198
|
+
comfortCurrent: 'Aktuell',
|
|
199
|
+
comfortTarget: 'Ziel',
|
|
200
|
+
tankTitle: 'Wasser in der Luft',
|
|
201
|
+
tankLiters: 'Liter',
|
|
202
|
+
runtimeTitle: 'Geschätzte Laufzeit',
|
|
203
|
+
runtimeUnitH: 'h',
|
|
204
|
+
runtimeUnitM: 'm',
|
|
205
|
+
moldRiskTitle: 'Schimmelrisiko',
|
|
206
|
+
moldRiskHigh: 'Hohes Risiko',
|
|
207
|
+
moldRiskMedium: 'Mittleres Risiko',
|
|
208
|
+
moldRiskLow: 'Geringes Risiko',
|
|
209
|
+
extractionLabel: 'zu entziehen',
|
|
210
|
+
tipEnergy: 'Wenn Sie Ihren Entfeuchter in Schwachlastzeiten laufen lassen, können Sie die Stromkosten erheblich senken.',
|
|
211
|
+
tipMold: 'Eine Luftfeuchtigkeit unter 50 Prozent verhindert, dass Schimmelsporen auf Oberflächen keimen.',
|
|
212
|
+
unitPercent: '%',
|
|
213
|
+
badgeHigh: 'Hoch',
|
|
214
|
+
badgeMedium: 'Mittel',
|
|
215
|
+
badgeLow: 'Gering',
|
|
216
|
+
},
|
|
217
|
+
};
|