Redesign an existing website to make it better. Built on top of impeccable.
71
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
The technology choice that powers prototype --cinematic. Documented
because the choice is intentional and load-bearing — every cinematic
prototype assumes the same primitives.
Lenis for smooth scroll.
skills/prototype/assets/motion/lenis.min.js (+ .css).scrollY don't tear at high
frame rates.new Lenis({ lerp: 0.1 })) and parked
on window.__lenis so the runtime + downstream code can both
read it.CSS @keyframes for entrance animations.
enterUp, enterDown, letterReveal, slideInH, livePulse,
warnPulse, tickerScroll, marqueeScroll, slowZoom,
windFlow, pulseGlow, bounceY, sweep.cubic-bezier(0.25, 0.46, 0.45, 0.94) for entrances,
cubic-bezier(0.42, 0, 0, 1) for transitions,
cubic-bezier(0.16, 1, 0.3, 1) for expo-style settles.One requestAnimationFrame loop for everything scroll-linked.
lenis.scroll via lenis.on('scroll', ...) for
coarse state (e.g. nav scrolled class) and reads
window.__lenis.scroll inside the tick for fine state
(parallax, scroll-progress reveals).easeOut3 helper (t => 1 - (1-t)^3) for every
scroll-progress curve. One easing across the page keeps motion
coherent.window.load.IntersectionObserver for one-shot reveals.
[data-countup]), split-flap flips ([data-flip]),
and bar fills ([data-fill]).dataset.seen flag so re-entering the viewport doesn't replay.prefers-reduced-motion: reduce handling.
matchMedia('(prefers-reduced-motion: reduce)')
at boot and, on match, skips Lenis smooth wheel, freezes the
rAF tick, jumps count-ups straight to their target, fills bars
to their target width, and forces every [data-anim] to its
final state.motion-registers.md actually need.animation-timeline: view(*)).
Browser support is still partial; the existing motion-validation
gate covers them when they DO appear (a craft-step may still
reach for them when the target browser allows). The cinematic
feature picks scrollY + rAF + transforms because it works
everywhere Lenis works.<script> tag for Lenis and one inline <script>
for the runtime. The static-site contract is preserved.Lenis lives at skills/prototype/assets/motion/. At render time,
prototype --cinematic copies both files into the project's
stardust/prototypes/ directory and the rendered HTML loads them
via relative path:
<link rel="stylesheet" href="lenis.min.css" />
<script src="lenis.min.js"></script>The copy keeps prototypes self-contained — the user can move the
entire stardust/prototypes/ directory or zip it without breaking
references.
When migrate consumes a cinematic prototype, it copies the same
two files into stardust/migrated/assets/motion/ and rewrites the
HTML references to root-relative paths (/assets/motion/lenis.min.js)
following the bundle-as-self-contained contract in
skills/migrate/reference/asset-bundling.md.
The runtime is inline in every cinematic prototype, not loaded
from a shared .js file. The canonical text is in
reference/motion-runtime.md; prototype --cinematic embeds it
verbatim and customizes only the register-specific configuration
constants at the top.
Inline-not-external because:
Lenis version is pinned to the build copied into
skills/prototype/assets/motion/. Re-bundling requires:
lenis.min.js and lenis.min.css together.motion-registers.md — confirm scroll
parallax, IO triggers, and reduced-motion handling all still
behave per motion-runtime.md § Per-register surface shape.lenis.scroll (read inside the rAF tick) and
lenis.on('scroll', ...) (subscribed at boot) still resolve
the same shape.The runtime never reaches for non-stable Lenis API surfaces.
Combined cinematic-prototype overhead vs. the static prototype:
+17 KB Lenis (cached after first prototype on the same origin).+200 LOC inline runtime.+~40 lines of CSS keyframes per register applied.That's the budget. The motion-validation gate enforces that nothing larger sneaks in.
.tessl-plugin
skills
audit
reference
deploy
diff
direct
extract
migrate
prepare-migration
prototype
replica
reskin
rollout
stardust
uplift
reference