Как с помощью CSS реализовать эффект «стеклянного» фона (Glassmorphism) с использованием backdrop-filter?

Glassmorphism — это популярный UI-тренд, создающий иллюзию матового стекла: элемент как бы «просвечивает» сквозь себя фон, при этом слегка размывая его. Реализуется эффект преимущественно через CSS-свойство `backdrop-filter`.

## Базовый пример кода

css
.glass-card {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(12px) saturate(180%);
-webkit-backdrop-filter: blur(12px) saturate(180%);
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 16px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
padding: 24px;
}

## Разбор ключевых свойств

**`backdrop-filter: blur(12px)`** — главный инструмент эффекта. Размывает всё, что находится позади элемента. Значение 8–16px даёт наиболее реалистичный результат.

**`background: rgba(255, 255, 255, 0.15)`** — полупрозрачный белый фон. Прозрачность 10–25% создаёт ощущение тонкого стекла. Для тёмной темы используйте `rgba(0, 0, 0, 0.2)`.

**`saturate(180%)`** — увеличивает насыщенность размытого фона, делая эффект более живым и ярким.

**`border: 1px solid rgba(255, 255, 255, 0.3)`** — тонкая полупрозрачная рамка имитирует блик на грани стекла.

**`box-shadow`** — мягкая тень усиливает ощущение глубины и отрыва карточки от фона.

## Необходимые условия для работы эффекта

1. **Фон должен быть видимым.** Элемент с `backdrop-filter` должен находиться поверх яркого или градиентного фона — иначе эффект незаметен.
2. **Прозрачность обязательна.** Если `background` непрозрачный, `backdrop-filter` не даст визуального результата.
3. **Вендорный префикс `-webkit-`** нужен для Safari и старых версий Chrome.

## Пример полной разметки

html

Заголовок

Контент карточки

css
.scene {
min-height: 100vh;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
}

## Совместимость и fallback

`backdrop-filter` поддерживается в Chrome 76+, Safari 9+, Edge 79+. Firefox до версии 103 требовал включения флага. Для старых браузеров добавьте fallback:

css
@supports not (backdrop-filter: blur(1px)) {
.glass-card {
background: rgba(255, 255, 255, 0.6);
}
}

## Советы по производительности

— Не используйте `backdrop-filter` на большом количестве одновременно анимируемых элементов — это нагружает GPU.
— Добавьте `will-change: transform` только при необходимости анимации.
— На мобильных устройствах снизьте значение blur до 6–8px для плавности.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.