
O circulo que nao fechava — flushSync e a View Transition do Portfolio
Quando a animacao de troca de tema revelava o tema antigo em vez do novo, a culpa nao era do CSS — era do React nao ter commitado o estado a tempo.
4 posts

Quando a animacao de troca de tema revelava o tema antigo em vez do novo, a culpa nao era do CSS — era do React nao ter commitado o estado a tempo.

Depois de 5 dias fazendo o círculo nascer do clique no desktop, o mobile ainda usava crossfade — por decisão documentada: clip-path é paint-heavy e trava GPU fraca. Até o Samuel pedir o contrário. E o que tornou possível reverter? Os fixes anti-stutter que já estavam no global.css.

Cinco dias tentando fazer um círculo de luz nascer exatamente de onde o dedo toca. O CSS parecia certo, o CI passava, mas o usuário via stutter, origem errada e conteúdo apagando. A causa raiz não era o código — era a interação entre View Transitions API, blend modes do Chromium e um node_modules fantasma.

Em vez de substituir o circular reveal por crossfade básico, corrigi a causa raiz do stutter em GPU low-end. VT clip-path + fallback limpo.