Add animated fire visualization and fix step pot param reading

- SVG fire group with 3 layered flame paths (red/orange/yellow gradients)
- CSS keyframe flicker animations with different timings per flame layer
- JS controls fire opacity and scaleY proportional to heater power
- Fix buildStep() reading grain_mass/water_mass from nested step.pot
  instead of flat step keys, matching the JSON structure

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DGKe8JzTM2Gr1fdx9wYXTi
This commit is contained in:
2026-06-26 22:04:32 +02:00
co-authored by Claude Sonnet 4.6
parent 59b18b95b6
commit 083bc97651
3 changed files with 90 additions and 2 deletions
+33
View File
@@ -152,6 +152,39 @@ header#connection-bar {
display: block;
}
/* Fire animations */
@keyframes flicker-1 {
0%, 100% { transform: scaleY(1.00) scaleX(1.00); }
25% { transform: scaleY(1.09) scaleX(0.93); }
50% { transform: scaleY(0.93) scaleX(1.06); }
75% { transform: scaleY(1.06) scaleX(0.96); }
}
@keyframes flicker-2 {
0%, 100% { transform: scaleY(0.95) scaleX(1.04); }
30% { transform: scaleY(1.10) scaleX(0.92); }
65% { transform: scaleY(0.91) scaleX(1.07); }
}
@keyframes flicker-3 {
0%, 100% { transform: scaleY(1.05) scaleX(0.95); }
40% { transform: scaleY(0.89) scaleX(1.08); }
70% { transform: scaleY(1.12) scaleX(0.91); }
}
.flame {
transform-box: fill-box;
transform-origin: 50% 100%;
}
#flame-outer { animation: flicker-1 0.70s ease-in-out infinite; }
#flame-mid { animation: flicker-2 0.55s ease-in-out infinite 0.08s; }
#flame-inner { animation: flicker-3 0.45s ease-in-out infinite 0.15s; }
#fire-group {
transform-box: fill-box;
transform-origin: 50% 100%;
opacity: 0;
transition: opacity 0.4s;
}
/* --- Tabs --- */
nav#tabs {