¿Qué es perspective en CSS y cómo usarlo para crear diseños 3D?

| Última modificación: 20 de diciembre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

No es una novedad decir que la tecnología evoluciona constantemente y, con ella, el diseño web, por lo que cada vez es más común encontrar efectos visuales que le dan profundidad y dinamismo a una página. Una de las propiedades que hacen posible este tipo de transformaciones tridimensionales es perspective en CSS. Así que si quieres aprender cómo diseñar páginas web modernas y atractivas, sigue leyendo, porque en este artículo voy a  contarte qué es perspective, para qué sirve y cómo usarla con ejemplos prácticos.

¿Qué es perspective en CSS y cómo usarlo para crear diseños 3D?

¿Qué es perspective en CSS?

En CSS, perspective es la propiedad que define la distancia entre el observador (el usuario) y el plano donde se renderizan los elementos 3D de una página. Pero, ¿qué quiere decir esto? En otras palabras, es lo que hace que las transformaciones tridimensionales, como rotaciones o inclinaciones, se vean más realistas al simular la profundidad.

Cuando aplicas esta propiedad, estás estableciendo un punto de vista que influye en cómo los elementos transformados en 3D se renderizan en pantalla. Es similar a mirar un objeto desde diferentes ángulos en la vida real: cuanto más cerca estés, más pronunciadas serán las distorsiones visuales, mientras que, si estás lejos, los objetos se ven más planos.

¿Para qué sirve perspective en CSS?

La propiedad perspective es muy útil porque te ayuda a darle vida a los efectos tridimensionales, pues sin ella, los efectos 3D no tendrían profundidad ni realismo. Veamos algunos de sus usos más comunes:

Crear animaciones en 3D

Si quieres añadir un efecto visual más impactante en tu proyecto, con esta propiedad puedes crear animaciones tridimensionales con efectos de rotación e inclinación. Estos efectos pueden usarse para destacar ciertos elementos al interactuar con ellos, como los botones o las imágenes destacadas. 

Por ejemplo, añadir un carrusel donde los elementos rotan de forma tridimensional es mucho más atractivo visualmente que usar un simple deslizamiento horizontal. En ese sentido, las animaciones 3D no sólo son estéticas, sino que generan un impacto positivo en la experiencia del usuario.

Agregar realismo a los diseños

Una de las principales ventajas de perspective es que te permite generar una sensación de profundidad al combinarla con transformaciones como rotateX o rotateY. De esta manera, puedes hacer que los objetos en tu página parezcan “salir” de la pantalla o retroceder hacia el fondo, lo que resulta especialmente útil si quieres crear una interfaz más inmersiva, donde los usuarios pueden interactuar con elementos que parecen cobrar vida.

Sintaxis de perspective en CSS

La sintaxis de esta propiedad es bastante sencilla, y puedes aplicarla de dos formas principales:

Usando la propiedad perspective en un contenedor

.container {
perspective: 800px;
}

En este caso, la perspectiva se aplica a todos los elementos hijos del contenedor .container.

Usando la función perspective() en la propiedad transform

Aquí, la perspectiva afecta únicamente al elemento donde se aplica.

.elemento {
transform: perspective(800px) rotateY(45deg);
}

Es importante que tengas presente que el valor que definas en perspective es la distancia, medida en píxeles, desde el punto de vista del observador hasta el plano de proyección. En ese sentido, cuanto menor sea el valor, más pronunciado será el efecto tridimensional.

¿Cómo organizar tus diseños usando perspective en CSS?

Si quieres empezar a usar esta propiedad para crear efectos tridimensionales que le sumen valor estético y funcional a tu página web, entonces puedes considerar los siguientes consejos:

Define un punto de referencia claro

El valor de perspective debería ajustarse a la experiencia visual que quieres transmitir. Por ejemplo, para crear efectos sutiles, puedes usar valores altos como 1000px. En cambio, si quieres crear efectos dramáticos, entonces debes usar valores bajos como 300px.

Ajusta el origen de transformación

La propiedad perspective se complementa con transform-origin, pues esta define el punto desde el cual se aplican las transformaciones. De tal manera, estas propiedades te permiten crear efectos más precisos.

.elemento {
transform-origin: center;
transform: perspective(600px) rotateX(45deg);
}

Experimenta con las transformaciones

También puedes combinar perspective con otras transformaciones como scale, rotateX o rotateY para obtener resultados más interesantes e impactantes.

Ejemplo de perspective en CSS

Para entender mejor cómo puedes utilizar esta propiedad, supongamos que quieres crear un efecto de tarjeta que se voltea en 3D al pasar el ratón. Podrías hacerlo de la siguiente manera:

HTML

<div class="tarjeta">
<div class="contenido">
<div class="frontal">Frontal</div>
<div class="trasera">Trasera</div>
</div>
</div>

CSS

.tarjeta {
width: 200px;
height: 300px;
perspective: 1000px;
}

.contenido {
width: 100%;
height: 100%;
transform-style: preserve-3d;
transition: transform 0.6s;
}

.tarjeta:hover .contenido {
transform: rotateY(180deg);
}

.frontal, .trasera {
position: absolute;
backface-visibility: hidden;
width: 100%;
height: 100%;
}

.trasera {
transform: rotateY(180deg);
}

De esta manera, puedes crear un efecto dinámico que puede usarse en tarjetas de presentación, portafolios o incluso en galerías de productos.

Cuando trabajas en diseño web, debes tratar de crear experiencias interactivas y visualmente atractivas que generen una experiencia más agradable y memorable para el usuario. Perspective en CSS es tan solo una de las muchas herramientas que puedes usar para lograrlo, así que si te interesa aprender más sobre técnicas avanzadas de desarrollo web, te invitamos a unirte al Bootcamp de Desarrollo Web en KeepCoding. Aquí podrás dominar los lenguajes de programación y las herramientas que necesitas para empezar una carrera profesional en tecnología.

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado