Ir ao conteúdo
SEED engenhariaDesign System

Tokens

5-g. A TINTA DE MARCA NÃO SOBREVIVE A NENHUMA SUPERFÍCIE DE INTERAÇÃO — nasce

seed-tokens.md v1.23 · §05-gseção 12 de 1705-g-a-tinta-de-marca-nao-sobrevive-a-nenhuma.md · MD5 4d90aa3b

Título completo no canon: A TINTA DE MARCA NÃO SOBREVIVE A NENHUMA SUPERFÍCIE DE INTERAÇÃO — nasce text-brand-strong (v1.19, 2026-08-20)

Seção escrita na nona parte, ao fechar a pendência HV-P5. Ela acrescenta ao §5-e, que já dizia "tinta de marca sobre superfície neutra: use --seed-text-brand, 4,60 e 8,31" — a frase está certa e estava incompleta: aqueles 4,60 e 8,31 foram medidos contra a página, e nenhum outro fundo havia sido medido. Registro completo em validacao/MANIFESTO.md §100 e em seed-componentes.md §73.

A LACUNA, medida. --seed-text-brand e --seed-text-link valem #098475 no claro:

superfície valor claro mede com #098475 veredito
surface-page · surface-raised #FFFFFF 4,60 passa, com 0,10 de margem
surface-subtle · action-neutral-hover #F2F6F9 4,23 reprova
action-neutral-active · surface-sunken #E3EBF0 3,81 reprova
row-selected-bg #E8FBF7 4,28 reprova

O NÚMERO QUE FECHA A DECISÃO, e ele é o que impede este assunto de virar gosto: para #098475 alcançar 4,5 o fundo precisa de luminância ≥ 0,978. O cinza neutro mais escuro que serve é #FDFDFD — dois passos do branco puro. NÃO EXISTE superfície de interação possível para aquela tinta. Qualquer sombreado de sobrevoo perceptível a derruba. Logo escurecer a tinta no estado não é preferência: é a única saída que não desliga o estado.

O TOKEN, e ele não traz hex novo:

Token Claro Escuro Mede no claro Use para
--seed-text-brand-strong #006C62 #66D1C2 6,32 página · 5,82 surface-subtle · 5,24 action-neutral-active · 5,89 row-selected-bg tinta de marca sobre superfície de INTERAÇÃO — sobrevoo, pressionado, linha selecionada

No claro o valor é o de surface-brand-deep e de action-primary-hover; no escuro é o mesmo de text-brand (#66D1C2, que já media 8,31 a 10,16 sobre todas as superfícies escuras). No tema escuro nada muda de aparência em nenhum pixel — a lacuna era só do claro, e o motivo é estrutural: no escuro a tinta de marca é clara e as superfícies de interação escurecem, então a interação aumenta o contraste em vez de consumi-lo.

ALTERNATIVA DESCARTADA, com número: reusar action-primary-hover como tinta PASSA (5,24 a 12,85 nos dois temas) e foi recusada por acoplamento de propósito — é token de FUNDO de botão, e uma mudança futura no sobrevoo do botão moveria a tinta do link em silêncio. Mesmo critério com que a v1.18 recusou action-ghost-hover para o sobrevoo neutro.

PRECEDENTE DE MERCADO, e ele é direto. O Carbon (IBM) tem exatamente este par — $link-primary (Blue 60 #0f62fe) e $link-primary-hover (Blue 70 #0043ce) — mais $link-secondary (Blue 70), descrito como "Secondary link color for lower contrast backgrounds". A issue #7647 do Carbon nomeia o mesmo caso fundador desta seção, verbatim: "The current link color for selected rows and rows with hover doesn't have enough visual contrast." O GOV.UK teve o defeito idêntico (hover #2b8cc4 sobre branco = 3,72) e o resolveu escurecendo a paleta em 2019. NORMA: WebAIM, verbatim — "the 4.5:1 (or 7:1) contrast requirement to the background does apply to all link states."

CONSEQUÊNCIA PARA A ORDEM DO TRABALHO, e ela não estava escrita em lugar nenhum: os dois tokens que nasceram na v1.18 (action-neutral-hover e action-neutral-active) são exatamente as superfícies que derrubam a tinta de marca. Aplicar a gramática HV1-d ao acervo sem text-brand-strong teria CRIADO casos de violação de norma em massa, em todo controle cuja tinta é de marca. A HV-P5 era pré-requisito técnico da HV-P4, e não só prioridade normativa.

FRONTEIRA DECLARADA — o que este token NÃO resolve. Ele é tinta. Onde o defeito é a superfície carregar texto — a marca chapada #11B0A0 com branco em cima, 2,71 — a saída é a que o §5-d já fixou no gate de 2026-08-18: descer a superfície para surface-brand-strong #098475 (4,60). Ali a opção de escurecer a tinta sobre a chapada (#00352F, 4,99) foi a opção D e ficou VETADA pelo Rafael.

ERRATA declarada e corrigida nesta edição: o cabeçalho do seed-tokens.css dizia v1.17 depois de a v1.18 ter nascido (os dois action-neutral-* de 2026-08-19). O conteúdo estava em v1.18; só o cabeçalho ficou atrasado. Corrigido junto com a v1.19.

PENDÊNCIA NOVA (TK-P1), medida: o bloco de tokens injetado em cada artefato declara de qual versão do gêmeo ele nasceu, e nenhum instrumento mede a defasagem. Censo por comando: o acervo declara seis versões — v1.5 (1 arquivo) · v1.7 (2) · v1.8 (1) · v1.9 (15) · v1.12 (1) · v1.17 (23) · e v1.19 (3, desta sessão).

Esc