openvibers/openvibe.live Commits
The hero background keeps its pan on a phone (#761)
Changes
@@@ -9473,7 +9473,8 @@ label.staff-inline-toggle.aiv-field { flex-direction:row; align-items:center; }a stronger saving — and leaving this on made the expand animation impossible to measure:each group reported its 120px placeholder height for two frames, so the container animatedto 602px and then snapped to its real 976px. */-- .hero-bg-layer.active { animation: none !important; }++ /* The hero background keeps its 12s pan on a phone: it is transform-only, and a narrow screen is not a++ reason to stop motion (the owner, 2026-11-10). */}/* ── OV brand mark (navbar + hero): the O is a ring with a comet running around it, the V is@@@ -7,8 +7,8 @@* - scroll reveal: section headers, cards and grids slide/fade in as they enter the viewport* - count-up: hero stat numbers tick up from 0 when first painted* - card tilt: stream cards tilt slightly toward the pointer-- * Everything is disabled with motion off (Calm plays it), paused when the tab is hidden, and-- * skips the canvas on coarse-pointer / narrow screens to keep phones cool.++ * Everything is disabled with motion off (Calm plays it), paused when the tab is hidden, and the++ * canvas is skipped on a device short of memory or saving data — never because its screen is narrow.*/(function () {'use strict';@@@ -33,4 +33,12 @@ const block = css.slice(at, css.indexOf('\n}\n', at));assert.ok(!/animation:\s*none/.test(block), 'the phone block stops no animation');assert.ok(/\.hero-collage \{ display: none !important; \}/.test(block), 'it still leaves out the collage, which has no room');++// The base stylesheet's phone block keeps layout and glass rules only too: the hero background's slow pan is++// transform-only, and a narrow screen is not a reason to stop it.++const style = read('public/css/style.css');++const styleAt = style.indexOf('@media (max-width: 720px) {');++assert.ok(styleAt > 0, 'the base stylesheet has its phone block');++const styleBlock = style.slice(styleAt, style.indexOf('\n}\n', styleAt));++assert.ok(!/\.hero-bg-layer\.active\s*\{[^}]*animation:\s*none/.test(styleBlock), 'the hero background keeps its 12s pan on a phone');++console.log('home-lite: ok');
@@ -9473,7 +9473,8 @@ label.staff-inline-toggle.aiv-field { flex-direction:row; align-items:center; }
@@ -9473,7 +9473,8 @@ label.staff-inline-toggle.aiv-field { flex-direction:row; align-items:center; }
a stronger saving — and leaving this on made the expand animation impossible to measure:
a stronger saving — and leaving this on made the expand animation impossible to measure:
each group reported its 120px placeholder height for two frames, so the container animated
each group reported its 120px placeholder height for two frames, so the container animated
to 602px and then snapped to its real 976px. */
to 602px and then snapped to its real 976px. */
- .hero-bg-layer.active { animation: none !important; }
+ /* The hero background keeps its 12s pan on a phone: it is transform-only, and a narrow screen is not a
+ reason to stop motion (the owner, 2026-11-10). */
}
}
/* ── OV brand mark (navbar + hero): the O is a ring with a comet running around it, the V is
/* ── OV brand mark (navbar + hero): the O is a ring with a comet running around it, the V is
@@ -7,8 +7,8 @@
@@ -7,8 +7,8 @@
* - scroll reveal: section headers, cards and grids slide/fade in as they enter the viewport
* - scroll reveal: section headers, cards and grids slide/fade in as they enter the viewport
* - count-up: hero stat numbers tick up from 0 when first painted
* - count-up: hero stat numbers tick up from 0 when first painted
* - card tilt: stream cards tilt slightly toward the pointer
* - card tilt: stream cards tilt slightly toward the pointer
- * Everything is disabled with motion off (Calm plays it), paused when the tab is hidden, and
- * skips the canvas on coarse-pointer / narrow screens to keep phones cool.
+ * Everything is disabled with motion off (Calm plays it), paused when the tab is hidden, and the
+ * canvas is skipped on a device short of memory or saving data — never because its screen is narrow.
*/
*/
(function () {
(function () {
'use strict';
'use strict';
@@ -33,4 +33,12 @@ const block = css.slice(at, css.indexOf('\n}\n', at));
@@ -33,4 +33,12 @@ const block = css.slice(at, css.indexOf('\n}\n', at));
assert.ok(!/animation:\s*none/.test(block), 'the phone block stops no animation');
assert.ok(!/animation:\s*none/.test(block), 'the phone block stops no animation');
assert.ok(/\.hero-collage \{ display: none !important; \}/.test(block), 'it still leaves out the collage, which has no room');
assert.ok(/\.hero-collage \{ display: none !important; \}/.test(block), 'it still leaves out the collage, which has no room');
+// The base stylesheet's phone block keeps layout and glass rules only too: the hero background's slow pan is
+// transform-only, and a narrow screen is not a reason to stop it.
+const style = read('public/css/style.css');
+const styleAt = style.indexOf('@media (max-width: 720px) {');
+assert.ok(styleAt > 0, 'the base stylesheet has its phone block');
+const styleBlock = style.slice(styleAt, style.indexOf('\n}\n', styleAt));
+assert.ok(!/\.hero-bg-layer\.active\s*\{[^}]*animation:\s*none/.test(styleBlock), 'the hero background keeps its 12s pan on a phone');
+
console.log('home-lite: ok');
console.log('home-lite: ok');