Gerado de estilo/00-tokens.css por ds/gera.py. Editar esta página à mão não serve: o próximo gera.py sobrescreve.
← voltarestilo/00-tokens.css por link, não tem cópia própria. Trocar um valor aqui muda o produto em todos os lugares que o usam, sem procurar e substituir.AGENTS.md exige usar dentro de componente: pedir um papel, nunca escolher um primitivo direto. Quando o valor abaixo é só var(--outro-nome) (marcado alias), é sinal de papel apontando pro primitivo que o sustenta.--decorcopiar--papelcopiar--shellcopiar--mundocopiarO FUNDO DA JANELA — a "prancheta" atrás de tudo. Existir como token é correção de defeito, não adição (25/ago/2026): o valor vivia como `background:#F2F2F6` literal na regra do body, logo abaixo, e portanto era o único papel de superfície do sistema que não tinha nome. O sintoma: comentários em estilo/11-v2-fila.css e na vitrine JÁ citavam "--mundo" pra explicar contraste ("--t3 dá 4,31:1 sobre --mundo"), como se o token existisse — e ninguém podia consultá-lo. Depois, a página de documentação escreveu `var(--mundo, #f2f2f6)`, que caía SEMPRE no fallback: um literal disfarçado de token, exatamente o que a Regra 3 proíbe. Não é igual a --sup nem a --papel de propósito: os dois são branco, e o card branco precisa flutuar contra algo.--linhacopiar--linha-2copiar--linha-3copiar--veu-modalcopiarescurece o que fica atrás de uma camada modal centrada (o véu da busca Ctrl/Cmd+K). Não muda por tema de propósito, igual --sombreia: o papel dele é escurecer, não servir de hairline visível contra o canvas, então não precisa inverter no escuro. Achado no gate (26/ago/2026): estava rgba(20,20,34,.32) literal direto em Layout.css, violação da Regra 3.--supcopiar--sup-tintacopiarsuperfície base--sup-2copiar--sup-2-tintacopiarsuperfície suave--sup-3copiarhover de item--flutuacopiar--flutua-tintacopiarpopover/menu--caladacopiartexto secundário--bordacopiarborda de contorno--borda-fortecopiarborda em hover--sombreiacopiaro agente de ESCURECIMENTO: o que se mistura a um preenchimento cheio pra produzir o hover dele. Preto puro de propósito, e não --tinta: --tinta é papel de texto e tem viés azul (#16161C), então escurecer o verde e o vermelho com ela deslocaria o matiz em vez de só baixar o brilho.--tintacopiargrafite — o dado mora aqui. t2 8,9:1 · t3 4,8:1 — passam AA para texto pequeno, mas só contra --papel (branco); nenhum dos dois foi medido contra composição translúcida real. O tom mais claro virou --decor e NÃO carrega texto: só régua, ponto e traço. Hierarquia de rótulo se faz por peso, caixa e tracking, não por clarear até sumir. --t4 CORRIGIDO na fonte (31/ago/2026): o valor antigo (#73737F, quase idêntico a --t3) tinha reprovado 4,5:1 SEIS vezes em sessões anteriores (`.rotcorte small`/`.escala` a 4,19:1, `.morta-tx` a 4,31:1 — ver `contratos/ruler.md`), e cada vez foi remendado só no seletor que reprovou (trocado pra --t2 em `12-v3-terreno.css`/`11-v2-fila.css`), sem nunca corrigir o token. A sétima ocorrência apareceu na Fila (`.pos.num`/`.mapa-pe`, medido ao vivo com getComputedStyle + composição real de fundo translúcido, não a string do CSS): 4,19–4,41:1. Valor novo medido pra passar com folga contra o pior caso real (~rgb(245,245,246), o `--shell` translúcido composto sobre `--mundo`): 4,97–5,11:1. Fica mais escuro que --t3 de propósito — --t3 segue documentado como "só sobre --papel", --t4 precisa segurar composição translúcida, então não são mais o mesmo degrau. Os dois remendos antigos em --t2 continuam válidos (mais contraste que o necessário não é defeito) e não foram revertidos.--inkcopiar--ink-2copiar--t2copiar--t3copiar--t4copiar--offcopiar--off-tcopiar--forte-neutrocopiar--cheio-tintacopiartinta sobre preenchimento CHEIO de qualquer tom semântico: badge sólido de ok, atenção, risco, calado. São dois papéis e não um: --marca-tinta é o par da marca e muda se a marca mudar; este acompanha verde, âmbar e vermelho, que são outra família e outra decisão.--acaocopiarROXO OFICIAL DE MARCA (Indigo Velvet #3D2177, do manual em brandfetch). Antes era #6106D2, amostrado de print do GeoImóvel. O manual manda, e o tom oficial ainda é MAIS sóbrio: 12,5:1 no branco contra 8,5:1 do anterior.--acao-2copiar--acao-fracocopiar--acao-bordacopiar--marca-ourocopiardourado de marca: só a marca usa. Âmbar nesta interface já significa "atenção", então dourado em qualquer outro lugar colidiria de sentido.--marcacopiar--marca-tintacopiar--okcopiaraprovado em produção — landbank.html v282 (15/set/2026), #1C7548→#007A55--ok-txcopiargreen-800 · texto, 7,13:1 no branco — NÃO reavaliado contra o --ok novo, ver nota acima--ok-fcopiarverde de PREENCHIMENTO (check, ponto), não de texto. Ainda no tom antigo (#16A34A) no protótipo — veio de landbank.html v353 (25/set/2026), fora do escopo daquela rodada.--atcopiaraprovado em produção — landbank.html v282 (15/set/2026), #846014→#BB4D00--at-txcopiarorange-700 · texto, 5,22:1 no branco — NÃO reavaliado contra o --at novo, ver nota acima--nocopiaraprovado em produção — landbank.html v282 (15/set/2026), #B0322A→#C10007--no-txcopiarred-700 · texto, 6,42:1 no branco — NÃO reavaliado contra o --no novo, ver nota acima--infocopiaraprovado em produção — nunca mudou desde antes de 25/ago, nos dois repositórios--info-txcopiarblue-700 · texto, 6,83:1 no branco — NÃO reavaliado contra o --info novo, ver nota acima--ok-tcopiarTingimentos de fundo — recalculados junto com o veredito em landbank.html v282 (mesma entrega, "pra manter contraste, os badges usam a tinta como texto sobre o próprio -t"). Copiados de lá, não recalculados aqui: --info-t não mudou, o mesmo valor já estava certo nos dois lados.--at-tcopiar--no-tcopiar--info-tcopiar--c1copiarcategórica das camadas: um conjunto harmônico, não cinco cores soltas--c2copiar--c3copiar--c4copiar--c5copiar--folga-anelcopiarfolga pra não cortar o anel de foco de um filho de largura inteira dentro de contêiner com overflow:hidden (passos animados do login). Veio de landbank.html v353 (25/set/2026).--h-controlecopiaraltura padrão de controle: campo e botão usam a mesma, então batem sempre. Nasceu com o campo de texto do login (landbank.html v353 (25/set/2026)).--railcopiar--gutcopiar--space-1copiar--space-2copiar--space-3copiar--space-4copiar--space-6copiar--space-8copiar--space-12copiar--space-16copiar--l1copiarfecha com Esc e com clique fora — Radix Dialog já faz os dois por padrão, sem código extra, contanto que ninguém sobrescreva onEscapeKeyDown/onPointerDownOutside sem motivo (Regra 5).--gcolcopiar--icon-xscopiarponto, indicador mínimo--icon-smcopiardentro de badge/tag — já é o que `.bdg{--is:12px}` usa--icon-mdcopiarcheckbox, radio--icon-lgcopiarbotão, item de menu — padrão de uso mais comum--icon-xlcopiarNOVO, sem uso ainda — navegação solta, destaque, cabeçalho--sh-1copiarprofundidade: uma estratégia só, sombra em camadas. CONFERIDO contra mercado (usuário, `tokens-icone-sombra-motion-mercado.md`, 01/set/2026): a régua sugerida copia o shadcn puro, sombra em preto puro (`rgb(0 0 0 / ...)`), com o ponto em aberto "vale tingir a sombra com grafite/indigo em vez de preto puro, como Stripe/Linear/Attio fazem". Já fazemos isso — as três sombras abaixo usam `rgba(20,20,34, ...)`/`rgba(18,18,32,...)`, um grafite bem escuro, não preto puro (`rgb(0,0,0)`). Não são --shadow-xs/sm/md/lg novos: criar esse segundo conjunto duplicaria o mesmo papel que --sh-1/2/3 já cobre (a Regra 2 do AGENTS.md existe pra evitar exatamente isso), e pior, um --shadow-xs copiado literal do shadcn ENTRARIA em preto puro — regressão de um ponto que já estamos na frente do baseline comparado. Decisão de cor da sombra já tomada, então; falta só decidir se o tom exato (20,20,34) fica como está ou migra pro grafite/indigo específico que o documento sugere — ajuste fino, não decisão nova.--sh-2copiar--sh-3copiar--sh-acaocopiarrealce da AÇÃO PRIMÁRIA: a única sombra colorida do sistema, e só o botão de peso marca a usa. As --sh-1/2/3 acima são profundidade neutra; esta é ênfase, então é papel diferente e não um quarto degrau da mesma escala. Derivada de --acao por color-mix, não fixada: trocar o roxo troca o realce junto. Estava como rgba(61,33,119,.24) literal dentro da regra do botão, que é violação da Regra 3 e reprovava a entrega da Fase 1.--anelcopiarFOCO É CINZA NEUTRO, NUNCA A MARCA — decidido em PADRAO-VISUAL-DATALAND.md §2: "o roxo chama muita atenção pro campo enquanto digita, um cinza escuro é mais discreto e foca no conteúdo". Não é estética, é a marca competindo com o dado que a pessoa está digitando ou lendo. Reusa --t2 (não inventa hex novo) via color-mix, pra manter o halo translúcido que já existia — mas o valor ANTIGO (roxo a 32%) nunca chegou no 3:1 que WCAG 1.4.11 pede pra indicador de foco: media 1,9:1 contra branco. Não era so a cor errada, era o contraste errado, e ninguem tinha medido isso porque o outline SEMI-TRANSPARENTE muda o numero final — testar so a string do CSS não pega esse defeito. 65% de --t2 foi escolhido medindo o efeito de mistura real (RGBA sobre o fundo), não estimado: 3,47:1 sobre --papel, 3,32:1 sobre --mundo. Os dois passam o 3:1, com folga pequena de propósito — halo mais forte que isso passa a competir com o conteúdo, o mesmo problema que motivou a troca.--focus-ring-widthcopiarCONFERIDO contra mercado (usuário, `tokens-mercado-avancado-dataland.md`, 01/set/2026, rodada 6): a LARGURA de 3px converge de verdade — shadcn, Landbank (aqui) e os dois componentes medidos ao vivo da Attio batem nela. A COR não converge (Linear usa marca nos dois componentes, Attio é neutro no input mas azulado no botão, Stripe não tem anel visível) — fica com --anel como já era, não é decisão de mercado, é decisão nossa que o mercado não contradiz com força. Só a largura vira token — era `3px` literal solto nas duas regras que usam essa largura (`:focus-visible` global e `.inp-lei:focus-visible`), violação da Regra 3 anterior a esta medição.--easecopiar--rcopiarEXCEÇÃO REGISTRADA À REGRA 10 (usuário, Alessandro, 01/set/2026) — não é reversão da pesquisa de mercado, é a exceção por escrito que a própria Regra 10 exige quando alguém escolhe fugir do padrão de propósito. Migrou pra 10px (base do shadcn puro) mais cedo neste mesmo dia, depois de medir contra 5 sistemas reais. Revertido pra 6px (a base original do Landbank) depois de VER renderizado ao vivo — Botão e o card "Cenário A" liam como mais arredondado do que o produto quer parecer. Motivo coerente com uma decisão já tomada antes, não isolado: `landbank- design-system.md` já registra que o Badge em pílula total foi rejeitado três vezes por ser "público premium, não consumer" — o raio menor no botão/card segue a MESMA lógica de identidade visual, não é gosto solto. --card-radius (14px) e --card-compacto-radius (8px) — nunca chegaram a ser aplicados a `.shell` — ficam como registro de que o shadcn puro foi considerado e conscientemente não escolhido, não como pendência. Fórmula preservada (--r-m/--r-s numa relação de .67 do zero de --r, --r-xs em .5) — só o número da base voltou.--r-gcopiar--r-mcopiar--r-scopiar--r-xscopiar--r-cheiocopiar--fs-campo-toquecopiarsó pra campo em tela de toque (evita o zoom do iOS abaixo de 16px). Não é um degrau novo da escala tipográfica.--fs-exibicaocopiardisplay · numero-hero do resultado, raríssimo--fs-titulo-1copiarh1 · titulo de tela--fs-titulo-2copiarh2 · titulo de secao--fs-titulo-3copiarh3 · titulo de bloco/cartao--fs-destaquecopiarcorpo enfatizado, texto de intro--fs-corpocopiarcorpo padrao — o que body{} ja usava--fs-pequenocopiarlegenda, nota, texto secundario--fs-monocopiarnumero tabular, codigo, dado monoespacado--fs-rotulocopiarrotulo em caixa alta, gutter, texto minimo. CORRIGIDO (31/ago/2026): era 11px, subiu pra 12px. As quatro referencias que o paragrafo acima cita foram medidas ponto a ponto (Stripe, Linear, Carbon, Radix Themes, GitHub Primer, Material Design 3): 3 das 4 que este arquivo ja citava como referencia (Carbon, Radix, Primer) usam 12px como piso, so a Material Design 3 bate com 11px. O sistema estava um degrau abaixo da companhia que ele mesmo escolheu como espelho. Resto da escala (13/14/15px) ja batia ponto a ponto com Stripe/Carbon, sem necessidade de mudar.--fw-normalcopiarDois pesos no sistema. 500 e reservado pra tecla (kbd), nunca pra texto corrido: um terceiro peso no meio de 400 e 600 fica ambiguo de longe.--fw-fortecopiar--fw-teclacopiar--fontecopiar--fonte-monocopiarCódigo, nome de token, dado tabular. Uma fonte carregada e não a do sistema porque a do sistema muda por máquina, e aí a mesma tabela de token tem largura diferente pra cada pessoa do time.--tr-displaycopiar32-40px · título de tela e display--tr-titulocopiar19-24px · título de seção e de bloco--tr-corpocopiarcorpo: zero. Inter já é desenhada pra ser lida assim. `0em` e não `0`: em CSS os dois são idênticos, mas o exportador de DESIGN.md publica isto como Dimension, e o validador do formato reprova número sem unidade. Custou nada e evita um erro no lint.--tr-rotulocopiarrótulo em CAIXA ALTA pequeno — precisa de ar, não de aperto--tr-guttercopiarrótulo de gutter, o menor de todos: mais ar ainda--delta-sobecopiardelta: verde 5,02:1 e bordô 6,63:1 sobre branco, medidos no canvas pelo protótipo (landbank.html v353 (25/set/2026)). As cores do Typefully (#22c55e/#e5484d) e o green-600 do shadcn (#16a34a, 3,30:1) reprovam AA em texto, e aqui o delta é conteúdo: diz se o terreno está acima do que a empresa pagaria.--delta-caicopiar--douradocopiar--disabled-opacitycopiar.45, o valor do landbank.html v353 (produção aprovada, Regra 2). Era .5 aqui, e o porte tinha escrito .45 direto no .btn e no .chip: dois "desabilitado" diferentes na mesma tela (auditoria de 25/set/2026).--mapa-terracopiaros dois cinzas do mapa, os mesmos que o pintor de mapa do protótipo usa (CINZA.base e CINZA.quadra), agora com nome pro CSS. Terra clara, água um degrau mais escura.--mapa-aguacopiar--card-paddingcopiar--card-radiuscopiarxl do shadcn — considerado e rejeitado, ver acima--card-gap-gradecopiar16px em grade mais densa (>4 cards visíveis)--card-compacto-paddingcopiar12px se precisar de mais densidade ainda--card-compacto-radiuscopiarshadcn md — considerado e rejeitado, ver acima--dialog-cmdk-radiuscopiar