Propriedades CSS3
Referência agrupada das principais propriedades CSS3, organizada por módulo (Animação, Flexbox, Grid, Transforms e mais) com links para capítulos completos.
CSS3 é a evolução mais recente da linguagem Cascading Style Sheets. Em vez de ser um único lançamento monolítico, o CSS3 é dividido em módulos independentes — Animações, Flexbox, Grid Layout, Fundos e Bordas, Transforms, Filtros e mais — que os navegadores podem implementar e lançar separadamente. Cada módulo adicionou novas propriedades ao conjunto original do CSS2, oferecendo cantos arredondados, gradientes, sombras, animações, layouts flexíveis e baseados em grid, além de filtros visuais sem necessidade de imagens ou JavaScript.
Esta página é um índice de referência rápida das propriedades introduzidas ou significativamente estendidas no CSS3, organizadas pelo módulo ao qual pertencem. Cada linha leva a um capítulo completo com sintaxe, valores e exemplos ao vivo.
Se você é novo na linguagem, comece pelos capítulos Introdução ao CSS e Sintaxe CSS antes de se aprofundar em propriedades individuais.
Como Usar Esta Referência
- Encontre uma propriedade por grupo. Os títulos abaixo espelham os módulos do CSS3, então se você precisa de uma propriedade de layout, procure em Flexible Box Layout ou Grid Layout; para movimento, procure em Animation ou Transitions; para efeitos visuais, procure em Filter Effects ou Transform Properties.
- Clique para ver detalhes. Cada propriedade tem link para seu próprio capítulo com a lista completa de valores, padrões e demos executáveis.
- Atenção ao suporte dos navegadores. Os módulos CSS3 alcançaram suporte estável e sem prefixo em momentos diferentes. A maioria das propriedades abaixo é segura em todos os navegadores modernos, mas sempre verifique o suporte para adições mais recentes (por exemplo, certas propriedades
column-*) antes de utilizá-las em produção.
Uma Nota sobre Prefixos de Fornecedor
Enquanto os módulos CSS3 ainda eram experimentais, os navegadores lançavam propriedades com prefixos de fornecedor como -webkit-, -moz-, -ms- e -o-. Você ainda pode encontrá-los em bases de código mais antigas:
/* Older code — prefixes were needed during the experimental phase */
.box {
-webkit-transform: rotate(15deg);
-moz-transform: rotate(15deg);
transform: rotate(15deg); /* Always list the unprefixed property last */
}Para as propriedades listadas abaixo, você quase nunca precisa de prefixos hoje em dia — escreva o nome padrão sem prefixo. Use prefixos apenas quando precisar oferecer suporte a um navegador legado, e sempre liste a propriedade padrão por último para que ela sobreponha as demais.
CSS3 vs. CSS2 — O Que Mudou?
O CSS2 cobria o modelo de caixa fundamental, cores, fontes e posicionamento. O CSS3 construiu sobre essa base com as seguintes capacidades que estavam ausentes ou muito limitadas anteriormente:
- Cantos arredondados e imagens de borda —
border-radius,border-image - Sombras —
box-shadow,text-shadow - Gradientes e múltiplos fundos —
background-size,background-clip - Layouts flexíveis e baseados em grid — Flexbox (
flex,align-items, …), Grid (grid,grid-template-columns, …) - Transforms 2D e 3D —
transform,perspective - Transições suaves de estado —
transition - Animações por keyframes —
animation,@keyframes - Texto em múltiplas colunas —
column-count,column-gap - Filtros visuais —
filter(blur, brightness, contrast, …) - Transparência personalizada —
opacity
Lista de Propriedades CSS3
Propriedades de Animação
As animações por keyframes permitem descrever como um elemento transita por uma série de instantâneos de estilo. A regra @keyframes define os instantâneos; as propriedades animation-* as vinculam e controlam em um elemento.
/* Minimal animation example */
@keyframes slide-in {
from { transform: translateX(-100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
.banner {
animation: slide-in 0.4s ease-out both;
}| Propriedade | Descrição |
|---|---|
| animation | Abreviação que define todas as sub-propriedades de animação em uma única declaração. |
| animation-delay | Especifica quando uma animação começa (positivo = atraso; negativo = início no meio do ciclo). |
| animation-direction | Controla a direção de reprodução: normal, reverse, alternate ou alternate-reverse. |
| animation-duration | Define quanto tempo dura um ciclo de animação (ex.: 0.4s, 500ms). |
| animation-fill-mode | Define o estilo do elemento antes do início e/ou após o término da animação (forwards, backwards, both). |
| animation-iteration-count | Quantas vezes a animação é reproduzida — um número ou infinite. |
| animation-name | Nomeia a regra @keyframes a aplicar. |
| animation-play-state | Pausa (paused) ou retoma (running) uma animação — útil para botões de alternância. |
| animation-timing-function | Curva de easing para cada ciclo: ease, linear, ease-in-out, cubic-bezier(…), steps(…). |
| @keyframes (at-rule) | Define os instantâneos de estilo intermediários (keyframes) pelos quais uma animação passa. |
Propriedades de Fundo
O CSS3 estendeu os fundos para suportar dimensionamento, regiões de recorte e múltiplas imagens em camadas em um único elemento.
/* Responsive hero with background-size */
.hero {
background-image: url('/img/hero.jpg');
background-size: cover; /* fills the box; crop as needed */
background-position: center;
background-clip: border-box; /* default; image reaches border edge */
}| Propriedade | Descrição |
|---|---|
| background-clip | Controla até onde o fundo se estende — border-box, padding-box ou content-box. |
| background-origin | Define a origem para background-position — border-box, padding-box ou content-box. |
| background-size | Define o tamanho da imagem de fundo: um comprimento, auto, cover (preencher, pode cortar) ou contain (caber completamente). |
Propriedades de Borda
O CSS3 adicionou cantos arredondados e bordas baseadas em imagens — recursos que antes exigiam truques com imagens.
/* Rounded button */
.btn {
border-radius: 6px;
border: 2px solid steelblue;
}
/* Pill shape */
.badge {
border-radius: 999px;
}| Propriedade | Descrição |
|---|---|
| border-bottom-left-radius | Arredonda o canto inferior esquerdo. Aceita um raio (círculo) ou dois (elipse). |
| border-bottom-right-radius | Arredonda o canto inferior direito. |
| border-image | Usa uma imagem como borda, dividida em nove regiões. |
| border-image-outset | O quanto a imagem de borda se estende além da caixa de borda. |
| border-image-repeat | Se as bordas da imagem são stretched (esticadas), repeated (repetidas) ou rounded (arredondadas). |
| border-image-slice | Divide a imagem fonte em nove fatias (quatro cantos, quatro bordas, centro). |
| border-image-source | O URL da imagem ou gradiente usado como borda. |
| border-image-width | Largura das fatias da imagem de borda (pode diferir do border-width do CSS). |
| border-radius | Abreviação para os quatro raios de canto. |
| border-top-left-radius | Arredonda o canto superior esquerdo. |
| border-top-right-radius | Arredonda o canto superior direito. |
Cor e Transparência
| Propriedade | Descrição |
|---|---|
| opacity | Define a transparência de um elemento inteiro (e seus filhos), de 0 (invisível) a 1 (totalmente opaco). Para transparência por canal, use rgba() ou hsla() nos valores de color / background-color. |
Efeitos de Filtro
A propriedade filter aplica efeitos gráficos (blur, brilho, contraste, sombra projetada, etc.) diretamente no CSS — sem editor de imagens necessário.
.card:hover img {
filter: brightness(1.1) saturate(1.2);
transition: filter 0.2s ease;
}
.modal-backdrop {
filter: blur(4px);
}| Propriedade | Descrição |
|---|---|
| filter | Aplica uma ou mais funções de filtro: blur(), brightness(), contrast(), drop-shadow(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), sepia() e url() (filtro SVG). |
Flexible Box Layout
Flexbox é um modelo de layout unidimensional — distribui itens ao longo de um único eixo (linha ou coluna) e lida com alinhamento, espaçamento e quebra de linha automaticamente.
/* Classic centered card */
.card-grid {
display: flex;
flex-wrap: wrap;
gap: 1rem;
justify-content: center;
align-items: stretch;
}
.card {
flex: 1 1 300px; /* grow | shrink | basis */
}Para um guia completo, consulte O Guia Definitivo do Flexbox.
| Propriedade | Descrição |
|---|---|
| align-content | Alinha as linhas de um contêiner flex ao longo do eixo transversal quando há espaço extra (flex-start, flex-end, center, space-between, space-around, stretch). |
| align-items | Alinhamento padrão no eixo transversal para todos os itens flex de um contêiner. |
| align-self | Substitui align-items para um único item flex. |
| flex | Abreviação para flex-grow, flex-shrink e flex-basis. |
| flex-basis | O tamanho inicial de um item flex antes de o espaço livre ser distribuído. |
| flex-direction | Direção do eixo principal: row, row-reverse, column ou column-reverse. |
| flex-flow | Abreviação para flex-direction e flex-wrap. |
| flex-grow | O quanto um item flex cresce em relação aos irmãos quando há espaço extra. |
| flex-shrink | O quanto um item flex encolhe em relação aos irmãos quando o espaço é escasso. |
| flex-wrap | Se os itens flex quebram para múltiplas linhas (nowrap, wrap, wrap-reverse). |
| justify-content | Alinha itens ao longo do eixo principal (flex-start, flex-end, center, space-between, space-around, space-evenly). |
| justify-items | Alinhamento padrão no eixo inline para todos os itens de grid (também usado em grid). |
| order | Altera a ordem visual de um item flex ou grid sem modificar a ordem no DOM. |
Propriedades de Fonte
| Propriedade | Descrição |
|---|---|
| font-size-adjust | Preserva o tamanho aparente do texto quando a fonte de primeira escolha não está disponível, ajustando o tamanho da fonte substituta para corresponder à proporção x-height. |
| font-stretch | Seleciona uma variante condensada ou expandida de uma família de fontes (ex.: condensed, expanded, ultra-condensed). |
Grid Layout
CSS Grid é um sistema de layout bidimensional — posiciona itens em linhas e colunas simultaneamente, tornando-o ideal para layouts de página e grids de componentes complexos.
/* Three-column responsive grid */
.layout {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 1.5rem;
}
/* Named template areas */
.page {
display: grid;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
}| Propriedade | Descrição |
|---|---|
| grid | Abreviação para todas as propriedades do contêiner grid. |
| grid-area | Atribui um item de grid a uma área nomeada ou especifica sua posição de linha/coluna como abreviação. |
| grid-auto-columns | Define o tamanho da coluna para trilhas criadas implicitamente (quando os itens ultrapassam o grid explícito). |
| grid-auto-flow | Controla como os itens posicionados automaticamente preenchem o grid (row, column, dense). |
| grid-auto-rows | Define o tamanho da linha para trilhas criadas implicitamente. |
| grid-column | Abreviação para grid-column-start e grid-column-end. |
| grid-column-end | Onde um item termina ao longo do eixo de coluna (número de linha, span ou nome). |
| grid-column-gap | Espaço entre colunas (substituído por column-gap no CSS moderno). |
| grid-column-start | Onde um item começa ao longo do eixo de coluna. |
| grid-gap | Abreviação para row-gap e column-gap (nome antigo; prefira gap). |
| grid-row | Abreviação para grid-row-start e grid-row-end. |
| grid-row-end | Onde um item termina ao longo do eixo de linha. |
| grid-row-gap | Espaço entre linhas (substituído por row-gap no CSS moderno). |
| grid-row-start | Onde um item começa ao longo do eixo de linha. |
| grid-template | Abreviação para grid-template-rows, grid-template-columns e grid-template-areas. |
| grid-template-areas | Define áreas de modelo nomeadas usando uma sintaxe de arte ASCII baseada em strings. |
| grid-template-columns | Define o número e o tamanho das colunas explícitas (comprimentos, porcentagens, unidades fr, repeat(), minmax()). |
| grid-template-rows | Define o número e o tamanho das linhas explícitas. |
Propriedades de Layout Multi-Coluna
O layout multi-coluna distribui o conteúdo automaticamente por um número ou largura definida de colunas — semelhante ao layout de um jornal.
/* Two-column article body */
.article-body {
columns: 2 400px; /* shorthand: column-count column-width */
column-gap: 2rem;
column-rule: 1px solid #ddd;
}
h2 {
column-span: all; /* heading breaks out of columns */
}| Propriedade | Descrição |
|---|---|
| column-count | Número de colunas em que o conteúdo é dividido. |
| column-fill | Se as colunas são balanceadas (balance) ou preenchidas sequencialmente (auto). |
| column-gap | Espaço entre as colunas (também usado em Flexbox e Grid). |
| column-rule | Abreviação para a linha divisória entre as colunas (estilo, largura, cor). |
| column-rule-color | Cor da linha entre as colunas. |
| column-rule-style | Estilo de linha da régua (solid, dashed, dotted, etc.). |
| column-rule-width | Espessura da linha entre as colunas. |
| column-span | Se um elemento abrange uma coluna (none) ou todas as colunas (all). |
| column-width | Largura ideal da coluna; o navegador cria quantas colunas couberem. |
| columns | Abreviação para column-count e column-width. |
Propriedades de Contorno
| Propriedade | Descrição |
|---|---|
| outline-offset | Afasta o contorno da borda do elemento (positivo = para fora; negativo = para dentro). Ao contrário das margens, não afeta o layout. |
Propriedades de Texto
O CSS3 adicionou controle sobre overflow de texto, quebra, sombras e estilização refinada de decorações.
/* Truncate long titles with ellipsis */
.card-title {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Subtle heading shadow */
h1 {
text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.25);
}| Propriedade | Descrição |
|---|---|
| tab-size | Largura de um caractere de tabulação em <pre> e blocos de código (número de espaços ou comprimento). |
| text-align-last | Alinhamento da última (ou única) linha em um bloco de texto justificado. |
| text-decoration-color | Cor do sublinhado, sobrelinhado ou tachado. |
| text-decoration-line | Quais linhas de decoração são desenhadas: underline, overline, line-through ou none. |
| text-decoration-style | Estilo da linha de decoração: solid, double, dotted, dashed ou wavy. |
| text-justify | Método de justificação usado quando text-align: justify está ativo (auto, inter-word, inter-character). |
| text-overflow | Como o texto inline em overflow é sinalizado: clip (cortar) ou ellipsis (mostrar …). Requer overflow: hidden e white-space: nowrap. |
| text-shadow | Adiciona uma ou mais sombras ao texto. Sintaxe: offset-x offset-y blur-radius color. |
| word-break | Onde as quebras de linha ocorrem dentro das palavras: normal, break-all ou keep-all. |
| word-wrap | Se o navegador pode quebrar uma palavra inquebrável para evitar overflow (normal ou break-word). Também padronizado como overflow-wrap. |
Propriedades de Transform
Transforms movem, rotacionam, escalam ou inclinam elementos no espaço 2D ou 3D sem afetar o fluxo do documento.
/* 2D card flip on hover */
.card {
perspective: 600px;
transform-style: preserve-3d;
transition: transform 0.5s ease;
}
.card:hover {
transform: rotateY(180deg);
}
.card-back {
backface-visibility: hidden;
}| Propriedade | Descrição |
|---|---|
| backface-visibility | Se a face traseira de um elemento transformado em 3D é visível quando está voltada para longe (visible ou hidden). Essencial para efeitos de virada de cartão. |
| perspective | Distância do observador ao plano z=0; valores menores = efeito 3D mais dramático. Aplicado ao pai do elemento transformado. |
| perspective-origin | A posição x/y do ponto de fuga para o transform perspective. |
| transform | Aplica funções de transformação 2D ou 3D: translate(), rotate(), scale(), skew(), matrix() e suas variantes 3D. |
| transform-origin | O ponto em torno do qual um transform é aplicado (padrão: 50% 50% — centro do elemento). |
| transform-style | Se os filhos são renderizados no espaço 3D (preserve-3d) ou achatados no plano do elemento (flat). |
Propriedades de Transição
As transições animam mudanças de propriedade de um valor a outro ao longo de uma duração especificada quando uma propriedade CSS muda (ex.: em :hover).
/* Smooth color + shadow on hover */
.btn {
background-color: steelblue;
box-shadow: none;
transition: background-color 0.2s ease, box-shadow 0.2s ease;
}
.btn:hover {
background-color: dodgerblue;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}Transições vs. animações: use transition para mudanças orientadas por estado (hover, focus, active) — são mais simples de escrever. Use animation com @keyframes para movimentos independentes, em loop ou com múltiplas etapas que ocorrem sem interação do usuário.
| Propriedade | Descrição |
|---|---|
| transition | Abreviação para transition-property, transition-duration, transition-timing-function e transition-delay. |
| transition-delay | Quanto tempo aguardar antes de a transição começar. |
| transition-duration | Quanto tempo a transição leva do início ao fim. |
| transition-property | Qual propriedade CSS (ou all) a transição se aplica. |
| transition-timing-function | A curva de velocidade da transição (ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(…)). |
Propriedades de Formatação Visual
| Propriedade | Descrição |
|---|---|
| box-shadow | Adiciona uma ou mais sombras ao redor da caixa de um elemento. Sintaxe: offset-x offset-y blur spread color. Use inset para uma sombra interna. |
| box-sizing | Determina se width e height incluem padding e borda (border-box) ou os excluem (content-box, padrão do CSS2). Quase todos os projetos modernos definem *, *::before, *::after { box-sizing: border-box; }. |
| overflow-x | Controla o overflow horizontal: visible, hidden, clip, scroll ou auto. |
| overflow-y | Controla o overflow vertical: visible, hidden, clip, scroll ou auto. |
| resize | Torna um elemento redimensionável pelo usuário: both, horizontal, vertical ou none. Requer que overflow seja diferente de visible. |
Referências Relacionadas
Assim que souber qual propriedade precisa, estes capítulos cobrem os recursos CSS3 mais usados em profundidade:
- CSS Animation e @keyframes para movimento baseado em keyframes.
- O Guia Definitivo do Flexbox para layout unidimensional.
- grid e grid-template-columns para layout de página bidimensional.
- filter para blur, brilho, contraste, drop-shadow e outros efeitos gráficos.
- transform e transition para efeitos visuais e transições suaves de estado.
- border-radius e box-shadow para estilização decorativa moderna.