Damián De Luca - Capacitación & Desarrollo Web

Sombras con CSS: una guía completa con ejemplos de sombras para cajas, textos e imágenes

CSS

El uso eficiente de sombras en el diseño web puede brindarle mayor atractivo a una página. Las sombras en CSS permiten agregar profundidad y énfasis a los elementos, guiando la atención del usuario y mejorando la experiencia visual.

Las sombras pueden ser un elemento muy interesante como aliado para el objetivo de una página, pero también puede resultar ser un problema si no las aplicamos de manera correcta, por ejemplo, afectando la legibilidad del texto.

En esta guía, exploraremos cómo aplicar sombras en CSS para cajas, textos e imágenes, detallando ejemplos prácticos y consideraciones de diseño.

¿Qué es una sombra en CSS?

En CSS, las sombras se aplican principalmente usando las propiedades box-shadow para elementos en bloque (como divs y cajas en general) y text-shadow para textos (como pueden ser párrafos y títulos). Estas propiedades permiten definir la posición, color, desenfoque, y expansión de la sombra.

Para manejar las sombras, primero recomiendo conocer en detalle como trabajar con los colores en CSS ya que, como siempre explico en mis clases, será un factor clave para que la sombra se visualice de manera correcta y no dificulte la legibilidad del usuario.

Sombras con box-shadow

La propiedad box-shadow es fundamental para añadir sombras a cualquier elemento que tenga un área definida, como un div, una imagen, o un botón.

Estructura de la sintaxis básica de box-shadow en CSS:

box-shadow: desplazamiento-x desplazamiento-y desenfoque expansion color;

Código CSS de ejemplo de una sombra aplicada a un elemento div:

div {
    width: 200px;
    height: 200px;
    background-color: #f4f4f4;
    box-shadow: 10px 10px 20px 5px rgba(0, 0, 0, 0.2);
}

Este código aplicará una sombra suave y difuminada a un div, desplazada 10px hacia la derecha y hacia abajo, con un desenfoque de 20px y una expansión de 5px. La sombra tiene un color negro semitransparente.

Sombras internas con box-shadow y la propiedad inset

Además de sombras externas, CSS permite crear sombras internas usando la palabra clave inset.

En el siguiente ejemplo vemos el código CSS de una sombra interna aplicada a un div:

div {
    width: 200px;
    height: 200px;
    background-color: #fff;
    box-shadow: inset 5px 5px 10px rgba(0, 0, 0, 0.1);
}

En este caso, la sombra parece estar dentro del elemento, dando un efecto de relieve hacia adentro.

Vale remarcar que inset es un valor opcional que solo debemos usar si deseamos sombras internas. De manera predeterminada las sombras son externas y no requieren ninguna especificación adicional al declarar la regla.

Sombras en Texto con text-shadow

Para aplicar sombras a texto, se usa la propiedad text-shadow. Esta es una característica muy interesante para darle vida a los textos y que también puede tener una finalidad para destacar ciertos contenidos. Pero hay que utilizarla con precaución para no afectar a la legibilidad.

En mis clases suelo recomendar no aplicar esta técnica a textos que tengan un tamaño de fuente muy pequeño, ya que puede afectar la legibilidad y la experiencia del usuario.

Ejemplo de la estructura de la sintaxis básica de text-shadow en CSS

text-shadow: desplazamiento-x desplazamiento-y desenfoque color;

El código CSS que sigue a continuación es un ejemplo práctico de uso de esta propiedad:

h1 {
    font-size: 3.5em;
    color: #333;
    text-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
}

El código añade una sombra sutil al texto de un encabezado h1, lo que puede ayudar a destacar el texto en un fondo claro.

Con este tipo de características, siempre recomiendo en mis clases probarlo en el navegador, tanto en dispositivos de escritorio como en móviles, ya que la visualización directa en ambos tipos de dispositivos nos puede ayudar a identificar si logramos la experiencia de usuario buscada.

Sombras en imágenes

Aplicar sombras a imágenes sigue las mismas reglas que las sombras para otros elementos de caja (como vimos anteriormente con el div). Sin embargo, las imágenes con fondos transparentes y bordes redondeados o formas personalizadas pueden requerir atención adicional para evitar sombras no deseadas.

El siguiente código CSS es un ejemplo básico de una sombra aplicada a una imagen:

img {
    width: 300px;
    height: auto;
    box-shadow: 15px 15px 30px rgba(0, 0, 0, 0.4);
}

Sombras en elementos con bordes redondeados

Cuando trabajamos con elementos circulares o con bordes redondeados, como un div convertido en círculo, las sombras pueden añadir un efecto que permite realzar la forma del elemento.

A continuación veremos un código CSS que transforma un div en un círculo y le aplica una sombra exterior:

div {
    width: 150px;
    height: 150px;
    background-color: #3498db;
    border-radius: 50%;
    box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.3);
}

Como mencionaba, este código le otorga al div con forma de círculo y le aplica una sombra suave que acentúa su forma y da una «sensación» de que está más elevado del plano de fondo.

Múltiples sombras

CSS permite aplicar múltiples sombras a un solo elemento, lo que puede ser útil para crear efectos más complejos.

Código CSS con el ejemplo de múltiples sombras aplicadas a un mismo elemento:

div {
    width: 200px;
    height: 200px;
    background-color: #fff;
    box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.1), -5px -5px 15px rgba(255, 255, 255, 0.3);
}

Este código añade dos sombras al div: una en la esquina inferior derecha y otra en la esquina superior izquierda.

Consideraciones de Diseño

Palabras finales sobre el tema

Las sombras en CSS son una herramienta poderosa para dar profundidad y realismo a los elementos de una página web. Desde sombras externas e internas hasta su aplicación en texto e imágenes, cada aspecto debe ser cuidadosamente considerado para asegurar que mejora la experiencia del usuario sin comprometer la estética del diseño. Siempre debemos tener en mente que, como todo en diseño, la clave está en el equilibrio y la moderación.

Con estas técnicas ya tenemos suficientes elementos para comenzar a experimentar y crear diseños más atractivos, dando vida a nuestras páginas web con simples pero efectivas sombras en CSS.

Si deseamos aprender más sobre sombras en el texto, podremos encontrar más datos en el siguiente documento del W3C: Text Shadows: the text-shadow property.

Para más información sobre sombras en la caja podemos leer el siguiente artículo del W3C: CSS Backgrounds and Borders Module Level 3: Box Shadow Chapter.

Salir de la versión móvil