// list-reveal — List Reveal menu items finding their slots one by one (motion-lab final cut ported to native Remotion) // vertical menu list items enter one by one, scaling into their slots (outBack with a slight overshoot), // while the whole list container drifts upward slowly and linearly throughout — the "overall drift" // and "per-item entrance" are two separate motion layers superimposed. // Design coordinates 480×270 (DesignStage scales proportionally), parameter table values calibrated to this coordinate system. import React from 'react'; import { DesignStage, E, lerp, seg, useT } from '../../_fixtures/Motion'; export const LIST_REVEAL_DURATION = 108; // 3600ms @30fps const LABELS = ['Dashboard', 'Projects', 'Analytics', 'Messages', 'Settings', 'Sign out']; const HUES = [225, 250, 275, 300, 210, 340]; export const ListReveal: React.FC = () => { const t = useT(); return ( {/* centering container: flex centers the list both vertically and horizontally */}
{/* overall drift layer: slow linear upward drift throughout */}
{LABELS.map((s, i) => { // per-item entrance: outBack with a slight overshoot into its slot const p = seg(t, 0.06 + i * 0.09, 0.06 + i * 0.09 + 0.24, E.outBack); return (
{s}
); })}
); };