Контакты
Бронь столов: +79047066464


/* Transitions.dev — Text states swap */ /* Usage: Processing… Driven by JS (three-phase sequence): 1. Add `.is-exit` -> old text slides up + blurs + fades. 2. After --text-swap-dur: change textContent, then add `.is-enter-start` (jumps to below, no transition). 3. Force reflow, remove `.is-enter-start` so the new text animates back to 0 with the default transition. */ :root { --text-swap-dur: 150ms; --text-swap-translate-y: 4px; --text-swap-blur: 2px; --text-swap-ease: ease-in-out; } .t-text-swap { display: inline-block; transform: translateY(0); filter: blur(0); opacity: 1; transition: transform var(--text-swap-dur) var(--text-swap-ease), filter var(--text-swap-dur) var(--text-swap-ease), opacity var(--text-swap-dur) var(--text-swap-ease); will-change: transform, filter, opacity; } .t-text-swap.is-exit { transform: translateY(calc(var(--text-swap-translate-y) * -1)); filter: blur(var(--text-swap-blur)); opacity: 0; } .t-text-swap.is-enter-start { transform: translateY(var(--text-swap-translate-y)); filter: blur(var(--text-swap-blur)); opacity: 0; transition: none; } @media (prefers-reduced-motion: reduce) { .t-text-swap { transition: none !important; } }