Add industry mockup animator script for solutions page

- Enqueued new script `industry-animator.js` for animated device mockups.
- Implemented animation logic for various industries including hospitality, retail, corporate, education, outdoor, and live data displays.
- Utilized IntersectionObserver for performance optimization by pausing animations when off-screen.
This commit is contained in:
Matt Batchelder
2026-02-21 13:59:57 -05:00
parent 82a2dacbef
commit 2edbf9732b
5 changed files with 983 additions and 6 deletions

View File

@@ -5422,3 +5422,109 @@ p:last-child { margin-bottom: 0; }
.bd-ui__brand-bar { transform: scaleX(1); }
.bd-ui__content { opacity: 1; transform: translateY(0); }
}
/* ═══════════════════════════════════════════════════════════════
INDUSTRY MOCKUP ANIMATIONS (.platform-visual.has-industry)
═══════════════════════════════════════════════════════════════ */
.platform-visual.has-industry {
background: none !important;
border: none !important;
border-radius: 0;
aspect-ratio: unset;
padding: 0;
overflow: visible;
box-shadow: none;
font-size: inherit;
}
.ind-stage {
width: 100%;
max-width: 480px;
margin: 0 auto;
}
.ind-stage svg {
width: 100%;
height: auto;
display: block;
border-radius: var(--radius-md);
box-shadow: 0 8px 32px rgba(0,0,0,.3);
}
/* Subtle glow around active screens */
.ind-stage svg rect[fill="#1c2333"] {
transition: filter .6s ease;
}
/* Animated content transitions */
.ind-menu-price,
.ind-sale-tag,
.ind-footfall-val,
.ind-kpi-val,
.ind-meet-status,
.ind-alert-text,
.ind-weather-icon,
.ind-weather-temp,
.ind-busy-label,
.ind-ld-val,
.ind-ld-alert-text {
transition: opacity .3s ease;
}
.ind-menu-bar,
.ind-rev-bar,
.ind-vendor-bar,
.ind-ld-bar {
transition: height .4s ease, y .4s ease;
}
.ind-product-slot {
transition: stroke-width .3s ease;
}
.ind-sched-slot {
transition: opacity .4s ease, stroke .3s ease;
}
.ind-wf-dot {
transition: opacity .5s ease;
}
.ind-alert-bar {
transition: opacity .4s ease;
}
.ind-meet-dot,
.ind-busy-dot,
.ind-ld-alert {
transition: fill .4s ease;
}
.ind-corp-line,
.ind-ld-line {
transition: d .3s ease;
}
.ind-ld-pie {
transition: d .4s ease;
}
/* ── Reduced-motion overrides for industry animations ── */
@media (prefers-reduced-motion: reduce) {
.ind-menu-bar,
.ind-rev-bar,
.ind-vendor-bar,
.ind-ld-bar,
.ind-product-slot,
.ind-sched-slot,
.ind-wf-dot,
.ind-alert-bar,
.ind-corp-line,
.ind-ld-line,
.ind-ld-pie,
.ind-meet-dot,
.ind-busy-dot,
.ind-ld-alert {
transition: none !important;
}
}