Propiedades de CSS3
Referencia agrupada de las principales propiedades CSS3, organizada por módulo (Animación, Flexbox, Grid, Transforms y más) con enlaces a los capítulos completos.
CSS3 es la evolución más reciente del lenguaje de Hojas de Estilo en Cascada. En lugar de ser una versión monolítica única, CSS3 está dividido en módulos independientes — Animaciones, Flexbox, CSS Grid, Fondos y Bordes, Transforms, Filtros y más — que los navegadores pueden implementar e incorporar por separado. Cada módulo añadió nuevas propiedades sobre el conjunto original de CSS2, permitiendo esquinas redondeadas, degradados, sombras, animaciones, diseños flexibles y basados en cuadrícula, y filtros visuales sin necesidad de imágenes ni JavaScript.
Esta página es un índice de referencia rápida de las propiedades introducidas o extendidas significativamente en CSS3, organizadas por el módulo al que pertenecen. Cada fila enlaza a un capítulo completo con sintaxis, valores y ejemplos en vivo.
Si eres nuevo en el lenguaje, comienza con los capítulos de Introducción a CSS y Sintaxis CSS antes de profundizar en propiedades individuales.
Cómo Usar Esta Referencia
- Busca una propiedad por grupo. Los encabezados a continuación reflejan los módulos de CSS3, así que si necesitas una propiedad de diseño busca en Diseño de Caja Flexible o CSS Grid; para movimiento busca en Animación o Transiciones; para efectos visuales busca en Efectos de Filtro o Propiedades Transform.
- Haz clic para obtener más detalles. Cada propiedad enlaza a su propio capítulo con la lista completa de valores, valores predeterminados y demos interactivos.
- Ten en cuenta la compatibilidad con navegadores. Los módulos de CSS3 alcanzaron soporte estable sin prefijos en momentos diferentes. La mayoría de las propiedades a continuación son seguras en todos los navegadores modernos, pero verifica siempre el soporte para adiciones más recientes (por ejemplo, ciertas propiedades
column-*) antes de depender de ellas en producción.
Nota sobre los Prefijos de Proveedor
Mientras los módulos de CSS3 eran aún experimentales, los navegadores incorporaban propiedades con prefijos de proveedor como -webkit-, -moz-, -ms- y -o-. Es posible que aún los encuentres en bases de código antiguas:
/* 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 las propiedades listadas a continuación casi nunca necesitas prefijos hoy en día — escribe el nombre estándar sin prefijo. Usa prefijos solo cuando debas dar soporte a un navegador antiguo, y siempre lista la propiedad estándar al final para que prevalezca.
CSS3 vs. CSS2 — ¿Qué Cambió?
CSS2 cubría el modelo de caja fundamental, colores, fuentes y posicionamiento. CSS3 construyó sobre esa base con las siguientes capacidades que antes estaban ausentes o muy limitadas:
- Esquinas redondeadas e imágenes de borde —
border-radius,border-image - Sombras —
box-shadow,text-shadow - Degradados y múltiples fondos —
background-size,background-clip - Diseños flexibles y basados en cuadrícula — Flexbox (
flex,align-items, …), CSS Grid (grid,grid-template-columns, …) - Transforms 2D y 3D —
transform,perspective - Cambios de estado suaves —
transition - Animaciones por fotogramas clave —
animation,@keyframes - Texto en múltiples columnas —
column-count,column-gap - Filtros visuales —
filter(desenfoque, brillo, contraste, …) - Transparencia personalizada —
opacity
Lista de Propiedades CSS3
Propiedades de Animación
Las animaciones por fotogramas clave permiten describir cómo un elemento transiciona a través de una serie de instantáneas de estilos. La regla @keyframes define las instantáneas; las propiedades animation-* las aplican y controlan en un 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;
}| Propiedad | Descripción |
|---|---|
| animation | Atajo que establece todas las sub-propiedades de animación en una sola declaración. |
| animation-delay | Especifica cuándo comienza una animación (positivo = retraso; negativo = inicio a mitad de ciclo). |
| animation-direction | Controla la dirección de reproducción: normal, reverse, alternate o alternate-reverse. |
| animation-duration | Define cuánto tiempo dura un ciclo de animación (p. ej., 0.4s, 500ms). |
| animation-fill-mode | Establece el estilo del elemento antes de que comience la animación y/o después de que termine (forwards, backwards, both). |
| animation-iteration-count | Cuántas veces se reproduce la animación — un número o infinite. |
| animation-name | Nombre de la regla @keyframes a aplicar. |
| animation-play-state | Pausa (paused) o reanuda (running) una animación — útil para botones de alternar. |
| animation-timing-function | Curva de aceleración para cada ciclo: ease, linear, ease-in-out, cubic-bezier(…), steps(…). |
| @keyframes (at-rule) | Define las instantáneas de estilo intermedias (fotogramas clave) por las que pasa una animación. |
Propiedades de Fondo
CSS3 extendió los fondos para admitir dimensionamiento, regiones de recorte e imágenes en capas múltiples sobre un ú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 */
}| Propiedad | Descripción |
|---|---|
| background-clip | Controla hasta dónde se extiende el fondo — border-box, padding-box o content-box. |
| background-origin | Establece el origen para background-position — border-box, padding-box o content-box. |
| background-size | Establece el tamaño de la imagen de fondo: una longitud, auto, cover (llena, puede recortar) o contain (encaja completamente). |
Propiedades de Borde
CSS3 añadió esquinas redondeadas y bordes basados en imágenes — características que antes requerían trucos con imágenes.
/* Rounded button */
.btn {
border-radius: 6px;
border: 2px solid steelblue;
}
/* Pill shape */
.badge {
border-radius: 999px;
}| Propiedad | Descripción |
|---|---|
| border-bottom-left-radius | Redondea la esquina inferior izquierda. Acepta un radio (círculo) o dos (elipse). |
| border-bottom-right-radius | Redondea la esquina inferior derecha. |
| border-image | Usa una imagen como borde, dividida en nueve regiones. |
| border-image-outset | Cuánto se extiende la imagen de borde más allá del cuadro de borde. |
| border-image-repeat | Si los bordes de la imagen de borde se stretched, repeated o rounded. |
| border-image-slice | Divide la imagen fuente en nueve secciones (cuatro esquinas, cuatro bordes, centro). |
| border-image-source | La URL de imagen o degradado usado como borde. |
| border-image-width | Ancho de las secciones de la imagen de borde (puede diferir del border-width de CSS). |
| border-radius | Atajo para los cuatro radios de esquina. |
| border-top-left-radius | Redondea la esquina superior izquierda. |
| border-top-right-radius | Redondea la esquina superior derecha. |
Color y Transparencia
| Propiedad | Descripción |
|---|---|
| opacity | Establece la transparencia de todo un elemento (y sus hijos) de 0 (invisible) a 1 (completamente opaco). Para transparencia por canal usa rgba() o hsla() en los valores color / background-color. |
Efectos de Filtro
La propiedad filter aplica efectos gráficos (desenfoque, brillo, contraste, sombra proyectada, etc.) directamente en CSS — sin necesidad de editor de imágenes.
.card:hover img {
filter: brightness(1.1) saturate(1.2);
transition: filter 0.2s ease;
}
.modal-backdrop {
filter: blur(4px);
}| Propiedad | Descripción |
|---|---|
| filter | Aplica una o más funciones de filtro: blur(), brightness(), contrast(), drop-shadow(), grayscale(), hue-rotate(), invert(), opacity(), saturate(), sepia() y url() (filtro SVG). |
Diseño de Caja Flexible
Flexbox es un modelo de diseño unidimensional — distribuye elementos a lo largo de un solo eje (fila o columna) y gestiona automáticamente la alineación, el espaciado y el ajuste de línea.
/* 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 un recorrido completo consulta La Guía Definitiva de Flexbox.
| Propiedad | Descripción |
|---|---|
| align-content | Alinea las líneas de un contenedor flex en el eje transversal cuando hay espacio extra (flex-start, flex-end, center, space-between, space-around, stretch). |
| align-items | Alineación transversal predeterminada para todos los elementos flex de un contenedor. |
| align-self | Anula align-items para un único elemento flex. |
| flex | Atajo para flex-grow, flex-shrink y flex-basis. |
| flex-basis | El tamaño inicial de un elemento flex antes de distribuir el espacio libre. |
| flex-direction | Dirección del eje principal: row, row-reverse, column o column-reverse. |
| flex-flow | Atajo para flex-direction y flex-wrap. |
| flex-grow | Cuánto crece un elemento flex en relación a sus hermanos cuando hay espacio extra. |
| flex-shrink | Cuánto se encoge un elemento flex en relación a sus hermanos cuando el espacio es escaso. |
| flex-wrap | Si los elementos flex se ajustan en múltiples líneas (nowrap, wrap, wrap-reverse). |
| justify-content | Alinea los elementos en el eje principal (flex-start, flex-end, center, space-between, space-around, space-evenly). |
| justify-items | Alineación en el eje en línea predeterminada para todos los elementos de cuadrícula (también usado en grid). |
| order | Cambia el orden visual de un elemento flex o de cuadrícula sin alterar el orden del DOM. |
Propiedades de Fuente
| Propiedad | Descripción |
|---|---|
| font-size-adjust | Conserva el tamaño de texto aparente cuando la fuente preferida no está disponible, ajustando el tamaño de la fuente alternativa para que coincida con la proporción x-height. |
| font-stretch | Selecciona una variante condensada o expandida de una familia tipográfica (p. ej., condensed, expanded, ultra-condensed). |
CSS Grid
CSS Grid es un sistema de diseño bidimensional — coloca elementos en filas y columnas simultáneamente, lo que lo hace ideal para diseños de nivel de página y cuadrículas de componentes complejos.
/* 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;
}| Propiedad | Descripción |
|---|---|
| grid | Atajo para todas las propiedades del contenedor de cuadrícula. |
| grid-area | Asigna un elemento de cuadrícula a un área nombrada o especifica su posición de fila/columna como atajo. |
| grid-auto-columns | Establece el tamaño de columna para pistas creadas implícitamente (cuando los elementos desbordan la cuadrícula explícita). |
| grid-auto-flow | Controla cómo se ubican automáticamente los elementos en la cuadrícula (row, column, dense). |
| grid-auto-rows | Establece el tamaño de fila para pistas creadas implícitamente. |
| grid-column | Atajo para grid-column-start y grid-column-end. |
| grid-column-end | Dónde termina un elemento en el eje de columna (número de línea, span o nombre). |
| grid-column-gap | Espacio entre columnas (reemplazado por column-gap en CSS moderno). |
| grid-column-start | Dónde comienza un elemento en el eje de columna. |
| grid-gap | Atajo para row-gap y column-gap (nombre antiguo; prefiere gap). |
| grid-row | Atajo para grid-row-start y grid-row-end. |
| grid-row-end | Dónde termina un elemento en el eje de fila. |
| grid-row-gap | Espacio entre filas (reemplazado por row-gap en CSS moderno). |
| grid-row-start | Dónde comienza un elemento en el eje de fila. |
| grid-template | Atajo para grid-template-rows, grid-template-columns y grid-template-areas. |
| grid-template-areas | Define áreas de plantilla nombradas usando una sintaxis de arte ASCII basada en cadenas. |
| grid-template-columns | Define el número y tamaño de columnas explícitas (longitudes, porcentajes, unidades fr, repeat(), minmax()). |
| grid-template-rows | Define el número y tamaño de filas explícitas. |
Propiedades de Diseño en Múltiples Columnas
El diseño en múltiples columnas distribuye el contenido automáticamente en un número o ancho de columnas establecido — similar al diseño de un periódico.
/* 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 */
}| Propiedad | Descripción |
|---|---|
| column-count | Número de columnas en las que se divide el contenido. |
| column-fill | Si las columnas están equilibradas (balance) o se llenan secuencialmente (auto). |
| column-gap | Espacio entre columnas (también usado en Flexbox y CSS Grid). |
| column-rule | Atajo para la línea divisoria entre columnas (estilo, ancho, color). |
| column-rule-color | Color de la línea divisoria entre columnas. |
| column-rule-style | Estilo de línea de la regla (solid, dashed, dotted, etc.). |
| column-rule-width | Grosor de la línea divisoria entre columnas. |
| column-span | Si un elemento ocupa una columna (none) o todas las columnas (all). |
| column-width | Ancho ideal de columna; el navegador crea tantas columnas como quepan. |
| columns | Atajo para column-count y column-width. |
Propiedades de Contorno
| Propiedad | Descripción |
|---|---|
| outline-offset | Aleja el contorno del borde del elemento (positivo = hacia afuera; negativo = hacia adentro). A diferencia de los márgenes, no afecta al diseño. |
Propiedades de Texto
CSS3 añadió control sobre el desbordamiento de texto, el ajuste de línea, las sombras y el estilo detallado de la decoración.
/* 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);
}| Propiedad | Descripción |
|---|---|
| tab-size | Ancho de un carácter de tabulación en bloques <pre> y de código (número de espacios o una longitud). |
| text-align-last | Alineación de la última (o única) línea en un bloque de texto justificado. |
| text-decoration-color | Color del subrayado, sobrerayado o tachado. |
| text-decoration-line | Qué líneas de decoración se dibujan: underline, overline, line-through o none. |
| text-decoration-style | Estilo de la línea de decoración: solid, double, dotted, dashed o wavy. |
| text-justify | Método de justificación usado cuando text-align: justify está activo (auto, inter-word, inter-character). |
| text-overflow | Cómo se indica el texto en línea desbordado: clip (recortar) o ellipsis (mostrar …). Requiere overflow: hidden y white-space: nowrap. |
| text-shadow | Añade una o más sombras al texto. Sintaxis: offset-x offset-y blur-radius color. |
| word-break | Dónde se producen los saltos de línea dentro de las palabras: normal, break-all o keep-all. |
| word-wrap | Si el navegador puede dividir una palabra no divisible para evitar el desbordamiento (normal o break-word). También estandarizado como overflow-wrap. |
Propiedades Transform
Los transforms mueven, rotan, escalan o sesgan elementos en el espacio 2D o 3D sin afectar al flujo del 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;
}| Propiedad | Descripción |
|---|---|
| backface-visibility | Si la cara trasera de un elemento con transform 3D es visible cuando está de espaldas (visible o hidden). Esencial para efectos de volteo de tarjeta. |
| perspective | Distancia del espectador al plano z=0; valores más bajos = efecto 3D más dramático. Se aplica al padre del elemento transformado. |
| perspective-origin | La posición x/y del punto de fuga para el transform perspective. |
| transform | Aplica funciones de transformación 2D o 3D: translate(), rotate(), scale(), skew(), matrix() y sus variantes 3D. |
| transform-origin | El punto alrededor del cual se aplica un transform (predeterminado: 50% 50% — centro del elemento). |
| transform-style | Si los hijos se renderizan en el espacio 3D (preserve-3d) o se aplanan en el plano del elemento (flat). |
Propiedades de Transición
Las transiciones animan los cambios de propiedad de un valor a otro durante una duración especificada cuando cambia una propiedad CSS (p. ej., en :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);
}Transiciones vs. animaciones: usa transition para cambios basados en estado (hover, focus, active) — son más simples de escribir. Usa animation con @keyframes para movimiento independiente, en bucle o de varios pasos que se ejecuta sin interacción del usuario.
| Propiedad | Descripción |
|---|---|
| transition | Atajo para transition-property, transition-duration, transition-timing-function y transition-delay. |
| transition-delay | Cuánto tiempo esperar antes de que comience la transición. |
| transition-duration | Cuánto dura la transición de principio a fin. |
| transition-property | Qué propiedad CSS (o all) afecta la transición. |
| transition-timing-function | La curva de velocidad de la transición (ease, linear, ease-in, ease-out, ease-in-out, cubic-bezier(…), steps(…)). |
Propiedades de Formato Visual
| Propiedad | Descripción |
|---|---|
| box-shadow | Añade una o más sombras alrededor del cuadro de un elemento. Sintaxis: offset-x offset-y blur spread color. Usa inset para una sombra interior. |
| box-sizing | Determina si width y height incluyen relleno y borde (border-box) o los excluyen (content-box, el predeterminado de CSS2). Casi todos los proyectos modernos establecen *, *::before, *::after { box-sizing: border-box; }. |
| overflow-x | Controla el desbordamiento horizontal: visible, hidden, clip, scroll o auto. |
| overflow-y | Controla el desbordamiento vertical: visible, hidden, clip, scroll o auto. |
| resize | Hace que un elemento sea redimensionable por el usuario: both, horizontal, vertical o none. Requiere que overflow sea distinto de visible. |
Referencias Relacionadas
Una vez que sepas qué propiedad necesitas, estos capítulos cubren en profundidad las características CSS3 más utilizadas:
- Animación CSS y @keyframes para movimiento basado en fotogramas clave.
- La Guía Definitiva de Flexbox para diseño unidimensional.
- grid y grid-template-columns para diseño de página bidimensional.
- filter para desenfoque, brillo, contraste, sombra proyectada y otros efectos gráficos.
- transform y transition para efectos visuales y cambios de estado suaves.
- border-radius y box-shadow para estilos decorativos modernos.