Início/Trilha 2 · Exemplos de Uso/Módulo 2.5
MÓDULO 2.5

📊 Dashboard / Tool UI

KPIs + chart + tabela + sidebar onde densidade é feature, não bug. Sem shadows, sem gradients, sem rounded.

8
Tópicos
~55 min
Duração
Prático
Nível
Density
Tese

🏁 Resultado: Você gera dashboard denso (KPIs + chart + tabela + sidebar) onde densidade é feature, com tipografia tabular e zero decoração.

1

📐 Skill dashboard — premissa density-first

Por que landing-page-rules não cabem aqui.

O que é

Dashboard é o oposto da landing. Landing tem ar, hierarquia gigante, 1 mensagem. Dashboard tem informação cruzada, baixa hierarquia, dezenas de números visíveis. A skill dashboard tem checklist próprio: anti-shadows, anti-gradients, anti-rounded-buttons, anti-h1-gigante. Densidade é a feature.

Por que aprender

Skill errada para o output errado = retrabalho. Aplicar regras de landing num dashboard = ele fica vazio, com whitespace exagerado. Saber qual skill usar = output certo na primeira tentativa.

Conceitos-chave

  • Density-first: mais info por pixel
  • Premissa "Bloomberg/Linear/SQL": denso, lido por olho treinado
  • scenario: dashboard
  • design_system pareada: linear-app ou tech-utility
2

🗂️ Sidebar fixa + canvas central + right rail

Layout canônico de tool UI.

O que é

Layout em 3 colunas:

┌──────┬───────────────────────┬────────┐
│      │                       │        │
│ Side │      Canvas           │ Right  │
│ bar  │      central          │ rail   │
│      │                       │        │
│ 240px│      flex-1           │ 320px  │
└──────┴───────────────────────┴────────┘

Sidebar = nav + workspace; canvas = chart/table/KPIs principais; right rail (opcional) = filtros, properties, comments. Linear, Notion, Figma, Cursor — todos seguem.

Por que aprender

Esse é o layout que "se sente como dashboard" sem precisar dizer. Inverter = causa estranheza. Saber a convenção = parecer bullpen sem esforço.

Conceitos-chave

  • Sidebar 240px: sweet spot — não come canvas
  • Canvas flex-1: ocupa todo restante
  • Right rail 320px: opcional, expandível/colapsável
  • Mobile: sidebar e rail viram drawers
3

🔢 Numerais tabulares (mono digits)

Por que e como.

O que é

Em fontes variáveis default, "1" tem largura diferente de "8" — números em colunas ficam desalinhados verticalmente. Tabular numerals (CSS font-variant-numeric: tabular-nums) força largura igual. Resultado: colunas de números alinhadas como Excel.

.kpi-value, table td.numeric, .price {
  font-variant-numeric: tabular-nums;
}

Por que aprender

É a regra mais subestimada. Olho do usuário compara números visualmente — desalinhamento causa "buraco" mental. Com tabular, comparação é instantânea. É o detalhe que separa "dashboard amador" de "dashboard pro".

Conceitos-chave

  • font-variant-numeric: tabular-nums: CSS one-liner
  • Inter, JetBrains Mono, Fira Code: default tabular
  • font-variant-numeric: lining-nums: bonus, capitais não baixam
  • Aplicar: KPIs, tabelas, prices, percentuais
4

📈 KPIs: hierarquia visual, sparklines, deltas

Como fazer 4 KPIs em uma linha sem competir.

O que é

Cada KPI tem 3-4 elementos: label (small caps, muted) + value (display grande, tabular) + delta com sinal (verde/vermelho, +/-) + sparkline opcional (gráfico de linha de 12 pontos). Tudo em uma só "card" sem border, separados só por whitespace.

Por que aprender

KPIs são a "primeira coisa que olho" do dashboard. Hierarquia ruim = usuário não sabe qual é o KPI principal. Com label small + value grande + delta + sparkline, atenção flui em milissegundos.

Conceitos-chave

  • Label: uppercase, 11-12px, color muted
  • Value: 32-48px, tabular, font weight 600
  • Delta: +12.4% verde / -3.1% vermelho, com seta sutil
  • Sparkline: SVG inline, 12 pontos, 60×24px, opacity 0.6
  • Sem ícone: emoji ou ícone deco quebra hierarquia
5

📋 Tabela com tipografia tabular, hover row, sticky header

Detalhes que separam tabela "uso" de tabela "decoração".

O que é

Tabela de dashboard tem 5 atributos não negociáveis:

  • Tabular nums em colunas numéricas
  • Sticky header ao scroll vertical
  • Hover row com bg sutil (cor < 5% chroma)
  • Row dividers finos (1px hairline)
  • Right-align numéricas, left-align strings

Por que aprender

Tabela é onde o usuário fica mais tempo. Sticky header em scroll = sempre lê header. Hover row = guia do olho. Right-align numéricas = comparação rápida. Tabela bonita não é a que tem ícones; é a que se navega bem.

Conceitos-chave

  • position: sticky; top: 0: header fixo
  • tr:hover: bg-color: oklch(... / 0.03)
  • border-bottom 1px: divisor sutil
  • text-align: right: em colunas numéricas
  • Sortable header: clique → ↑↓ visual
6

📊 Chart: SVG inline > biblioteca pesada

Quando o agente escolhe SVG vs Recharts/Chart.js.

O que é

Para sparklines e charts simples (line, bar, area com 12-50 pontos), SVG inline é o caminho: 30 linhas de código, zero dependências, customização total. Para charts complexos (heatmap, scatter de milhares de pontos), Recharts ou Chart.js. Default = SVG inline; library entra como exceção.

Por que aprender

Bibliotecas pesadas inflam bundle, impõem look próprio (que vira "cara de Recharts"), e são chatas de customizar. SVG inline integra com seu DESIGN.md naturalmente. Sempre comece SVG; library só se SVG não couber.

Conceitos-chave

  • SVG line: <path d="M0,12 L10,8 L20,15 ...">
  • SVG area: add <polygon> com fill semi-transparente
  • Tooltip: JS vanilla com hover events
  • Recharts: só quando > 100 pontos ou múltiplas séries
  • D3: overkill em 99% dos dashboards
7

🚫 Sem decoração: shadows, gradients e rounded são inimigos

Anti-patterns que destroem tool UI.

O que é

Em dashboard, três defaults de UI moderno são inimigos:

❌ Shadows

Sombras competem com hover state — confunde leitura

❌ Gradients

Gradiente de fundo derrota dark/light controlado por dado

❌ Rounded > 4px

Cards muito arredondados parecem "marketing", não "tool"

Por que aprender

Esses elementos são "default chic" em landing — mas em dashboard tiram da experiência. Linear, Stripe Dashboard, Cursor: todos seguem essa estética anti-decoração. É a "voz visual" do tool UI.

Conceitos-chave

  • Border-radius: 0-4px máximo
  • Box-shadow: usar 1px ring solid em vez (border)
  • Background: solid only, sem gradient
  • Card divider: 1px hairline border, não shadow elevation
  • P0 mecânico: grep "box-shadow" → warning
8

💕 dating-web como caso editorial dentro de dashboard

Quando densidade encontra editorial.

O que é

A skill dating-web é um caso especial: dashboard com voz editorial. Inspirada em sites como Pudding/The Information, mistura denso (números) com narrativa (parágrafos prosa). Mantém numerais tabulares; quebra a regra "sem decoração" controladamente — uma única flourish editorial por seção.

Por que aprender

Mostra que regras existem para serem quebradas conscientemente. dating-web deliberadamente quebra "sem decoração" porque o produto é content, não tool. Você pode aplicar essa lógica para dashboards de relatório, post-mortem, "data journalism".

Conceitos-chave

  • Editorial dashboard: narrativa + dado
  • Mantém: tabular numerals, sticky table
  • Quebra: permite 1 flourish (pull quote, ilustração)
  • Use case: relatório anual, post-mortem público, data story
  • Não para: tool diária (admin, CRUD)

🛠️ Hands-on

Brief: Dashboard de métricas de uma startup B2B SaaS — MRR, churn, NPS, top 10 contas.

Output: index.html denso, dark mode, real-data feel.

Estrutura sugerida:

  • Sidebar (240px): Logo + 5-7 itens de nav (Overview, Customers, Billing, Settings)
  • Canvas — linha 1: 4 KPIs (MRR, Churn, NPS, Active accounts) com sparklines
  • Canvas — linha 2: Chart de MRR ao longo do tempo (SVG inline)
  • Canvas — linha 3: Tabela de top 10 contas (account, MRR, status, last seen)
  • Right rail (opcional): alertas + filtros de período

Comando

/skill dashboard
/design-system linear-app   # tool UI canônico

# Brief
Dashboard métricas B2B SaaS:
- 4 KPIs (MRR, Churn, NPS, Active)
- Chart MRR ao longo do tempo (SVG inline)
- Tabela top 10 contas com status
- Sidebar 240 + canvas + right rail
- Dark mode default
- Anti-patterns: zero shadows, zero gradients, rounded ≤ 4px

📚 Fontes

No repositório

  • skills/dashboard/
  • skills/dating-web/
  • design-systems/linear-app/DESIGN.md

Externas

  • Edward Tufte — Visual Display of Quantitative Information
  • Linear, Stripe Dashboard, Cursor — referências canônicas
  • Pudding/The Information — editorial dashboards

📌 Resumo do Módulo

1. Skill dashboard tem premissa density-first — anti regra de landing.

2. Layout 3-col canônico: sidebar 240px + canvas + right rail 320px.

3. Tabular numerals em KPIs e tabelas — alinhamento mecânico.

4. KPIs com label small + value grande + delta colorido + sparkline opcional.

5. Tabela com sticky header, hover row, right-align numéricas.

6. Charts em SVG inline; biblioteca só quando > 100 pontos.

7. Sem shadows, sem gradients, rounded ≤ 4px.

8. dating-web é exceção controlada: editorial dashboard com 1 flourish.

← Módulo 2.4 Módulo 2.6 →