Frontends com Vibecoding · Capítulo 6 de 33 · 49 min
Construir componentes, usar o registro e publicar o catálogo
Você monta a primitiva acessível, organiza variantes e tokens, traz peças do registro para dentro do repositório e publica o catálogo com prova visual.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding.
Mudar a cor de um botão que vive na biblioteca de outra empresa leva dias de conversa com quem a mantém. O mesmo botão, como arquivo seu, muda em um commit, a gravação da mudança no projeto.
Todo componente, a peça repetida da tela como o botão ou o cartão, tem um dono do código. Esse dono decide o custo de mudar a cara do site daqui a um ano.
Quem aprova ou constrói o produto da empresa escolhe entre biblioteca instalada, componente copiado e primitiva sem estilo, com o foco de teclado testado em cinco segundos.
Na biblioteca instalada, como Mantine ou HeroUI, o código fica na pasta de dependências. Mudar a aparência vira disputa com quem desenhou. No modelo do shadcn/ui, o componente vira um arquivo seu, com Tailwind (as classes prontas de estilo) no visual e uma primitiva acessível por baixo. Editar o arquivo muda a peça em todas as telas.
A primitiva sem estilo, como Radix, Base UI ou React Aria, entrega comportamento e acessibilidade. A aparência sai inteira dos seus tokens (os valores de cor e espaço guardados com nome, como a etiqueta na lata de tinta). É a resposta certa quando a marca já tem desenho próprio e nenhum visual pronto serve.
O shadcn/ui segue a recomendação padrão em React (a biblioteca mais usada para montar telas), e 2026 mostra o ritmo. Dependências unificadas no pacote radix-ui em fevereiro, CLI v4 em março, registries próprios com validação em maio, componentes de chat em junho e componentes React Aria em julho.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Com o arquivo no seu repositório, o agente (a ferramenta de IA que escreve o código) muda uma variante ou corrige o foco sem esbarrar em código alheio. Abra o arquivo LICENSE antes de instalar qualquer peça: MIT e Apache 2.0 liberam uso comercial, e a checagem leva menos de um minuto.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
A primitiva decide o que é difícil: prender o foco no diálogo, devolvê-lo ao fechar, fechar com Esc e falar com o leitor de tela. O Base UI, do MUI, está estável desde dezembro de 2025, com Drawer e OTPField estáveis e a camada mais ativa de 2026. O Radix UI 1.6.7 virou pacote único, com o PasswordToggleField em prévia.
O React Aria lança peça todo mês e é a escolha quando teclado e leitor de tela são requisito de contrato, em governo ou finanças. Fora do React, a primitiva segue o framework (a base que organiza o código das telas). Ark UI com Zag.js, Headless UI, Melt UI, Bits UI e Kobalte cobrem React, Vue, Svelte e Solid.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Dois avisos de 2026. O Chakra UI v3 foi reescrito sobre Panda CSS e Ark UI, e sair do v2 custa migração; o Mantine é a troca natural para quem desiste. O HeroUI v3 está em beta, e o daisyUI segue com classes semânticas e mais de 30 temas sem JavaScript.
O Web Awesome 3.0, ex-Shoelace, foi rebatizado pela Font Awesome com núcleo gratuito, e o repositório antigo foi arquivado em 14/05/2026. É a escolha para Web Components puros (as peças que rodam sem framework nenhum), quando o site precisa durar mais que o framework da vez.
Kits de blocos montam a página inteira sobre o shadcn. Origin UI traz primitivas neutras, Magic UI marketing animado e Aceternity UI efeito visual. Shadcn Blocks soma 193 blocos até agosto, 21st.dev é um registry com o Magic MCP para o agente instalar, e Tremor Blocks cobre painéis.
O risco é o kit de cartões SaaS que a skill frontend-design lista como padrão genérico. Cartões idênticos, um raio de canto para tudo e a mesma sombra cinza embaixo de cada um. Peça o bloco e depois peça a hierarquia de volta: o cartão que importa maior, o resto quieto.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Cinco segundos bastam para o teste de foco: aperte Tab várias vezes e veja se dá para saber onde o teclado está em cada parada. O erro mais comum é focus:ring-2 no lugar de focus-visible:ring-2. O primeiro esconde o anel de todo mundo; o segundo mostra só a quem navega pelo teclado.
role="menu" em navegação simples é anti-padrão, e o agente aplica esse papel sempre que lê a palavra menu. O papel promete setas, Home, End e Esc, e uma lista de links do site não os entrega. Navegar entre páginas pede lista de links; executar comando pede menu de ação, com teclado próprio.
Necessidade, primitiva ou kit, e quando cada um é a escolha certa
| Necessidade | Primitiva ou kit | Quando é a escolha certa |
|---|---|---|
| Projeto novo em React, controle do arquivo | shadcn/ui sobre Base UI | Padrão desde julho de 2026; o agente edita arquivo seu |
| Conformidade escrita em contrato | React Aria (Adobe) | Governo, finanças, escala global; peça nova todo mês |
| Projeto já construído sobre o acervo antigo | Radix UI 1.6.7 | Quando trocar custa mais que manter |
| Vue, Solid ou Svelte | Ark UI com Zag.js, Headless UI, Melt UI, Bits UI, Kobalte | A primitiva do próprio framework |
| Web Components sem framework | Web Awesome 3.0 | Site que precisa durar mais que o framework da vez |
| Tema pronto sem JavaScript | daisyUI | Protótipo e site institucional, com mais de 30 temas |
| Página inteira em um dia | Origin UI, Shadcn Blocks, 21st.dev, Tremor Blocks | Marketing e painel; refaça a hierarquia depois |
| Saindo do Chakra UI v2 | Mantine | Quando a migração para o v3 custa mais que a troca |
O que fazer com isto: comece pela primeira linha; desça para a segunda só quando alguém escreveu a exigência de conformidade em algum lugar.
Fonte: Quadro do autor sobre a seção 4 do manual de recursos de frontend moderno, edição setembro de 2026.
Numa imobiliária com agenda de visita pelo site, o diálogo de confirmação foi feito com div solto. O interessado aperta Tab, cai atrás da janela e não sabe se a visita foi marcada. Trocar o div pela primitiva do Base UI prende o foco, fecha com Esc e devolve o foco ao botão, sem linha própria.
O laboratório abaixo monta esse diálogo com o Dialog e o Popover do Base UI. A biblioteca não traz uma linha de estilo: cor, raio e sombra saem dos tokens do curso. O elemento raiz recebe isolation: isolate, como a documentação pede, para a janela ficar acima de qualquer camada da página, sem disputa de z-index (a ordem de empilhamento).
Abra a janela, aperte Tab até dar a volta, feche com Esc e leia o painel que registra onde o teclado parou. O botão que pergunta por que pedimos o telefone abre um Popover posicionado ao lado; Esc fecha só ele e devolve o foco. O que a primitiva entrega de graça é o que o div solto negava.
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.
A demonstração monta o diálogo Agendar visita de uma imobiliária fictícia com o Dialog do Base UI: título, descrição, dois campos e os botões confirmar e cancelar, estilizados só pelos tokens do curso. Um painel ao lado registra qual elemento tem o foco a cada Tab, mostrando que o teclado fica dentro da janela, que Esc fecha e que o foco volta ao botão de abrir. Um segundo botão abre um Popover posicionado que explica por que o telefone é pedido.
A demonstração interativa carrega quando este trecho entra na tela.
Instale o primeiro componente do shadcn/ui e altere o raio de canto no arquivo. A mudança tem de chegar a toda tela que usa a peça, sem você editar mais nada. Rode o instalador de novo só depois de ler o git diff, porque ele sobrescreve o que você editou. Teste o foco com Tab antes de aprovar.
Organize suas peças num conjunto e publique o catálogo
Com a primitiva escolhida e o foco de teclado testado, falta a ordem de montagem: tokens, peças, variantes, página de prova e catálogo publicado.
Três a cinco componentes consistentes bastam para nascer um design system, o conjunto de peças da casa com cores e nomes iguais, como um jogo de louça. O catálogo desse conjunto se instala com um comando.
Quem tem dois ou três componentes soltos organiza antes que cresçam, com os quatro passos, o catálogo no Storybook e o registry no ar.
O primeiro passo são os tokens (os valores de cor, espaço e tipografia guardados com nome, como a etiqueta na lata de tinta). O segundo são as peças lendo esses tokens: depois do botão vêm o campo, o cartão e o diálogo. Cor cravada num arquivo é a peça que sobrevive à próxima troca de marca e denuncia a inconsistência.
Terceiro vem um vocabulário único de variantes e tamanhos. Quando principal, perigo, pequeno, médio e grande significam a mesma coisa em todo componente, o agente (a ferramenta de IA que escreve o código) acerta. O quarto é a página de prova, que mostra cada componente em cada variante e estado, lendo os tokens. Quando algo quebra, quebra ali primeiro.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Quando o mesmo botão aparece em mais de três telas, a página de prova sobe um degrau para o Storybook. É o catálogo que mostra cada peça isolada, como a vitrine de amostras da loja de tintas. Cada estado vira uma história, e o painel de acessibilidade acusa a violação antes de o produto abrir.
A versão 10 é só ESM, com instalação 29% menor. A regressão visual fecha o ciclo. O Playwright fotografa componente e SVG compilado a cada PR (a proposta de mudança no código) e compara com a foto anterior. Um pixel trocado barra a mudança. Ele pega o raio de canto alterado num arquivo compartilhado, invisível na revisão de texto.
O catálogo se distribui de dois jeitos. Os tokens saem no formato DTCG, lido por Figma, Penpot, Tokens Studio, Style Dictionary e Terrazzo, com $value e $type em cada entrada.
As peças saem por um registry do shadcn, o endereço de onde outro projeto instala a peça, como um catálogo de reposição. Desde maio de 2026 a validação barra o item mal descrito antes de publicar.
Um sistema para relatório precisa nomear as peças que a diretoria lê, e o manual dá o vocabulário: kpi-card, variance-table, executive-callout, risk-matrix, marketing-funnel, waterfall-bridge, decision-card, confidence-badge e methodology-note. Nomear faz o agente reaproveitar a peça em vez de inventar outra a cada tela. O cartão de indicador do relatório de vendas é o mesmo do relatório de caixa.
O vocabulário de componentes executivos: o que cada peça mostra e quando entra no relatório
| Componente | O que mostra | Quando entra |
|---|---|---|
| kpi-card | Um indicador com meta, variação e período | Topo do relatório, poucos por página |
| variance-table | Real contra orçado e contra o período anterior | Fechamento mensal e reunião de diretoria |
| executive-callout | A frase de decisão destacada | Uma por seção, nunca em série |
| risk-matrix | Probabilidade contra impacto | Painel de risco e comitê |
| marketing-funnel | Etapas do funil com a conversão entre elas | Relatório de marketing e vendas |
| waterfall-bridge | De onde veio a variação de receita, margem ou caixa | Sempre que um número mudou e alguém pergunta por quê |
| decision-card | Opções, recomendação e responsável | Fim de seção que pede decisão |
| confidence-badge | Quão firme é o dado: fonte, atualização e dono | Ao lado de qualquer número que sustenta decisão |
| methodology-note | Como o número foi calculado | Rodapé do relatório, a dois cliques de cada número |
O que fazer com isto: nomeie as nove peças no CLAUDE.md antes do primeiro relatório, e o agente reaproveita em vez de inventar.
Fonte: Quadro do autor sobre a seção 24 do manual de recursos de frontend moderno, edição setembro de 2026.
Peça a licença com cada componente instalado, porque código sem licença vira problema quando o produto passa a valer dinheiro. Escreva no CLAUDE.md o alvo de acessibilidade: WCAG 2.2 no nível AA. A norma técnica e a obrigação legal têm escopos diferentes, e a regra do país e do setor se confere antes de declarar conformidade.
A 2.2 acrescentou nove critérios à 2.1, removeu o 4.1.1 de análise de marcação e totaliza 86 critérios somando A, AA e AAA. Dois deles mudam o desenho das peças. O 2.5.8 fixa alvo mínimo de 24 por 24 pixels CSS, com exceções para alvo em linha e espaçamento equivalente. O 3.3.8 proíbe teste cognitivo como única forma de autenticação.
Na prática, o 3.3.8 obriga o campo de senha a aceitar colar e a conviver com gerenciador de credenciais e chave de acesso. O contraste também vai além do 4,5:1 do texto. O critério 1.4.11 pede 3:1 no componente de interface e no elemento gráfico essencial, e é o mais esquecido em design system.
A WCAG 3.0 segue como rascunho de trabalho, sem status normativo e sem jurisdição que a exija, com modelo de conformidade por resultados observáveis. Ela não é meta de conformidade.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Dois botões com verdes diferentes, escolhidos de cabeça, é o que os quatro passos corrigem. Depois deles, o botão de matricular e o de baixar apostila leem o mesmo token, e o Storybook mostra os dois lado a lado.
Suba o Storybook 10 com uma história por variante, o painel de acessibilidade ligado como teste, e publique o primeiro item no registry com npx shadcn build. Fixe fonte e tema antes de fotografar a regressão no Playwright: sem isso, a foto muda sozinha e vira ruído que ninguém confere.
Pegue um componente pronto e adapte à sua marca na hora
O catálogo publicado mostra o que já existe na casa, e componente novo pode chegar do registro adaptado aos seus tokens no mesmo passo.
Um herói colado sem ajuste carrega o azul do autor para dentro da sua marca em um clique. Adaptado no mesmo pedido, ele nasce na cor certa. Um registro é o catálogo de onde o código é copiado, como uma feira de fornecedores, e ele entrega o componente como código seu.
Quem já tem tokens e DESIGN.md ganha um herói ou um formulário pronto sem herdar a estética alheia. Você sabe onde buscar, o que cada fonte cobra e como adaptar a peça no momento de instalar.
A biblioteca é um pacote de peças instalado como dependência, um kit fechado com uma estética e uma versão que alguém mantém. O registro tem muitos autores e muitos estilos, e o código é copiado para o seu repositório. Você vira o dono, e não existe versão deles para atualizar.
O 21st.dev se apresenta como a biblioteca viva de interfaces, com mais de 12 mil componentes React, templates e temas shadcn de mais de 700 autores nomeados. Aceternity UI, Magic UI, shadcn/ui e Origin UI estão entre eles, e os 2 mil blocos de marketing trazem heróis animados, fundos e degradês.
Onde buscar e o que cada fonte cobra
| Fonte | O que entrega | Formato | Custo ou risco |
|---|---|---|---|
| 21st.dev | Mais de 12 mil componentes, blocos de marketing e temas de mais de 700 autores | Pedido copiável para o agente ou comando do shadcn CLI; prévia como imagem | Duas cópias por dia no plano grátis; sem versão, ninguém avisa correção do autor |
| shadcn MCP e registro próprio | Busca e instalação pelo agente, inclusive do botão da casa | .mcp.json no projeto e registros no components.json, privados com token | Dois registros podem sobrescrever o mesmo arquivo; dependência entra sem julgamento |
| Uiverse | A maior biblioteca aberta de elementos de interface, por estilo e por controle | HTML e CSS, Tailwind, React e Figma | Estilo forte (vidro, neon, retrô) vira tique se não for traduzido para o seu token |
| Framer Marketplace | Componentes e plugins para o Framer por categoria | Instalação dentro do Framer | Parte gratuita e parte paga; preso à ferramenta, e o preço muda mais rápido que o curso |
| O agente sem catálogo | Inventa a peça a partir do que mais viu no treino | Código escrito na hora | Sai com raio, sombra e azul de fábrica; o quarto botão diferente da casa |
Escolha a fonte pela restrição do pedido e leia o diff da instalação antes de aceitar; o que entrou sem você ver é o que vai custar.
Fonte: 21st.dev (página inicial, FAQ e blog de 20 e 21 de agosto de 2026); documentação do MCP do shadcn/ui; uiverse.io; framer.com/marketplace; leitura em 8 de setembro de 2026.
Cada componente, a peça repetida da tela como o botão ou o cartão, sai como um pedido copiável. O Cursor, o Claude Code, o v0 ou o Lovable reconstroem a peça no projeto, ou ela entra por comando do shadcn CLI. Navegar é grátis, com duas cópias por dia no plano sem assinatura.
O MCP é o protocolo que dá ao agente ferramentas de busca e instalação, como um balcão de pedidos na feira. Ele muda o comportamento da ferramenta de IA que escreve o código. Com o catálogo à mão, o agente escolhe um herói em vez de inventar um, e as prévias chegam como imagem antes do código.
Um registro próprio do time faz o agente instalar o botão da casa em vez de escrever o quarto.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O pedido segue quatro regras. Nomeie a seção e a restrição. Diga o que não pode, como sem biblioteca de animação ou compatível com server component. Peça opções antes do código: mostre quatro heróis que usem CSS em vez de vídeo.
A quarta regra é dar os nomes dos seus tokens, que são os valores de cor e espaço guardados com nome. Assim a peça já entra adaptada, sem segunda rodada.
Os riscos vêm declarados pelo próprio 21st. Registro não tem versão, então ninguém avisa quando o autor corrige um defeito, e dois registros podem sobrescrever o mesmo button.tsx. O CLI resolve dependências sem julgá-las: um item que puxa um runtime de animação por uma transição instala limpo e custa o runtime em toda página.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O shadcn documenta o próprio MCP. A configuração fica no .mcp.json do projeto, criada por npx shadcn@latest mcp, e os registros, inclusive privados com token de acesso, ficam no components.json. O pedido é em linguagem comum: adicione o botão, o diálogo e o card ao projeto.
Duas outras fontes cobrem casos diferentes. O Uiverse é a maior biblioteca aberta de elementos de interface, em HTML e CSS, Tailwind, React e Figma. O Framer Marketplace distribui componentes e plugins presos ao Framer, parte deles gratuita.
O shadcn em si passa despercebido. O relatório da Sailop aponta o shadcn sem modificação, com raio, cor, tipografia e escala de fábrica. Resend e Cal.com, no outro caminho, reescreveram os tokens do tema.
A mesma casa varreu mil sites gerados por IA entre janeiro e março de 2026. O padrão de fábrica apareceu em 89,2% com Tailwind, 78,3% com Inter, 72,1% com a cor primária no arco azul-violeta e 11,2% com #3b82f6. A cadeia explica o número, porque o shadcn/ui nasce sobre o Tailwind e é a biblioteca padrão do v0 da Vercel.
O componente colado como veio carrega esse padrão para dentro da sua marca e vira o padrão da casa na tela seguinte. A adaptação aos tokens acontece no mesmo pedido de instalação, e o componente ganha uma linha no DESIGN.md antes da segunda tela.
O mesmo herói animado do registro, em dois destinos
Componente colado como veio
Default importado
- Azul do autor no botão e no degradê, ao lado do laranja da marca no cabeçalho
- Raio médio e sombra cinza do tema de fábrica, diferentes do resto do site
- Runtime de animação instalado inteiro para uma transição de entrada
- O próximo herói copia este, e o default vira o padrão da casa
Componente adaptado aos tokens no mesmo passo
Peça da casa
- O pedido já traz os nomes dos tokens, e o botão nasce com {colors.primary}
- Raio e sombra trocados pelos do DESIGN.md antes do primeiro commit
- Diff lido: runtime removido e transição reescrita em CSS puro
- Uma linha no DESIGN.md registra o herói, e o próximo pedido cita a peça pelo nome
Citar o token no próprio pedido de instalação é o que muda o resultado. Numa loja de materiais de construção, o herói animado do 21st.dev chegou com o laranja-ferrugem da marca no botão porque o pedido nomeou o token. O diff mostrou um runtime de animação inteiro por uma transição de entrada, e ele saiu.
Configure o MCP do shadcn com npx shadcn@latest mcp e peça quatro opções com restrição antes do código. Instale a escolhida citando os nomes dos seus tokens no mesmo pedido. Leia o diff antes de aceitar e anote a peça no DESIGN.md; sem token seu citado e sem o diff lido, o componente ainda é do autor.
Guia prático: seção de prova social com o MCP do shadcn/ui
Prova social é o conjunto de sinais de que outras pessoas já compraram e aprovaram: depoimento, logotipo de cliente, nota e número de alunos. Na landing page ela responde à objeção antes do formulário. O roteiro abaixo monta a seção com peças do registro, adaptadas aos seus tokens no mesmo pedido.
O que mudou desde a escrita deste capítulo: a documentação do shadcn/ui passou a indicar o comando shadcn@latest mcp init --client claude para o Claude Code, com arquivo próprio para Cursor, VS Code e Codex. Em agosto de 2026 os registros no GitHub passaram a funcionar com repositório privado, e em setembro todo componente passou a importar cn de um pacote único.
A Tailwind Labs anunciou em 9 de setembro de 2026 a entrada na Shopify. O Tailwind CSS e os demais projetos abertos seguem com licença MIT e a mesma equipe; o Tailwind Plus fechou para novos clientes.

Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Gerente de marketing de um software de gestão para clínicas, com três depoimentos gravados e doze logotipos autorizados
Software B2B, geração de demonstrações
Dor
A página de demonstração tinha um carrossel automático de depoimentos sem nome nem cargo. No celular, o carrossel empurrava o formulário para baixo a cada troca.
Solução
Ela configurou o MCP do shadcn no repositório, pediu quatro opções de seção de depoimentos sem carrossel e instalou a escolhida citando os tokens da marca. Cada depoimento ganhou nome, cargo, clínica e data.
Resultado
A seção ficou estática, com três cartões e a faixa de logotipos, e o formulário parou de pular. A comparação de envios ficou para o teste do capítulo "Planejar a modernização e publicar com reversão".
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
Prova social que convence e não derruba a página
Seis passos, do material autorizado até a seção conferida. O componente é a parte fácil; o que sustenta a prova é nome, data e permissão.
Passo 1: Junte o material e a autorização antes de abrir o agente
Para cada depoimento: frase, nome, cargo, empresa, data e a permissão de uso por escrito. Para cada número: fonte e data, na regra dos dois cliques do curso.
Deu certo quando: Uma planilha com uma linha por prova e a coluna de autorização preenchida.
Erro comum: Pedir ao agente depoimentos de exemplo e esquecer de trocar. Depoimento inventado na página publicada é propaganda enganosa.
Passo 2: Configure o MCP do shadcn no projeto
No Claude Code, rode pnpm dlx shadcn@latest mcp init --client claude na pasta do projeto e reinicie o agente. Cursor usa .cursor/mcp.json, VS Code usa .vscode/mcp.json e o Codex usa ~/.codex/config.toml.
Deu certo quando: O comando /mcp do Claude Code lista o servidor shadcn como conectado.
Erro comum: Servidor que não responde por causa de cache antigo. A documentação manda limpar com npx clear-npx-cache.
Passo 3: Declare os registros no components.json
Cada registro entra com um apelido iniciado por arroba e o endereço com {name}. Registro privado recebe o token por variável de ambiente, nunca no arquivo.
Deu certo quando: O pedido "mostre os componentes disponíveis no registro" devolve a lista do registro certo.
Erro comum: Colar o token no components.json e enviar para o repositório.
Passo 4: Peça quatro opções com restrição, antes do código
Nomeie a seção e o que não pode: depoimentos em grade, sem carrossel automático, sem biblioteca de animação, compatível com componente de servidor.
Deu certo quando: O agente mostra as opções e você escolhe uma antes de qualquer arquivo ser criado.
Erro comum: Aceitar a primeira peça animada e levar um runtime inteiro por uma transição de entrada.
Passo 5: Instale citando os tokens da marca e o HTML certo
No mesmo pedido, dê os nomes dos tokens de cor, raio e espaço. Peça figure com blockquote e figcaption em cada depoimento, e largura e altura declaradas em foto e logotipo.
Deu certo quando: O diff mostra variáveis da sua marca no lugar das cores do autor e nenhuma dependência nova sem motivo.
Erro comum: Logotipo sem altura reservada, que empurra o botão quando carrega e piora o CLS.
Passo 6: Confira no celular, pelo teclado e pelo leitor de tela
Abra a prévia em tela estreita, percorra com Tab e leia o texto alternativo de cada logotipo. Anote a peça no DESIGN.md.
Deu certo quando: A seção cabe sem rolagem lateral, o foco é visível e cada logotipo tem o nome da empresa no texto alternativo.
Erro comum: Nota de avaliação sem fonte, ou número de clientes sem data, que ninguém consegue conferir.
No fim você tem: Uma seção de prova social estática, com depoimentos autorizados e datados, logotipos com dimensão reservada e as cores dos seus tokens.
Guia prático: pedir um componente da biblioteca e adaptá-lo à sua marca
Bibliotecas de componentes como o 21st.dev oferecem, ao lado de cada peça, um botão que copia um pedido pronto para colar no agente. A biblioteca de 1.451 componentes estudada em 07/10/2026 segue essa ideia, e todos os pedidos têm a mesma anatomia, com 179 palavras em média:
- 01O que é: uma linha de descrição.
- 02Referência: categoria, características visuais e a stack do original.
- 03Como é usado: o exemplo de import e uso, que fixa a interface do componente.
- 04Parâmetros: paleta e ajustes numéricos, nos 451 que são shader.
- 05Requisitos: arquivo único, mobile primeiro, tema claro e escuro, acessibilidade e a lista de dependências permitidas.
A anatomia é boa e serve para qualquer pedido seu. O fecho é que pede cuidado: os pedidos mandam reproduzir o visual o mais fiel possível, e só 5 dos 1.451 falam em adaptar. Copiar fiel traz a paleta e a fonte de outra pessoa para a sua página.
Três números orientam a escolha. Do acervo, 42% (615) não têm licença declarada, mais 18 marcados sem licença; 47% (687) não declaram dependência npm; e 22% (319) usam WebGL, shader ou biblioteca 3D, a maioria com o código de desenho dentro do próprio componente. Escolha primeiro pela licença, depois pelo peso, e só então pela beleza.
Crie o componente [NomeDoComponente] para a seção [nome da seção] da página.
O QUE É: [uma linha: o que mostra e qual ação provoca]
REFERÊNCIA: [link da peça], licença [conferida na fonte]. Use só a estrutura e o ritmo;
cores, fonte e raio vêm do DESIGN.md.
COMO É USADO: <[NomeDoComponente] titulo="..." itens={[...]} /> (mantenha esta interface)
PARÂMETROS: [velocidade, intensidade ou quantidade, se houver]
REQUISITOS:
- arquivo único em [pasta dos componentes], TypeScript
- só tokens do DESIGN.md; nenhum hex escrito direto
- funciona a 390 px e com movimento reduzido (estado final parado e legível)
- dependências: só as que já estão no package.json; se precisar de outra, pergunte
- entregue um exemplo de uso e diga o peso que o componente acrescenta ao buildDa peça bonita da biblioteca ao componente da sua marca
Cinco passos. Não repetem a instalação por registro do guia anterior; valem para qualquer biblioteca.
Passo 1: Confira a licença na fonte original
Abra o link da peça e procure a licença do autor. Sem licença declarada, você não tem permissão clara de uso comercial: troque por outra opção ou peça autorização.
Deu certo quando: Cada componente escolhido tem licença anotada com o link e a data.
Erro comum: Assumir que tudo numa biblioteca pública é livre para uso comercial.
Passo 2: Filtre pelo peso antes do visual
Prefira peças sem dependência nova e sem WebGL. Se o efeito precisa de shader, peça junto um estado parado para celular e para quem reduziu o movimento.
Deu certo quando: Você sabe se a peça desenha na placa de vídeo e o que ela soma ao build.
Erro comum: Escolher o fundo animado mais bonito e descobrir que ele roda sem parar no celular.
Passo 3: Escreva o pedido com as cinco partes
Use o molde do bloco acima. A parte "como é usado" fixa a interface antes do código; a parte de requisitos diz o que você vai conferir.
Deu certo quando: O pedido cabe numa tela e tem as cinco partes preenchidas.
Erro comum: Colar o pedido copiado da biblioteca sem trocar o fecho de reprodução fiel.
Passo 4: Troque o "reproduza" por "adapte"
Diga que a referência dá estrutura e ritmo, e que cor, fonte, raio e espaçamento vêm do DESIGN.md. Peça a lista de valores que ele trocou.
Deu certo quando: O componente usa só tokens do projeto e a lista de trocas veio junto.
Erro comum: Receber a peça com o roxo e a fonte do autor original no meio da sua página.
Passo 5: Confira o que o pedido prometeu
Abra a 390 px, ligue o movimento reduzido e navegue pelo teclado. Requisito de acessibilidade escrito no pedido não garante o resultado.
Deu certo quando: O componente passa nos três testes ou você tem a lista do que falta.
Erro comum: Dar como pronto porque o pedido dizia "acessível".
No fim você tem: Componentes de biblioteca com licença conferida, peso conhecido e a identidade da sua marca, sem a do autor original.
Designer de uma agência de marketing em Florianópolis que monta a landing de uma cervejaria artesanal
Alimentos e bebidas, lançamento de rótulo
Dor
Ele colou na conversa o pedido de um carrossel bonito da biblioteca e recebeu a peça com a cor e a fonte do autor, que brigavam com a identidade da cervejaria.
Solução
Conferiu a licença do original, reescreveu o pedido com as cinco partes e trocou o fecho para adaptar aos tokens do DESIGN.md, usando só as dependências que o projeto já tinha.
Resultado
O carrossel entrou na página com a paleta da marca, sem pacote novo, e o mesmo molde de pedido passou a ser usado nas outras seções.
Cenário construído para fins didáticos. Números não correspondem a cliente específico.
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.
Lit facilita escrever componentes no padrão do próprio navegador, os Web Components. Ele acrescenta propriedades que avisam a tela quando mudam e um jeito curto de desenhar. Vale quando a mesma peça precisa circular entre sistemas diferentes, com uma porta pequena de propriedades, atributos e eventos.
Escreva uma classe que estenda LitElement, declare a propriedade quantidade em static properties e dê um valor inicial no construtor. Em render(), devolva um modelo html com botão e número. Registre com customElements.define('contador-pedido', ContadorPedido) e use contador-pedido na sua página como qualquer outra etiqueta do HTML.
Mude a propriedade pelo JavaScript e veja se a tela acompanha. Atributo de HTML é texto e precisa de conversão para virar número. Estilo isolado não garante acessibilidade: teste nome do controle, foco e teclado. Empacote a dependência Lit e confira como estilos e fontes chegam ao destino.
Web Components reúne padrões do navegador para criar etiquetas suas. Custom Elements registra o nome novo; Shadow DOM cerca a parte interna e seus estilos, como uma parede de gesso. A separação ajuda a distribuir peças, mas não é barreira de segurança nem resolve acessibilidade.
Declare class AvisoEntrega extends HTMLElement e registre com customElements.define('aviso-entrega', AvisoEntrega). No construtor, chame attachShadow({ mode: 'open' }) e ponha um slot, a abertura que recebe o texto da página. Em connectedCallback prepare os eventos necessários; em disconnectedCallback remova os ouvintes presos a objetos de fora do componente.
Coloque o elemento duas vezes, tire um e recoloque. O comportamento não pode duplicar ouvintes nem somar cliques. Confira estilo herdado, nome acessível e o que sobra quando o script falha. Para um aviso simples, HTML comum faz o mesmo com menos código e manutenção.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Imagine um esqueleto de janela pronto: ele abre, prende o teclado dentro dela e devolve o foco ao fechar, sem cor nenhuma. Radix Primitives entrega esse esqueleto para telas feitas em React. Ele é a sua escolha quando a marca manda na aparência; em troca, você desenha cada detalhe.
Digamos que a padaria peça um orçamento numa janela. Você monta com Dialog.Root, o invólucro que guarda o estado de aberto ou fechado, e com Dialog.Trigger, o botão que abre. Dialog.Content guarda a caixa e Dialog.Title guarda o nome que o leitor de tela anuncia.
Abra a janela só pelo teclado, circule com Tab e aperte Escape: o foco precisa voltar ao botão que abriu. A armadilha mora em asChild, a opção que manda o Radix usar o seu botão; se ele não repassar as propriedades, a janela deixa de abrir.
Pense num motor de carro vendido sem lataria. React Aria dá o comportamento de campos e botões já resolvido para teclado e leitor de tela; a carroceria fica com você. Escolha quando a marca manda no visual. O preço é montar cada controle peça por peça.
Para pedir o e-mail de um cliente, você junta três peças. Label é o texto que nomeia o campo e Input é a caixa onde a pessoa digita. FieldError é a linha de erro; escreva nela o que corrigir, e nunca um aviso vago como dado inválido.
Envie o formulário vazio e depois com um endereço torto, usando só o teclado. O rótulo precisa continuar visível depois que você digita, e o erro precisa dizer a correção. Validação no navegador ajuda a pessoa; o servidor ainda confere o valor que chegou.
Três formas de assumir manutenção
| Modelo | A equipe ajusta | Também confere |
|---|---|---|
| Primitiva sem estilo | Aparência e composição | Foco e estados |
| Componente copiado | Arquivo do projeto | Correções futuras |
| Biblioteca instalada | Tema e configuração | Atualizações do pacote |
Os modelos distribuem responsabilidades de forma diferente; nenhum deles elimina a conferência de acessibilidade e do comportamento integrado.
Headless UI é um conjunto de peças de interação sem roupa: o comportamento vem pronto e a aparência você pinta com Tailwind ou CSS comum. Vale quando o time já domina estilo e quer parar de reinventar abas, menus e janelas. Fora isso, o pacote cobre poucos controles.
Numa tela de edição de cardápio, você usa Dialog para a janela, DialogPanel para a caixa branca que aparece por cima e DialogTitle para o nome da tarefa. A propriedade open diz se ela está visível, e onClose devolve o cardápio quando a pessoa desiste da edição.
Aperte Escape e veja se a janela some de verdade. O erro comum é esconder o painel só com CSS sem avisar o estado open, e aí a página fica travada atrás de uma camada invisível. Teste também para onde o foco vai ao reabrir.
shadcn/ui copia o código do componente para dentro do seu projeto, como uma receita entregue por escrito em vez de um prato pronto. Você edita à vontade. Prefira esse caminho quando a marca exige mudanças fundas na peça; a conta é que a manutenção passa a ser sua.
Para padronizar a confirmação de pedido, rode o comando que traz o diálogo e abra os arquivos que apareceram. Troque as cores fixas por variáveis com nome de função, como ação e superfície. Guarde o botão de confirmar num componente só, reaproveitado em todas as telas.
Compare o arquivo copiado com o original antes de aceitar uma versão nova, porque a ferramenta não reescreve as suas mudanças sozinha. Se você colar a atualização por cima, perde o ajuste local. Percorra a janela pelo teclado e ouça o nome anunciado.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Base UI oferece primitivas React sem estilo, cada parte com uma função clara: abrir, mostrar e fechar. O desenho fica por sua conta. Ela serve quando você quer a estrutura de interação documentada e não pretende escrever foco e teclado do zero. Cobre menos casos que as veteranas.
Numa janela de preferências, Dialog.Root guarda o estado, Dialog.Trigger abre e Dialog.Popup desenha o conteúdo que flutua sobre a página. Acrescente Dialog.Title e Dialog.Close com as cores do site. Se o salvamento demorar, segure a janela aberta até a confirmação chegar.
Salve com a internet lenta e confira se a janela espera a resposta em vez de fechar cedo. Passe pelo ciclo de foco com Tab e Escape. Uma primitiva acessível não mede contraste nem escreve o texto do erro; isso continua sendo trabalho seu.
Mantine chega com componentes React já vestidos, como móveis montados em que você só escolhe a cor. Isso encurta painéis internos e formulários longos. Escolha quando entregar rápido vale mais que visual próprio; o custo é conviver com a cara da biblioteca em várias telas.
No painel de atendimentos, envolva o site com MantineProvider, a casca que espalha o tema por todos os componentes. Defina ali a cor da marca, a fonte e o raio dos cantos. Depois monte o formulário com rótulos fixos, mensagem de erro e botão em estado de carregando.
Troque para o tema escuro e olhe foco, erro e botão desabilitado nos dois modos. Uma cor institucional que funciona no cabeçalho costuma falhar dentro de um botão pequeno. Abra a página com a rede desligada para ver se nada depende de arquivo externo.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Material UI traz para o React o visual que o Google desenhou para o Android, com campo, menu e diálogo já prontos. Combina com tela interna de empresa, onde velocidade pesa mais que originalidade. O custo é a interface ficar com cara reconhecível, e fugir disso dá trabalho.
No cadastro de fornecedores, crie o tema com createTheme, a função que guarda cores e fontes num lugar só, e espalhe pelas telas com ThemeProvider. Use TextField no campo, error para marcá-lo em vermelho e helperText para a frase embaixo que explica o que houve.
Erre um campo de propósito e olhe se a frase de ajuda aparece escrita, sem depender só da cor vermelha. Quem enxerga pouca cor precisa do texto. Cuidado com a família MUI X: tabela avançada e calendário têm licença paga, separada do pacote básico.
Ark UI descreve cada controle como uma máquina de estados, a lista de situações possíveis e dos caminhos entre elas. A mesma lógica atende React, Vue e Solid. Escolha quando o time convive com frameworks diferentes; o preço é desenhar tudo e um ecossistema menor.
Para as perguntas frequentes da loja, monte Accordion.Root, o painel inteiro, com um Accordion.Item por pergunta. Accordion.ItemTrigger é a pergunta clicável e Accordion.ItemContent é a resposta que aparece. Decida se mais de uma resposta fica aberta ao mesmo tempo.
Percorra as perguntas com Tab e Enter e ouça o leitor de tela dizer recolhido ou expandido. Se o anúncio não muda, a ligação entre pergunta e resposta se perdeu. Ao pintar o acionador com CSS, mantenha a borda de foco visível, senão o teclado fica cego.

Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O GOV.UK Design System nasceu de gente comum preenchendo formulário de governo uma vez na vida, sem paciência para adivinhar. Os padrões dele encurtam pedidos longos e deixam o erro claro. Vale copiar a lógica quando o seu formulário assusta; o visual britânico fica de fora.
Monte o pedido de orçamento com o rótulo acima do campo, uma linha curta de ajuda e o erro colado no campo que falhou. Quando várias coisas derem errado, abra a página com um resumo em lista, cada item levando ao campo. Devolva tudo que a pessoa já digitou.
Clique em cada item do resumo e confira se o cursor pousa no campo certo, com a página rolando até ele. Leia a mensagem em voz alta: ela precisa dizer o conserto, e não apenas apontar a falha. Nunca use brasão nem tipografia oficial de governo.
O USWDS é o kit que o governo dos Estados Unidos usa para serviços digitais, com componentes, medidas e regras de escrita. Ele serve de referência para tarefas burocráticas que muita gente faz. Adotar fora dali exige traduzir conteúdo e trocar a identidade, item por item.
Numa inscrição, use o grupo de formulário que mantém juntos rótulo, ajuda, campo e erro, para o olho não precisar procurar. Importe os estilos e os comportamentos daquele componente. Ajuste as cores na origem e gere os arquivos do projeto, guardando uma configuração só para todas as telas.
Preencha o formulário inteiro em português, de teclado, com o leitor de tela ligado. Frase traduzida costuma ficar mais comprida e estourar a caixa que cabia em inglês. Confira também de onde vêm os ícones e as fontes, porque nem todo arquivo do kit é livre para uso.
Adotar um sistema de design exige tradução
| Camada | Aproveitar | Adaptar ao produto |
|---|---|---|
| Componentes | Estrutura e estados | Tarefa e conteúdo |
| Tokens | Nomes e relações | Marca e contraste |
| Catálogo | Exemplos isolados | Fluxos completos |
| Governança | Critérios de revisão | Quem mantém as peças |
Carbon, Fluent, Ant Design, Primer e outros sistemas trazem decisões de contexto; a aparência copiada não substitui a adequação ao público.
Carbon é o sistema da IBM para telas cheias de dado, com tabela grande, filtro e mil colunas. Ele organiza densidade sem virar bagunça. Escolha para painel operacional pesado; o custo é peso no pacote e uma identidade visual que puxa para a da IBM.
Num painel de pedidos, use a tabela do pacote e escreva nomes de coluna que o atendente entenda. Acrescente filtros com rótulo visível e diga qual coluna está ordenando. Configure o tema para que superfície, borda e texto guardem a mesma relação no claro e no escuro.
Ordene, filtre e esvazie a tabela usando só o teclado, e confira se a seleção continua grudada no pedido certo. Depois abra o HTML gerado: quando você troca a célula por um componente próprio, a tabela parece igual e some da leitura assistiva. Escute as colunas.
O catálogo torna estados e revisão reproduzíveis
| Registro | O que mostra | A revisão confere |
|---|---|---|
| Exemplo isolado | Componente com dados definidos | Estados esperados |
| Variação de tema | Mesma peça em outro contexto | Contraste e tokens |
| Cenário de interação | Ação e resposta observável | Foco e resultado |
| Uso no produto | Peças no fluxo completo | Conclusão da tarefa |
Storybook documenta e permite examinar componentes isolados; a revisão do sistema também precisa considerar o uso integrado e a manutenção das decisões.
Storybook é a vitrine onde cada componente aparece sozinho, em todos os estados que ele sabe ter. Serve quando várias pessoas reaproveitam os mesmos botões e campos e precisam ver as opções sem abrir o site. O custo é manter um segundo projeto vivo ao lado do primeiro.
Crie histórias do campo de orçamento vazio, preenchido, com erro e desabilitado. Uma história é um cenário salvo; args é a lista de valores que você troca para montar cada um. Acrescente casos de texto comprido e tema escuro, para ver onde o desenho quebra.
Uma história verde não prova que a tela real funciona, porque ali o campo vive fora do formulário. Abra o produto e confirme envio, mensagem e navegação. Mantenha os exemplos alinhados com o código de verdade e nunca coloque dado de cliente na vitrine.
Fluent 2 é a linguagem visual da Microsoft, a mesma cara do Teams e do Office. Ela cai bem quando o seu sistema vive ao lado desses programas e o usuário espera o mesmo jeito. O preço é seguir identidade alheia e vigiar a geração instalada.
Numa tela React compatível, ligue o provedor de tema e use nomes de papel, como superfície, texto e ação, em vez de cores cruas. Monte o painel de tarefas com botões e campos do mesmo conjunto. Para o modo escuro, troque o tema inteiro, nunca cor por cor.
Olhe foco, seleção, erro e desabilitado nos dois temas antes de comemorar. Nome parecido entre gerações engana: um token da versão antiga pode existir na nova com outro valor e sumir com o contraste. Confirme a versão instalada e teste a sua marca dentro dela.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Ant Design é um armário cheio de peças prontas para sistema de empresa: tabela com filtro, formulário comprido, seletor de data. Ele encurta a construção de telas onde a pessoa passa o dia inteiro operando. A conta vem em tamanho de pacote e em exemplos antigos que já não batem.
Na tabela de pedidos, defina as colunas e informe em rowKey qual campo identifica cada linha, como o número do pedido. Configure idioma e tema pelo caminho da versão instalada. Mostre três estados por escrito: carregando, nenhum resultado e falha de consulta, cada um dizendo o próximo passo.
Ordene e filtre a tabela, depois selecione uma linha e confira se a ação caiu no pedido certo. Se você usou a posição da linha como identidade, a reordenação troca os registros em silêncio e ninguém percebe. Meça também o peso baixado antes de trazer mais componentes.
Primer é o sistema de design do GitHub, pensado para telas de trabalho com lista de tarefas, filtro e ação repetida. Ele ajuda quando o seu produto tem essa cara de ferramenta. O custo é a semelhança com o GitHub, que você afasta de propósito.
No projeto React, configure o tema e monte a lista de solicitações com título, estado e ações. Use nomes de papel para texto e superfície, em vez de cores cruas. Quando o botão mostrar só um ícone, dê a ele um nome que a leitura assistiva anuncie.
Imprima a tela em preto e branco e veja se ainda dá para distinguir aberto de fechado. Confira também o tamanho dos botões no celular. Licença de código não libera logotipo nem ícone da marca; guarde de onde veio cada arquivo que você embutiu.
Laboratório visual: construir componentes, usar o registro e publicar o catálogo
Primitiva acessível, variantes, tokens, registro e documentação
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
- Montar vídeo em React com Remotion e renderizar na sua máquina ou na AWSsugerido pelo grafoApresenta o conceito “React”, usado em “Construir componentes, usar o registro e publicar o catálogo”.
- CursoVídeo com IA: Claude Code, Codex e ElevenLabssugerido pelo grafo20 capítulos de “Frontends com Vibecoding” usam conceitos apresentados em “Vídeo com IA: Claude Code, Codex e ElevenLabs”.
- CursoNode.js: JavaScript no Servidorsugerido pelo grafo20 capítulos de “Frontends com Vibecoding” usam conceitos apresentados em “Node.js: JavaScript no Servidor”.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- Software e IA para executivosDecidir o que roda no servidor e o que vai ao celularExaminar conexões de Decidir o que roda no servidor e o que vai ao celular
- Vibecoding para SEOO Manifesto Vibecoding: Programe sem ProgramarExaminar conexões de O Manifesto Vibecoding: Programe sem Programar
- 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
Voltar ao capítulo anterior: Construir a identidade com tokens, CSS moderno e DESIGN.md
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
- 04Investigar uma stack e priorizar atualizações
- 05Construir a identidade com tokens, CSS moderno e DESIGN.md
- 06Construir componentes, usar o registro e publicar o catálogo
- 07Projetar uma linguagem de ícones e ilustração
- 08Projetar menus, popovers e modais acessíveis