Frontends com Vibecoding · Capítulo 17 de 33 · 30 min
Escolher mapas, diagramas e cenas espaciais
Mapa, diagrama e cena espacial passam a entrar só quando mudam a resposta, com o denominador na legenda e a tabela ordenada como alternativa.
Este capítulo faz parte do curso gratuito Frontends com Vibecoding. Para marcar como concluído e salvar o progresso, abra este capítulo na página do curso.
Um mapa só vale a tela quando a geografia muda a decisão; quando um ranking por estado responde, a tabela ordenada vence. Quem escolhe entre mapa e lista para o próprio site termina com o teste que decide, o mapa sem chave paga e a cor que diz a verdade.
Antes de instalar qualquer biblioteca (o pacote de código pronto que desenha o mapa na tela), faça o teste do embaralhamento: troque o Acre de lugar com Sergipe. Se a conclusão continua a mesma, a geografia não muda a decisão, e uma lista ordenada resolve melhor.
Passam no teste a rota de entrega e o raio de atendimento de uma clínica, porque a distância entre os pontos é a própria resposta. Reprova quase sempre a penetração por estado, porque a cor muda a leitura sem mudar a decisão. O mapa custa tela e atenção, e precisa devolver algo que a lista não devolve.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Quando o mapa vence o teste, escolha o degrau mais baixo que resolve. O Leaflet põe meia dúzia de marcadores no ar numa tarde; fique na série 1, porque a 2.0 segue em alfa, sem data, e migrar hoje é aposta.
O MapLibre desenha o mapa vetorial, aquele que chega como desenho e não como foto, e por isso continua nítido em qualquer aproximação. Nele o mapa é feito de camadas empilhadas: uma para as ruas, outra para os bairros, outra para os seus pontos. Cada camada liga, desliga e muda de cor por conta própria.
Acima de centenas de milhares de pontos entra o deck.gl, porque manda o desenho para a placa de vídeo. Abaixo desse volume ele só pesa. O Kepler.gl explora o dado sem escrever código, e o trio com deck.gl e MapLibre é a pilha de geomarketing.
Mapbox GL JS entra só quando a licença paga já existe. O OpenLayers fica para trabalho de GIS, porque lê projeções, as várias maneiras de achatar a Terra redonda numa tela plana, que as outras bibliotecas não abrem.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O mapa sem chave troca a chave de API (a senha paga que libera cada carregamento do mapa) por um único arquivo PMTiles hospedado por você. O navegador pede só o trecho do arquivo que precisa, como quem lê duas páginas de um livro sem comprar o volume inteiro, e nenhum servidor conta pedido.
Todo dia o Protomaps publica uma versão nova do mapa-base do OpenStreetMap, o mapa aberto que qualquer um pode baixar. Você troca fatura variável por armazenamento fixo e agenda a atualização do arquivo, porque mapa desatualizado custa o mesmo trabalho do mapa correto.
A montagem tem ordem. Recorte só o território que precisa. Suba o arquivo com entrega parcial ligada, senão cada visita baixa o arquivo inteiro. Registre o protocolo antes de criar o mapa, senão o erro chega disfarçado de falha de rede.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
O erro mais fácil de cometer é colorir pelo número bruto. Vendas e clientes crescem junto com a população, e o mapa vira uma cópia do mapa demográfico.
Escolha o denominador (o número que divide o dado, como habitantes ou domicílios) antes da cor, e escreva o nome dele na legenda. A figura circula sozinha, e o que só você sabe não protege ninguém.
Numa imobiliária, a pergunta sobre qual bairro vende mais rápido passa no teste, e o mapa entra com MapLibre v6 lendo um PMTiles do próprio armazenamento. A pergunta sobre qual imóvel tem o menor preço reprova, e a lista ordenada resolve sem mapa.
Colorir pelo número de imóveis vendidos faz o bairro mais populoso brilhar. Dividir pelo total de imóveis do bairro mostra onde a venda é proporcionalmente mais forte, com o denominador escrito na legenda.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Antes de publicar o mapa, teste o embaralhamento na última pergunta que ele responde e confirme que ainda há geografia real ali. Divida sempre pelo denominador certo e confira na aba de rede do navegador que só o seu domínio aparece nas requisições.
Escolher o tipo de diagrama e montar o editor visual dele
O mapa entra quando a geografia muda a resposta, e relação e sequência pedem outra família, com o editor visual separado do painel que a equipe abre.
Diagrama é uma palavra para três famílias com preços diferentes. Quem desenha decide a família: você em texto, o cliente arrastando peças ou ninguém, porque a rede se acomoda sozinha. Quem pede a peça para o próprio site aprende a nomear a família certa, separar o editor visual do painel e recusar o 3D que raramente vale.
Na primeira família você escreve o desenho em texto e a máquina decide onde cada caixa fica. Isso vale a pena porque o diagrama passa a viver junto do código, e muda com ele. O Mermaid resolve até 12 elementos, a régua do hub de design; acima disso, ou com camadas dentro de camadas, o D2 agrupa melhor.
O modelo C4 (quatro níveis de zoom: contexto, contêiner, componente e código) define o que entra em cada figura. Um diagrama que mistura o nível de contexto com o de código fica ilegível para os dois públicos.
Saída de IA passa pelo portão mermaid.parse() antes de virar figura, porque o agente erra sintaxe em silêncio. O compilador mmdc roda na publicação e entrega SVG estático com as cores do site, e a figura se refaz sozinha a partir do mesmo texto.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
A armadilha de tema derruba o diagrama pronto. O SVG chamado como imagem externa não enxerga as cores da página, e por isso o texto preto some quando o leitor liga o tema escuro. Cole o SVG dentro da própria página, ou gere duas versões, clara e escura, e dê cor própria a cada texto do desenho.
Depois disso, guarde uma captura do diagrama a cada publicação e compare com a anterior. É assim que você descobre que uma palavra a mais empurrou uma caixa por cima da outra.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Na segunda família quem usa o produto arrasta, conecta e apaga peças, e o desenho vira parte do que ele contratou. O React Flow e o Svelte Flow tratam cada nó como uma peça rica, com formulário e estado próprios.
O tldraw transforma rascunho em página pronta por IA. O Excalidraw converte Mermaid em formas editáveis e sincroniza o quadro via Yjs, a tecnologia que deixa várias pessoas desenharem juntas sem uma apagar a outra.
Editor sério, com conectores que grudam na peça e com desfazer, é categoria própria: GoJS ou JointJS sobre um canvas como o Konva ou o PixiJS. O Konva traz a alça que move e redimensiona, além de ligações para React, Vue, Svelte e Angular.
O Fabric.js faz editor de imagem tipo Canva, com ida e volta para SVG. O Paper.js teve a última versão em julho de 2024, sinal de manutenção lenta, então prefira Fabric ou Konva.
Nunca use a mesma pilha para o painel e para o editor visual: ECharts ou D3 de um lado, JointJS ou GoJS com Konva do outro. Os dois resolvem problemas opostos, porque um mostra número fechado e o outro guarda o desenho que alguém ainda está mexendo.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Na terceira família o desenho é a própria rede: cadeia de fornecedores, quem indicou quem, quais páginas apontam para quais. Essa rede tem nome técnico, grafo, e é só isso: pontos, chamados nós, ligados por linhas, chamadas arestas.
O Cytoscape.js já traz as contas que apontam quem é o nó central e quem ficou isolado. O vis-network deixa os pontos se acomodarem sozinhos, como ímãs que se repelem. O Sigma.js com Graphology desenha mais de 100 mil nós usando a placa de vídeo.
Acima desse teto, o deck.gl com WebGPU, a via mais nova de falar com a placa de vídeo, é o degrau seguinte.
O que você precisa, a ferramenta e o critério
| O que você precisa | Ferramenta | Critério ou limite |
|---|---|---|
| Fluxo ou arquitetura fixa com tamanho legível | Mermaid 11.10, compilado com mmdc no build | mermaid.parse() antes de renderizar saída de IA |
| Acima de 12 elementos ou com camadas | D2; Kroki como serviço | Agrupamento nativo; exporta SVG, PNG e PDF |
| Editor de fluxo dentro do produto | React Flow ou Svelte Flow (xyflow) | Nós como componentes; mais de 36 mil estrelas |
| Rascunho colaborativo | tldraw (Make Real) ou Excalidraw (edição de formas e colaboração conforme a integração) | Quadro branco, sem conectores formais |
| Editor com conectores e desfazer | GoJS ou JointJS sobre Konva 9 ou PixiJS | Stack separada do painel |
| Editor de imagem tipo Canva | Fabric.js 6 | Ida e volta para SVG; Paper.js parado desde julho de 2024 |
| Rede até dezenas de milhares de nós | Cytoscape.js ou vis-network | Algoritmos prontos, física de simulação |
| Rede com mais de 100 mil nós | Sigma.js com Graphology; depois deck.gl com WebGPU | WebGL, com layout pré-calculado |
| Hero institucional ou produto em 3D | model-viewer (GLTF sem código), Spline ou Three.js r184 | WebGPU é o piso desde o Safari 26 |
| Captura fotorrealista de ambiente ou produto | Spark 2.0, LumaSplats ou gsplat | Mais de 100 milhões de splats, inclusive celular e VR |
| Globo de dados | Globe.gl | Só quando a geografia muda a decisão |
| Gráfico 3D em relatório executivo | Nenhuma | Quase sempre vaidade |
Regra de board: 3D em relatório executivo é quase sempre vaidade; vale em hero institucional, produto e data art.
O 3D obedece à regra do conselho: em relatório executivo é quase sempre vaidade, porque impressiona sem esclarecer. Ele vale na vitrine institucional, na página de produto e na peça artística.
Quando vale, o Three.js é a base, e já desenha pela via nova da placa de vídeo em produção. Com o Safari embarcando essa via, ela virou o piso do mercado. Quem escreve em React usa o React Three Fiber com Drei, e há equivalentes no Vue e no Svelte.
O gaussian splatting (a captura fotorrealista feita de milhões de pontos coloridos, como uma foto que dá para girar) ganhou o Spark, da World Labs. Ele transmite mais de 100 milhões desses pontos sobre o Three.js, inclusive em celular e em óculos de realidade virtual.
Para o caso mais simples, o model-viewer mostra um arquivo GLTF sem uma linha de código. O Globe.gl faz globo de dados quando a geografia muda a decisão.
Numa escola, o fluxo de matrícula tem nove caixas e sai em Mermaid compilado no build, no nível de contexto do C4. A coordenação que quer montar trilhas arrastando disciplinas pede outra família, o React Flow, com outro orçamento. O gráfico 3D no relatório à mantenedora sai do pedido, porque impressiona sem esclarecer.
Antes de pedir a próxima peça, escreva a família na primeira linha do pedido ao agente: texto compilado, editor com nós ou rede. Só aceite 3D em vitrine, produto ou peça artística, e mantenha painel e editor em pilhas separadas. Deu certo quando o diagrama cabe na tela e ninguém pergunta o que cada caixa significa.
Guia prático: o globo bonito da biblioteca e o custo que vem junto
Globo girando e mapa com pontos acesos viraram enfeite comum de página de SaaS, e quase sempre chegam por uma biblioteca de componentes. Na biblioteca de 1.451 componentes estudada em 07/10/2026, a busca por globos, mapas e diagramas nas tags, categorias e descrições deu este quadro:
| Tipo | Componentes | Dependência mais comum | Desenham em WebGL |
|---|---|---|---|
| Globo | 20 | cobe, em 16 | 18 |
| Mapa | 17 | maplibre-gl e dotted-map, 3 cada | 5 |
| Diagrama e grafo | 10 | framer-motion, em 7 | 1 |
São 43 componentes no total, e 21 deles desenham em WebGL. A biblioteca d3 aparece em 1 e three em 2. No acervo inteiro, 319 componentes usam WebGL, shader ou biblioteca 3D, 22% do total, e 245 desses não declaram dependência nenhuma, porque o código de desenho vem escrito dentro do componente. Dos 43, 28 trazem exemplo de uso preenchido e nenhum desses trata a preferência por menos movimento; 14 não têm licença declarada.
O cobe, a dependência dos globos, se apresenta como biblioteca de cerca de 5 kB, sem dependências e sob licença MIT. O peso de download é pequeno; o custo está no desenho contínuo na placa de vídeo, que gasta bateria enquanto gira. Este capítulo já ensina o teste do embaralhamento: um globo que só diz "atendemos o mundo" não passa nele. A lição: trate o globo como peça de vitrine, com orçamento, pausa e alternativa parada, e não como mapa.
Quero um elemento geográfico na seção [nome da seção].
O que ele precisa comunicar: [ex.: cidades onde temos loja, rota de entrega].
Antes de escrever código, me entregue:
1. Se a geografia muda a decisão de quem lê, ou se uma lista resolve.
2. Três opções, da mais leve à mais pesada: imagem SVG parada, mapa
vetorial com poucos pontos, globo em WebGL. Para cada uma: dependência,
peso estimado, se desenha na placa de vídeo e a licença do componente.
3. Para a opção escolhida: o que aparece com movimento reduzido ligado,
como a animação para fora da tela e qual é a imagem de reserva sem WebGL.
Não instale nada antes de eu escolher.Do globo da moda ao elemento geográfico que se paga
Cinco passos antes de colar um globo, mapa ou diagrama de biblioteca na página.
Passo 1: Diga o que o elemento comunica
Escreva numa frase: cidades atendidas, rota, cobertura, fluxo de um processo. Se a frase é "passar ideia de alcance", o elemento é decoração e entra com orçamento de decoração.
Deu certo quando: A frase cita um dado concreto ou assume que é decoração.
Erro comum: Colocar o globo porque o concorrente tem um.
Passo 2: Compare três opções pelo pedido acima
A imagem SVG parada costuma bastar para mostrar presença em poucas cidades. Mapa vetorial serve quando a pessoa precisa explorar. Globo em WebGL fica para a vitrine.
Deu certo quando: Você escolheu com peso, dependência e licença de cada opção na mesa.
Erro comum: Pedir "um globo interativo" e receber o mais pesado sem comparação.
Passo 3: Confira a licença do componente
Abra o link de origem do componente e confira a licença do código, além da licença da biblioteca que ele usa. Componente sem licença declarada fica fora de projeto comercial.
Deu certo quando: O componente e a dependência têm licença anotada no projeto.
Erro comum: Ver MIT na biblioteca e presumir que o componente montado sobre ela também é livre.
Passo 4: Faça o globo parar
Fora da tela, a animação pausa. Com movimento reduzido ligado, aparece a imagem parada. Sem WebGL, uma imagem de reserva ocupa o mesmo espaço.
Deu certo quando: Rolando para longe, o uso da placa de vídeo cai; com movimento reduzido, nada gira.
Erro comum: Deixar o globo girando no rodapé enquanto a pessoa lê o topo.
Passo 5: Meça no celular mais fraco que você tiver
Abra a página no celular, deixe a seção do globo na tela por um minuto e observe aquecimento e rolagem. Compare o pacote de JavaScript antes e depois do componente.
Deu certo quando: A rolagem segue fluida e o aumento de peso está anotado.
Erro comum: Testar só no computador com placa de vídeo dedicada.
No fim você tem: Um elemento geográfico escolhido pelo que comunica, com licença conferida, peso medido e um estado parado para quem precisa.
Aplicar os recursos ao projeto
- Etapa 1 de 4: Descrever
Etapas, relações e exceções
- Etapa 2 de 4: Gerar
SVG durante a preparação
- Etapa 3 de 4: Conferir
Sentido, rótulos e caminhos
- Etapa 4 de 4: Distribuir
Figura local e explicação
Mermaid vira diagrama a partir de texto, do mesmo jeito que uma lista de compras vira compra. Como o desenho nasce de linhas escritas, o processo é revisado junto do código, sem abrir editor gráfico. Funciona quando o que importa é a relação entre etapas; caixa demais cansa o leitor, e esse limite é editorial.
Escreva flowchart TD para um fluxo de reembolso e ligue Pedido, Conferência e Pagamento com setas. Acrescente uma decisão que separe pedido completo de pedido sem comprovante e dê nome às duas saídas. Gere o SVG na hora de publicar e guarde o texto de origem para a próxima revisão.
Diagrama sem erro de escrita ainda representa a regra errada. Percorra cada caminho com quem faz a tarefa no dia a dia e confirme para onde vai a recusa. Veja no celular se o texto das caixas continua legível, descreva o processo em prosa e publique depois o SVG já pronto.
D2 escreve diagrama em texto e usa contêineres, que são caixas maiores mostrando quais peças pertencem ao mesmo sistema. O motor de posicionamento calcula sozinho onde cada coisa fica. Ajuda quando o desenho da arquitetura muda toda semana e você não quer arrastar caixa e seta de novo.
Para explicar uma loja, agrupe catálogo e pedidos dentro do site e deixe o estoque num sistema à parte. Dê nome às conexões, como consulta e reserva, para que nenhuma seta fique sem sentido. Compile a descrição em SVG, publique a figura e escreva uma legenda curta dizendo o que cada grupo reúne.
Motor de posicionamento diferente muda o desenho e traz a própria regra de distribuição. Confira em separado a licença do motor opcional TALA se você escolher esse caminho. Revise rótulo, direção das setas e fontes na exportação, publique a figura final e deixe a descrição editável guardada para a próxima mudança.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Graphviz recebe a descrição de um grafo em DOT, uma linguagem de texto com nós e ligações, e calcula onde tudo cabe. Serve para explicar dependências e hierarquias que mudam quando os dados mudam. Você escolhe o motor e as regras de aparência, e a ferramenta resolve o espaço que cada nome precisa.
Pense nas dependências para publicar um conteúdo. Escreva um digraph com Conteúdo levando a Revisão e Revisão levando a Publicação. Use rótulo para distinguir as tarefas e ajuste a direção de leitura ao espaço da página. Gere o SVG antes de publicar e escreva a mesma lista em texto.
Reduzir a rede inteira até caber numa tela deixa todos os nomes ilegíveis. Quebre por assunto ou mostre uma visão geral com recortes, antes de diminuir a fonte. Confira setas, fontes embutidas e links dentro do SVG, e lembre que a máquina de quem lê não precisa ter o Graphviz instalado.
React Flow monta telas de caixas e fios, o tipo de editor em que a pessoa arrasta etapas e liga uma na outra. Cada bloco e cada ligação viram dado que o seu programa guarda. Escolher isso é escolher produto: precisa decidir ligação permitida, salvamento, desfazer e caminho para quem usa teclado.
Monte um editor de aprovação guardando nodes e edges no estado, com identificador fixo para cada etapa. Trate onNodesChange quando a pessoa arrasta e onConnect para criar ligação só quando a regra deixar. Salve posição e relação no mesmo documento e ofereça um formulário para renomear a etapa.
Linha ligando dois blocos não prova que o fluxo roda. Teste ciclo proibido, etapa sem saída, exclusão de bloco e recarregamento da página. Percorra tudo pelo teclado e ofereça o fluxo escrito em texto; num manual para ler offline, o SVG exportado resolve, porque ninguém vai editar.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Cytoscape.js guarda a rede e desenha a rede: nó é uma entidade, aresta é o vínculo entre duas delas. Ele traz contas prontas para achar vizinho, caminho e agrupamento. Antes de pensar em cor e formato, defina o que cada vínculo significa, senão o desenho vira enfeite.
Suponha que você queira mapear fornecedores. Crie elements com um identificador por empresa e conexões com source e target, que são a ponta de saída e a de chegada. Escolha um layout inicial, destaque os vizinhos do fornecedor clicado e atualize uma lista com nome e tipo de vínculo.
Conexão duplicada ou com origem inexistente entorta a rede inteira sem erro visível. Valide os identificadores antes de desenhar e confira um punhado de relações que você já conhece. Meça quanto o layout demora com a base real, ofereça zoom e volta, e confira a licença de cada extensão.
Sigma desenha redes grandes com WebGL, o recurso do navegador que usa a placa de vídeo. Quem guarda nós, arestas e atributos costuma ser o Graphology, então estrutura e aparência ficam separadas. Essa dupla serve quando a rede responde uma pergunta que uma lista comum não responde.
Quando quiser ver como as equipes colaboram, crie um grafo no Graphology com identificador, rótulo e posição calculada. Entregue o grafo ao Sigma, que desenha, e destaque a equipe escolhida junto das conexões dela. Mostre a lista dessas relações e um botão para voltar à visão inicial.
Aceleração pela placa de vídeo não apaga o custo de calcular posições nem de baixar uma base grande. Cronometre as duas etapas em separado e repita num aparelho mais fraco. Veja o que acontece sem WebGL, ofereça um resumo estático e empacote código, dados e o mecanismo de layout.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Excalidraw faz diagrama com cara de rabisco a mão, e os elementos continuam editáveis dentro da cena. Esse traço solto convida a mudar caixa e seta no meio da conversa, o que ajuda quando a proposta ainda está em discussão. Para quem só vai ler, a figura exportada basta; embutir o editor inteiro vale se a pessoa precisar mexer.
Desenhe a recepção de uma clínica: chegada, cadastro e atendimento, com o nome de cada decisão do percurso. Salve a cena editável e exporte um SVG para o material. Escreva embaixo o caminho principal e as exceções, e deixe a legenda perto explicando o que cada seta quer dizer.
Traço informal não dispensa contraste, tamanho de letra e revisão do processo desenhado. Exporte no mesmo tema do documento e confirme se as imagens anexadas vieram junto. Trabalho em tempo real exige servidor próprio; para consulta sem rede, use a figura local e guarde os arquivos de edição com as fontes.
Leaflet monta mapa em camadas empilhadas: o fundo cartográfico embaixo, depois as áreas e, por cima, os marcadores. A biblioteca cuida do arrastar e do zoom, e os dados geográficos e as imagens vêm de outra fonte. Antes de tudo, confirme que o lugar muda a decisão e que uma lista não bastaria.
Digamos que sua área de atendimento tenha limites. Crie L.map e acrescente um GeoJSON, o arquivo de texto que guarda desenhos de região, com as áreas autorizadas. Use fitBounds para enquadrar tudo e nomeie as unidades. Mostre também a lista das cidades atendidas, legível sem aproximar o mapa.
Copiar o Leaflet para a pasta não traz junto as imagens do mapa, que continuam vindo da internet. Para funcionar offline, prepare camadas e dados locais autorizados, com ícones, estilos e as atribuições exigidas. Tire a rede, recarregue e teste zoom e busca; para uma área fixa, a figura estática resolve.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
MapLibre GL JS desenha mapa vetorial a partir de um estilo, que é a receita das camadas, cores e rótulos, usando a placa de vídeo. Esse estilo costuma apontar para vários arquivos de fora. Para o pacote andar sozinho, você prepara dados, fontes de texto, sprites e os arquivos de execução.
Se você precisa mostrar cobertura comercial, declare uma fonte GeoJSON com as regiões atendidas e uma camada de preenchimento para marcar a situação de cada uma. Ponha limites e rótulos com contraste suficiente. Quando o mapa mostrar taxa, escreva o denominador na legenda e ofereça a tabela por região.
Mapa que abre na segunda visita pode estar vivendo do cache e quebrar numa máquina limpa. Teste com perfil novo e rede bloqueada, olhando tiles, estilos, glifos, sprites e workers. Certos carregamentos exigem um servidor local; se o arquivo for aberto com dois cliques, exporte uma figura que se baste.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
deck.gl empilha camadas de dados desenhadas pela placa de vídeo: pontos, trajetos e agregações no espaço. Cada camada recebe os registros e funções que dizem onde fica, que tamanho tem e de que cor é. Compensa quando o volume e a exploração pagam esse custo; o mapa de fundo é peça à parte.
Para olhar suas entregas no mapa, crie uma ScatterplotLayer e informe longitude e latitude de cada registro por getPosition. Ligue tamanho ou cor a uma medida e explique essa medida na legenda. Ao clicar num ponto, mostre os dados dele num painel e filtre a tabela pelos mesmos registros.
Trocar latitude por longitude joga os pontos no oceano, e tamanho proporcional exagera diferença quando a regra está torta. Confira duas coordenadas que você conhece e o cálculo do tamanho. Teste sem placa de vídeo, deixe uma imagem alternativa e empacote dados e camadas; fundo remoto não vem junto.
OpenLayers organiza mapas com camadas vetoriais e raster, incluindo dados de diferentes projeções cartográficas. A projeção define como posições da superfície terrestre chegam ao plano da tela. A biblioteca é uma opção para aplicações geográficas que precisam combinar fontes técnicas, desde que a equipe compreenda os sistemas de coordenadas envolvidos.
Num exemplo de inspeção de unidades, carregue pontos GeoJSON numa fonte vetorial e mostre cada unidade por nome e situação. Declare a projeção de origem ao converter os dados para a projeção da vista. Um filtro deve atualizar tanto os pontos quanto a lista de unidades disponíveis para consulta textual.
Uma conversão ausente pode colocar registros fora da região esperada, mesmo sem erro de execução. Compare coordenadas de referência e valide a legenda antes de liberar o mapa. WMS, tiles e outros serviços continuam externos à biblioteca; prepare fontes locais autorizadas e teste se seu modo de distribuição exige servidor local.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Three.js monta cena em três dimensões com objetos, materiais, luz e câmera. Ganha quando profundidade ou posição no espaço muda a decisão, como a circulação entre equipamentos de uma oficina. Para comparar números, a terceira dimensão só traz trabalho de navegação e de acessibilidade, sem acrescentar informação.
Imagine a planta da sua oficina vista de cima. Crie uma Scene, uma câmera e blocos simples no lugar das bancadas, defina escala e nomes, e só depois pense em textura e luz. Abra sempre na mesma vista, identifique os controles e ofereça uma planta estática para quem não quiser girar nada.
Modelo, textura e fonte buscados por endereço continuam dependendo da internet, mesmo com a biblioteca na sua pasta. Confira os caminhos, o consumo de memória e o que acontece sem placa de vídeo. Pare a animação quando a cena sai da tela, libere o que descartou e distribua a alternativa estática.
SVG guarda formas em texto, então o ícone ou o diagrama cresce sem virar borrão de pixels. O desenho entra no HTML como qualquer outro pedaço da página e aceita estilo, nome e descrição. Isso serve bem para figura de documentação, desde que o texto dentro dela continue legível.
Desenhe o fluxo do atendimento com caixas e setas dentro de um SVG com viewBox, que é o enquadramento do desenho. Dê title e desc ao conjunto e ligue o nome com aria-labelledby quando a figura carregar informação. Use identificadores únicos e escreva o percurso também em texto.
Referência a fonte, imagem ou símbolo de fora quebra uma figura que parecia inteira. Confira cada vínculo, amplie na tela e mande imprimir uma prova. Identificador repetido embaralha figuras na mesma página. Arquivo vindo de terceiro merece revisão de conteúdo ativo e de licença, e figura decorativa não precisa ser lida em voz alta.
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
Explore os conceitos e compare abordagens em outros cursos. As conexões indicam assuntos relacionados; a sequência de estudo continua no índice do curso.
O mesmo assunto em outros cursos
- GEO Intent MappingMontar o mapa de prompts de uma loja e de uma B2BExaminar conexões de Montar o mapa de prompts de uma loja e de uma B2B
- Bastidores: Como Este Portal Foi ConstruídoO que foi entregue: o portal em telasExaminar conexões de O que foi entregue: o portal em telas
- SEO ProgramáticoBloquear a publicação de registro inválidoExaminar conexões de Bloquear a publicação de registro inválido
- Deploy para decisão executivaO que muda no mundo quando alguém diz que subiuExaminar conexões de O que muda no mundo quando alguém diz que subiu
Voltar ao capítulo anterior: Dimensionar tabelas e organizar o cálculo das métricas
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
- 15Projetar gráficos e painéis pela decisão
- 16Dimensionar tabelas e organizar o cálculo das métricas
- 17Escolher mapas, diagramas e cenas espaciais
- 18Comparar direção visual em Stripe e Apple
- 19Avaliar busca, conversão e padrões de comércio