View Transitions
Es una nueva API de navegador diseñada para facilitar animaciones fluidas y transiciones entre vistas o elementos en páginas web.
Esta funcionalidad permite a los desarrolladores crear experiencias más dinámicas y atractivas, como pasar de una galería de imágenes a un detalle ampliado o cambiar entre diferentes secciones de una página, con transiciones suaves entre estados.
¿Cómo funciona?
La API de View Transitions actúa como un puente entre dos estados visuales diferentes de una página web. En lugar de simplemente actualizar el contenido de manera abrupta, permite al navegador animar los cambios de forma fluida.
- Estado inicial: La vista actual (por ejemplo, una miniatura de imagen).
- Estado final: La vista siguiente (por ejemplo, una imagen ampliada o detalles).
- Transición animada: El navegador interpola automáticamente entre ambos estados.
HTML+JS
CSS
@import "https://unpkg.com/open-props/easings.min.css";
@layer demo.view-transition {
::view-transition-group(*) {
animation-duration: .5s;
animation-timing-function: var(--ease-5);
}
.hub > * {
@media (prefers-reduced-motion: no-preference) {
&:nth-child(1) {
view-transition-name: gallery-item-1;
}
&:nth-child(2) {
view-transition-name: gallery-item-2;
}
&:nth-child(3) {
view-transition-name: gallery-item-3;
}
&:nth-child(4) {
view-transition-name: gallery-item-4;
}
&:nth-child(5) {
view-transition-name: gallery-item-5;
}
&:nth-child(6) {
view-transition-name: gallery-item-6;
}
&:nth-child(7) {
view-transition-name: gallery-item-7;
}
}
}
@layer demo.layout {
.hub {
display: grid;
gap: 1rem;
grid-template-columns: repeat(5, 15vw);
grid-template-rows: repeat(3, 15vw);
&.portrait {
grid-template-columns: repeat(3, 20vw);
grid-template-rows: repeat(5, 20vw);
}
/* selected promotion */
> :has(:checked) {
grid-column: 1 / 4;
grid-row: 1 / 4;
}
/* pile the label, input and image */
> * {
display: grid;
> * {
grid-area: 1/1;
}
> label {
opacity: 0;
cursor: pointer;
-webkit-tap-highlight-color: transparent;
}
> input {
border-radius: 0;
outline-offset: 5px;
outline-color: deeppink;
outline-color: color(display-p3 1 0 1);
}
}
}
}
@layer demo.support {
* {
box-sizing: border-box;
margin: 0;
}
html {
block-size: 100%;
color-scheme: dark light;
}
body {
min-block-size: 100%;
font-family: system-ui, sans-serif;
place-content: center;
}
fieldset {
border: none;
padding: 0;
margin: 0;
}
img {
max-inline-size: 100%;
}
html {
view-transition-name: none;
}
}
.particle-container {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1; /* Coloca las partículas detrás del contenido */
overflow: hidden;
}
.particle {
position: absolute;
width: 10px;
height: 10px;
background: rgba(255, 255, 255, 0.8); /* Partículas blancas */
border-radius: 50%;
animation: moveParticle 5s linear infinite;
opacity: 0.5;
}
/* Animación para las partículas */
@keyframes moveParticle {
0% {
transform: translateY(0) translateX(0);
opacity: 1;
}
100% {
transform: translateY(100vh) translateX(calc(100vw * -0.5));
opacity: 0;
}
}
COMPARTIR EN:
Facebook
LinkedIn
WhatsApp
38
🔍 Analiza tu web con Inteligencia Artificial – Gratis y al instante
¿Tu sitio está optimizado? Con esta herramienta puedes descubrir en segundos cómo mejorar la UX de tu web gracias a la inteligencia artificial.
COMPARTIR EN:
Facebook
LinkedIn
WhatsApp
73
Checklist de UX para Desarrolladores
¿Cuántos errores de experiencia de usuario tiene tu web y aún no lo sabes? Este checklist UX te los revela todos.
COMPARTIR EN:
Facebook
LinkedIn
WhatsApp
294
Cómo enviar pedidos o reservas de WooCommerce a WhatsApp (con o sin API)
Pedidos de WooCommerce directamente en tu WhatsApp con dos métodos: un método simple sin programación y otro con la API de WhatsApp
COMPARTIR EN:
Facebook
LinkedIn
WhatsApp
261
Integrar la Síntesis de Voz de ElevenLabs en tu Proyecto Web
Añade un Agente entrenado con reconocimiento de voz
COMPARTIR EN:
Facebook
LinkedIn
WhatsApp
65
Canvas Web Component
Como desarrollador full stack, notarás que se aprovechan técnicas modernas (como shadow DOM, ResizeObserver y custom elements) para lograr un componente reutilizable y de alto rendimiento.
COMPARTIR EN:
Facebook
LinkedIn
WhatsApp
89
Cómo combinar el Widget HTML de Elementor con código personalizado
Este artículo proporciona una guía técnica detallada, ideal para desarrolladores que buscan aprovechar al máximo Elementor mediante la personalización avanzada.