Quick reference

Escopo: CSS. Cheat-sheet das convenções; detalhes em conventions/.

Nomenclatura

ContextoConvençãoExemplos
Blocokebab-case.card, .nav-bar, .product-list
Elemento BEMbloco__elemento.card__title, .nav-bar__link
Modificador BEMbloco--modificador.card--featured, .button--primary
Custom property--kebab-case--color-primary, --spacing-md
Arquivo CSSkebab-casecard.css, nav-bar.css

Ordem de propriedades

GrupoPropriedades
Posicionamentoposition, top/right/bottom/left, z-index
Box modeldisplay, width/height/min/max, margin, padding
Tipografiafont-*, line-height, text-*, color
Visualbackground, border, border-radius, box-shadow, opacity
Animaçãotransition, animation

Tokens semânticos

CategoriaPadrãoExemplos
Cor--color-{papel}--color-primary, --color-surface, --color-danger
Tipografia--font-{aspecto}--font-size-md, --font-weight-bold
Espaçamento--spacing-{tamanho}--spacing-xs, --spacing-md, --spacing-xl
Raio--radius-{tamanho}--radius-sm, --radius-lg
Sombra--shadow-{tamanho}--shadow-sm, --shadow-card
Breakpoint--bp-{tamanho}--bp-md (768px), --bp-lg (1024px)

Unidades

UnidadeNome completoQuando usar
pxpixelBorders, sombras, valores fixos precisos
remroot emTipografia e espaçamento; escala com o font-size do :root
ememEspaçamento relativo ao font-size do elemento pai
%percentualLayout proporcional ao elemento pai
vh / vwviewport height / widthDimensões relativas à janela do browser
svh / dvhsmall / dynamic viewport heightViewport mobile; corrige a barra de URL que some ao rolar
frfractionDistribuição de espaço no CSS Grid (1fr 2fr = 1/3 e 2/3)
chcharacterLargura baseada no glifo 0 da fonte; útil para colunas de texto

Propriedades que confundem

PropriedadeO que faz
z-indexProfundidade no eixo Z. Maior valor fica na frente. Só funciona em elementos com position definido
box-shadowSombra ao redor do box do elemento: offset-x offset-y blur spread color
box-sizingborder-box inclui padding e border no width declarado; é o padrão sensato
overflowO que acontece quando o conteúdo ultrapassa o box: hidden, scroll, auto
displayComo o elemento participa do layout: block, inline, flex, grid, none
opacityTransparência do elemento inteiro (0–1); diferente de rgba(), que afeta só a cor
pointer-eventsnone remove o elemento da interação do mouse sem escondê-lo visualmente
will-changeAvisa o browser para promover o elemento a layer; usar com parcimônia

Tailwind: prefixos

Padrão {propriedade}{lado}-{escala}. Escala de 0 a 96; 1 unidade = 0.25rem.

PrefixoPropriedade CSSExemplo
ppadding (todos os lados)p-4padding: 1rem
pxpadding-left + padding-right (eixo X)px-6 → padding horizontal
pypadding-top + padding-bottom (eixo Y)py-2 → padding vertical
pt / pbpadding-top / padding-bottompt-8padding-top: 2rem
pl / prpadding-left / padding-rightpl-4
ps / pepadding-inline-start / end (lógico, RTL-safe)ps-4
mmargin (todos os lados)m-auto, m-4
mx / mymargin nos eixos X / Ymx-auto → centraliza horizontalmente
mt / mb / ml / mrmargin por ladomt-2, mb-4
gapgap (flex / grid)gap-4 → espaço entre filhos
space-x / space-ymargin entre filhos no eixo X / Yspace-y-4
w / hwidth / heightw-full, h-screen, w-1/2
min-w / max-wmin-width / max-widthmax-w-lg
zz-indexz-10, z-50
shadowbox-shadowshadow-sm, shadow-lg
roundedborder-radiusrounded-md, rounded-full
opacityopacityopacity-50opacity: 0.5

DoDocs v3.7.0 · Desenvolvido por @thiagocajadev · Baseado no trabalho de pmndrs/docs · Poimandres.