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:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user