Frontends com Vibecoding · Capítulo 13 de 35 · 27 min
Preparar imagens, ícones e vídeo para a web
Você sai com a esteira que prepara imagem, ícone e vídeo antes de publicar, com formato mais leve, licença conferida e som que só toca depois do toque.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding.
Toda imagem publicada decide três coisas de uma vez: o formato do arquivo, o preparo antes de subir e a licença que ela carrega. Formato é o jeito de guardar a foto, como escolher entre embalar num saco ou numa caixa, e ele muda quanto a foto pesa.
Ao terminar, você sabe descobrir quais imagens deixam a página do site lenta e o que pedir ao fornecedor: formato mais leve, tamanho certo para cada tela e peso máximo por arquivo. Tempo de leitura: cerca de 27 minutos, e a medição gratuita da sua página principal, mais 15.
Peça AVIF primeiro, WebP depois e JPEG por último, com a meta de ficar abaixo de 150 KB no tamanho em que a foto aparece. O AVIF descreve a mesma imagem com menos dados, o WebP é aceito há mais tempo e o JPEG é o piso que qualquer navegador abre.
A etiqueta picture oferece os três em ordem, e o navegador para no primeiro que reconhece. Assim o celular antigo recebe o JPEG e o novo recebe o AVIF, sem você manter duas páginas. Largura e altura declaradas reservam o espaço antes de o arquivo chegar, e o botão para de pular sob o dedo.
Três tipos fogem da regra. Ícone, desenho de linha e gráfico simples vão em vetor SVG, que não perde nitidez em nenhum tamanho. Captura de tela com letra pequena pede WebP sem perda, e foto com fundo transparente pede AVIF.
Ver como texto
Esquema da etiqueta picture com três fontes em ordem: primeiro AVIF, depois WebP, por último JPEG, o piso que qualquer navegador abre. Setas para baixo, marcadas não reconhece, levam de uma fonte à seguinte. O celular novo para no AVIF; o celular antigo desce até o JPEG. Embaixo, a meta: abaixo de 150 KB no tamanho em que a foto aparece, com largura e altura declaradas para reservar o espaço.
O preparo é a etapa que some do processo, porque nada quebra quando ela é pulada. A foto de 4,2 MB aparece na tela igual à de 96 KB, e quem desistiu de esperar no celular não deixa registro nenhum. Por isso o prejuízo é invisível até alguém medir.
A saída é tirar o preparo da memória de alguém e pôr num script que roda no build, a montagem final do site antes de publicar. O Sharp redimensiona, converte e gera a versão minúscula e borrada, uma vez por imagem, e o SVGO limpa o vetor.
Quem prefere tela em vez de script usa o Squoosh, que faz a mesma conversão no navegador. No Next.js, a base de código do curso, o next/image monta a cadeia inteira numa linha.
Ver como texto
A esteira da imagem em quatro etapas, com o peso caindo a cada uma. A foto original sai da câmera ou do modelo pesando alguns megabytes. O redimensionamento para a largura do espaço real corta a maior parte. A conversão para formato moderno corta de novo. A entrega com largura, altura, descrição e imagem provisória borrada fecha o caminho, sem o layout pular. Abaixo, o aviso de que a etapa do meio é a que some do processo, porque nada quebra quando ela é pulada.
A imagem de compartilhamento, a capa que o WhatsApp mostra ao lado do link, sai de um gerador, nunca de uma arte desenhada página a página. O Satori com @vercel/og transforma a marcação da própria página em imagem, no servidor mais perto de quem pediu o link.
Ele pesa 500 kB contra os 50 MB de um navegador completo, por isso cabe num servidor pequeno e custa quase nada por capa. Depois que o gerador está de pé, toda página nova ganha a capa sozinha, sem passar pelo designer.
Ampliar e recortar são dois trabalhos com ferramenta própria. Para ampliar foto real sem inventar detalhe, use o Topaz. Para acrescentar detalhe a uma arte estilizada, use o Magnific, que inventa de propósito e por isso fica longe da foto de produto.
A remoção de fundo roda dentro do navegador, então a foto do cliente nunca sai do aparelho dele. O transformers.js usa a placa de vídeo pelo navegador, com reserva no processador quando ela falta, e o MediaPipe separa a pessoa do fundo na câmera ao vivo.
Ver como texto
Três trabalhos de imagem, cada um com a sua ferramenta. Ampliar foto real: o Topaz aumenta o tamanho sem inventar detalhe. Acrescentar detalhe a arte estilizada: o Magnific inventa de propósito e por isso fica longe da foto de produto. Remover o fundo: o transformers.js roda dentro do navegador, e a foto do cliente não sai do aparelho dele.
Direito vem antes de gerar ou de baixar. Cada plataforma define quem detém a imagem gerada e se o uso comercial está liberado, e a regra muda entre OpenAI, Midjourney e Firefly. A Lei 9.610, de 1998, define autor como pessoa física e nada diz sobre obra feita por modelo.
Adote o C2PA na geração, o padrão que grava dentro do arquivo quem gerou a imagem, com qual ferramenta e o que foi editado depois. Ele aparece como Content Credentials, e conferir esse selo antes de publicar é o que te protege numa reclamação.
Banco gratuito e ilustração aberta seguem a mesma ordem de leitura: primeiro o CC0, que libera o uso sem crédito, depois a atribuição exigida. Por último vêm as proibições específicas de cada arquivo.
Modelo de imagem erra palavra escrita, e o erro piora em português, por isso ponha o texto por cima em HTML. A descrição alternativa segue uma regra: vazia na imagem que só enfeita e com o conteúdo real na que informa, jamais o nome do arquivo.
O PhotoSwipe abre a galeria com gesto de pinça e segue estável. O esqueleto de carregamento, o contorno cinza que ocupa o lugar da imagem antes de ela chegar, vem do react-content-loader. Ele substitui o círculo girando, porque a pessoa vê a forma do que vem e a tela não pula.
| Etapa | Ferramenta | Quando entra |
|---|---|---|
| Converter e redimensionar no build | Sharp (script) ou Squoosh (tela); SVGO para vetor | Toda imagem, uma vez, antes de publicar; meta abaixo de 150 KB no tamanho exibido |
| Capa de compartilhamento | Satori 1.0 com @vercel/og; resvg para PNG | Toda página com título próprio; 500 kB no edge contra 50 MB de um Chromium |
| Ampliar foto real | Topaz | Foto de produto e de pessoa, sem inventar detalhe |
| Acrescentar detalhe a arte | Magnific | Ilustração estilizada; nunca em foto que precisa ser fiel |
| Remover fundo no navegador | transformers.js com RMBG-1.4 ou ModNet (WebGPU, reserva Wasm); MediaPipe Image Segmenter | Foto que não pode sair do aparelho; pessoa ao vivo na câmera |
| Provar a origem | C2PA e Content Credentials | Toda imagem gerada por modelo, com o selo verificado antes de publicar |
| Galeria e espera | PhotoSwipe 5; react-content-loader ou react-loading-skeleton | Lightbox com pinça; esqueleto no lugar do círculo girando |
A licença de uso comercial se confere antes de gerar ou baixar, e o comprovante fica guardado.
Antes de publicar, abra a página no computador e vá na aba Rede das ferramentas do navegador, que lista tudo que desceu. Recarregue em modo celular e olhe a coluna de tamanho de cada imagem. É assim que se confere o peso de uma foto.
JPEG ou PNG puro acima de 150 KB é o sinal de que falta a etiqueta picture naquela imagem. Um script do Sharp no build entrega cada foto abaixo desse limite todo dia, sem ninguém precisar lembrar.
Depois teste a capa de compartilhamento mandando o link para você mesmo no WhatsApp. Liste a origem, a licença e o selo de cada imagem em uso, e marque em vermelho aquela que você não sabe responder de onde veio.
Pedir ícone e vídeo que não gastam banda de quem só olha
A esteira já entrega imagem leve com licença conferida, e ícone e vídeo entram pela mesma régua, sem cobrar banda de quem apenas olha a página.
Ícone, vídeo e som são os três arquivos que mais cobram internet de quem só olha a página, e cada um tem jeito de cobrar apenas o necessário. Banda é o quanto de dados o celular da pessoa precisa baixar, e no plano dela isso vira dinheiro e espera.
O ícone engorda o pacote sem ninguém perceber. Pedir cada desenho pelo nome deixa de fora o que a tela não usa, como comprar três frutas na feira. Pedir a coleção inteira de uma vez arrasta o catálogo completo para a conta de quem via só três desenhos.
A cor do ícone vem de currentColor, a palavra que faz o desenho herdar a cor do texto ao redor. Dentro do botão, o ícone escurece junto com o rótulo e acompanha a troca de tema. Cor fixa escrita dentro do desenho vira preto sobre preto no tema escuro.
Ver como texto
Em cima, dois pedidos de ícone. Pedido pelo nome: três desenhos entram no pacote, e a barra de peso é curta. Coleção inteira: o catálogo todo entra no pacote de quem via só três desenhos, e a barra de peso é longa. Embaixo, o mesmo botão Salvar em três situações: no tema claro e no tema escuro, o ícone pintado por currentColor acompanha a cor do texto; no tema escuro com cor fixa escrita no desenho, o ícone escuro some sobre o fundo escuro.
O vídeo é o arquivo mais pesado que a página serve, e quatro ajustes resolvem a primeira visita. O poster é a imagem parada que aparece antes do play, e ela é o que a maioria das visitas vê do seu vídeo.
Com preload em none, o arquivo não desce antes do toque, e o playsInline mantém o vídeo dentro da página no iPhone. O track aponta a legenda, um arquivo de texto com o tempo de cada fala.
Vídeo curto vale como arquivo próprio. Aula gravada pede plataforma de streaming, que ajusta a qualidade à internet de cada pessoa e evita travar no celular com sinal fraco.
Ver como texto
Antes e depois no vídeo da página inicial. Antes: sem imagem de espera e com o carregamento automático ligado, o navegador começa a baixar o arquivo assim que a página abre, e quem só queria ler o preço paga a banda de um vídeo que nunca assistiu. Depois: com uma imagem de espera leve e o carregamento desligado, a página baixa apenas essa imagem, e o vídeo começa a descer quando o dedo toca o botão de tocar. O quadro parado é o que a maioria das visitas vê, e por isso ele merece ser a única coisa que desce sozinha.
A regra da casa vale para toda página pública: nunca a etiqueta video crua, com os controles padrão do navegador. O player precisa de controle de velocidade, transcrição no HTML servido, que o buscador e o leitor de tela leem, e botão de compartilhar.
O Video.js juntou os times de Video.js, Plyr, Vidstack e Media Chrome numa versão só, ainda em teste. Enquanto ela não sai, o Vidstack e o hls.js sozinho são as opções estáveis para uma página no ar hoje.
Já o Vidstack traz HLS e DASH, os formatos de streaming que trocam a qualidade conforme a internet da pessoa, além de YouTube. O hls.js cuida só do streaming, e serve quando a interface já existe.
Som tem três bibliotecas e um padrão. O Howler.js pesa sete quilobytes, toca trilha e efeito com um chamado só e lida com o bloqueio de som automático do celular. O Tone.js sintetiza notas, o caso do instrumento na tela, e o wavesurfer.js desenha a onda em que a pessoa clica para pular.
O padrão combina Howler para a trilha e Tone só onde o som nasce na hora. Som nunca começa sozinho, porque a pessoa pode estar num lugar silencioso: ela aperta, e o botão mostra que está tocando.
| Biblioteca | O que cobre | Quando entra |
|---|---|---|
| Video.js v10 | player único de Video.js, Plyr, Vidstack e Media Chrome na Mux; beta de março de 2026, 81% menor, mínimo de 5 kB gzip | Projeto novo a partir da versão final, prevista para meados de 2026 |
| Vidstack | player com provedores HLS, DASH, YouTube e Remotion | Página pública hoje, com velocidade, transcrição e compartilhar |
| hls.js | só o streaming adaptativo, sem interface | Quando a interface já existe e falta só o HLS |
| Howler.js | trilha e efeito sonoro, 7 kB | Todo som de interface e trilha; o padrão |
| Tone.js | síntese e agendamento musical | Só na camada generativa, onde o som nasce na hora |
| wavesurfer.js | forma de onda interativa | Podcast e áudio longo em que a pessoa pula trechos |
Nunca a etiqueta video com controls crua em página pública; o som começa só depois do toque.
Um sinal simples diz que a conta está certa: com poster, preload none, playsInline e legenda dentro de um player completo, só o quadro parado desce. Se o arquivo de vídeo aparecer na lista de rede antes do clique, o preload ainda está ligado.
Vale o mesmo para o ícone e para o som. Ícone pedido pelo nome fica fora do pacote quando a tela não o usa, e pintado por currentColor continua visível no tema escuro. A trilha toca depois do toque, nunca sozinha.
Antes de publicar, desative o cache, que é a cópia guardada pelo navegador para não baixar tudo de novo, e recarregue a página mais visitada.
Confira na aba de rede quantos quilobytes desceram antes de qualquer toque no play. O critério de pronto é nenhum vídeo e nenhum áudio aparecerem na lista antes do clique. Todo player cru em página pública vira Vidstack ou hls.js, com velocidade, transcrição e compartilhar.
Guia prático: medir o peso que o template trouxe e converter antes de publicar
Template profissional chega bonito e pesado, e o peso não aparece no navegador do computador de quem aprova. Os 51 templates de site medidos em 07/10/2026 dão a dimensão:
| O que foi medido | Resultado |
|---|---|
| Fotos locais | 656 JPG somando 56 MB e 0 em WebP ou AVIF |
| Vídeos locais | 20 MP4 somando 35 MB |
| Topo em vídeo ligado à rolagem | 7 templates, vídeo de 1,9 a 6,0 MB |
| Topo em sequência de quadros | 5 templates, 121 JPG desenhados em canvas, cerca de 12 MB |
| Fotos do Unsplash por endereço externo | 112 endereços em 35 templates |
| Fotos no armazenamento da própria plataforma | 141 endereços em 19 templates |
| loading="lazy" | 10 dos 51 templates, num total de 222 imagens |
Num template de advocacia, o pacote final deu 5,0 MB, dos quais 3,4 MB eram o vídeo do topo. Os endereços externos têm outro risco: a foto mora no servidor de alguém. Se o arquivo no Unsplash mudar ou se o armazenamento da plataforma sair do ar, por fim de assinatura ou mudança de projeto, as 141 imagens dos 19 templates somem do seu site sem aviso.
A lição: antes de publicar, rode um passo de conversão que traz cada imagem para o projeto, no formato moderno e na largura em que aparece, e anote o peso antes e depois.
Prepare as imagens deste projeto para publicar. Não altere o layout.
1. Liste toda imagem e todo vídeo: endereço ou arquivo, peso, largura real
e largura em que aparece em 390 px e em 1440 px.
2. Baixe as imagens externas para [public/img/] e troque as referências.
3. Converta para AVIF e WebP, com JPEG de reserva, na largura exibida
(no máximo [1600] px), e sirva com <picture>, width e height.
4. Ponha loading="lazy" em toda imagem abaixo da primeira dobra;
a imagem principal do topo fica sem lazy.
5. Vídeo do topo: até [2] MB, sem áudio, com pôster. Acima de 5 MB,
o arquivo sai do repositório e vai para armazenamento de objetos.
6. Me entregue uma tabela com o peso total antes e depois, por tipo.Do template pesado à página que abre no 4G
Cinco passos para o dia em que você adapta um template ou recebe o pacote de fotos do cliente.
Passo 1: Meça o peso por tipo antes de mexer
Peça ao agente o peso da pasta pública separado em foto, vídeo, fonte e código, e o tamanho do pacote final depois do build. Esse é o número contra o qual você compara.
Deu certo quando: Você tem o peso total e o peso do topo anotados com a data.
Erro comum: Medir só o código e esquecer que o vídeo do topo é a maior parte do pacote.
Passo 2: Traga para casa o que mora fora
Procure endereços de imagem de outros domínios, de banco de fotos e de armazenamento de terceiros. Cada um vira arquivo do projeto, com licença conferida, ou sai.
Deu certo quando: A aba de rede do navegador mostra imagens só do seu domínio.
Erro comum: Manter a foto externa porque "sempre funcionou" e descobrir o buraco no dia em que o serviço muda.
Passo 3: Converta na largura em que a foto aparece
Use o pedido do bloco de código. Foto de cartão que aparece com 400 pixels não precisa de arquivo de 3.840. Cada imagem sai em AVIF e WebP, com JPEG de reserva.
Deu certo quando: Nenhuma imagem é servida com mais que o dobro da largura exibida.
Erro comum: Converter para WebP e manter a largura original, ganhando pouco.
Passo 4: Decida o topo pela conta, não pelo efeito
Topo com vídeo ligado à rolagem pede vídeo curto, sem áudio e com pôster; sequência de 121 quadros pede cerca de 12 MB. Se o público chega pelo celular na rua, considere uma foto boa com movimento leve.
Deu certo quando: O topo carrega dentro do orçamento de peso escrito no projeto.
Erro comum: Aceitar 12 MB de quadros porque o efeito impressionou na reunião.
Passo 5: Feche com lazy, dimensões e a tabela final
Imagem abaixo da dobra ganha loading="lazy"; toda imagem ganha width e height, que reservam o espaço e evitam o salto da página. Guarde a tabela de antes e depois no projeto.
Deu certo quando: A tabela mostra a queda de peso e a página não pula enquanto as fotos chegam.
Erro comum: Pôr lazy na foto principal do topo e atrasar justamente o que aparece primeiro.
No fim você tem: Imagens do seu domínio, no formato e na largura certos, com o peso antes e depois registrado e o vídeo pesado fora do repositório.
Dono de uma pousada em Paraty que adaptou um template de hotel com um agente
Turismo, reserva direta
Dor
O site abria devagar no celular de quem pesquisava na estrada, e metade das fotos dos quartos vinha de um banco de imagens externo, sem relação com a pousada.
Solução
Ele trocou as fotos externas pelas próprias, mandou o pedido de conversão e substituiu o vídeo de 5 MB do topo por uma foto da varanda com pôster leve e um vídeo curto só na seção da piscina.
Resultado do exemplo
A tabela de antes e depois mostrou o pacote muito menor, e todas as fotos passaram a ser da pousada, servidas do próprio domínio.
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
A imagem é quase sempre o arquivo mais pesado da página
Foto em PNG de 2 MB no topo da página atrasa tudo o que vem depois, e no celular com sinal fraco o visitante desiste antes de ver a oferta. Os formatos WebP e AVIF entregam a mesma foto com bem menos bytes, e as bases modernas, como o Next.js, já convertem e redimensionam sozinhas quando o componente certo é usado.

Ver como texto
Artigo Choose the right image format do web.dev, de Ilya Grigorik e Jeremy Wagner. O texto começa perguntando se a imagem é mesmo necessária, porque imagem costuma exigir muitos bytes em relação a HTML, CSS e JavaScript, e sugere efeitos de CSS, como sombras e degradês, no lugar de arquivos de imagem quando possível.

Ver como texto
Página Image Component da documentação do Next.js, versão 16.4.3, com o texto que diz que o componente estende o elemento img para otimização automática de imagens, um exemplo de código com src, width, height e alt, e o sumário de propriedades à direita, como sizes, quality, preload, loading e placeholder.

Ver como texto
Guia Image file type and format guide do MDN Web Docs, com o texto que promete ajudar a escolher o formato mais adequado para o site e o início da tabela Common image file types, com as colunas abreviação, formato, tipo MIME, extensão e resumo; a primeira linha é o APNG, cujo resumo cita AVIF e WebP como opções melhores.
| Tipo de imagem | Formato recomendado | Evite |
|---|---|---|
| Foto de produto ou pessoa | AVIF ou WebP, em mais de um tamanho | PNG e JPEG sem compressão |
| Logotipo, ícone, desenho de linhas | SVG | PNG ampliado, que perde nitidez |
| Imagem que muda com o tema claro ou escuro | Duas versões declaradas no CSS | Uma imagem só com fundo fixo |
Desde setembro de 2026 a função light-dark() aceita imagens e é Baseline Newly available, segundo o web.dev. Este portal adota o teto de 150 KB por imagem publicada.
Faça agora: ache as imagens que pesam na sua página
Passo 1: Abra pagespeed.web.dev e cole o endereço da página principal do site.
Deu certo quando: O relatório carrega com as abas Celular e Computador.
Passo 2: Fique na aba Celular e procure, no diagnóstico, o item sobre entrega ou tamanho de imagens.
Deu certo quando: Aparece uma lista de imagens com o tamanho atual e a economia possível.
Erro comum: Olhar só a nota geral e pular a lista.
Passo 3: Anote as três imagens com maior economia estimada.
Deu certo quando: Três endereços de imagem com o peso de cada uma.
Passo 4: Envie ao fornecedor o pedido: formato moderno, tamanho por tela e teto de peso por imagem.
Deu certo quando: O pedido vai com os três exemplos e o teto em KB.
No fim você tem: Uma lista das imagens mais pesadas com o pedido de correção, e uma regra de peso para todas as próximas.
Aplicar os recursos ao projeto
Ver como texto
A imagem muda de recorte com o espaço
A mesma paisagem ilustrativa é apresentada num formato amplo e num formato estreito. Os recortes preservam o assunto, e o pacote precisa incluir todos os candidatos usados pela página.
Ver como texto
Esteira do Sharp de cima para baixo. O original do catálogo fica guardado para um recorte futuro. O resize aplica o enquadramento combinado. Duas saídas são gravadas com toFile, cada uma com o nome da variante: uma em WebP e outra em JPEG. Por fim, a página escolhe a versão conforme o espaço em que a imagem vai aparecer.
Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Veja o que estudar antes e para onde seguir depois, explore os conceitos e compare abordagens em outros cursos. Sugestões marcadas como “sugerido pelo grafo” vêm dos assuntos em comum, não do índice do curso.
Estude antes
- CursoClaude Code: do zero à prática
- Next.js: organizar as páginas de um sitesugerido pelo grafoApresenta o conceito “Next.js”, usado em “Preparar imagens, ícones e vídeo para a web”.
- Como uma mudança chega ao clientesugerido pelo grafoApresenta o conceito “Vercel”, usado em “Preparar imagens, ícones e vídeo para a web”.
- CursoSíntese e didática com IAsugerido pelo grafoDepois de escolher a informação essencial e desenhar hierarquia, gráficos e fluxos compreensíveis, o aluno pode aplicar esses critérios às interfaces do curso de frontend. A ponte conecta clareza da mensagem, acessibilidade e decisões de apresentação.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- Astra profundoEditar uma imagem preservando as escolhas aprovadasExaminar conexões de Editar uma imagem preservando as escolhas aprovadas
- NotebookLM para criar conteúdoTransforme infográficos em carrosséis e cardsExaminar conexões de Transforme infográficos em carrosséis e cards
- MCP e Chrome: agentes de IA no navegadorQuando ler a estrutura da página e quando usar imagemExaminar conexões de Quando ler a estrutura da página e quando usar imagem
- Vídeo com IA: do roteiro à publicaçãoMonte cenas como páginas da web e aprove na prévia (HyperFrames)Examinar conexões de Monte cenas como páginas da web e aprove na prévia (HyperFrames)
Terminou a leitura?
Você está aqui: capítulo 13 de 35
0 de 35 concluídos
- Próximo · Capítulo 14 de 35 · 17 minConstruir profundidade e dirigir a montagem de vídeoLer o capítulo 14 sem concluir
Marque como concluído para o capítulo contar no seu painel e no certificado.
- Anterior · Capítulo 12 de 35 · 52 minProjetar movimento, assinatura e narrativas por rolagemVoltar para o capítulo 12
Leve uma ideia para a prática
Escolha uma atividade no painel e volte a este curso quando quiser.
Atividades e evolução ficam reunidas no painel da sua conta.
Laboratórios ao vivo deste curso
Cada laboratório monta a biblioteca real dentro da aula, com controles para você mexer e o código do exemplo para copiar. O texto de reserva descreve a demonstração para quem lê sem JavaScript. O link abre o capítulo já no ponto do laboratório.
Base UI
Prenda o foco num diálogo sem escrever o comportamento
Abra a janela Agendar visita, percorra os campos com Tab, feche com Esc e acompanhe no painel onde o foco está e para onde ele volta.
Pacote
Abrir no capítuloConstruir componentes, usar o registro e publicar o catálogo@base-ui/reactLucide e Iconify
Mantenha uma família de ícones coerente e nomeie cada botão
Mude tamanho, traço e cor da barra, veja o símbolo do Iconify acompanhar o Lucide e rode a auditoria de nomes acessíveis.
Pacote
Abrir no capítuloProjetar uma linguagem de ícones e ilustraçãolucide-react, @iconify/reactMotion
Testar os três sinais que autorizam o terceiro degrau
Reproduza a entrada em sequência, aperte o botão com mola e arraste o cartão; ajuste rigidez e amortecimento e veja o que muda.
Pacote
Abrir no capítuloProjetar movimento, assinatura e narrativas por rolagemmotionVidstack
Ver o que separa um player de um vídeo cru
Dê o play, troque a velocidade e ligue a legenda; o painel ao lado mostra o estado que o player publica e que a etiqueta crua esconde.
Pacote
Abrir no capítuloProjetar movimento, assinatura e narrativas por rolagem@vidstack/reactcmdk
Achar um destino entre quarenta digitando três letras
Abra a paleta, digite fat e escolha um item só pelo teclado; o painel embaixo conta o que o filtro deixou passar e quanto tempo levou.
Pacote
Abrir no capítuloConstruir formulários e estados de interaçãocmdknumber-flow
Animar indicadores que mudam ao vivo com formato pt-BR
Veja três indicadores fictícios rolarem a cada troca e compare com o número em texto puro. Pause, reinicie e observe o separador de milhar.
Pacote
Abrir no capítuloProjetar gráficos e painéis pela decisão@number-flow/reactApache ECharts
Medir o custo de desenhar 200 mil pontos com o ECharts
Troque o tipo de gráfico e o volume de pontos, leia o tempo de desenho e alterne o eixo em zero. Mude o tema do site e veja as cores refazerem.
Pacote
Abrir no capítuloProjetar gráficos e painéis pela decisãoechartsApache ECharts
Painel grande com visões coordenadas
Clique num canal para filtrar todas as visões, troque a densidade entre 6, 9 e 12 visões, alterne tema e movimento e abra a tela cheia.
Pacote
Abrir no capítuloProjetar gráficos e painéis pela decisãoechartssharp e svgo
Escolher a variante certa da imagem e conferir o teto de 150 KB
Arraste a largura da tela simulada, troque a densidade entre 1x e 2x e veja qual arquivo o navegador escolhe, quanto ele pesa e se cabe no orçamento.
Pacote
Abrir no capítuloValidar desempenho, autenticação e segurançasharp, svgoReact Flow (xyflow)
Disparar um pedido e ver o orquestrador distribuir, conferir e responder
Alterne paralelo e sequencial, ligue e desligue a verificação e use a medição real; observe o tempo de parede em cada combinação.
Pacote
Abrir no capítuloConstruir as cenas do orquestrador, do paralelismo e do robô@xyflow/reactGSAP, Web Workers e number-flow
Dividir mil tarefas entre trabalhadores reais e correr três ritmos de geração
Execute com um trabalhador, depois com quatro e oito, e compare o tempo; em seguida percorra a corrida e separe a espera inicial do ritmo.
Pacote
Abrir no capítuloConstruir as cenas do orquestrador, do paralelismo e do robôgsap, @number-flow/reactThree.js com React Three Fiber, drei, Rapier e XR
Carregar o braço robótico, ver a física trabalhar e entrar na cena com o visor
Carregue a cena pelo botão, inicie o ciclo, mostre os ângulos das juntas, troque a câmera e a velocidade; com visor, entre em realidade virtual.
Pacote
Abrir no capítuloConstruir as cenas do orquestrador, do paralelismo e do robôthree, @react-three/fiber, @react-three/drei, @react-three/rapier, @react-three/xrMotion
Ver quatro agentes em raias trocando mensagens e a revisão devolvendo um trecho
Reproduza os 60 s de modelo, percorra o tempo pelo controle e esconda as mensagens para comparar a leitura; repare no tempo de parede contra a soma.
Pacote
Abrir no capítuloEspecificar, medir e produzir as cenas da máquinamotionMediaRecorder, Canvas 2D e Long Animation Frames (plataforma)
Medir o quadro da cena e gravar seis segundos dela em vídeo
Suba as partículas, force um bloqueio de 300 ms e leia o medidor; depois grave seis segundos, veja o codec escolhido e baixe o arquivo.
Pacote
Abrir no capítuloEspecificar, medir e produzir as cenas da máquinasem pacotesigma.js, graphology com ForceAtlas2 e cosmos.gl
Ver o grafo real do curso e um grafo de milhares de nós se organizarem em aglomerados
Rode o layout no grafo real, passe o mouse pelos nós e busque uma entidade; troque para 20 mil nós e leia o medidor; depois carregue o modo massivo na placa de vídeo.
Pacote
Abrir no capítuloAnimar um grafo de conhecimento amplo em movimentosigma, graphology, graphology-layout-forceatlas2, graphology-generators, @cosmos.gl/graph
Capítulos vizinhos em Frontends com Vibecoding
- 11Adaptar o layout ao celular e ao contêiner
- 12Projetar movimento, assinatura e narrativas por rolagem
- 13Preparar imagens, ícones e vídeo para a web
- 14Construir profundidade e dirigir a montagem de vídeo
- 15Construir formulários e estados de interação