escala

01 · 13 tokens

Spacing-01 a spacing-13. Os primeiros 2 são frações do BIT (2px, 4px); os demais são múltiplos.

tokenvalormúltiplo do BITuso típico
--spacing-012px¼ BITajuste fino · ícones inline
--spacing-024px½ BITgap mínimo entre elementos
--spacing-038px1 BITpadding compacto · gap default
--spacing-0412px1.5padding interno de form
--spacing-0516px2padding standard
--spacing-0624px3gap entre componentes
--spacing-0732px4gap entre seções
--spacing-0840px5padding generoso
--spacing-0948px6margin de seção
--spacing-1064px8main padding
--spacing-1180px10hero spacing
--spacing-1296px12margin entre macro-seções
--spacing-13160px20display spacing

o bit

02 · unidade primitiva

BIT = 8px. Por que 8? É divisível por 2 e 4, encaixa em telas retina (×2, ×3), e cria um grid invisível que conecta padding, sizing, ícones e linha-altura.

8 BITs no horizontal · 32px cada · grid de 264px

modos de densidade

03

Componentes podem assumir 3 densidades. Para usar, troque os tokens base por seus equivalentes denser.

modoaltura inputaltura btnuso
compact32px32pxtabelas densas, toolbars
default40px48pxproduto padrão
expressive56px64pxlandings, formulários longos

quando usar cada valor

04

use

  • Múltiplos do BIT — mesmo se for valor pequeno (8px sim, 7px não)
  • spacing-03 (8px) como gap default entre rows
  • spacing-09 (48px) como margin de section em desktop
  • spacing-05 (16px) como padding interno padrão

não use

  • Valores arbitrários (13px, 17px) — quebra o ritmo
  • spacing-01 / 02 em layouts macro
  • spacing-13 (160px) em mobile — quebra responsividade
  • spacings diferentes pra coisas iguais — gera inconsistência

código

05 · css
/* uso de spacing tokens */ .my-card { padding: var(--spacing-05) var(--spacing-06); margin-bottom: var(--spacing-07); gap: var(--spacing-04); } /* responsivo */ @media (max-width: 600px) { .my-card { padding: var(--spacing-04); } }