Контейнерные запросы и oklch()
Долгое время мы использовали Media Queries, которые ориентируются на размер экрана.

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


1. Установка контекста контейнера
Чтобы элемент мог реагировать на размер родителя, мы задаем родителю свойство container-type.


Код
<style>.card-wrapper {  
container-type: inline-size;  
container-name: post;  
width: 100%;  
  }</style>


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


Код
<style>/* Базовый стиль для узкого контейнера */  
  .card {  
display: flex;  
flex-direction: column;  
background: oklch(0.9 0.02 250); /* Современное пространство цветов */  
padding: 1rem;  
  }  

  /* Стиль для широкого контейнера (больше 500px) */  
  @container post (min-width: 500px) {  
.card {  
flex-direction: row;  
gap: 2rem;  
background: oklch(0.95 0.05 150); /* Меняем оттенок */  
}  

.card__image {  
width: 40%;  
}  
  }</style>


3. Магия oklch(): Динамические цвета
В 2026 году стандарт oklch() стал основным для работы с цветом. Он позволяет менять яркость (L), хроматичность © и тон (H) программно и предсказуемо для человеческого глаза.


Код
<style>.card:hover {  
/* Просто увеличиваем яркость на 10%, не меняя сам цвет */  
background: oklch(from var(--bg-color) calc(l + 0.1) c h);  
  }</style>


Почему это важно?
Модульность: Вы можете вставить один и тот же компонент в любое место сайта, и он сам "подстроится" под окружение.
Доступность: Цвета в oklch легче настраивать для соблюдения контрастности.
Меньше кода: Больше не нужно писать десятки @media запросов для разных разрешений.

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
HTMLSTART » CSS3 - JS - SVG Примеры » CSS3 - примеры, статьи » Контейнерные запросы и oklch()