CSS Showcase

Крутые приёмы вёрстки в одном месте. Наведи, покрути, попрокручивай.

CSS Grid · auto-fit

Сетка без медиа-запросов

Карточки сами подстраиваются под ширину. minmax(min(280px, 100%), 1fr) — магия.

Карточка 1
Карточка 2
Карточка 3
Карточка 4
Карточка 5
Container Queries

Стили от размера контейнера

Меняй ширину окна — layout реагирует на ширину родителя, а не viewport.

A
B
C
D
:has()

Стили «если внутри есть X»

Карточка с .badge получает акцентную рамку автоматически.

NEW Есть badge → подсвечена
Нет badge
HOT Есть badge → подсвечена
backdrop-filter

Стеклянный эффект (glass)

Размытие фона за полупрозрачным блоком.

backdrop-filter: blur(16px)
mix-blend-mode

Режимы наложения

multiply, screen, difference — «магические» комбинации.

multiply
screen
difference
background-clip: text

Градиентный и анимированный текст

Текст как mask для градиента.

SHOWCASE
rainbow
aspect-ratio

Пропорции без padding-hack

aspect-ratio: 16/9, 1, 3/4 — фиксированные пропорции на лету.

16:9
1:1
3:4
scroll-snap

Прилипающий горизонтальный скролл

Прокрути вправо — блоки «прилипают».

1
2
3
4
5
6
sticky + transform

Липкая колонка и hover-эффект

Левый контент. Справа — sticky-блок, он «прилипает» при скролле.

Плюс карточка с плавным transform при hover (scale + rotate).

Наведи на меня
scroll-timeline

Анимация при скролле

Блок анимируется при прокрутке страницы — без JS (Chrome 115+).

Прокрути вниз
View Transitions API

Плавные переходы

Toggle с морфингом через document.startViewTransition().

Блок появляется/исчезает с переходом
@starting-style

Анимация при первом появлении

Блок анимируется при переходе display: none → block.

Появился с анимацией!
object-view-box

Crop картинки без object-fit

Вырезаем центр изображения (inset 15%). Работает в Chrome 104+.

crop
:user-invalid

Стили после невалидного submit

Попробуй отправить форму с некорректным email.

initial-letter

Буквица (drop cap)

Как в старых книгах: первая буква занимает 3 строки.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

filter: url(#svg-filter)

SVG фильтр (glow)

feGaussianBlur + feMerge для свечения.

GLOW
@layer

Каскадные слои

base и overrides — контроль приоритета стилей.

Base layer
Overrides layer
color-mix()

Смешивание цветов в CSS

color-mix(in srgb, A 70%, B) и т.п.

70% accent
50/50
oklch
@property

Анимация custom properties

--hue анимируется — раньше нельзя было анимировать переменные.

3D Cube

Куб на pure CSS

perspective + transform-style: preserve-3d + 6 face.

1 2 3 4 5 6
Tilt card (JS)

Карточка наклоняется к курсору

perspective + rotateX/Y по позиции мыши.

Наведи
Grid без gap

margin: -1px + border: 1px

Линии по 1px без двойных границ.

A
B
C
D
E
F
:focus-visible

Фокус только при Tab

При клике мышью — нет outline, при Tab — есть.

overflow: clip

Обрезка без scroll container

overflow: clip — не создаёт scroll, в отличие от overflow: hidden.

Контент обрезан, но без scroll
text-wrap: balance

Выравнивание последних строк

Многострочный заголовок выглядит ровнее.

Какой-то длинный заголовок с множеством слов для демонстрации balance

Magnetic button

Кнопка тянется к курсору

transform по позиции мыши.