Ejercicio: Fondos, bordes, sombras y degradados
Objetivo
Diseñar una tarjeta de producto con sombras en capas, degradados, color con transparencia y texto con degradado.
La página de partida
Este es el HTML de tu página. No lo modifiques: escribe solo el CSS.
<article class="producto">
<div class="imagen"></div>
<h2 class="nombre">Reloj clásico</h2>
<p class="precio">$1,299</p>
<button class="comprar">Añadir al carrito</button>
</article>
<div class="aviso">¡Oferta de temporada!</div>
<h1 class="logo">Degradado</h1>
Pasos
Marca cada paso a medida que lo completes. Tu avance se guarda en este navegador.
💡 Pista 1: mi degradado no se ve
Los degradados van en background o background-image, no en background-color. Comprueba que lo has escrito en la propiedad correcta.
💡 Pista 2: el texto con degradado se ve negro
Necesitas las dos cosas: background-clip: text (y la versión con -webkit-) y color: transparent.
🔎 Comprueba tu trabajo
Pega tu código y pulsa Comprobar. La revisión ocurre en tu navegador; nada se envía a ningún sitio. Cada punto en rojo incluye una pista.
✅ Ver una solución de ejemplo
Intenta resolverlo antes de mirar. Tu versión puede ser distinta y también correcta.
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; padding: 24px; background: #f1f5f9; }
.producto {
max-width: 300px;
background: #fff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 1px 2px rgb(0 0 0 / .08), 0 8px 24px rgb(0 0 0 / .12);
}
.imagen {
height: 160px;
background: linear-gradient(135deg, #4f46e5, #22d3ee);
}
.nombre, .precio { padding: 0 16px; }
.precio { font-weight: 800; }
.comprar {
background: linear-gradient(90deg, #4f46e5, #7c3aed);
color: #fff;
border: 0;
border-radius: 10px;
padding: 10px 18px;
margin: 0 16px 16px;
}
.aviso {
background: rgb(79 70 229 / 15%);
border: 1px solid rgb(79 70 229 / 40%);
padding: 12px 16px;
margin-top: 16px;
}
.logo {
background: linear-gradient(90deg, #4f46e5, #ec4899);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
💡 🏁 Reto extra (opcional)
Añade un efecto de cristal: pon un fondo con degradado detrás del .aviso y usa backdrop-filter: blur(8px) con un fondo translúcido. Revisa que el texto conserve el contraste.