Preview v1.4c. Sete tipos, três estados e o modo grayscale. Todas as cores vêm da §3c
do seed-tokens.md v1.4 — nenhum hex foi inventado aqui. Os SVG são estáticos: a estrutura
é inspecionável sem executar JavaScript.
Todo gráfico SEED é um <figure> com cinco partes. Sem as cinco,
não é gráfico canônico. A quarta — o fallback textual — existe porque a auditoria
pública do shadcn Charts mostrou que a biblioteca não entrega alternativa textual sozinha.
Gráfico de barras. Cinco usinas, geração em MWh. UFV Valadares lidera com 142 MWh; UFV Aimorés é a menor, com 51 MWh. Tabela completa abaixo.
| Usina | Geração (MWh) |
|---|---|
| UFV Valadares | 142 |
| UFV Governador | 118 |
| UFV Teófilo | 96 |
| UFV Caratinga | 74 |
| UFV Aimorés | 51 |
| Total | 481 |
DG1 As cinco partes: 1 título visível
(figcaption) · 2 descrição curta que identifica e diz onde está a
longa · 3 fallback textual (esta tabela) · 4 legenda ·
5 área do gráfico. O role="img" + aria-labelledby
amarra 1 e 2 ao SVG.
Barra e área sempre do zero, porque comprimento e área codificam o valor. Linha pode truncar, porque codifica por posição e inclinação — e a SEED precisa disso: PR de usina e tensão de rede variam pouco e importam muito.
Gráfico de linha, janeiro a junho de 2026. PR sobe de 79,2% para 83,1%. Eixo vertical truncado, iniciando em 74%.
| Mês | PR |
|---|---|
| Janeiro | 79,2% |
| Fevereiro | 80,1% |
| Março | 81,4% |
| Abril | 80,8% |
| Maio | 82,3% |
| Junho | 83,1% |
DG4 Três condições para truncar: eixo rotulado, mínimo explícito e marca visual de truncamento (o duplo traço na base). Truncar sem as três é dramatizar variação.
Gráfico de área, janeiro a junho de 2026. Geração cresce de 96 para 142 MWh. Eixo inicia em zero.
| Mês | MWh |
|---|---|
| Janeiro | 96 |
| Fevereiro | 112 |
| Março | 128 |
| Abril | 121 |
| Maio | 138 |
| Junho | 142 |
DG4 Curva monótona (nunca ultrapassa os valores reais — spline genérica inventaria picos) com gradiente 22%→0 sob o traço: a área comunica magnitude sem pesar.
Empilhada quando total e composição importam juntos. Se a pergunta é comparar um subgrupo entre períodos, a resposta é agrupada — porque só o segmento da base fica sobre a linha de zero comum.
Gráfico de barras empilhadas, março a junho de 2026, em kWh. Três segmentos: fora ponta (base), reservado e ponta. Total cresce de 6.620 para 7.465 kWh.
| Mês | Fora ponta | Reservado | Ponta | Total |
|---|---|---|---|---|
| Março | 4.820 | 1.260 | 540 | 6.620 |
| Abril | 5.140 | 1.310 | 610 | 7.060 |
| Maio | 4.460 | 1.180 | 495 | 6.135 |
| Junho | 5.390 | 1.420 | 655 | 7.465 |
DG10-c Fora ponta está na base porque é o segmento que o cliente compara mês a mês — é o único sobre a linha de zero. DG14 Sem contorno: os segmentos se separam por vão de 2px (espaço negativo na cor do cartão) — separação por geometria, que funciona contra qualquer cor, em qualquer modo. Supersede o DG11: o contorno cinza-900 era o que dava o ar de relatório antigo. DG13 Em escuro+grayscale as texturas continuam assumindo — a paleta melhora o colorido, não revoga a textura.
Gráfico de barras agrupadas, mesmos dados. Cada posto tarifário parte da mesma linha de zero, o que permite comparar ponta entre meses.
| Posto | Mar | Abr | Mai | Jun |
|---|---|---|---|---|
| Fora ponta | 4.820 | 5.140 | 4.460 | 5.390 |
| Reservado | 1.260 | 1.310 | 1.180 | 1.420 |
| Ponta | 540 | 610 | 495 | 655 |
DG10-a A agrupada é a saída obrigatória da empilhada, não uma alternativa de gosto. Repare que aqui o total sumiu: cada gráfico responde uma pergunta.
Gráfico de pizza, cinco fatias somando 100%. UFV responde por 45%; rede fora ponta 25%; rede ponta 15%; créditos 10%; reservado 5%.
| Origem | Participação |
|---|---|
| Gerada pela UFV | 45,0% |
| Rede — fora ponta | 25,0% |
| Rede — ponta | 15,0% |
| Créditos compensados | 10,0% |
| Reservado | 5,0% |
| Total | 100,0% |
DG5 Cinco fatias — o máximo — cobrindo as 5 famílias de matiz, adjacentes com ≥5 p.p. de diferença. Rótulo interno só onde a tinta atinge 4,5 sobre o fill; as demais saem com guia. DG14 Sem contorno: as fatias se separam por matiz, e em escuro+grayscale a textura do DG13 assume.
Gráfico de barras horizontais ordenado. Sete componentes de custo entre 18,4% e 9,1% — diferenças abaixo de 5 pontos percentuais.
| Componente | Participação |
|---|---|
| Módulos | 18,4% |
| Mão de obra | 17,0% |
| Inversores | 15,5% |
| Estrutura | 14,0% |
| Cabeamento | 12,5% |
| Projeto | 10,8% |
| Logística | 9,1% |
| Total | 97,3% |
DG5 Sete fatias, todas separadas por menos de 5 p.p.: duas travas violadas de uma vez. A barra horizontal ordenada responde a mesma pergunta e ainda cabe em 360px sem rótulo rotacionado DG8.
Gráfico de dispersão. Correlação positiva entre irradiância diária (kWh/m²) e geração específica (kWh/kWp). Use as setas do teclado para percorrer os pontos.
| Usina | Irradiância (kWh/m²) | Geração (kWh/kWp) |
|---|
DG2 Um único tab-stop para o gráfico
inteiro, depois ← → para percorrer os pontos,
Home / End para os extremos. Cada movimento é
anunciado em região aria-live.
Limite declarado, não resolvido: em modo de navegação, JAWS e NVDA interceptam
as setas antes da página — o Recharts contorna isso com role="application", e o
VoiceOver não tem equivalente. Por isso o teclado aqui é enriquecimento: quem garante o
acesso é a tabela do DG1.
Herdados do Bloco 3, mas com a moldura do gráfico. E a distinção que o DT tornou possível: “sem dado” não é estado vazio — o gráfico existe e a lacuna é hachurada.
Estado de espera.
Carregando o gráfico de geração por usina.
S2 O skeleton espelha a moldura real —
eixos, base e cinco barras na mesma posição — e trava o layout: nada salta quando o dado chega.
S3 Shimmer E→D 1,8 s, desligado em prefers-reduced-motion.
S5 Aos 15 s sem resposta, vira o estado de erro ao lado.
Estado vazio, tipo zero-resultados.
O filtro atual não retornou dados. Tente ampliar o intervalo de datas.
Z1 Zero-resultados não recebe CTA de criação — a ação oferecida mexe no filtro, que é a causa. Z2 Título de 4 palavras, sem ponto final; uma ação só.
Estado de erro.
A leitura do inversor não respondeu em 15 segundos. Os dados podem estar temporariamente indisponíveis.
S5 É o destino do timeout de 15 s.
§15 Alerta em role="alert", no lugar do gráfico —
não empilhado por cima dele.
Gráfico de barras. UFV Teófilo não reportou medição em junho — a barra aparece hachurada, e isso é diferente de gerar zero.
| Usina | Geração (MWh) |
|---|---|
| UFV Valadares | 142 |
| UFV Governador | 118 |
| UFV Teófilo | — |
| UFV Caratinga | 74 |
| UFV Aimorés | 51 |
DT chart-no-data sempre
hachurado, com o item “sem medição” na legenda e o traço — na tabela.
A distinção “gerou pouco × não reportou” nunca depende de cor — sobrevive ao grayscale e ao
impresso. Foi o achado do seu gate que criou esta regra.
Até três séries em linha ou área, o rótulo fica ao lado do traço. A legenda obriga ida-e-volta do olho — e a auditoria do shadcn mostrou que ela sequer tem relação codificada com o gráfico. Exceção declarada: a empilhada do bloco 3 usa legenda, porque com quatro segmentos o rótulo não cabe dentro da faixa.
Gráfico de linha com duas séries rotuladas diretamente, sem legenda. A geração medida fica acima da esperada a partir de março.
| Mês | Medida | Esperada |
|---|---|---|
| Janeiro | 96 | 88 |
| Fevereiro | 112 | 99 |
| Março | 128 | 107 |
| Abril | 121 | 115 |
| Maio | 138 | 120 |
| Junho | 142 | 123 |
DG7 DF3-1 As duas séries também diferem por tracejado, não só por cor: a “esperada” é pontilhada e violeta — família distinta, nunca um tom da mesma cor. Ligue o grayscale e as duas continuam distinguíveis.
Os formatos que aparecem em produto de verdade além dos sete tipos: número-destaque, ranking, destaque×contexto, mapa de atividade e linha multi-série. Cinco elementos onde couber, para julgar a diferenciação real entre as 5 famílias.
Linha de KPIs: número protagonista, rótulo em micro-caps, variação em pílula.
DG16 O ponto de status é sempre acompanhado do rótulo textual — cor nunca sozinha.
Barras-pílula horizontais, série única, valor em mono.
| Usina | MWh |
|---|---|
| Valadares | 142 |
| Governador | 118 |
| Teófilo | 96 |
| Caratinga | 74 |
| Aimorés | 51 |
DG15 Pílula sobre trilha em surface-subtle; a trilha dá a escala sem precisar de grade.
A quarta-feira concentra o pico; as demais em cinza de contexto.
| Dia | kWh |
|---|---|
| Seg | 824 |
| Ter | 1.021 |
| Qua | 1.412 |
| Qui | 748 |
| Sex | 1.096 |
| Sáb | 598 |
| Dom | 374 |
DG17 Uma cor onde está a mensagem, contexto em cinza-200. Recomendado sempre que há UM achado.
Cinco séries em curva monótona, uma família de matiz por série, rótulo direto no ponto final. Barreiras lidera em 5,6 kWh/kWp; Teófilo cai para 3,0.
| Usina | S8 (atual) |
|---|---|
| UFV Barreiras | 5,6 |
| UFV Valadares | 5,2 |
| UFV Colatina | 4,4 |
| UFV Aimorés | 4,0 |
| UFV Teófilo | 3,0 |
5 FAMÍLIAS turquesa · magenta · dourado · azul · violeta — o teste que você pediu: cinco informações diferentes, cinco matizes, nenhuma escala do mesmo tom.
Heatmap de intensidade: a escala sequencial da §3c em uso. Célula hachurada = dia sem medição.
Sumário do achado: a geração relativa concentra os picos nas quintas e sextas-feiras das semanas 1, 2 e 8; duas células sem medição (quarta da semana 2 e sexta da semana 4); nenhuma sequência de mais de dois dias consecutivos em intensidade mínima. O detalhamento diário vive no relatório da usina.
§3c Rampa sequencial 100→900 — intensidade É ordem, então aqui a família única é correta (o oposto da categórica). O no-data segue hachurado, distinto do "gerou pouco".
Preview v0.1 · sub-bloco DG · 2026-08-09. Tokens da §3c do
seed-tokens.md v1.4. Regras em seed-dataviz.md (DG1–DG10).
Nenhum botão desta página é decorativo.