// hatch-depth — Hatch → Depth Chart 斜纹柱实体化(motion-lab 定稿转原生 Remotion) // 标签下的斜纹条逐条 wipe 伸长(保持 45° 斜纹占位质感),随后斜纹层淡出、强调色 // 实心层淡入,蜕变为数据横柱条形图——几何无跳变、只换纹理与颜色,讲"占位变真数据"的隐喻。 // 设计坐标 480×270(DesignStage 等比放大),参数表数值以此坐标系标定。 import React from 'react'; import { DesignStage, E, seg, useT } from '../../_fixtures/Motion'; export const HATCH_DEPTH_DURATION = 132; // 4400ms @30fps const ACCENT = '#5B8DEF'; // 模板强调色,可按项目替换 const ACCENT_HI = '#8FB2F7'; // 同族高亮(数值文字) const ROWS = [ { label: 'SERIES_A', w: 0.85 }, { label: 'SERIES_B', w: 0.55 }, { label: 'GROUP_C', w: 0.95 }, { label: 'GROUP_D', w: 0.4 }, { label: 'OTHER_E', w: 0.7 }, ]; // 头部信息条里的   (连续普通空格在 JSX 会被折叠,须用不换行空格) const NBSP2 = '  '; export const HatchDepth: React.FC = () => { const t = useT(); // 头部信息条:下滑入场 const headIn = seg(t, 0.62, 0.78, E.outCubic); return (
{ROWS.map(({ label, w }, i) => { // 逐条 wipe 伸长 → 斜纹淡出/实心淡入 → 末段轻微 wiggle const grow = seg(t, 0.06 + i * 0.05, 0.06 + i * 0.05 + 0.22, E.outCubic); const morph = seg(t, 0.5 + i * 0.03, 0.5 + i * 0.03 + 0.14); const wiggle = 1 + Math.sin(t * 30 + i * 2.1) * 0.02 * seg(t, 0.7, 0.85); const wPct = grow * w * 100 * wiggle; return (
0.5 ? '#5c626f' : '#8b91a3', fontSize: 11, width: 70, flex: 'none', textAlign: 'right', }} > {label}
{/* 斜纹占位层 */}
{/* 强调色实心层 */}
{/* 柱端数值 */} {Math.round(w * 420 * grow)}K
); })} {/* 头部信息条 */}
METRICS {NBSP2} ● LIVE {NBSP2} TOTAL 875K{NBSP2}AVG 1.02M
); };