<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CSS 2026: кросс-браузерная поддержка cross-document view transitions и scroll-driven animations]]></title><description><![CDATA[<p dir="auto">В 2026 году CSS выходит на новый уровень с <strong>cross-document view transitions</strong> и <strong>scroll-driven animations</strong>. Эти фичи делают переходы между страницами плавными, а анимации - привязанными к скроллу, без лишнего JavaScript. Они решают проблему рывков в навигации и статичных эффектов, особенно в MPA и SPA.</p>
<p dir="auto">Поддержка в браузерах растет благодаря Interop 2026, где Chrome, Safari, Edge и Firefox синхронизируют реализацию. Теперь можно забыть о кастомных хакках - браузеры сами берут на себя hardware-ускорение. Это упрощает код и улучшает производительность на слабых устройствах.</p>
<h2>Cross-document view transitions: суть и настройка</h2>
<p dir="auto"><strong>Cross-document view transitions</strong> позволяют анимировать переходы между разными документами на одной origin. Браузер захватывает состояние старой страницы, обновляет DOM новой и рендерит плавный переход. Это работает для навигаций типа push, replace или traverse, без cross-origin редиректов.</p>
<p dir="auto">В 2026 году фича вошла в Interop 2026: Chrome с 126 версии, Safari с 18.2, Edge с 126, Firefox с частичной поддержкой в 144+. Добавлены опции вроде blocking=“render” для ссылок и :active-view-transition-type() для стилизации. Без этого API переходы были рваными, теперь - как в нативных приложениях.</p>
<p dir="auto">Для активации добавьте в CSS обеих страниц:</p>
<ul>
<li><code>@view-transition { navigation: auto; }</code> - включает переходы автоматически.</li>
<li><code>types: slide, fade;</code> - задает типы для разных сценариев.</li>
<li>Используйте <code>::view-transition-old(root)</code> и <code>::view-transition-new(root)</code> для кастомных ключевых кадров.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Браузер</th>
<th>Поддержка cross-document</th>
</tr>
</thead>
<tbody>
<tr>
<td>Chrome</td>
<td>126+ (полная)</td>
</tr>
<tr>
<td>Safari</td>
<td>18.2+ (полная)</td>
</tr>
<tr>
<td>Edge</td>
<td>126+ (полная)</td>
</tr>
<tr>
<td>Firefox</td>
<td>144+ (частичная)</td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Нюанс: для Firefox может потребоваться флаг, но в 2026 базовая совместимость достигнута.</em></p>
<h2>Scroll-driven animations: анимации по скроллу</h2>
<p dir="auto"><strong>Scroll-driven animations</strong> привязывают анимации к позиции скролла через <code>animation-timeline</code>, <code>scroll-timeline</code> и <code>view-timeline</code>. Вместо времени эффект зависит от прогресса прокрутки - параллакс, fade-in элементов или прогресс-бары становятся нативными.</p>
<p dir="auto">В Interop 2026 это топ-фича: анимации GPU-ускоренные, без лагов на мобильных. Пример: элемент появляется при скролле на 50% контейнера. Это лучше JS-библиотек вроде GSAP по производительности - overhead минимальный, benchmarks показывают 2-3x плавность.</p>
<p dir="auto">Настройка простая:</p>
<ul>
<li><code>animation-timeline: scroll(root block);</code> - привязка к скроллу корня.</li>
<li><code>@keyframes fade { from { opacity: 0; } to { opacity: 1; } }</code> - ключевые кадры.</li>
<li><code>scroll-timeline: --tl; animation-timeline: --tl;</code> - именованный timeline.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Свойство</th>
<th>Описание</th>
<th>Пример применения</th>
</tr>
</thead>
<tbody>
<tr>
<td>scroll-timeline</td>
<td>Создает timeline по оси скролла</td>
<td>Параллакс-эффекты</td>
</tr>
<tr>
<td>view-timeline</td>
<td>Timeline для видимости элемента</td>
<td>Fade-in по viewport</td>
</tr>
<tr>
<td>animation-timeline</td>
<td>Применяет timeline к анимации</td>
<td>Прогресс-бар скролла</td>
</tr>
</tbody>
</table>
<p dir="auto"><strong>Ключ: комбинируйте с container queries для responsive поведения.</strong></p>
<h2>Кросс-браузерная совместимость в 2026</h2>
<p dir="auto">В Interop 2026 фокус на унификации: same-document transitions уже baseline с 2025, теперь cross-document и scroll-driven. Safari, Chrome и Firefox работают над :active-view-transition-type() и  для предзагрузки.</p>
<p dir="auto">Проблемы прошлого - расхождения в edge-кейсах - решены. Firefox лидирует в partial support, но для production используйте @supports. Тестируйте на реальных устройствах: iOS Safari с 18.2 ок, Android Chrome идеален.</p>
<p dir="auto">Проверки поддержки:</p>
<ul>
<li><code>@supports (animation-timeline: scroll()) { /* scroll-driven */ }</code></li>
<li><code>if (document.startViewTransition) { /* view transitions */ }</code></li>
<li>Fallback: обычные CSS-анимации или JS-polyfill.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Фича</th>
<th>Chrome</th>
<th>Safari</th>
<th>Firefox</th>
<th>Edge</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cross-document VT</td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td>◐</td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td>Scroll-timeline</td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
<tr>
<td>View-timeline</td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
<td>◐</td>
<td><img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=a1e94250dac" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /></td>
</tr>
</tbody>
</table>
<p dir="auto"><em>Важно: всегда проверяйте same-origin для transitions.</em></p>
<h2>Интеграция в реальные проекты</h2>
<p dir="auto">Эти фичи упрощают MPAs без фреймворков: просто CSS на обе страницы. В React/Next.js - хуки вроде useViewTransition. Производительность растет - GPU берет нагрузку, фокус и accessibility сохраняются.</p>
<p dir="auto">Остается доработать полифиллы для старых браузеров и комбо с hover/focus. В 2026 подумайте о типах transitions для A/B-тестов и scroll-snap для контейнеров - это следующий шаг в плавном UX.</p>
]]></description><link>https://forum.exlends.ru/topic/1318/css-2026-kross-brauzernaya-podderzhka-cross-document-view-transitions-i-scroll-driven-animations</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 02:56:06 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/1318.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Mar 2026 13:04:24 GMT</pubDate><ttl>60</ttl></channel></rss>