Frontends com Vibecoding · Capítulo 30 de 33 · 24 min
Produzir apresentações e PDF com critérios de entrega
Você escolhe entre Slidev, Marp, Astro e HTML puro pelo destino do documento, e tira a geração do PDF do caminho da requisição, com prova de conformidade.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding.
Um número corrigido uma vez sai certo na página, no PDF e no slide, desde que os três nasçam do mesmo texto. Esse texto fica guardado no git, o caderno de versões que registra cada alteração do projeto.
Feito à mão, o mesmo número pede três correções separadas, uma por formato, e é aí que uma delas escapa. Quem monta proposta, relatório mensal ou aula com frequência ganha tempo escolhendo a ferramenta pelo destino do documento.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Para o deck feito uma vez só, essa economia quase não aparece, porque ela nasce da segunda correção em diante. Quando o material volta todo mês, o ganho se acumula.
Entre as duas ferramentas de deck, o destino decide. Use o Slidev quando quiser mostrar código rodando ou deixar a apresentação num endereço na internet, porque ele também gera site. Troque pelo Marp quando o destino for só o arquivo, porque ele exporta PDF e PowerPoint num comando.
O relatório sobe um degrau porque ele volta todo trimestre. O Astro, um gerador que entrega a página já pronta em HTML e só carrega programação onde ela é necessária, é a escolha para relatório e microsite. Ele hospeda a fonte no próprio site e já traz a lista do que a página aceita carregar de fora.
Confira a versão corrente do Astro antes de instalar, porque a linha estável muda de mês em mês. A armadilha é outra: carregar um framework inteiro, isto é, toda a estrutura que organiza um site grande, para uma página que muda quatro vezes ao ano.
Quando o arquivo viaja por e-mail e precisa abrir daqui a cinco anos, o caminho é o relatório em HTML puro, sem nada para atualizar depois. O board mensal fechado segue a mesma linha, com gráfico desenhado na própria página e CSS de impressão.
O documento pelo destino: a ferramenta certa para cada saída da web
| Documento | Ferramenta | Escolha quando | Armadilha |
|---|---|---|---|
| Deck com código rodando ou página hospedada | Slidev | você apresenta código ou quer o deck num endereço | colar o parágrafo inteiro no slide |
| Deck que vira só arquivo | Marp | o destino é PDF ou PowerPoint, sem página | entregar PowerPoint achando que o texto segue selecionável |
| Relatório estático premium ou investor update | Astro 6 com MDX | conteúdo trimestral com fonte própria e publicação em Cloudflare Workers | carregar framework inteiro para página que quase não muda |
| Relatório único auditável e offline; board mensal fechado | HTML puro com ES Modules e CSS de impressão | o arquivo viaja por e-mail e precisa abrir daqui a anos | chamar fonte ou gráfico de servidor externo |
| E-mail de produto próprio | React Email | o mesmo time do site cuida do e-mail | testar só no Gmail e esquecer o Outlook |
| E-mail de agência multi-cliente | MJML | dezenas de marcas e o Outlook na lista | ignorar o modo escuro |
| E-mail de quem já pensa em Tailwind | Maizzle | o time escreve classes utilitárias | classe sem equivalente inline no Outlook |
| Tema de cor e fonte para deck, documento ou landing | theme-factory, dez temas prontos | você quer paleta e fonte em minutos, com showcase antes de escolher | deixar o tema decidir a hierarquia do briefing |
Deck, relatório e e-mail têm destinos diferentes, e a ferramenta segue o destino do documento.
Para o board, cartão e tabela de variação em HTML e CSS comuns costumam vencer o gráfico cheio de filtros. O conselheiro quer o número, a variação e a origem do dado em dois cliques, sem arrastar nada.
Dois ajustes de tipografia sustentam essa leitura. O primeiro é clamp(), uma regra que faz o texto crescer com a tela entre um piso e um teto, e evita título gigante no celular.
O segundo é o algarismo de largura fixa, que alinha a coluna de números: sem ele o 1 é mais estreito que o 8 e a coluna dança.
Por fim, o equilíbrio automático da quebra de linha do título já funciona na maioria dos navegadores e serve bem a texto curto. O mesmo ajuste para o corpo do texto ainda falta em parte deles, então trate-o como bônus: onde não existir, o texto quebra do jeito de sempre.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
/* título que cresce com a tela, entre 28px e 56px */
h1 { font-size: clamp(1.75rem, 1rem + 3vw, 3.5rem); }
/* coluna de número: algarismos de largura igual */
td.numero, .scorecard strong { font-variant-numeric: tabular-nums; }
/* título sem linha órfã; corpo sem palavra solta no fim */
h1, h2 { text-wrap: balance; }
p { text-wrap: pretty; }O tema de cor e de fonte tem atalho pronto. A skill theme-factory, que é um pacote de instruções carregado pelo agente, traz dez temas com paleta e par de fontes já escolhidos.
Antes de você decidir, o agente mostra os temas num PDF; depois aplica o escolhido ao deck, ao documento ou à página. Se nenhum servir, ele monta um tema novo a partir de uma descrição sua.
Nenhum tema pronto substitui a direção do briefing. Ele resolve cor e fonte; a hierarquia da informação, o tom e o que fica de fora do slide continuam sendo decisão sua. Um tema chamado Midnight Galaxy num balancete para o conselho fiscal fica bonito e errado.
O slide é lido de longe, numa sala com a luz acesa, e três regras decidem se ele se lê. A primeira é contraste: letra escura sobre fundo sólido, no nível AA, que é o piso de diferença entre letra e fundo, sem gradiente atrás do texto.
A segunda é tamanho: corpo a partir de 24px na tela e 36px projetado, títulos de 48 a 72px. A terceira é foco: uma ideia por slide, no máximo cinco tópicos, e trecho de código com mais de seis linhas vira dois slides.
O defeito que mais reprova é o contraste, porque título sobre foto sem camada sólida some na projeção.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O e-mail é o documento mais hostil que sai da web, porque Gmail, Outlook e modo escuro ignoram metade do CSS moderno. Sem ferramenta, o plano B é tabela HTML, fonte do sistema e fundo sólido nos dois modos de cor.
React Email serve quem tem produto próprio, porque o time do site reaproveita os mesmos blocos. A agência com dezenas de marcas fica com MJML, cujas marcações viram tabela e aguentam o Outlook.
Quem já escreve o site com Tailwind, a biblioteca de classes prontas de estilo, usa Maizzle. A armadilha das três é testar só no Gmail claro.
Numa clínica com três sócios, o relatório mensal era refeito à mão todo início de mês. Virou uma página em HTML com CSS de impressão e algarismos alinhados na coluna de receita. O e-mail de confirmação, que sumia no modo escuro do celular, foi para o React Email com fundo sólido nos dois modos.

Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Instale a theme-factory antes de escolher o tema, com npx skills add https://github.com/anthropics/skills --skill theme-factory. Peça o mostruário dos dez temas ao agente e escreva o briefing antes de aplicar um deles.
Depois revise cada slide pelas três regras: fundo sólido, corpo a partir de 24px, uma ideia por slide. Exporte com npx slidev export e escolha PDF para quem precisa copiar o texto, porque no PowerPoint o texto vira imagem.
Gerar o PDF com prova de conformidade sem travar o site
O deck escrito como texto resolve o site e o slide, e o arquivo que circula por e-mail ainda pede gerador de PDF com prova de conformidade e fila própria.
Um PDF gerado pelo site é produto entregue, com prova a cumprir e risco de operação a controlar. Gerar o arquivo no meio da requisição derruba o portal justo no dia de maior procura. Requisição é o pedido que o navegador faz ao servidor enquanto o cliente espera na tela.
Quem manda relatório, balancete ou proposta em PDF a partir de uma página escolhe a ferramenta pela prova que ela entrega. São três provas diferentes, e confundi-las é o erro que custa caro depois.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Duas normas respondem a duas perguntas diferentes. PDF/UA-1 garante que um leitor de tela consiga ler o arquivo, com título, tabela e ordem de leitura marcados. PDF/A-2a garante que o arquivo abra daqui a dez anos, porque a fonte vai embarcada dentro dele.
O Typst, um compositor de documentos que monta a página a partir de texto escrito, entrega as duas normas no mesmo arquivo. Quando o resultado não cumpre a norma, ele acusa o erro em vez de gerar um PDF que só parece conforme.
Escolha o Typst quando o relatório precisa provar acessibilidade e arquivamento juntos. A armadilha é esperar que ele copie a tela pixel a pixel, porque ele compõe a página pelo texto, e o gráfico entra como imagem exportada.
Quando o relatório precisa sair idêntico à tela, com gráfico desenhado pelo navegador, o caminho é o Playwright ou o Puppeteer. São robôs que abrem a página num navegador de verdade e mandam imprimir.
Duas travas mudam o resultado. Fixe a versão do navegador na esteira que testa e publica, porque atualização de motor muda paginação e fonte sem avisar. E dispare a impressão só depois de um sinal explícito de que a página terminou de montar, porque o aviso padrão chega antes do gráfico.
Gotenberg e IronPDF vendem esse mesmo modelo como serviço. Você manda o HTML por uma API, que é a porta por onde um sistema pede algo a outro, e recebe o arquivo pronto. Ninguém precisa manter navegador no servidor.
Ferramenta, quando e a prova que entrega
| Ferramenta | Quando | Prova que entrega |
|---|---|---|
| Typst 0.15 | relatório que precisa provar acessibilidade e arquivamento no mesmo arquivo | PDF/UA-1 e PDF/A-2a juntos, com erro explícito na não conformidade |
| Playwright ou Puppeteer | relatório idêntico à tela, com SVG ou Canvas; Chromium fixado em versão e marcador de estado estável | fidelidade ao que a tela mostra; norma só com validador externo |
| Gotenberg ou IronPDF | o mesmo modelo de navegador como serviço, sem manter Chromium | a mesma fidelidade, com a operação terceirizada |
| WeasyPrint 69 | HTML de terceiro em Python; a versão 69 é obrigatória pela CVE-2026-49452 | --output-intent com perfil ICC para gráfica |
| PrinceXML 16.2, PDFreactor, Antenna House | editorial e PDF/A comercial; PDFreactor com ECMAScript 2025 via GraalJS e ZUGFeRD | PDF/A e fatura eletrônica embutida, com suporte contratual |
| paged.js | protótipo de CSS Paged Media sem custo | nenhuma para produção: transição de mantenedores e quebras anunciadas |
| jsPDF 4.2.1 e pdfMake 0.3.11 | recibo de uma página gerado no navegador | só a versão corrigida: path traversal no jsPDF e setUrlAccessPolicy() no pdfMake |
| skill pdf (anthropics/skills) | ler, preencher e montar PDF em Python pelo agente | a caixa de ferramentas oficial, source-available |
A prova que a ferramenta entrega decide a escolha; fidelidade à tela e conformidade com norma são provas diferentes.
Quem transforma em PDF um HTML que veio de fora precisa do WeasyPrint 69, a versão que corrige a falha de segurança catalogada em 2026. Isso vale para o arquivo enviado por cliente ou colado de outro sistema. Essa versão também exporta com o perfil de cor que a gráfica pede.
PrinceXML, PDFreactor e Antenna House são a linha paga para editorial e conformidade, com suporte contratual e fatura eletrônica embutida no arquivo. Pague por elas quando o volume editorial e a responsabilidade pelo prazo justificarem a licença.
O paged.js é a opção gratuita da mesma família, e está trocando de mantenedores com quebras de compatibilidade já anunciadas. Use no protótipo e troque antes de publicar.
No navegador, o jsPDF e o pdfMake montam o recibo de uma página sem passar pelo servidor. As versões recentes de cada um corrigem falhas que deixavam o código ler arquivo fora da pasta permitida ou buscar recurso de endereço escolhido por um atacante.
Atualizar as duas é segurança, e não capricho. Elas resolvem o recibo simples; relatório que precisa provar norma volta para o Typst ou para o navegador com versão fixada.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
A escala tem uma regra só: nunca gere PDF na hora, dentro do servidor de produção, porque o dia de pico trava o site inteiro. O pedido entra numa fila e um trabalhador separado produz o arquivo.
Quando a fila cresce, sobem mais trabalhadores, e um conjunto de navegadores já abertos atende os pedidos em vez de abrir um navegador por vez. Dois cuidados fecham a esteira: rode o navegador isolado da rede interna e limpe o HTML recebido antes de imprimir.
Nos dois caminhos, a fonte fica hospedada no seu servidor e embarcada no arquivo. Buscar a fonte no Google durante a geração entrega o endereço de rede de quem gera, e uma sentença em Munique tratou esse endereço como dado pessoal.
Para ler, preencher e montar PDF dentro do fluxo do agente, existe a skill pdf do repositório anthropics/skills, uma caixa de ferramentas em Python já pronta.
Instale com npx skills add https://github.com/anthropics/skills --skill pdf e peça ao agente para extrair a tabela do balancete antigo antes de compor o novo.
Laboratório ao vivo: a página que vira PDF
1. A página impressa antes do PDF
Balancete mensal
Resultado do mês e comparação com o anterior
Palavras compridas como responsabilidade e demonstrativo se separam por sílaba nesta coluna estreita.
02/09/2026
Balancete mensal
| Receita | 18.400,00 |
|---|---|
| Custo | 9.115,50 |
| Saldo | 9.284,50 |
não quebra entre páginas
cenário ilustrativo
02/09/2026
Balancete mensal
PDF/UA-1PDF/A-2a
fonte embarcada, sem chamada remota
02/09/2026
arraste o trilho para o lado e veja as três páginas
Suporte: text-wrap pretty no Safari 26; contador de página, separação por sílaba e bloco que não quebra valem em navegador atual. Sem esses recursos as três páginas continuam inteiras, só com a quebra de linha menos caprichada. Ao imprimir esta aula, a mesma marcação vira três páginas de papel.
2. A esteira que não trava o servidor
1
HTML pronto e sanitizado
2
marcador de estado estável
3
fila assíncrona
nunca no caminho da requisição
4
navegador fixado em versão
5
validação PDF/UA-1
Suporte: a esteira é HTML e CSS comuns, sem recurso novo de navegador. Em tela estreita as cinco etapas empilham na ordem, e a seta fica fora do leitor de tela porque é decorativa.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O critério é sempre o dia de pico. Num escritório de contabilidade, o balancete saía em PDF pelo portal e cada download abria um navegador na hora, o que travava o sistema todo dia 5. Com a fila, o arquivo já está pronto quando o cliente clica, e o selo de acessibilidade foi conferido na véspera.
Antes de publicar, decida com o agente qual das três provas o seu PDF precisa entregar. São três: conformidade com norma, fidelidade ao que a tela mostra ou recibo simples de uma página.
A resposta escolhe entre Typst, navegador com versão fixada e jsPDF atualizado. Ela também decide se a fonte vai embarcada e se o navegador roda isolado, longe da rede interna da empresa.
Guia prático: a aula como slides web, com vídeo que toca com som
A edição de vídeo estudada em 07/10/2026 é, por dentro, uma página web. Cada bloco tem início e duração em atributos de dados, uma única linha do tempo pausada controla toda a animação, e o render abre essa página e grava quadro a quadro. No caso real, um vídeo de 11 minutos com 191 cortes e 36 efeitos gráficos saiu de uma página assim. O mesmo motor, HTML com linha do tempo, serve para a apresentação: em vez de gravar a linha do tempo inteira, você para em cada slide e avança pela seta.
O HyperFrames tem esse fluxo na skill de slideshow, conferida na documentação pública do repositório. O deck é servido, e não renderizado: o comando present abre a apresentação, e a tecla P abre a aba da plateia em tela cheia. A aba original vira o modo apresentador, com o slide atual, a prévia do próximo, as notas e o cronômetro, as duas sincronizadas. Setas, espaço e retrocesso navegam; dentro de um slide, os fragmentos são pontos de parada na linha do tempo. A própria documentação avisa: não renderize o deck como MP4, porque cada slide é uma composição separada e o arquivo sai cortado.
O vídeo com som exige um cuidado. O navegador só deixa tocar com áudio depois de uma interação da pessoa na página: clique, toque ou tecla. Por isso o vídeo do slide começa por um clique do apresentador, e não sozinho. No deck do HyperFrames, a mídia da aba da plateia começa sem som pela mesma regra, e sair do slide para a mídia dele.
Monte a aula [TEMA] como deck web navegável, a partir do roteiro [ARQUIVO].
Um slide por ideia, corpo a partir de 24 px, fundo sólido atrás do texto.
Navegação: setas e espaço avançam e voltam; dentro do slide,
cada tópico entra num ponto de parada, sem animação contínua.
Notas do apresentador em cada slide, fora da tela da plateia.
No slide [NÚMERO], o vídeo [ARQUIVO DO VÍDEO]:
- mostra o pôster parado até eu clicar;
- toca com som no clique, com legenda ligada;
- para quando eu saio do slide.
Se o navegador recusar o som, mostre um botão "Tocar com som".
Use as fontes e cores do DESIGN.md. Não gere MP4 do deck.Da aula em texto ao deck que você apresenta pelo navegador
Cinco passos para a próxima aula, palestra ou reunião de resultado.
Passo 1: Escreva o roteiro antes do slide
Uma linha por ideia, na ordem em que você fala, com a nota do que dizer ao lado. O slide sai do roteiro, e não o contrário.
Deu certo quando: Cada slide planejado tem uma ideia e uma nota.
Erro comum: Começar pelo visual e encaixar o conteúdo depois.
Passo 2: Troque animação contínua por pontos de parada
Cada tópico entra quando você aperta a seta. Você controla o ritmo da fala, e ninguém lê o terceiro tópico enquanto você explica o primeiro.
Deu certo quando: Nenhum elemento entra sozinho; tudo espera o seu comando.
Erro comum: Deixar a lista inteira aparecer com atraso automático e ficar correndo atrás dela.
Passo 3: Prepare o vídeo para tocar no clique
Pôster parado, som só depois do seu clique, legenda ligada e plano B com botão se o navegador recusar. Teste no navegador e no computador da apresentação.
Deu certo quando: No ensaio, o vídeo toca com som no primeiro clique e para ao trocar de slide.
Erro comum: Contar com reprodução automática com som e descobrir na sala que o vídeo começou mudo.
Passo 4: Ensaie no modo apresentador
Abra a aba da plateia na tela do projetor e fique com as notas, a prévia e o cronômetro na sua. Faça a aula inteira uma vez cronometrada.
Deu certo quando: Você termina no tempo previsto, olhando só a sua tela.
Erro comum: Ensaiar só passando os slides, sem as notas e sem relógio.
Passo 5: Leve o deck para fora da sala
Para quem não assistiu, publique o deck no endereço do curso ou exporte imagens por slide. Vídeo linear da aula é outra peça, renderizada a partir do roteiro, e não do deck.
Deu certo quando: O deck abre no celular do aluno e cada slide se lê sem a sua fala.
Erro comum: Gerar MP4 do deck e enviar um arquivo cortado no primeiro slide.
No fim você tem: Uma aula em slides web com navegação por teclado, notas de apresentador e vídeo que toca com som quando você manda.
Aplicar os recursos ao projeto
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
CSS de impressão diz como a página muda quando vira papel ou PDF. O papel tem folhas e margens; a tela tem rolagem e botões. Separar as regras evita imprimir menu fixo, cortar conteúdo na borda e gastar tinta com fundo colorido que não ajuda ninguém.
Dentro de @media print, esconda navegação e botões, tire posicionamento fixo e deixe o texto ocupar a largura. Declare @page com size: A4 e margin: 18mm. Use break-inside: avoid em figuras pequenas e thead para repetir o cabeçalho da tabela. Dispare a impressão com window.print() ou pelo menu do navegador.
Olhe todas as páginas da prévia, principalmente tabelas longas e títulos perto da quebra. Bloco maior que a folha não fica inteiro só porque recebeu break-inside. Confira fontes carregadas, links e contraste sem o fundo colorido. O resultado muda de motor para motor; valide no gerador que fará o PDF final.
Paged.js monta uma versão paginada do seu HTML e do seu CSS, com margem, numeração e quebra de página sob controle. Ele trabalha na diagramação do documento. Atende relatório e livro curto que precisam de regras mais finas do que a impressão direta do navegador oferece sozinha.
Monte o documento com as seções e carregue uma cópia local do polyfill de Paged.js, o script que ensina paginação ao navegador. Declare @page no tamanho A4 e uma caixa @bottom-center cujo content use counter(page), o contador de folhas. Espere a paginação terminar antes de imprimir. Para título que abre capítulo, aplique break-before: page só onde a virada fizer sentido.
Conte as páginas, confira a sequência dos números e olhe uma tabela que atravessa a virada. Fonte e imagem precisam estar disponíveis antes da diagramação, ou o texto reflui. Nem toda regra editorial se comporta igual em cada ambiente. Paged.js não dispensa olhar o PDF nem garante acessibilidade sozinho.
Laboratório visual: produzir apresentações e PDF com critérios de entrega
Fonte editável, composição, exportação e conferência
Escolha seu próximo encontro.
Oficina de cerâmica. Sábado, às 14h. Veja os horários antes de reservar.
Consultar horáriosA versão revisada oferece assunto, horário e uma ação específica. Compare a ordem de leitura e o espaço disponível.
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 CLI: Programação com IA
- Anatomia de uma Skill: Divulgação Progressiva em Três Níveissugerido pelo grafoApresenta o conceito “Skill (Agent Skill)”, usado em “Produzir apresentações e PDF com critérios de entrega”.
- Montar vídeo em HTML com HyperFrames e escolher entre ele e o Remotionsugerido pelo grafoApresenta o conceito “HTML”, usado em “Produzir apresentações e PDF com critérios de entrega”.
- Montar vídeo em React com Remotion e renderizar na sua máquina ou na AWSsugerido pelo grafoApresenta o conceito “React”, usado em “Produzir apresentações e PDF com critérios de entrega”.
Depois, siga para
- CursoPrompt Engineering para Executivossugerido pelo grafo7 capítulos de “Prompt Engineering para Executivos” usam conceitos apresentados em “Frontends com Vibecoding”.
- CursoLLM FinOps: o custo da IA para quem assina o orçamentosugerido pelo grafo3 capítulos de “LLM FinOps: o custo da IA para quem assina o orçamento” usam conceitos apresentados em “Frontends com Vibecoding”.
O mesmo assunto em outros cursos
- LinkedIn Ads 2027Produzir imagem, carrossel, Text Ads e Dynamic Ads para a mesma ofertaExaminar conexões de Produzir imagem, carrossel, Text Ads e Dynamic Ads para a mesma oferta
- Bastidores: Como Este Portal Foi ConstruídoO motor de cursos: conteúdo como códigoExaminar conexões de O motor de cursos: conteúdo como código
- SEO ProgramáticoTestar o template no pior caso e achar o tetoExaminar conexões de Testar o template no pior caso e achar o teto
- Astra profundoAdaptar a experiência ao espaço disponívelExaminar conexões de Adaptar a experiência ao espaço disponível
Voltar ao capítulo anterior: Construir um aplicativo instalável e resiliente
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ã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
- 28Aplicar direção de arte, UX writing e padrões de código
- 29Construir um aplicativo instalável e resiliente
- 30Produzir apresentações e PDF com critérios de entrega
- 31Construir as cenas do orquestrador, do paralelismo e do robô
- 32Especificar, medir e produzir as cenas da máquina