fix(site-builder): coerce bare-number animation delay to a valid CSS time (2 -> 2s)
data-animation-delay is stored as a plain seconds string (e.g. '2'); the reveal script assigned it raw to el.style.animationDelay, which is invalid CSS and no-ops. Suffix 's' onto bare numbers (leaving '2s'/'200ms' alone) so entrance-animation delays actually apply. Backend generateCompiledHTML gets the byte-identical change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -354,7 +354,7 @@ const ANIMATION_CSS_MINIFIED = `@keyframes fadeIn{from{opacity:0}to{opacity:1}}@
|
||||
const ANIMATION_SCRIPT = `<script>
|
||||
document.querySelectorAll('[data-animation]').forEach(function(el) {
|
||||
var delay = el.getAttribute('data-animation-delay');
|
||||
if (delay) el.style.animationDelay = delay;
|
||||
if (delay) el.style.animationDelay = /^-?[0-9.]+$/.test(delay) ? delay + 's' : delay;
|
||||
new IntersectionObserver(function(entries) {
|
||||
entries.forEach(function(e) { if (e.isIntersecting) { el.classList.add('animated'); } });
|
||||
}, { threshold: 0.1 }).observe(el);
|
||||
|
||||
Reference in New Issue
Block a user