Разборы: P05/, P06/, P11/
(breakdown.md + breakdown.json + sheet.jpg + keyframes/). Время ± 0.3 s
у P06 и P11 (по контактному листу), P05 измерен покадрово.
Резкой синхронизации «смена = бит» нет: P06 — 7 из 38 смен в окне ±100 ms от звукового всплеска (18%), P11 — 4 из 8 (50%, выборка мала). BPM надёжно не снимается; синхрон делается по смыслу (SFX на слове-акценте), а не по сетке. P05 без звука, шаг 2.0 s.
P06/P11 горизонтальные (736×414), но композиция односторонняя: центр + поля ≥ 15%. Перекладка: одна строка → 2–3 строки по 12–18 симв, кегль ×1.5–2 (cap height 5–6% высоты вместо 3.4%), UI-сцены показывать крупным планом ОДНОГО элемента (камера-отъезд P06) вместо целого окна, красно/синий фон лент растянуть вертикально. P05 уже родной портрет 2:3 — ставится ×1.5 с запасом 150 px сверху/снизу.
| # | приём | источник | параметры | рецепт GSAP/CSS (HyperFrames) |
|---|---|---|---|---|
| 1 | Слово-за-словом из блюра | P06 | 0.3 s/слово, blur 12→0, scale 1.15→1, power3.out | gsap.fromTo(w,{opacity:0,filter:'blur(12px)',scale:1.15},{opacity:1,filter:'blur(0)',scale:1,duration:.3,ease:'power3.out',stagger:.3}) |
| 2 | Акцент-слово 2.2×→1× | P06 | blur 25 px, 0.35 s, hold 0.6 s | fromTo({scale:2.2,filter:'blur(25px)',opacity:0},{scale:1,...,ease:'power3.out',duration:.35}) |
| 3 | Лого/название из разлетающихся букв | P06 | 1.1 s, back.out(1.7), ±150 px | from(letters,{x:rand(-150,150),y:rand(-150,150),scale:0,ease:'back.out(1.7)',duration:.7,stagger:{each:.12,from:'random'}}) |
| 4 | Печать в поле промпта + отъезд камеры | P06 | 22 симв/с, каретка 0.5 s, scale 1→.55 за 1.2 s | TextPlugin/ручной таймер 45 мс/симв; камера
scale .55 power2.inOut |
| 5 | Подсвеченный курсор-бабл с именем | P06 | 0.7 s, glow 18 px, клик scale .85→1 | MotionPath, box-shadow:0 0 18px #1e90ff,
клик 0.12 s |
| 6 | Перспективный наклон интерфейса | P06 | rotateX 38°, rotateZ −12°, 3–5 s sine.inOut | perspective:1200px; transform:rotateX(38deg) rotateZ(-12deg),
tween x |
| 7 | Слот-смена слова в строке | P11 | 1.4 s период, out 0.17, in 0.25, blur 6 | to(old,{opacity:0,y:-6,filter:'blur(6px)'}).fromTo(new,{opacity:0,y:8,filter:'blur(6px)'},{...}),
inline-flex |
| 8 | Чип-эмодзи (pop) | P11 | scale 0→1, 0.17 s, back.out(1.4) | белая плашка r=10 px + тень lavender |
| 9 | Match cut полоса → пилюля → круг → маркер | P11 | 0.3 s, power2.inOut | один элемент .dot, анимация
width/height/borderRadius/x/y |
| 10 | Тумблер + уходящая точка | P11 | 0.3 s, power2.inOut; точка 1 s power1.in | x:+20, x:+250,y:+120,opacity:0 |
| 11 | Жёсткий cut свет↔︎тьма на 1 кадр + SFX | P11 | SFX −2 кадра | set фон за 1 кадр, audio свуш |
| 12 | Лавандовое свечение снизу | P11 | blur 80–120 px, 60% ширины | radial-gradient(ellipse 60% 40% at 50% 90%,#d8d1ff,transparent 70%) |
| 13 | 3D-объект-метафора с альфой | P11 | y+60→0, rotate −20→0, back.out(1.4), 0.5 s | PNG с альфой +
from({y:60,rotate:-20,scale:.7,ease:'back.out(1.4)'}) |
| 14 | Рисование графика по path | P11 | 1 s, power2.out + маркер | strokeDashoffset 1→0 + MotionPath |
| 15 | «Дыхание» карточки (grow/relax) | P05 | 0.73 s / 0.65 s, power3.out, delay 3 кадра | to(card,{height:690,duration:.73,ease:'power3.out'}),
затем height:579 |
| 16 | Веер карточек (spread) | P05 | 0.9 s, power3.out, rotateY ±12°, размах 41→83% | боковые x:±.29W, rotateY:∓12, scale:.82,
perspective:1400px |
| 17 | Шаг карусели | P05 | 0.8 s + пауза 1.2 s, power3.inOut | центр scale:.82 rotateY:12, боковая → центр, период 2.0
s |
| 18 | Смысловая палитра (синий/красный) | P06 | кроссфейд 0.4 s | смена фона-ленты по блокам |
Ограничения замеров: P06/P11 не покадровые (контактный лист 2 кадра/с
+ detect), кривые у них оценены по плотным лентам, а не по трекингу; BPM
не снят; размеры шрифта ~.