Новые фичи веб-платформы в 2026 — что добавилось и зачем
10 августа 2026 г.
4 мин
5

Новые фичи веб-платформы в 2026 — что добавилось и зачем

Браузеры обновляются каждый месяц. Большинство изменений проходят мимо - но некоторые реально меняют как мы пишем код. В 2026 году веб-платформа сделала большой шаг: десятки API которые годами были экспериментальными наконец стали Baseline - то есть работают во всех основных браузерах без полифилов.

Вот полный разбор что появилось и что из этого стоит использовать прямо сейчас.

CSS становится мощнее JavaScript

Главный тренд 2026 года - CSS берёт на себя задачи которые раньше требовали JavaScript. Меньше JS, меньше бандл, быстрее загрузка.

:open псевдо-класс

Позволяет стилизовать элементы у которых есть открытое и закрытое состояние - <details>, <dialog>, <select>. Стало Baseline в мае 2026.

details:open summary {
  color: #3ec7a2;
  font-weight: 600;
}

/* Стилизуем открытый select */
select:open {
  border-color: #3ec7a2;
}

Container Queries - name-only

Теперь можно писать container queries без указания имени контейнера - убирает лишний setup и упрощает адаптивный дизайн компонентов.

/* Раньше нужно было указывать container-name */
.card-wrapper {
  container-type: inline-size;
}

@container (min-width: 400px) {
  .card {
    grid-template-columns: 1fr 2fr;
  }
}

Container Style Queries

Позволяют менять стили компонента в зависимости от значений CSS custom properties родителя. Решают задачу которую раньше приходилось решать JavaScript.

/* Карточка рендерится по-разному в зависимости от контекста */
@container style(--variant: compact) {
  .card {
    padding: 8px;
    font-size: 14px;
  }
}

contrast-color()

Автоматически выбирает читаемый цвет текста (чёрный или белый) основываясь на цвете фона. Больше никаких ручных проверок контраста:

.badge {
  background: var(--brand-color);
  color: contrast-color(var(--brand-color));
}

image-rendering для pixel-perfect

Контролирует алгоритм масштабирования изображений. Полезно для QR-кодов, pixel art и низкоразрешённых изображений:

.qr-code {
  image-rendering: pixelated; /* чёткое масштабирование без размытия */
}

CSS shape() функция

Более читаемая альтернатива path() - поддерживает CSS единицы и математические функции напрямую:

.shape {
  clip-path: shape(from 0 0, line to 100% 0, curve to 50% 100%);
}

Скруглённые полигоны в polygon()

Edge 150 добавил параметр round в функцию polygon() - можно делать скруглённые углы без ручного вычисления bezier кривых:

.rounded-triangle {
  clip-path: polygon(round 50px, 50% 0%, 0% 100%, 100% 100%);
}

CSS Anchor Positioning

Позиционирование элементов относительно других элементов - идеально для тултипов, меню и поповеров. Стало Baseline в начале 2026:

.tooltip {
  position-anchor: --button;
  bottom: anchor(top);
  left: anchor(center);
}

Новые CSS единицы: rcap и rex

rcap - единица на основе container queries, rex - равна x-height корневого шрифта. Полезны для типографики которая адаптируется к контейнеру:

.caption {
  font-size: 1rex; /* масштабируется с высотой строчных букв */
  margin-block: 1rcap;
}

display - multi-keyword синтаксис

Теперь можно явно указывать оба типа display - внешний и внутренний. Стало Baseline Widely Available:

/* Вместо inline-flex */
.element {
  display: inline flex;
}

/* Вместо block grid */
.container {
  display: block grid;
}

Новые JavaScript API

Navigation API

Современная замена старому History API. Больше не нужно pushState, popstate и ручные обработчики кликов - всё в одном событии navigate. Стало Baseline в начале 2026:

navigation.addEventListener('navigate', (event) => {
  if (!shouldHandleNavigation(event.destination.url)) return;

  event.intercept({
    async handler() {
      const content = await fetchPage(event.destination.url);
      updateUI(content);
    }
  });
});

Для большинства проектов это убирает необходимость тянуть роутер только чтобы избежать полной перезагрузки страницы.

Temporal API - нормальные даты наконец

Chrome 144 добавил поддержку Temporal API - современную замену объекту Date. Работа с датами наконец стала нормальной:

// Раньше: new Date() и миллион нюансов
const date = new Date(2026, 0, 1); // январь это 0, не 1 😤

// Temporal: понятно и предсказуемо
const date = Temporal.PlainDate.from('2026-01-01');
const tomorrow = date.add({ days: 1 });
const diff = date.until(Temporal.Now.plainDateISO());

console.log(diff.days); // количество дней - без магии

Пока только Chrome - остальные браузеры в процессе.

Math.sumPrecise()

Точное суммирование массива чисел с плавающей точкой. Решает классическую проблему потери точности:

// Старый способ - неточно
[0.1, 0.2, 0.3].reduce((a, b) => a + b); // 0.6000000000000001

// Math.sumPrecise - точно
Math.sumPrecise([0.1, 0.2, 0.3]); // 0.6

Document Picture-in-Picture API

В отличие от традиционного PiP который работает только для видео, этот API позволяет открывать всплывающее окно поверх всего с любым HTML контентом:

const pip = await documentPictureInPicture.requestWindow({
  width: 320,
  height: 240,
});

pip.document.body.append(myPlayerElement);

Lazy loading для медиа

Медиафайлы теперь загружаются только когда они близко к viewport - аналогично lazy loading для изображений:

<video loading="lazy" src="demo.mp4"></video>
<audio loading="lazy" src="podcast.mp3"></audio>

Trusted Types API - защита от XSS

Безопасность против DOM-based XSS атак - требует использовать «доверенные типы» вместо обычных строк при работе с опасными методами вроде innerHTML. Стало Baseline в феврале 2026:

// Создаём политику
const policy = trustedTypes.createPolicy('myPolicy', {
  createHTML: (input) => sanitize(input),
});

// Теперь только через политику - сырые строки не пройдут
element.innerHTML = policy.createHTML(userInput);

Zstandard (zstd) сжатие

Быстрый алгоритм сжатия с высокой степенью сжатия - быстрее и эффективнее чем Gzip. Теперь поддерживается во всех современных браузерах и доступен в CompressionStream:

const stream = new CompressionStream('zstd');

Web Serial API в Firefox

Firefox 151 добавил поддержку Web Serial API на десктопе - теперь можно работать с последовательными портами (Arduino, микроконтроллеры) из браузера кросс-браузерно.

:active-view-transition псевдо-класс

Позволяет стилизовать корневой элемент документа пока идёт View Transition. Стало Baseline в январе 2026:

:active-view-transition {
  /* стили пока идёт анимация перехода */
  pointer-events: none;
}

Что ещё в процессе

Несколько важных фич пока не стали Baseline - но уже работают в некоторых браузерах:

  • Temporal API - пока только Chrome, ждём остальных
  • CSS if() - условные выражения прямо в CSS
  • Scroll-driven animations - анимации привязанные к скроллу

Главный вывод

Для многих разработчиков разрыв между «Chrome уже выпустил» и «можно использовать в продакшне» измерялся полифилами, фолбэками и багрепортом от того одного пользователя на старом Safari. Baseline решает эту проблему - один статус который говорит «можно деплоить».

В 2026 году этот статус получили десятки полезных фич. Прежде чем ставить библиотеку - проверь не умеет ли браузер это нативно. Ответ «да» встречается всё чаще. 🌐