Список всех CSS-свойств, типов, директив, которые были добавлены в браузеры в 2022.

Выражения от контейнера

Входим в новую эпоху управления интерфейсом

@container: применяет условие к контейнеру, которое должно быть выполнено, чтобы свойство применилось к элементу

@container (width > 400px) {
  h2 {
    font-size: 1.5em;
  }
}

container-name: позволяет задать имя контейнеру, чтобы можно было обращаться к нему внутри @container

container-type: позволяет задать тип контейнеру, чтобы можно было обращаться к нему внутри @container

container: позволяет задать имя и тип контейнеру, чтобы можно было обращаться к нему внутри @container

.container {
  container-type: inline-size;
  container-name: sidebar;
}

Временные шкалы прокрутки

Позволяют создавать анимации, которые зависят от прокрутки страницы:

  • scroll-timeline-axis позволяет задать направление прокрутки.
  • scroll-timeline-name позволяет задать имя временной шкале прокрутки.
  • scroll-timeline позволяет задать имя и направление временной шкале прокрутки.
.element {
  scroll-timeline-name: squareTimeline;
  scroll-timeline-axis: horizontal;
}

Цветные шрифты

@font-palette-values позволяет задать палитру цветов для цветных шрифтов:

@font-palette-values --identifier {
  font-family: Bixa;
}

.my-class {
  font-palette: --identifier;
}

font-palette позволяет задать палитру цветов для цветных шрифтов:

font-palette: normal || light || dark;

Псевдоклассы состояний ресурсов

Псевдоклассы, которые позволяют узнать состояние ресурсов:

  • buffering: который в данный момент буферизируется.
  • muted: который в данный момент звук отключен.
  • paused: который в данный момент на паузе.
  • playing: который в данный момент воспроизводится.
  • seeking: который в данный момент перематывается.
  • stalled: который в данный момент остановлен.
  • volume-locked: который в данный момент заблокирован для изменения громкости.
video:playing {
  background-color: green;
}

video:paused {
  background-color: red;
}

video:seeking {
  background-color: yellow;
}

video:stalled {
  background-color: orange;
}

video:buffering {
  background-color: blue;
}

video:muted {
  background-color: gray;
}

video:volume-locked {
  background-color: purple;
}

Типы математических выражений

Типы математических выражений, которые можно использовать в CSS:

  • abs: модуль числа
  • acos: арккосинус
  • asin: арксинус
  • atan: арктангенс
  • atan: арктангенс
  • calc-constant: константа
  • cos: косинус
  • exp: экспонента
  • hypot: гипотенуза
  • sqrt: квадратный корень
  • log: логарифм
  • mod: остаток от деления
  • pow: возведение в степень
  • rem: остаток от деления
  • round: округление
  • sign: знак числа
  • sin: синус
  • tan: тангенс
.element {
  width: abs(20% - 100px);
  transform: rotate(acos(-0.2));
  width: calc(100px * cos(45deg));
  width: calc(100px * exp(-1)); /* 100px * 0.367879441171442 = 36px */
  width: calc(100px * log(7.389)); /* 200px */
  width: round(var(--width), 50px);
  width: hypot(2em);
  top: sign(--value);
  width: calc(100px * sqrt(9));   /*  300px */
  width: calc(100px * tan(pi / 3));
}

Ключевые кадры

  • animation-composition: позволяет задать режим смешивания для анимации
  • animation-timeline: позволяет задать временную шкалу для анимации
.element {
  animation-composition: replace;
  animation-timeline: squareTimeline;
}

Управление синтезированным шрифтом

font-synthesis-small-caps позволяет задать синтезирование маленьких прописных букв.

font-synthesis-style позволяет задать синтезирование начертания шрифта.

font-synthesis-weight позволяет задать синтезирование жирности шрифта.

font-synthesis позволяет задать, какие свойства шрифта должны быть синтезированы, если они не определены в шрифте.

.element {
  font-synthesis-small-caps: none;
  font-synthesis-style: none;
  font-synthesis-weight: none;
  font-synthesis: none;
}

Самодостаточные

modal: позволяет задать, что элемент является модальным:

.element {
  modal: true;
}

has() позволяет задать, что элемент содержит другой элемент:

.element {
  has(.child) {
    color: red;
  }
}

@layer позволяет задать слой для стилей:

@layer base {
  .element {
    color: red;
  }
}

object-view-box позволяет задать область просмотра для объекта:

.element {
  object-view-box: 0 0 100px 100px;
}

То ли ещё будет в 2023 🐇

Больше статей


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники

Читать дальше

Как работает ::first-line — оформление первой строки текста в CSS

Как работает ::first-line — оформление первой строки текста в CSS

Псевдоэлемент ::first-line позволяет задать особое оформление только для первой строки текста внутри элемента. Это полезно, когда нужно визуально выделить начало абзаца — например, сделать первую строку жирной, изменить цвет или стиль шрифта. Такой приём часто используют в типографике и веб-дизайне, чтобы направить внимание читателя.

Этот псевдоэлемент находится в Baseline в статусе «Widely Available» с 2018-01-29

Как использовать: first-line

🚀 Сегодня вам бесплатно доступен тренажёр по HTML и CSS.

Псевдоэлемент добавляется к селектору через ::, и внутри блока задаются стили, которые применятся только к первой строке, как она отображается в браузере:

p::first-line {
  font-weight: bold;
  color: red;
}

Этот стиль сделает только первую строку текста в каждом абзаце <p> красной и жирной. Важно: то, где заканчивается строка, зависит от ширины контейнера и размера шрифта, а не от переносов в HTML.

Какие свойства работают

Псевдоэлемент ::first-line не поддерживает любые стили. Он ограничен только теми, что могут визуально применяться к строке текста:

Поддерживаются:

  • color
  • font и его производные (font-size, font-weight, font-style, font-variant)
  • letter-spacing, word-spacing
  • line-height
  • text-decoration
  • text-transform
  • vertical-align
  • background
  • margin-left и margin-right
  • padding-left и padding-right
  • border-left и border-right

Не поддерживаются:

  • display, position, transform, width, height и другие «структурные» свойства.

Это сделано, чтобы не нарушать верстку и избежать проблем с потоком документа.

Пример с цитатой

<blockquote>
  Когда вы начнёте, главное — не останавливаться.
</blockquote>
blockquote::first-line {
  text-transform: uppercase;
  letter-spacing: 2px;
}

Здесь первая строка цитаты будет написана ПРОПИСНЫМИ буквами с увеличенным расстоянием между символами. Это создаёт акцент и улучшает читаемость начала мысли.

Советы по использованию

  • Используйте ::first-line для декоративных акцентов: начало статьи, цитаты, описание карточки.
  • Старайтесь не задавать свойства, которые не поддерживаются — они просто игнорируются.
  • Не используйте псевдоэлемент для логических операций — он только визуальный.
  • Не забывайте про адаптивность: на разных экранах «первая строка» может меняться.

Поддержка

Псевдоэлемент ::first-line поддерживается во всех современных браузерах, включая Chrome, Firefox, Safari, Edge. Работает на блоковых и строчно-блочных элементах (display: block, inline-block, inline).

Заключение

::first-line — это простой и эффективный инструмент, который помогает сделать текст живым и выразительным. Он особенно полезен для визуального оформления абзацев, заголовков, описаний, не вмешиваясь в HTML-структуру. Даже пара свойств может кардинально изменить восприятие контента.

Больше обзоров веб-функций — в телеграм-канале HTML Academy.

Нашли ошибку или опечатку? Напишите нам.

CSS
  • 27 июля 2025
Как работает :not() в CSS — исключаем элементы из стилей правильно

Как работает :not() в CSS — исключаем элементы из стилей правильно

Доступно в Baseline в статусе «Widely Available» с 2023-07-21

Псевдокласс :not() позволяет задать стили для всех элементов, кроме тех, что соответствуют определённому селектору. Это мощный инструмент, который делает CSS гибче, чище и избавляет от необходимости писать сложные конструкции или добавлять лишние классы в HTML.

Читать дальше
CSS
  • 20 июля 2025
Выбор цветов в CSS через hsl() и hsla()

Выбор цветов в CSS через hsl() и hsla()

CSS-функции hsl() и hsla() позволяют задавать цвета на основе восприятия человеком, а не машинной модели RGB. Это делает работу с цветами более гибкой и наглядной, особенно при создании адаптивных интерфейсов, тёмных тем или анимаций.

Читать дальше
CSS
  • 18 июля 2025
Как перекрыть один элемент другим. CSS-свойство z-index

Как перекрыть один элемент другим. CSS-свойство z-index

Свойство z-index в CSS отвечает за порядок наложения элементов на веб-странице. Оно определяет, какой элемент окажется сверху, а какой — будет скрыт под ним. Чем выше значение z-index, тем ближе к пользователю расположен элемент.

Читать дальше
CSS
  • 16 июля 2025
Единица измерения cap в CSS

Единица измерения cap в CSS

С 11 декабря 2023 года (Baseline: Newly Available) в CSS появилась новая единица измерения — cap. Она измеряет высоту заглавной латинской буквы в шрифте, установленном для элемента. Это значит, что теперь можно задавать размеры, отступы и позиционирование элементов не только в пикселях, em или rem, но и относительно визуальной высоты заглавных букв.

Эта единица особенно полезна при работе с крупными заголовками, адаптивной типографикой и точным выравниванием текста.

Читать дальше
CSS
  • 8 июля 2025
10 свойств в CSS о которых вы, вероятно, не знали

10 свойств в CSS о которых вы, вероятно, не знали

Если вы только начинаете разбираться в CSS, скорее всего, вам кажется, что мир стилей ограничивается свойствами вроде <margin>, <color>, <font-size> и может быть, <flex>. Но CSS — это не просто про то, чтобы задать цвет кнопке и отступ между блоками. За простыми примерами скрывается целый мир возможностей, о которых многие не догадываются. В этой статье рассказываем о десяти свойствах, которые встречаются редко, но способны заметно упростить вам жизнь или добавить в проект изюминку.

Читать дальше
CSS
  • 22 июня 2025
Округление в CSS с функцией round()

Округление в CSS с функцией round()

Функция round() появилась в CSS как часть стандарта Values and Units Level 4. Она предназначена для округления числовых значений до нужной кратности. Это полезный инструмент, который позволяет контролировать размеры и позиции без лишних ухищрений с calc() или JavaScript.

Читать дальше
CSS
  • 22 июня 2025
focus-visible

focus-visible

Когда мы создаём сайты, мы хотим, чтобы ими было удобно пользоваться всем людям — и тем, кто управляет страницей с помощью мыши, и тем, кто использует клавиатуру. Например, человек с ограниченными возможностями зрения может перемещаться по элементам с помощью клавиши Tab.

Браузеры по умолчанию показывают рамку (outline) вокруг элемента, когда он получает фокус — например, при клике мышкой или при перемещении с помощью клавиатуры. Эта рамка помогает понять, какой элемент активный.

Но бывает так, что рамка появляется даже тогда, когда она не нужна. Например, Вы кликнули мышкой по кнопке, и вокруг неё появилась рамка — выглядит не очень красиво, а пользы от неё нет, потому что курсор мыши уже показывает, куда мы кликнули.

Тут и помогает :focus-visible. Этот псевдокласс позволяет показывать рамку только в тех случаях, когда это действительно полезно — обычно при навигации с клавиатуры.

Читать дальше
CSS
  • 21 июня 2025
CSS font-palette: управление цветами шрифтов

CSS font-palette: управление цветами шрифтов

Свойство font-palette позволяет выбрать одну из цветовых палитр, встроенных в цветной шрифт, или создать свою. При использовании — оно задаёт преобладающую окраску глифов, и свойство color уже не влияет.

В свою очередь, цветной шрифт — это шрифт, в котором глифы содержат встроенную информацию о цвете. В отличие от обычных векторных шрифтов (TrueType, OpenType), где цвет задаётся снаружи с помощью CSS-свойства color, в цветном шрифте сами глифы уже закодированы с цветными деталями — например, несколько заливок, градиенты, обводки, изображения.

Цветной шрифтАльтернативные цветовые палитры шрифта Nabla (Typearture, Google Fonts)

Свойство вошло в Baseline в статусе widely available в мае 2025 года. Теперь его можно использовать в проектах и не переживать о поддержке.

Читать дальше
CSS
  • 18 июня 2025
Как анимировать CSS Grids без JavaScript

Как анимировать CSS Grids без JavaScript

Grid Layout — одна из самых зрелых технологий в CSS. Он давно решает задачи макета гораздо лучше, чем float, flex и position. Но долгое время у него была одна неочевидная граница: анимация размеров сетки.

Да, grid-template-columns и grid-template-rows существовали с самого начала появления гридов. Да, они были мощными. Но плавно менять их было нельзя — браузеры просто прыгали между состояниями. Анимация сетки оставалась мечтой.

Ситуация изменилась c 27 апреля 2025 года. Анимация grid-template-columns и grid-template-rows вошла в baseline — это означает, что теперь она официально поддерживается всеми современными браузерами. Без флагов. Без хака с display: contents. Просто работает.

Читать дальше
CSS
  • 1 июня 2025