Сучасний CSS: нові можливості

Бонус-лекція: corner-shape, сучасні кольори (oklch, relative colors) та анімація підкреслення через градієнт

1. Corner-shape: нові форми кутів

CSS-специфікація Corners Level 2 додає властивість corner-shape, яка змінює форму заокруглення кутів. Раніше border-radius давав лише кругле заокруглення, тепер з’являються нові варіанти.

Увага: це експериментальна специфікація (2026). Жоден браузер поки не підтримує corner-shape у стабільній версії. Цей матеріал — для ознайомлення з майбутнім CSS.

Можливі значення

Значення Ефект Де може знадобитись
round Звичайне заокруглення (як зараз) Значення за замовчуванням
scoop Увігнутий кут (вирізаний всередину) Декоративні картки, квитки
bevel Зрізаний кут (під кутом 45°) Теги, бейджі, tech-стиль
squircle Супереліпс (як іконки iOS) Іконки додатків, аватари
notch Прямокутний виріз Промо-блоки, нестандартний дизайн

Синтаксис

.card-ticket {
border-radius: 20px;
corner-shape: scoop;
}
.badge {
border-radius: 8px;
corner-shape: bevel;
}
.app-icon {
border-radius: 22%;
corner-shape: squircle;
}

Різні форми для різних кутів

Можна задати різні форми для кожного кута окремо:

.creative-card {
border-radius: 20px;
corner-shape: scoop round bevel round;
/* top-left top-right bottom-right bottom-left */
}
Squircle vs round: звичайний border-radius створює ідеальну дугу кола. Squircle (супереліпс) — це більш плавний перехід від прямої лінії до кривої, як у іконках Apple. Різниця тонка, але помітна на великих радіусах.

2. Сучасний синтаксис кольорів

CSS еволюціонує від старого синтаксису rgba() до нових, потужніших способів задавати кольори.

Новий синтаксис rgb / hsl (без ком)

Сучасний CSS дозволяє записувати кольори через пробіли замість ком, а прозорість — через /:

/* Старий синтаксис */
color: rgba(59, 130, 246, 0.5);
/* Новий синтаксис (без ком, без "a") */
color: rgb(59 130 246 / 0.5);
color: hsl(217 91% 60% / 0.5);
Підтримка: новий синтаксис підтримується всіма сучасними браузерами. Можна сміливо використовувати у нових проєктах.

oklch — перцептивно рівномірний колірний простір

oklch() задає колір через:

  • L (lightness) — яскравість від 0% (чорний) до 100% (білий)
  • C (chroma) — насиченість (0 = сірий, 0.4+ = яскравий)
  • H (hue) — тон у градусах (0 = рожевий, 90 = жовтий, 180 = блакитний, 270 = фіолетовий)
/* Синій із насиченістю 0.2 */
color: oklch(60% 0.2 250);
/* Напівпрозорий зелений */
color: oklch(70% 0.18 150 / 0.7);

Чому oklch краще за hsl?

В hsl два кольори з однаковим L можуть виглядати по-різному яскравими для ока (жовтий здається світлішим за синій). В oklch однакова яскравість виглядає однаково для будь-якого тону — це важливо для дизайн-систем і палітр.

Relative colors (відносні кольори)

Дозволяють створювати нові кольори на основі існуючих — змінюючи окремі компоненти:

:root {
--brand: oklch(60% 0.2 250);
}
.card {
/* Взяти --brand і зробити світлішим */
background: oklch(from var(--brand) calc(l + 0.2) c h);
/* Взяти --brand і зробити напівпрозорим */
border-color: oklch(from var(--brand) l c h / 0.3);
}

Тут from var(--brand) бере вихідний колір, а l, c, h — його компоненти, які можна модифікувати через calc().

Практичне застосування

:root {
--accent: oklch(55% 0.25 260);
}
.btn {
background: var(--accent);
}
.btn:hover {
/* Автоматично темніший відтінок */
background: oklch(from var(--accent) calc(l - 0.1) c h);
}
.btn:active {
/* Ще темніший */
background: oklch(from var(--accent) calc(l - 0.2) c h);
}
Перевага relative colors: змінюєте один CSS-змінний --accent, і всі hover/active-стани автоматично перераховуються. Не потрібно вручну підбирати кольори для кожного стану.

3. Анімація підкреслення через градієнт

Анімоване підкреслення посилання — популярний ефект, який можна реалізувати через background-image замість text-decoration.

Ідея

  • Підкреслення — це background-image у вигляді лінійного градієнта
  • Розмір фону (background-size) змінюється від 0% до 100% при hover
  • Перехід анімується через transition

Базовий приклад

.link {
text-decoration: none;
background-image: linear-gradient(currentColor, currentColor);
background-position: 0% 100%;
background-repeat: no-repeat;
background-size: 0% 2px;
transition: background-size 0.3s ease;
}
.link:hover {
background-size: 100% 2px;
}

Як це працює

  • linear-gradient(currentColor, currentColor) — «градієнт» з одного кольору (тобто суцільна лінія кольору тексту)
  • background-position: 0% 100% — фон прив’язаний до нижнього лівого кута
  • background-size: 0% 2px — ширина 0% (невидимо), висота 2px
  • При hover ширина зростає до 100% — лінія «виїжджає» зліва направо

Варіації напрямку

/* Зліва направо (за замовчуванням) */
background-position: 0% 100%;
/* Справа наліво */
background-position: 100% 100%;
/* З центру в обидва боки */
background-position: 50% 100%;

Кольоровий градієнт замість суцільної лінії

.link-gradient {
background-image: linear-gradient(90deg, #3b82f6, #8b5cf6);
background-position: 0% 100%;
background-repeat: no-repeat;
background-size: 0% 2px;
transition: background-size 0.3s ease;
}
.link-gradient:hover {
background-size: 100% 2px;
}
Чому не text-decoration? Властивість text-decoration не підтримує transition для ширини чи кольору. background-image дає повний контроль над анімацією, товщиною, кольором і напрямком.

4. Підсумкова таблиця

Тема Що запам’ятати
corner-shape scoop, bevel, squircle, notch — нові форми кутів (експериментально)
rgb/hsl без ком rgb(59 130 246 / 0.5) — пробіли замість ком, / для прозорості
oklch() Перцептивно рівномірний: L (яскравість), C (насиченість), H (тон)
Relative colors oklch(from var(--color) calc(l + 0.2) c h) — відносні кольори
Градієнтне підкреслення background-image + background-size + transition

Віталій Капля

Засновник, веб-розробник, WordPress-експерт

Програмуванням почав цікавитися ще у 1997 році, перше знайомство з майбутньою професією – Visual Basic. У 2004-2005 роках займався розробкою…

Більше про автора

Інженер цифрових продуктів та архітектор веб-рішень

Безкоштовна консультація + розрахунок вартості

Обговоримо
Ваш проект?

Безкоштовна консультація + розрахунок вартості

Більше цікавих статей

Вхід для клієнтів

Цей сайт використовує файли cookie

Ми використовуємо файли cookie, щоб персоналізувати вміст і рекламу, надавати функції соціальних мереж і аналізувати наш трафік. Ми також надаємо інформацію про ваше використання нашого веб-сайту нашим партнерам із соціальних мереж, реклами та аналітики, які можуть поєднувати її з іншою інформацією, яку ви їм надали або зібрали під час використання вами їхніх послуг. Продовжуючи користуватися нашим сайтом, ви погоджуєтеся із використанням файлів cookie, а також приймаєте нашу Політику конфіденційності та Умови використання.

Віртуальний асистент
Вітаю! Я — віртуальний асистент KAPLIA.PRO! Розкажу про послуги, проєкти в портфоліо, орієнтовну вартість і підхід до роботи — від сайтів і eCommerce до вебдодатків, CRM, ботів та AI-агентів. Запитуйте!

Продовжуючи роботу з ШІ асистентом я погоджуюсь з умовами використання сайту та політикою конфіденційності.

AI-асистент може помилятися у відповідях