@jjlmoya/utils-home 1.30.0 → 1.32.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 +2 -1
- package/src/entries.ts +7 -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/lightingCalculator/bibliography.astro +36 -0
- package/src/tool/lightingCalculator/bibliography.ts +10 -0
- package/src/tool/lightingCalculator/component.astro +308 -0
- package/src/tool/lightingCalculator/draw.ts +247 -0
- package/src/tool/lightingCalculator/entry.ts +29 -0
- package/src/tool/lightingCalculator/how-many-lights-per-room.css +493 -0
- package/src/tool/lightingCalculator/i18n/de.ts +213 -0
- package/src/tool/lightingCalculator/i18n/en.ts +213 -0
- package/src/tool/lightingCalculator/i18n/es.ts +213 -0
- package/src/tool/lightingCalculator/i18n/fr.ts +213 -0
- package/src/tool/lightingCalculator/i18n/id.ts +213 -0
- package/src/tool/lightingCalculator/i18n/it.ts +213 -0
- package/src/tool/lightingCalculator/i18n/ja.ts +213 -0
- package/src/tool/lightingCalculator/i18n/ko.ts +213 -0
- package/src/tool/lightingCalculator/i18n/nl.ts +213 -0
- package/src/tool/lightingCalculator/i18n/pl.ts +213 -0
- package/src/tool/lightingCalculator/i18n/pt.ts +213 -0
- package/src/tool/lightingCalculator/i18n/ru.ts +213 -0
- package/src/tool/lightingCalculator/i18n/sv.ts +213 -0
- package/src/tool/lightingCalculator/i18n/tr.ts +213 -0
- package/src/tool/lightingCalculator/i18n/zh.ts +213 -0
- package/src/tool/lightingCalculator/index.ts +9 -0
- package/src/tool/lightingCalculator/logic.ts +119 -0
- package/src/tool/lightingCalculator/seo.astro +15 -0
- package/src/tool/lightingCalculator/state.ts +113 -0
- package/src/tool/lightingCalculator/ui.ts +48 -0
- package/src/tool/tileLayoutCalculator/bibliography.astro +14 -0
- package/src/tool/tileLayoutCalculator/bibliography.ts +10 -0
- package/src/tool/tileLayoutCalculator/component.astro +415 -0
- package/src/tool/tileLayoutCalculator/entry.ts +29 -0
- package/src/tool/tileLayoutCalculator/i18n/de.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/en.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/es.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/fr.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/id.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/it.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/ja.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/ko.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/nl.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/pl.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/pt.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/ru.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/sv.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/tr.ts +208 -0
- package/src/tool/tileLayoutCalculator/i18n/zh.ts +208 -0
- package/src/tool/tileLayoutCalculator/index.ts +9 -0
- package/src/tool/tileLayoutCalculator/logic.ts +55 -0
- package/src/tool/tileLayoutCalculator/seo.astro +15 -0
- package/src/tool/tileLayoutCalculator/tile-layout-calculator.css +404 -0
- package/src/tool/tileLayoutCalculator/ui.ts +37 -0
- package/src/tools.ts +4 -0
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
.lc-wrap {
|
|
2
|
+
width: 100%;
|
|
3
|
+
padding: 2rem 1rem;
|
|
4
|
+
display: flex;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.lc-card {
|
|
9
|
+
width: 100%;
|
|
10
|
+
max-width: 720px;
|
|
11
|
+
background: var(--bg-surface);
|
|
12
|
+
border: 1px solid var(--border-color);
|
|
13
|
+
border-radius: 20px;
|
|
14
|
+
padding: 1.5rem;
|
|
15
|
+
box-shadow: 0 20px 60px rgba(0,0,0,0.15);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.lc-head {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: space-between;
|
|
22
|
+
margin-bottom: 1rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.lc-title {
|
|
26
|
+
font-size: 1rem;
|
|
27
|
+
font-weight: 700;
|
|
28
|
+
color: var(--text-main);
|
|
29
|
+
letter-spacing: 0.02em;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.lc-unit-toggle {
|
|
33
|
+
display: flex;
|
|
34
|
+
gap: 0.25rem;
|
|
35
|
+
background: var(--bg-page);
|
|
36
|
+
border-radius: 8px;
|
|
37
|
+
padding: 0.25rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.lc-unit-btn {
|
|
41
|
+
border: none;
|
|
42
|
+
background: transparent;
|
|
43
|
+
color: var(--text-muted);
|
|
44
|
+
font-size: 0.75rem;
|
|
45
|
+
font-weight: 600;
|
|
46
|
+
padding: 0.35rem 0.75rem;
|
|
47
|
+
border-radius: 6px;
|
|
48
|
+
cursor: pointer;
|
|
49
|
+
transition: all 0.2s;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.lc-unit-btn:hover {
|
|
53
|
+
color: var(--text-main);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.lc-unit-active {
|
|
57
|
+
background: var(--bg-surface);
|
|
58
|
+
color: var(--text-main);
|
|
59
|
+
border: 1px solid var(--border-color);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.lc-row {
|
|
63
|
+
display: flex;
|
|
64
|
+
gap: 0.75rem;
|
|
65
|
+
margin-bottom: 0.75rem;
|
|
66
|
+
flex-wrap: wrap;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.lc-chips {
|
|
70
|
+
display: flex;
|
|
71
|
+
gap: 0.5rem;
|
|
72
|
+
flex-wrap: wrap;
|
|
73
|
+
width: 100%;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.lc-chip {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 0.4rem;
|
|
80
|
+
padding: 0.5rem 0.75rem;
|
|
81
|
+
border-radius: 10px;
|
|
82
|
+
border: none;
|
|
83
|
+
background: transparent;
|
|
84
|
+
color: var(--text-muted);
|
|
85
|
+
font-size: 0.8rem;
|
|
86
|
+
font-weight: 500;
|
|
87
|
+
cursor: pointer;
|
|
88
|
+
transition: all 0.2s;
|
|
89
|
+
line-height: 1;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.lc-chip:hover {
|
|
93
|
+
color: var(--text-main);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.lc-chip-active {
|
|
97
|
+
background: var(--text-muted);
|
|
98
|
+
color: var(--bg-surface);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.lc-chip-icon {
|
|
102
|
+
width: 14px;
|
|
103
|
+
height: 14px;
|
|
104
|
+
fill: currentcolor;
|
|
105
|
+
opacity: 0.7;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.lc-chip-active .lc-chip-icon {
|
|
109
|
+
opacity: 1;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.lc-input-group {
|
|
113
|
+
flex: 1;
|
|
114
|
+
min-width: 100px;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.lc-grow {
|
|
118
|
+
flex: 2;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.lc-input-label {
|
|
122
|
+
display: block;
|
|
123
|
+
font-size: 0.65rem;
|
|
124
|
+
font-weight: 600;
|
|
125
|
+
text-transform: uppercase;
|
|
126
|
+
letter-spacing: 0.08em;
|
|
127
|
+
color: var(--text-muted);
|
|
128
|
+
margin-bottom: 0.35rem;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.lc-input-wrap {
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
gap: 0.5rem;
|
|
135
|
+
background: var(--bg-page);
|
|
136
|
+
border: 1px solid var(--border-color);
|
|
137
|
+
border-radius: 10px;
|
|
138
|
+
padding: 0.5rem 0.75rem;
|
|
139
|
+
transition: border-color 0.2s;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.lc-input-wrap:focus-within {
|
|
143
|
+
border-color: var(--text-main);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.lc-input {
|
|
147
|
+
background: transparent;
|
|
148
|
+
border: none;
|
|
149
|
+
color: var(--text-main);
|
|
150
|
+
font-size: 0.9rem;
|
|
151
|
+
font-weight: 600;
|
|
152
|
+
width: 60px;
|
|
153
|
+
outline: none;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.lc-input-unit {
|
|
157
|
+
font-size: 0.7rem;
|
|
158
|
+
color: var(--text-muted);
|
|
159
|
+
font-weight: 500;
|
|
160
|
+
margin-left: auto;
|
|
161
|
+
transition: opacity 0.2s;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.lc-bulb-bar {
|
|
165
|
+
display: flex;
|
|
166
|
+
gap: 0.5rem;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.lc-bulb {
|
|
170
|
+
display: flex;
|
|
171
|
+
align-items: center;
|
|
172
|
+
gap: 0.4rem;
|
|
173
|
+
padding: 0.5rem 0.6rem;
|
|
174
|
+
border-radius: 8px;
|
|
175
|
+
border: none;
|
|
176
|
+
background: transparent;
|
|
177
|
+
color: var(--text-muted);
|
|
178
|
+
font-size: 0.75rem;
|
|
179
|
+
font-weight: 500;
|
|
180
|
+
cursor: pointer;
|
|
181
|
+
transition: all 0.2s;
|
|
182
|
+
line-height: 1;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.lc-bulb:hover {
|
|
186
|
+
color: var(--text-main);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.lc-bulb-active {
|
|
190
|
+
background: var(--text-muted);
|
|
191
|
+
color: var(--bg-surface);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.lc-bulb-dot {
|
|
195
|
+
width: 8px;
|
|
196
|
+
height: 8px;
|
|
197
|
+
border-radius: 50%;
|
|
198
|
+
transition: transform 0.2s;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.lc-bulb:hover .lc-bulb-dot {
|
|
202
|
+
transform: scale(1.3);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.lc-ambient-btn {
|
|
206
|
+
display: flex;
|
|
207
|
+
align-items: center;
|
|
208
|
+
gap: 0.4rem;
|
|
209
|
+
padding: 0.5rem 0.75rem;
|
|
210
|
+
border-radius: 8px;
|
|
211
|
+
border: none;
|
|
212
|
+
background: transparent;
|
|
213
|
+
color: var(--text-muted);
|
|
214
|
+
font-size: 0.75rem;
|
|
215
|
+
font-weight: 500;
|
|
216
|
+
cursor: pointer;
|
|
217
|
+
transition: all 0.2s;
|
|
218
|
+
line-height: 1;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.lc-ambient-btn:hover {
|
|
222
|
+
color: var(--text-main);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.lc-ambient-active {
|
|
226
|
+
background: var(--text-muted);
|
|
227
|
+
color: var(--bg-surface);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.lc-plan-wrap {
|
|
231
|
+
width: 100%;
|
|
232
|
+
aspect-ratio: 3 / 2;
|
|
233
|
+
border-radius: 16px;
|
|
234
|
+
overflow: hidden;
|
|
235
|
+
background: var(--bg-page);
|
|
236
|
+
border: 2px solid var(--border-color);
|
|
237
|
+
margin: 1rem 0;
|
|
238
|
+
transition: border-color 0.3s;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.lc-plan-wrap.optimal {
|
|
242
|
+
border-color: rgba(34, 197, 94, 0.5);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.lc-plan-wrap.insufficient {
|
|
246
|
+
border-color: rgba(245, 158, 11, 0.5);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.lc-plan-wrap.excess {
|
|
250
|
+
border-color: rgba(239, 68, 68, 0.5);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.lc-plan {
|
|
254
|
+
width: 100%;
|
|
255
|
+
height: 100%;
|
|
256
|
+
display: block;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.lc-dial-row {
|
|
260
|
+
display: grid;
|
|
261
|
+
grid-template-columns: 1fr;
|
|
262
|
+
gap: 1rem;
|
|
263
|
+
margin-bottom: 1rem;
|
|
264
|
+
justify-items: center;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.lc-dial-wrap {
|
|
268
|
+
display: flex;
|
|
269
|
+
flex-direction: column;
|
|
270
|
+
align-items: center;
|
|
271
|
+
gap: 0.5rem;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.lc-dial {
|
|
275
|
+
width: 100%;
|
|
276
|
+
max-width: 120px;
|
|
277
|
+
height: auto;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.lc-dial-label {
|
|
281
|
+
font-size: 0.65rem;
|
|
282
|
+
font-weight: 600;
|
|
283
|
+
text-transform: uppercase;
|
|
284
|
+
letter-spacing: 0.08em;
|
|
285
|
+
color: var(--text-muted);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.lc-bulb-icons {
|
|
289
|
+
display: flex;
|
|
290
|
+
flex-wrap: wrap;
|
|
291
|
+
gap: 0.25rem;
|
|
292
|
+
justify-content: center;
|
|
293
|
+
max-width: 140px;
|
|
294
|
+
min-height: 50px;
|
|
295
|
+
align-items: center;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.lc-status {
|
|
299
|
+
display: flex;
|
|
300
|
+
align-items: flex-start;
|
|
301
|
+
gap: 0.6rem;
|
|
302
|
+
padding: 0.75rem 1rem;
|
|
303
|
+
border-radius: 12px;
|
|
304
|
+
background: var(--bg-page);
|
|
305
|
+
border: 1px solid var(--border-color);
|
|
306
|
+
transition: all 0.3s;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.lc-status-dot {
|
|
310
|
+
width: 8px;
|
|
311
|
+
height: 8px;
|
|
312
|
+
border-radius: 50%;
|
|
313
|
+
margin-top: 0.35rem;
|
|
314
|
+
flex-shrink: 0;
|
|
315
|
+
transition: all 0.3s;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.lc-status-body {
|
|
319
|
+
display: flex;
|
|
320
|
+
flex-direction: column;
|
|
321
|
+
gap: 0.15rem;
|
|
322
|
+
min-width: 0;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.lc-status-text {
|
|
326
|
+
font-size: 0.85rem;
|
|
327
|
+
font-weight: 700;
|
|
328
|
+
color: var(--text-main);
|
|
329
|
+
line-height: 1.2;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.lc-status-desc {
|
|
333
|
+
font-size: 0.75rem;
|
|
334
|
+
font-weight: 500;
|
|
335
|
+
color: var(--text-muted);
|
|
336
|
+
line-height: 1.4;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.lc-status.optimal {
|
|
340
|
+
border-color: rgba(34, 197, 94, 0.3);
|
|
341
|
+
background: rgba(34, 197, 94, 0.06);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
.lc-status.optimal .lc-status-dot {
|
|
345
|
+
background: #22c55e;
|
|
346
|
+
box-shadow: 0 0 8px rgba(34, 197, 94, 0.5);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.lc-status.optimal .lc-status-text {
|
|
350
|
+
color: #22c55e;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.lc-status.insufficient {
|
|
354
|
+
border-color: rgba(245, 158, 11, 0.3);
|
|
355
|
+
background: rgba(245, 158, 11, 0.06);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.lc-status.insufficient .lc-status-dot {
|
|
359
|
+
background: #f59e0b;
|
|
360
|
+
box-shadow: 0 0 8px rgba(245, 158, 11, 0.5);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.lc-status.insufficient .lc-status-text {
|
|
364
|
+
color: #f59e0b;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.lc-status.excess {
|
|
368
|
+
border-color: rgba(239, 68, 68, 0.3);
|
|
369
|
+
background: rgba(239, 68, 68, 0.06);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
.lc-status.excess .lc-status-dot {
|
|
373
|
+
background: #ef4444;
|
|
374
|
+
box-shadow: 0 0 8px rgba(239, 68, 68, 0.5);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.lc-status.excess .lc-status-text {
|
|
378
|
+
color: #ef4444;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
.lc-victory {
|
|
382
|
+
margin-top: 1rem;
|
|
383
|
+
padding: 1rem;
|
|
384
|
+
border-radius: 12px;
|
|
385
|
+
background: var(--bg-page);
|
|
386
|
+
border: 1px solid var(--border-color);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
.lc-victory-title {
|
|
390
|
+
font-size: 0.85rem;
|
|
391
|
+
font-weight: 700;
|
|
392
|
+
color: var(--text-main);
|
|
393
|
+
margin-bottom: 0.75rem;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.lc-victory-row {
|
|
397
|
+
display: flex;
|
|
398
|
+
justify-content: space-between;
|
|
399
|
+
align-items: center;
|
|
400
|
+
margin-bottom: 0.6rem;
|
|
401
|
+
font-size: 0.85rem;
|
|
402
|
+
line-height: 1.4;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.lc-victory-label {
|
|
406
|
+
color: var(--text-muted);
|
|
407
|
+
font-weight: 500;
|
|
408
|
+
letter-spacing: 0.02em;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.lc-victory-value {
|
|
412
|
+
color: var(--text-main);
|
|
413
|
+
font-weight: 700;
|
|
414
|
+
font-size: 0.95rem;
|
|
415
|
+
letter-spacing: -0.01em;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
.lc-export-btn {
|
|
419
|
+
width: 100%;
|
|
420
|
+
margin-top: 0.75rem;
|
|
421
|
+
padding: 0.6rem;
|
|
422
|
+
border-radius: 10px;
|
|
423
|
+
border: 1px solid var(--border-color);
|
|
424
|
+
background: var(--bg-surface);
|
|
425
|
+
color: var(--text-main);
|
|
426
|
+
font-size: 0.8rem;
|
|
427
|
+
font-weight: 600;
|
|
428
|
+
cursor: pointer;
|
|
429
|
+
transition: all 0.2s;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
.lc-export-btn:hover {
|
|
433
|
+
border-color: var(--text-main);
|
|
434
|
+
background: var(--bg-page);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
.lc-manual-toggle {
|
|
438
|
+
margin-top: 1rem;
|
|
439
|
+
padding: 0.6rem 1rem;
|
|
440
|
+
text-align: center;
|
|
441
|
+
font-size: 0.75rem;
|
|
442
|
+
font-weight: 600;
|
|
443
|
+
color: var(--text-muted);
|
|
444
|
+
cursor: pointer;
|
|
445
|
+
transition: all 0.2s;
|
|
446
|
+
border: 1px solid var(--border-color);
|
|
447
|
+
border-radius: 10px;
|
|
448
|
+
background: var(--bg-page);
|
|
449
|
+
display: flex;
|
|
450
|
+
align-items: center;
|
|
451
|
+
justify-content: center;
|
|
452
|
+
gap: 0.4rem;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
.lc-manual-toggle:hover {
|
|
456
|
+
color: var(--text-main);
|
|
457
|
+
border-color: var(--text-muted);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.lc-manual-toggle svg {
|
|
461
|
+
width: 14px;
|
|
462
|
+
height: 14px;
|
|
463
|
+
fill: currentcolor;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.lc-manual {
|
|
467
|
+
max-height: 0;
|
|
468
|
+
overflow: hidden;
|
|
469
|
+
transition: all 0.3s ease;
|
|
470
|
+
opacity: 0;
|
|
471
|
+
transform: translateY(-4px);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.lc-manual-open {
|
|
475
|
+
max-height: 200px;
|
|
476
|
+
padding-top: 0.75rem;
|
|
477
|
+
opacity: 1;
|
|
478
|
+
transform: translateY(0);
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
@media (max-width: 600px) {
|
|
482
|
+
.lc-row {
|
|
483
|
+
flex-direction: column;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
.lc-dial-row {
|
|
487
|
+
grid-template-columns: 1fr;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.lc-dial {
|
|
491
|
+
max-width: 160px;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { LightingCalculatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'beleuchtungs-und-lumen-rechner-fuer-zuhause';
|
|
7
|
+
const title = 'Beleuchtungs und Lumen Rechner für Zuhause';
|
|
8
|
+
const description =
|
|
9
|
+
'Berechnen Sie exakt, wie viele Lumen und Leuchtmittel Sie für jeden Raum benötigen. Wählen Sie Raumtyp, Abmessungen und Leuchtmittelart, um einen professionellen Beleuchtungsplan mit Echtzeit-Lux-Schätzungen zu erhalten.';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Wie viele Lumen brauche ich für ein Wohnzimmer?',
|
|
14
|
+
answer:
|
|
15
|
+
'Für ein typisches Wohnzimmer sollten Sie auf etwa 150 Lux am Boden abzielen. Multiplizieren Sie die Raumfläche in Quadratmetern mit 150, um die benötigten Lumen zu erhalten. Für einen 20 Quadratmeter großen Raum benötigen Sie etwa 3.000 Lumen.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Was ist der Unterschied zwischen Lux und Lumen?',
|
|
19
|
+
answer:
|
|
20
|
+
'Lumen messen die gesamte Lichtausbeute einer Lampe. Lux messen das Licht, das tatsächlich eine Oberfläche erreicht. Ein Raum mit hohen Decken oder dunklen Wänden benötigt mehr Lumen, um denselben Lux-Wert zu erreichen, da Licht durch Entfernung und Absorption verloren geht.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Sparen LED-Lampen wirklich Energie?',
|
|
24
|
+
answer:
|
|
25
|
+
'Ja. LED-Lampen erzeugen etwa 100 Lumen pro Watt, während Glühlampen nur etwa 15 erzeugen. Eine 10-Watt-LED-Lampe liefert dasselbe Licht wie eine 60-Watt-Glühlampe und verbraucht nur ein Sechstel des Stroms.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Wie beeinflusst die Raumfarbe den Lichtbedarf?',
|
|
29
|
+
answer:
|
|
30
|
+
'Dunkle Wände und Decken absorbieren Licht. In einem Raum mit dunklen Oberflächen benötigen Sie möglicherweise 50 % mehr Lumen als die Standardempfehlung vorsieht.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
question: 'Welcher Lux-Wert ist zum Lesen geeignet?',
|
|
34
|
+
answer:
|
|
35
|
+
'Für komfortables Lesen benötigen Sie 300 bis 500 Lux auf der Seite. Die allgemeine Umgebungsbeleuchtung bietet normalerweise 150 bis 200 Lux, daher ergänzen Sie eine Arbeitsleuchte an Ihrem Lesestuhl für die zusätzliche Helligkeit.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
question: 'Kann ich LED-Lampen dimmen?',
|
|
39
|
+
answer:
|
|
40
|
+
'Nur, wenn sie als dimmbar gekennzeichnet sind. Standard-LEDs können flackern oder eine verkürzte Lebensdauer haben, wenn sie an einen Dimmer angeschlossen werden. Prüfen Sie immer die Verpackung auf das Dimmbar-Symbol, bevor Sie installieren.',
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
44
|
+
const howToData = [
|
|
45
|
+
{
|
|
46
|
+
name: 'Wählen Sie Ihren Raumtyp',
|
|
47
|
+
text: 'Wählen Sie die Raumfunktion. Küchen und Büros benötigen helleres Licht als Schlafzimmer oder Flure.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'Geben Sie die Abmessungen ein',
|
|
51
|
+
text: 'Geben Sie Raumbreite, -länge und Deckenhöhe ein. Der Rechner verwendet diese Werte, um den Raumindex und den Lichtausnutzungsfaktor zu bestimmen.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'Wählen Sie Leuchtmittelart und Anzahl',
|
|
55
|
+
text: 'Wählen Sie Ihre bevorzugte Leuchtmitteltechnologie und die Anzahl der Leuchten. Der Rechner zeigt Ihnen, ob Sie mehr Lampen benötigen.',
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
60
|
+
'@context': 'https://schema.org',
|
|
61
|
+
'@type': 'FAQPage',
|
|
62
|
+
mainEntity: faqData.map((item) => ({
|
|
63
|
+
'@type': 'Question',
|
|
64
|
+
name: item.question,
|
|
65
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
66
|
+
})),
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const howToSchema: WithContext<HowTo> = {
|
|
70
|
+
'@context': 'https://schema.org',
|
|
71
|
+
'@type': 'HowTo',
|
|
72
|
+
name: title,
|
|
73
|
+
description,
|
|
74
|
+
step: howToData.map((step) => ({
|
|
75
|
+
'@type': 'HowToStep',
|
|
76
|
+
name: step.name,
|
|
77
|
+
text: step.text,
|
|
78
|
+
})),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
82
|
+
'@context': 'https://schema.org',
|
|
83
|
+
'@type': 'SoftwareApplication',
|
|
84
|
+
name: title,
|
|
85
|
+
description,
|
|
86
|
+
applicationCategory: 'UtilityApplication',
|
|
87
|
+
operatingSystem: 'All',
|
|
88
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
89
|
+
inLanguage: 'de',
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const content: ToolLocaleContent<LightingCalculatorUI> = {
|
|
93
|
+
slug,
|
|
94
|
+
title,
|
|
95
|
+
description,
|
|
96
|
+
faq: faqData,
|
|
97
|
+
bibliography,
|
|
98
|
+
howTo: howToData,
|
|
99
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
100
|
+
seo: [
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Kompletter Leitfaden zur Wohnraumbeleuchtung und Lumen-Planung',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Richtiges Licht verwandelt ein Haus in ein Zuhause. Über die Ästhetik hinaus beeinflusst die richtige Lichtmenge Stimmung, Produktivität und sogar die Augengesundheit. <strong>Unser Beleuchtungsrechner für Zuhause</strong> hilft Ihnen, exakt zu bestimmen, wie viele Lumen Sie für jeden Raum benötigen - unter Berücksichtigung von Raumgröße, Deckenhöhe, Oberflächenfarben und Leuchtmittelart.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'stats',
|
|
112
|
+
items: [
|
|
113
|
+
{ value: '150-500', label: 'Empfohlener Lux-Bereich', icon: 'mdi:brightness-6' },
|
|
114
|
+
{ value: '100 lm/W', label: 'LED-Effizienz', icon: 'mdi:lightbulb' },
|
|
115
|
+
{ value: '80%', label: 'Wartungsfaktor', icon: 'mdi:tools' },
|
|
116
|
+
],
|
|
117
|
+
columns: 3,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'comparative',
|
|
121
|
+
items: [
|
|
122
|
+
{
|
|
123
|
+
title: 'Warme Ambientebeleuchtung',
|
|
124
|
+
description: 'Ideal für Wohnzimmer und Schlafzimmer. Schafft eine gemütliche Atmosphäre und reduziert abends die Augenbelastung.',
|
|
125
|
+
icon: 'mdi:weather-night',
|
|
126
|
+
points: ['150-200 lux', 'Warme Farbtemperatur (2700K)', 'Mehrere dimmbare Lichtquellen'],
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
title: 'Helle Arbeitsbeleuchtung',
|
|
130
|
+
description: 'Unverzichtbar für Küchen, Büros und Badezimmer. Bietet klare Sichtbarkeit für detailgenaue Arbeiten.',
|
|
131
|
+
icon: 'mdi:white-balance-sunny',
|
|
132
|
+
points: ['300-500 lux', 'Kaltweiß (4000K)', 'Auf Arbeitsflächen fokussiert'],
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
columns: 2,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Warum Raumabmessungen wichtig sind',
|
|
140
|
+
level: 3,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Licht breitet sich aus und schwächt sich mit der Entfernung ab. Eine Lampe, die für eine 2,5-Meter-Decke hell genug ist, kann bei einer 4-Meter-Decke zu dunkel sein. Der Rechner berücksichtigt dies mithilfe der Raumindex-Formel, die sowohl die Bodenfläche als auch die Montagehöhe berücksichtigt, um abzuschätzen, wie viel Licht tatsächlich Ihre Arbeitsebene erreicht.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'diagnostic',
|
|
148
|
+
variant: 'info',
|
|
149
|
+
title: 'Schnelle Referenztabelle Lux Werte',
|
|
150
|
+
icon: 'mdi:table',
|
|
151
|
+
badge: 'Referenz',
|
|
152
|
+
html: '<ul style="margin:0;padding-left:1.2em"><li><strong>Wohnzimmer</strong> → 150 lux</li><li><strong>Küche</strong> → 300 lux</li><li><strong>Schlafzimmer</strong> → 100 lux</li><li><strong>Badezimmer</strong> → 200 lux</li><li><strong>Büro</strong> → 500 lux</li><li><strong>Flur</strong> → 100 lux</li></ul>',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
type: 'summary',
|
|
156
|
+
title: 'Profihinweise für bessere Beleuchtung',
|
|
157
|
+
items: [
|
|
158
|
+
'Schichten Sie drei Lichtarten: Allgemein-, Arbeits- und Akzentbeleuchtung.',
|
|
159
|
+
'Verwenden Sie Dimmer, um die Helligkeit für verschiedene Tageszeiten anzupassen.',
|
|
160
|
+
'Wählen Sie LED-Lampen für lange Lebensdauer und geringen Energieverbrauch.',
|
|
161
|
+
'Platzieren Sie Arbeitsleuchten auf der gegenüberliegenden Seite Ihrer dominanten Hand, um Schatten zu vermeiden.',
|
|
162
|
+
'Erwägen Sie Smart-Lampen für automatisierte Zeitsteuerung und Farbtemperaturwechsel.',
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
ui: {
|
|
167
|
+
sectionTitle: 'Raumbeleuchtungsrechner',
|
|
168
|
+
labelRoomType: 'Raumtyp',
|
|
169
|
+
labelRoomWidth: 'Breite',
|
|
170
|
+
labelRoomLength: 'Länge',
|
|
171
|
+
labelHeight: 'Deckenhöhe',
|
|
172
|
+
labelBulbType: 'Leuchtmittel',
|
|
173
|
+
labelBulbWatt: 'Leistung',
|
|
174
|
+
labelFixtures: 'Leuchten',
|
|
175
|
+
labelAmbient: 'Ambiente',
|
|
176
|
+
btnAmbientCozy: 'Gemütlich',
|
|
177
|
+
btnAmbientNormal: 'Normal',
|
|
178
|
+
btnAmbientBright: 'Hell',
|
|
179
|
+
unitMetricRoom: 'm',
|
|
180
|
+
unitImperialRoom: 'ft',
|
|
181
|
+
unitHeight: 'm',
|
|
182
|
+
unitBulbs: 'Stk',
|
|
183
|
+
unitWatt: 'W',
|
|
184
|
+
unitLux: 'lux',
|
|
185
|
+
labelTargetLux: 'Ziel-Lux',
|
|
186
|
+
labelCurrentLux: 'Aktuell Lux',
|
|
187
|
+
labelBulbsNeeded: 'Benötigte Lampen',
|
|
188
|
+
labelRoomArea: 'Fläche',
|
|
189
|
+
statusOptimal: 'Perfekt',
|
|
190
|
+
statusInsufficient: 'Zu dunkel',
|
|
191
|
+
statusExcess: 'Zu hell',
|
|
192
|
+
btnLiving: 'Wohnen',
|
|
193
|
+
btnKitchen: 'Küche',
|
|
194
|
+
btnBedroom: 'Schlafen',
|
|
195
|
+
btnBathroom: 'Bad',
|
|
196
|
+
btnOffice: 'Büro',
|
|
197
|
+
btnHallway: 'Flur',
|
|
198
|
+
btnBulbLED: 'LED',
|
|
199
|
+
btnBulbCFL: 'ESL',
|
|
200
|
+
btnBulbHalogen: 'Halogen',
|
|
201
|
+
btnBulbIncandescent: 'Glühlampe',
|
|
202
|
+
btnMetric: 'M',
|
|
203
|
+
btnImperial: 'ft',
|
|
204
|
+
tipOptimal: 'Ihre Beleuchtung ist für diesen Raum perfekt ausbalanciert.',
|
|
205
|
+
tipInsufficient: 'Fügen Sie mehr Leuchten oder leistungsstärkere Lampen hinzu.',
|
|
206
|
+
tipExcess: 'Reduzieren Sie Leuchten oder dimmen Sie, um Energie zu sparen.',
|
|
207
|
+
labelManualAdjust: 'Manuelle Anpassung',
|
|
208
|
+
labelSummary: 'Ihr Beleuchtungsplan',
|
|
209
|
+
labelTotalLumens: 'Benötigte Gesamtlumen',
|
|
210
|
+
labelSuggestedSetup: 'Empfohlene Konfiguration',
|
|
211
|
+
btnExport: 'PDF exportieren',
|
|
212
|
+
},
|
|
213
|
+
};
|