KDS
Chart

Comparison

Destaque-um-mute-os-outros — você vs pares, atual vs baseline, A/B test.

Comparison é o esquema para o pattern destaque-um-mute-os-outros — quatro neutros muted + um highlight colorido. É a paleta canônica para "você vs seus pares", "metric atual vs baseline", A/B test, e qualquer caso onde a leitura é "esse aqui versus o resto".

cmp-highlight
cmp-mute-1
cmp-mute-2
cmp-mute-3
cmp-mute-4

Tokens

AmostraTokenPrimitivoSignificado
--color-chart-cmp-highlightblue-600A série em foco
--color-chart-cmp-mute-1neutral-700Backdrop principal
--color-chart-cmp-mute-2neutral-500Backdrop secundário
--color-chart-cmp-mute-3neutral-400Backdrop terciário
--color-chart-cmp-mute-4neutral-300Backdrop quaternário

Quando usar

  • Bar chart com uma categoria em destaque + outras em neutro.
  • Line chart "sua semana vs todas as outras em cinza".
  • Before/after comparisons com a versão atual em cor.
  • A/B test results com a variante vencedora em destaque.
  • Cohort analysis focando uma cohort específica vs as demais.

Por que existe um esquema só pra isso

Em DS de produto, esse pattern aparece o tempo inteiro — suficientemente para merecer um nome e um conjunto canônico de tokens. A literatura clássica (ColorBrewer) não cobre, mas qualquer dashboard moderno tem várias instâncias dele.

A intenção dos quatro stops "mute" não é variedade — é hierarquia visual sutil. Se todas as séries-fundo forem exatamente iguais em peso, elas viram ruído. A escala neutral-700 → neutral-300 dá uma diferença discreta de ordem (a primeira mute é mais escura, a última mais clara), úteis quando você quer indicar uma ordem secundária sem competir com o highlight.

Quando não usar

  • Você tem duas séries com peso semântico igual — use Categorical.
  • O dado tem polos bom/ruim — use Status.
  • Dado contínuo bipolar — use Divergent.

Anti-patterns

Tratar Comparison como "Categorical com 5 cores". A intenção é hierarquia visual, não variedade. Se todas as séries forem coloridas, o destaque some — e você acaba com um Categorical mal calibrado.

Múltiplos highlights no mesmo chart. Comparison é um-contra-os-outros. Se você precisa destacar dois, está no território de Categorical (com 2 séries primárias + N de fundo) ou de small multiples.

Exemplo de consumo

import { Bar, BarChart } from "recharts";

const data = peers.map((p) => ({
  ...p,
  fill: p.id === currentUserId
    ? "var(--color-chart-cmp-highlight)"
    : `var(--color-chart-cmp-mute-${Math.min(4, p.tier)})`,
}));

<BarChart data={data}>
  <Bar dataKey="performance" />
</BarChart>

On this page