ICN Brasil · design system · 1 de 4

Fundações

Superfície, forma, cor, tipografia, densidade e movimento da camada de aplicação.

O site da ICN é cartaz: Anton, papel quente, raio zero, sem sombra. O painel não herda nada disso. Aqui a hierarquia vem de cartão branco flutuando sobre cinza frio, o texto é pequeno e pesado, e o vermelho entra em dose pequena.

Superfícies

Tela, trilho e barra superior são a mesma cor. Quem cria hierarquia é o branco.

--app-bg#F1F1F3 · tela, trilho e topo
--app-surface#FFFFFF · cartão, menu, modal, pílula flutuante
--app-border#E5E7EB · divisória de lista, campo, tooltip
--app-zebra#F9F7F5 · alternância de tabela densa
--app-black#000000 · só o botão do sino

O trilho não tem borda nem sombra: some no fundo. Controle branco que boia leva sombra rasa mais anel de 1px, nunca borda desenhada.

Raio e elevação

Nada é quadrado. A escala de raio é a assinatura da linguagem.

12
16
20
24
28
full
12 campoinput, select, tile pequeno
16 cartãobloco do painel, botão utilitário
20 tilequadrado do ícone do KPI, trilho do segmentado
24 itemitem de menu suspenso, tooltip
28 flutuantemenu suspenso, modal
fullbotão, chip, badge, avatar, item do trilho, barra
0só no canto esquerdo de linha com filete

Sombra do cartão é 0 1px 3px rgba(0,0,0,.06), quase nada. O que flutua de verdade usa 0 20px 25px -5px rgba(0,0,0,.1).

Cor

Marca em dose pequena. Status é semântica e sempre tem rótulo.

marca
#C92041
hover
#910C2C
soft 8%
chip, ícone
tom 14%
nó concluído
Em dia A vencer Vencida Agendado Isenta Filtro ativo
#1F2937tinta, título, número
#6B7280secundário, subtítulo, rótulo de campo
#9CA3AFrótulo estrutural, placeholder, chevron
#94A3B8tique de eixo de gráfico

Regra dura: vermelho nunca lava o fundo de um container. Fica na pílula do item ativo, no botão primário, na marca do topo, no disco do seletor, no contador do sino e no preenchimento da barra. Identidade em bloco entra por filete de 3px. Destrutivo usa #E11D48, não a marca.

Tipografia

Inter, a mesma do MRM. Uma família só, texto pequeno e pesado.

Bom dia, Ridley 28 / 700 / -.02em · título de página, caixa normal
215 30 / 700 · número de KPI, tabular-nums
71% 40 / 700 / -.03em · centro do medidor, o maior do produto
Igrejas associadas na rede 16 / 700 · título de cartão
Anuidade em dia 11 / 700 / caixa alta / .025em · o único rótulo estrutural
Igreja Videira Sorocaba Nova filiação · Sudeste · 3 dias 14 / 600 e 12 / 400 · linha de lista, campos unidos por " · "

Pesos 400, 500, 600 e 700. Tracking negativo só a partir de 16px; abaixo disso, zero. Nada passa de 40px, e 40 só no medidor.

Densidade e grade

Alvo de 44px onde a mão toca. Página nunca rola na horizontal.

7fr 5fr
trilho279px, sem borda; conteúdo empurrado igual
topo88px no desktop, 72px no celular
respiro32px lateral, 12px no celular, base 48px
entre blocos20px
grade de KPI4 colunas gap 12px · 2 no celular
grade analítica7fr e 5fr, ou 1fr e 1fr, gap 16px
cartão16px interno, 22 a 24px nos blocos maiores
controles44 toque · 40 ação · 36 aba · 32 chip
ícones24 título · 18 menu · 16 cartão · 14 chip
breakpoints375 · 640 · 1024 · 1280

Toda grade leva min-width 0 nos filhos e todo texto longo trunca. O que é largo demais rola dentro do próprio cartão.

Movimento

Curto, de entrada, uma vez só. Nada fica em loop.

easingcubic-bezier(.16, 1, .3, 1) em tudo
entradafade mais 8 a 12px de subida
escalonamento40ms por item, declarado à mão
linha e áreadesenha o traço em 1.2s
barracresce da esquerda em 900ms
tique do medidoracende em 500ms, 12ms de atraso por tique
menu suspensoopacidade, escala .96 e y -6 em 160ms
microhover e chip entre 150 e 300ms
reduced motiontudo entra já no estado final

transform e opacity. Sem bounce, sem loop, e nada segura o clique enquanto anima.