// ===== demos/ui-entrance/list-reveal/ListReveal.tsx ===== // list-reveal — List Reveal 菜单逐项找位(motion-lab 定稿转原生 Remotion) // 垂直菜单列表项依次 scale 找位入场(outBack 轻微过冲),同时整个列表容器 // 全程线性缓慢上移——"整体漂移"与"逐项入场"两层运动分离叠加。 // 设计坐标 480×270(DesignStage 等比放大),参数表数值以此坐标系标定。 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 ( {/* 居中容器:flex 撑起列表垂直水平居中 */}
{/* 整体漂移层:全程线性缓慢上移 */}
{LABELS.map((s, i) => { // 逐项入场:outBack 轻微过冲找位 const p = seg(t, 0.06 + i * 0.09, 0.06 + i * 0.09 + 0.24, E.outBack); return (
{s}
); })}
); };