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;
}
}
ElSaltoWeb News
139
Un experimento visual con HTML y CSS inspirado en televisores CRT, señales analógicas, glitch y estética retro para presentar recursos,
MCP Builder IA: APK Android para generar conectores MCP con inteligencia artificial
256
MCP Builder IA es una APK Android para generar conectores MCP orientados a negocio. Permite crear proyectos Node.js, definir tools,
Etiquetado demo, desarrollo web, visual-experiments