Motion · Transition
White flash: logo simplifies
A colorful liquid-gradient wordmark holds with flowing light, then the frame flashes white and overexposes; a flat wordmark fades in on white and settles — one flash completes the downgrade to simplicity.
Source: video-shotcraft (Vincent Wei) ↗ · Apache-2.0 · Remotion composition (React/TSX) — preview video, no in-browser player
When to use
A brand passage's closing beat (ornate performance → clean formal identity); a transition beat where the mood shifts from showy flair to a formal statement
Intention
First give it full ornateness (a six-color liquid gradient flowing across the letterforms, soft light sweeping across), then a single white flash "purifies" it into a flat, three-color wordmark — the viewer reads "the performance is over, this is its formal identity." The downgrade is rhetorical: cutting from a sensory texture to a rational identity.
Duration & energy
- Duration: ~3.6s (108f@30fps; flowing light hold 0–1.2s · white flash 1.2–1.5s · flat settle 1.7–2.7s)
- Energy: Medium-high (one pulse-like accent, quiet on both sides)
Shot recipe (original Chinese — timing, easing, parameter table, known pitfalls)
意图
先给足华丽(六色液态渐变在字面上流动、柔光扫掠),再用一次白闪把它"净化"成扁平三色字标——观众读到的是"演出结束,这就是它的正式形象"。降维是修辞:从感性质感切到理性识别。
动效核心
- 液态层:六色渐变
background-size:320%,backgroundPosition = t*100%全程缓慢流动;一块 220×120 径向柔光(blur 6px + screen 混合)随 t 横移 ±30px 做高光扫掠 - 冲白 t=0.34–0.42(inQuad 加速冲入)白层盖满;同窗口给液态层一个
sin(π)脉冲:blur 0→5px + brightness 1→2.2——"过曝烧穿"的一帧 - 白层冲入后保持不退,后半场全程白底
- 扁平字标 t=0.48–0.74 淡入 + scale 0.96→1(outCubic),字色是三段线性渐变(
GRAD_A/B/C常量,可按项目替换) - 柔光层随冲白同步熄灭(
1-flashK),不残留在白底上
参数表
| 参数 | 典型值 | 调节手感 | |------|--------|----------| | 冲白窗口 | 0.34–0.42(inQuad) | 换算 0.29s@3.6s——冲白必须"快进慢不退";用 outQuad 会显得白光是飘进来的 | | 过曝脉冲 | blur 5px + brightness ×2.2,sin 包络 | 砍掉脉冲则冲白像纯剪辑;>8px blur 液态字彻底糊掉反而看不出"是它在烧" | | 扁平入场 | 0.48–0.74,scale 0.96→1 | 与冲白间隔 0.06 的白屏静默是呼吸位;缩太短观众来不及"清屏" | | 液态流速 | backgroundPosition t*100% | 拉长 dur 时流速自动变慢,静置段够 1s 以上流动感才可读 | | 字标字号 | 液态 62px / 扁平 58px | 扁平版略小一号是"落定收束"暗示;同号会读作换皮不换人 | | 渐变常量 | GRAD_A/B/C(块顶定义) | 换成项目品牌三色即完成收编;液态层六色一般保留(它是"演出"不是品牌) |
已知坑
- 白层是"冲入后保持",不是闪一下回黑——后半场底色即白色,若下一镜是暗场需另接转场,或复用本卡结尾白底直切
WORDMARK常量是占位字标(5 字母),换长词需同步缩字号与 letter-spacing,两层(液态/扁平)都要改- 冲白配 SFX 是必选项(impact/whoosh-bright 类),无声的白闪读作素材丢帧
- mix-blend-mode:screen 的柔光层在白底上不可见属预期,别在冲白后调它
参考实现
demos/transition/white-flash-logo-simplify-cut/ (WhiteFlashLogoSimplifyCut.tsx)
Reference implementation (Remotion)
- demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx — https://raw.githubusercontent.com/Vincentwei1021/video-shotcraft/main/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx
The component imports shared fixtures from demos/_fixtures and helpers from assets/lib in the repo; SKILL.md there documents the render workflow.
Everything on this page is also machine-readable. Point your agent at the JSON, or add the gimgs MCP server and ask it to search motion templates.
- Fetch the JSON — it holds the shot recipe (timing, easing, parameter table, pitfalls) and the full TSX source.
- Clone the video-shotcraft repo; the component imports shared fixtures from demos/_fixtures and helpers from assets/lib.
- Register the component as a <Composition> in a Remotion project and render with `npx remotion render`, or re-implement the recipe in your own engine.
curl -s https://gimgs.net/motion/white-flash-logo-simplify-cut.jsongit clone https://github.com/Vincentwei1021/video-shotcraft
# component: demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx
npx remotion render <CompositionId> out.mp4claude mcp add --transport http gimgs https://gimgs.net/mcp
# then: search_motion_templates / get_motion_template("white-flash-logo-simplify-cut")Prompt
Use the video-shotcraft shot recipe "White flash: logo simplifies" (Remotion composition, Apache-2.0) published on gimgs.net. Recipe JSON (prompt = timing/easing/parameter table/pitfalls, files = TSX source): https://gimgs.net/motion/white-flash-logo-simplify-cut.json Raw TSX: https://gimgs.net/motion/white-flash-logo-simplify-cut/template.html Repository: https://github.com/Vincentwei1021/video-shotcraft (component: demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx; imports demos/_fixtures and assets/lib) Spec: 1920x1080, 30 fps, 4.1s 1. Read the JSON and follow its "prompt" section (when to use, intention, parameter table, known pitfalls). 2. Adapt it for: <describe what you want>. 3. Either clone the repo, register the component as a <Composition> in a Remotion project and run npx remotion render <CompositionId> out.mp4 — or re-implement the recipe in your own engine (HTML/WAAPI works: keep the same timing and easing).
// ===== demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx =====
// white-flash-logo-simplify-cut — White Flash Simplify 冲白降维切换
// (motion-lab 定稿转原生 Remotion)
// 彩色液态质感词标(占位字标)静置后画面 0.2s 冲白(冲白瞬间叠一帧轻微
// blur 做过曝感),紧接扁平渐变版字标从白底淡入 + scale 0.96→1 定格。
// 一次闪白完成"液态质感→扁平字标"的降维切换。
// 设计坐标 480×270(DesignStage 等比放大),参数表数值以此坐标系标定。
import React from 'react';
import { DesignStage, E, lerp, seg, useT } from '../../_fixtures/Motion';
export const WHITE_FLASH_LOGO_SIMPLIFY_CUT_DURATION = 108; // 3600ms @30fps
// 该效果依赖的文件级共享量(扁平字标渐变三色 + 占位词标)
const GRAD_A = '#7b3df0';
const GRAD_B = '#5a6cf5';
const GRAD_C = '#22c4e8';
const WORDMARK = 'BRAND';
export const WhiteFlashLogoSimplifyCut: React.FC = () => {
const t = useT();
// 液态层:静置期缓慢流动的渐变 + 高光微移
const flow = t * 100;
// 冲白瞬间给彩色层一帧过曝 blur
const flashK = seg(t, 0.34, 0.42, E.inQuad);
const blurPulse = Math.sin(seg(t, 0.34, 0.46) * Math.PI);
// 扁平 logo:opacity 0→1 + scale 0.96→1,cubic ease-out
const lk = seg(t, 0.48, 0.74, E.outCubic);
return (
<DesignStage bg="#08070c">
<div style={{ position: 'absolute', inset: 0, background: '#08070c', overflow: 'hidden' }}>
{/* 彩色液态词层 */}
<div
style={{
position: 'absolute',
inset: 0,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
font: `900 62px/1 -apple-system,'Helvetica Neue',sans-serif`,
letterSpacing: 6,
background: 'linear-gradient(105deg,#ff5fa2 0%,#ff9d4d 22%,#ffe45c 38%,#4de3c1 58%,#4d9bff 76%,#a05cff 100%)',
backgroundSize: '320% 100%',
WebkitBackgroundClip: 'text',
backgroundClip: 'text',
color: 'transparent',
textShadow: 'none',
backgroundPosition: `${flow}% 0`,
filter: `blur(${blurPulse * 5}px) brightness(${1 + blurPulse * 1.2})`,
}}
>
{WORDMARK}
</div>
{/* 液态高光扫层(贴在字上方的柔光条) */}
<div
style={{
position: 'absolute',
left: '50%',
top: '50%',
width: 220,
height: 120,
margin: '-60px 0 0 -110px',
background: 'radial-gradient(closest-side,rgba(255,255,255,.28),transparent 70%)',
filter: 'blur(6px)',
mixBlendMode: 'screen',
pointerEvents: 'none',
transform: `translateX(${lerp(t, -30, 30)}px)`,
opacity: 1 - flashK,
}}
/>
{/* 白色全屏层:easeIn 冲入后保持 */}
<div style={{ position: 'absolute', inset: 0, background: '#fff', opacity: flashK }} />
{/* 扁平渐变字标层(渐变色见顶部 GRAD_*) */}
<div
style={{
position: 'absolute',
inset: 0,
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
opacity: lk,
transform: `scale(${lerp(lk, 0.96, 1)})`,
}}
>
<div
style={{
font: `800 58px/1 -apple-system,'Helvetica Neue',sans-serif`,
letterSpacing: 8,
background: `linear-gradient(92deg,${GRAD_A} 0%,${GRAD_B} 45%,${GRAD_C} 100%)`,
WebkitBackgroundClip: 'text',
backgroundClip: 'text',
color: 'transparent',
}}
>
{WORDMARK}
</div>
</div>
</div>
</DesignStage>
);
};
- Read the recipePrompt = when to use, intention, parameter table with typical values and how each one feels, known pitfalls. Treat values as calibrated starting points.
- Get the codetool: git
git clone https://github.com/Vincentwei1021/video-shotcraft && cd video-shotcraft && npm install - Register + rendertool: remotion
npx remotion render <CompositionId> out.mp4 # component: demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx - Or re-implementPort the timing/easing from the recipe to HTML + WAAPI (gimgs motion contract) or any engine; keep the same segment windows and easing.
| param | type | default | description |
|---|---|---|---|
| — | |||
More in this category

Geometric wipe transitions
Two geometric wipe transitions — clock-wipe, a radar-hand sweep changing the page, and blinds-slice, 12 vertical strips flipping in staggered waves.

Hidden-cut transitions
Three hidden-cut transitions — foreground occlusion invisible cut, versus-slam opener, and warm light-leak burn; the hard cut hides inside 1-3 frames of occlusion/impact/light peak, so the viewer never sees the scissors.

Travel-through transitions
Two travel-through transitions — shared-element homecoming and letter-cavity pass-through; the camera drills through a real element inside the frame to complete the scene change.

Glitch-tear strip cut
A tearing transition — glitch-displace noise tear (16 horizontal strips jitter out of alignment, cut mid-jitter), a strip-level tear with digital-glitch meaning.