Fondos, bordes, sombras y degradados
💡 🎯 Al terminar esta lección podrás…
- Componer fondos con color, imágenes y varios degradados.
- Crear sombras sutiles y con profundidad.
- Aplicar opacidad, filtros y efecto cristal.
- Mantener el contraste y el rendimiento al usar efectos.
1.Fondos: color, imagen y capas
| Propiedad | Qué hace | Valores útiles |
|---|---|---|
background-color | Color de fondo | #eef2ff, transparent |
background-image | Imagen o degradado | url("foto.jpg"), linear-gradient(…) |
background-size | Tamaño de la imagen | cover (llena y recorta), contain (entera), 200px auto |
background-position | Dónde se coloca | center, top right, 50% 20% |
background-repeat | Si se repite | no-repeat, repeat-x |
background-attachment | Comportamiento al desplazar | fixed (efecto parallax simple) |
background | Atajo de todas | url(a.jpg) center / cover no-repeat |
.hero {
min-height: 60vh;
background: #1e2235 url("../img/portada.jpg") center / cover no-repeat;
color: #fff;
}
⚠️ Importante · Contraste sobre imágenes
Si pones texto sobre una foto, asegura el contraste: añade una capa oscura (linear-gradient(rgb(0 0 0 / .5), rgb(0 0 0 / .5)) como primer fondo) o una sombra de texto. Una foto bonita con texto ilegible no sirve.
Un elemento puede tener varios fondos apilados, separados por comas. El primero queda encima:
2.Degradados
| Función | Efecto | Ejemplo |
|---|---|---|
linear-gradient() | Cambia de color en línea recta | linear-gradient(90deg, #4f46e5, #22d3ee) |
radial-gradient() | Desde un centro hacia fuera | radial-gradient(circle at 30% 20%, #fff, #4f46e5) |
conic-gradient() | Gira alrededor de un centro | conic-gradient(red, yellow, green, red) |
repeating-linear-gradient() | Repite el patrón | Rayas |
- La dirección puede ser un ángulo (
45deg,90deg) o una palabra (to right,to bottom right). - Puedes poner paradas de color con posición:
#4f46e5 0%, #22d3ee 60%. - Un degradado es una imagen: va en
backgroundobackground-image, no enbackground-color.
3.Sombras y profundidad
/* desplazamiento-x desplazamiento-y desenfoque expansión color */
.tarjeta { box-shadow: 0 4px 12px rgb(0 0 0 / .12); }
/* Varias sombras: más natural */
.elevada {
box-shadow:
0 1px 2px rgb(0 0 0 / .08),
0 8px 24px rgb(0 0 0 / .12);
}
.hundida { box-shadow: inset 0 2px 6px rgb(0 0 0 / .25); } /* inset: hacia dentro */
.anillo { box-shadow: 0 0 0 3px #4f46e5; } /* un «borde» que no ocupa espacio */
text-shadowhace lo mismo con el texto:text-shadow: 0 1px 3px rgb(0 0 0 / .5).filter: drop-shadow()sigue la forma real de imágenes con transparencia (PNG, SVG), cosa quebox-shadowno hace.- Las sombras sutiles (poca opacidad, mucho desenfoque) se ven más profesionales que las duras.
4.Opacidad, filtros y mezcla
| Propiedad | Efecto | Ejemplo |
|---|---|---|
opacity | Transparencia de todo el elemento | opacity: .6 |
rgb(… / %) | Transparencia solo del color | background: rgb(79 70 229 / 20%) |
filter | Efectos tipo foto | blur(4px), grayscale(1), brightness(1.2), contrast(1.1), saturate(1.4) |
backdrop-filter | Efecto sobre lo que hay detrás (cristal esmerilado) | blur(10px) |
mix-blend-mode | Cómo se mezcla con lo de abajo | multiply, screen, overlay |
clip-path | Recorta con una forma | circle(50%), polygon(…) |
📌 Nota · Rendimiento
backdrop-filter y filter: blur() son costosos para el navegador, sobre todo con áreas grandes o animadas. Úsalos con moderación.
⚠️ Importante · opacity afecta a los hijos
Un opacity: .5 en un contenedor hace translúcido también a su texto y a todo lo que contiene. Si solo quieres un fondo translúcido, usa un color con alfa: background: rgb(0 0 0 / .5).
5.Texto con degradado y otros recursos
.logo {
background: linear-gradient(90deg, #4f46e5, #22d3ee);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
⚠️ Importante · Dar siempre una alternativa
Un texto con color: transparent desaparece si el navegador no entiende background-clip: text. Define antes un color normal y deja transparent para cuando el soporte exista, o envuélvelo en @supports (background-clip: text).
6.Buenas prácticas visuales
- Menos es más: una o dos sombras y un par de degradados bastan. Cada efecto extra compite con el contenido.
- Consistencia: usa las mismas sombras y radios en todo el sitio (variables en la lección 11).
- Contraste primero: comprueba el texto sobre cualquier fondo, también sobre degradados (revisa la zona más clara).
- Optimiza las imágenes de fondo: usa formatos modernos (WebP, AVIF) y tamaños adecuados.
- Respeta las preferencias:
prefers-contrastyprefers-reduced-transparencyexisten para quien los necesita.
7.Errores frecuentes
- Poner un degradado en
background-color: no funciona; va enbackgroundobackground-image. - Olvidar
background-sizeyno-repeaty que la imagen se repita o se vea enorme. - Texto ilegible sobre una foto.
opacityen vez de color con alfa y volver translúcido el texto.- Sombras muy oscuras y duras que parecen de los años 2000.
- Abusar de
blurybackdrop-filtery ralentizar la página. - Usar
box-shadowpara imágenes con transparencia (usadrop-shadow).
📒 Apuntes para llevar
backgroundadmite color, imágenes, degradados y varias capas (la primera queda encima).background-size: coverllena la caja recortando;containla muestra entera; añadeno-repeatycenter.linear-gradient,radial-gradientyconic-gradientcrean degradados: son imágenes.box-shadow(varias capas,inset, anillos) ytext-shadowdan profundidad; las sutiles se ven mejor.opacityafecta a todo el elemento;rgb(… / %)solo al color.filter(blur,grayscale…),backdrop-filteryclip-pathaportan efectos, con coste de rendimiento.- Sobre fondos con imágenes, asegura siempre el contraste del texto.
background-clip: textcrea texto con degradado, con alternativa.
8.Glosario
| Término | Significado |
|---|---|
| Degradado | Imagen generada por CSS que transiciona entre colores. |
background-size | Tamaño de la imagen de fondo (cover, contain). |
| Capa de fondo | Cada imagen o degradado apilado en background. |
box-shadow | Sombra alrededor de la caja de un elemento. |
| Alfa | Canal de transparencia de un color. |
backdrop-filter | Aplica un efecto a lo que está detrás del elemento. |
clip-path | Recorta un elemento con una forma. |
drop-shadow | Sombra que sigue la forma del contenido, con transparencia. |
🧠 Comprueba lo aprendido
Elige una respuesta en cada pregunta. Verás al instante si acertaste y por qué.
¿Dónde se escribe un linear-gradient()?
Un degradado es una imagen, no un color.
Quieres un fondo negro semitransparente sin afectar al texto. ¿Qué usas?
opacity volvería translúcido también el texto; un color con alfa solo afecta al fondo.
¿Qué hace background-size: cover?
cover mantiene la proporción y cubre toda la caja.
¿Cuál de estas sombras suele verse más profesional?
Las sombras suaves (mucho desenfoque, poca opacidad) resultan más naturales.
¿Cuál es el riesgo de abusar de backdrop-filter: blur()?
Los efectos de desenfoque son costosos de calcular, sobre todo en áreas grandes o animadas.
Tu progreso se guarda en este navegador y se refleja en el índice del curso.
💡 🚀 ¡Ahora te toca!
La práctica fija lo aprendido. Pasa al ejercicio de esta lección.