Build Core and Handles into in-memory CDN modules, add the marketing site and tutorial docs, and provide a SQLite-backed WebGPU playground with TypeScript tooling and profiling. Amp-Thread-ID: https://ampcode.com/threads/T-01a02485-5574-707c-bff4-5668d83bee8a Co-authored-by: Heaust Azure <heaust.azure@gmail.com>
19 lines
695 B
JavaScript
19 lines
695 B
JavaScript
const revealTargets = document.querySelectorAll(
|
|
".section-heading, .gear-card, .architecture-copy, .architecture-visual, .steps li, .cta-section",
|
|
);
|
|
|
|
if ("IntersectionObserver" in window && !matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
for (const target of revealTargets) target.dataset.reveal = "";
|
|
const observer = new IntersectionObserver(
|
|
(entries) => {
|
|
for (const entry of entries) {
|
|
if (!entry.isIntersecting) continue;
|
|
entry.target.classList.add("revealed");
|
|
observer.unobserve(entry.target);
|
|
}
|
|
},
|
|
{ rootMargin: "0px 0px -40px", threshold: 0.08 },
|
|
);
|
|
for (const target of revealTargets) observer.observe(target);
|
|
}
|