Refiz meu portfólio pra ele chamar menos atenção
Queria sair do padrão ultraprodução e deixar os produtos aparecerem. Sobre uma ideia de Emil Kowalski que eu carrego faz tempo.
Acompanho o trabalho de Emil Kowalski faz um bom tempo. Ele é design engineer no Linear, passou pelo time de design da Vercel e escreveu o Sonner e o Vaul, o toast que aparece no canto da tela e a gaveta que sobe no celular. Juntos passam de 50 milhões de downloads por semana no npm.
Ele também escreve, e escreve bem. Textos curtos sobre a parte da interface que ninguém consegue colocar num ticket: como uma coisa parece, como ela reage, por que um botão te dá vontade de clicar de novo.
Voltei a pensar nele agora, construindo este portfólio do zero.
O padrão que eu queria evitar
Tem um jeito de fazer portfólio que virou padrão: ultraprodução. Scroll que dispara efeito, número que sobe sozinho, transição entre seção, cursor customizado. É bonito e dá trabalho. Só que no fim o portfólio vira o produto. Você lembra do site, não do que a pessoa construiu.
Eu não queria isso. Queria que os produtos aparecessem: o app de flashcards, o site do festival, as coisas que eu faço de verdade no dia a dia. O site é a moldura, não o quadro.
O problema é que "menos" é mais difícil de decidir do que parece. Foi aí que um texto de Emil me ajudou.
A ideia
O texto chama You Don't Need Animations, e o argumento é mais ou menos assim: animação não é enfeite, é comunicação. Se ela não está explicando nada, ela só está te fazendo esperar.
Parece óbvio escrito desse jeito. Não é, não. Porque a gente não testa animação do jeito que as pessoas usam. Quando eu decido uma transição, eu abro, fecho, abro de novo, acho bonitinho e sigo a vida. Nesse teste, quase tudo passa. 240ms com uma curva macia é gostoso. Uma vez.
Só que ninguém usa nada uma vez.
Animação não custa por vez que acontece. Custa por vez que acontece vezes quantas vezes acontece. Trezentos milissegundos numa tela que a pessoa abre uma vez por mês? Manda ver. Os mesmos trezentos num gesto repetido oitenta vezes seguidas viram vinte e quatro segundos de espera, picados em pedaços pequenos demais pra alguém reclamar. Ninguém abre chamado dizendo "sua transição está lenta". A pessoa só acha o app pesado e não sabe explicar por quê.
Onde eu escolhi gastar
Aí vem a parte que parece contradição: tem uma coisa lenta neste site.
A home tem um campo de pixels que reage ao mouse. 650ms depois que você passa o cursor, o brilho do rastro ainda está em um terço do que era. Lentíssimo pra padrão de interface.
Ele pode ser lento porque acontece uma vez, logo na primeira tela, e não está na frente de nada. Mas "pode ser lento" não é "vale tudo": trava em 24 fps, congela no celular e perde opacidade perto de texto pra não brigar com a leitura. Escolhi um lugar pra ter graça e cuidei pra ele não atrapalhar o resto.
E o resto é rápido. Todo hover do site dura 150ms, porque hover é a coisa que mais acontece por aqui.
O que ficou
Hoje, antes de escrever transition, eu escrevo um número: quantas vezes isso vai
acontecer? Uma ou duas, pode ter graça. Umas vinte, só o suficiente pra explicar.
Cinquenta ou mais, quase invisível.
A parte chata é que isso não aparece. Interface sem animação parece menos trabalhada quando você olha o commit. Ninguém elogia o que não se mexe. Mas era exatamente o que eu queria daqui: sair da vitrine e deixar os produtos falarem.
Enfim, vai ler o site de Emil. É melhor que isto aqui.
Gabriel Souza