Загрузка...
Загрузка...
CSS filter: все функции (blur, brightness, contrast, saturate, grayscale, sepia, hue-rotate, invert, opacity, drop-shadow). filter vs backdrop-filter, производительность, порядок композиции, примеры.
Извлечение цветовой палитры из изображения: зачем нужно, основы теории цвета, алгоритмы (median-cut, k-means). CSS-переменные, инструменты и методы.
CSSCSS border-radius: синтаксис, 1–4 значения, slash notation для эллипсов. Проценты vs px, круг, pill, blob. Поддержка браузеров, производительность, адаптивность.
CSSCSS clip-path: синтаксис polygon, circle, ellipse, inset. Практические примеры, анимации, поддержка браузеров, советы по производительности. Генератор clip-path на reChecker.
CSSCSS vs SCSS/Sass: вложенность, переменные, миксины, партиалы. Когда использовать, миграция с CSS, инструменты конвертации. Конвертер CSS ↔ SCSS на reChecker.
Поделитесь с коллегами или изучите другие материалы блога
Свойство filter в CSS позволяет применять графические эффекты к элементам: размытие, изменение яркости, контраста, насыщенности, преобразование в оттенки серого или сепию. Эффекты применяются до отрисовки элемента и не требуют дополнительной разметки или изображений. Фильтры используют для стилизации картинок, hover-эффектов, создания атмосферы и доступных состояний (например, отключённая кнопка).
Для экспериментов с фильтрами используйте CSS Filter Playground на reChecker.
Размытие по Гауссу. Единственный параметр — радиус в px или rem. 0 — без размытия.
.blur { filter: blur(5px); }
Яркость. 1 — исходная, 0 — чёрный, значения выше 1 — осветление.
.dark { filter: brightness(0.5); }
.bright { filter: brightness(1.2); }
Контраст. 1 — исходный, 0 — серый, выше 1 — усиление.
.flat { filter: contrast(0.8); }
.punchy { filter: contrast(1.3); }
Насыщенность цветов. 1 — исходная, 0 — полностью обесцвеченный, выше 1 — более насыщенные цвета.
.muted { filter: saturate(0.5); }
.vivid { filter: saturate(1.5); }
.grayscale { filter: saturate(0); }
Оттенки серого. 0 — цветное, 1 — полностью серое.
.gray { filter: grayscale(1); }
.partial { filter: grayscale(0.5); }
Сепия (ретро-эффект). 0 — без эффекта, 1 — полная сепия.
.vintage { filter: sepia(0.8); }
Смещение оттенка по цветовому кругу. Угол в deg, grad, rad, turn.
.shift { filter: hue-rotate(90deg); }
Инверсия цветов. 0 — без инверсии, 1 — полная инверсия.
.inverted { filter: invert(1); }
Прозрачность. Аналог свойства opacity, но фильтр можно комбинировать с другими. 0 — невидимый, 1 — непрозрачный.
.fade { filter: opacity(0.6); }
Тень по контуру элемента (включая прозрачные области). В отличие от box-shadow, повторяет форму контента — подходит для иконок, текста, SVG.
.icon { filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.3)); }
Несколько фильтров объединяются через пробел. Порядок важен — они применяются последовательно:
.vintage-photo {
filter: sepia(0.5) contrast(1.2) brightness(0.9);
}
Сначала сепия, затем контраст, затем яркость. Разный порядок даёт разный результат.
| Свойство | Область применения |
|---|---|
filter | Сам элемент и его содержимое |
backdrop-filter | Область позади элемента (фон под полупрозрачным элементом) |
/* filter — размывает саму картинку */
.img { filter: blur(5px); }
/* backdrop-filter — размывает то, что под полупрозрачной панелью */
.panel {
background: rgba(255, 255, 255, 0.3);
backdrop-filter: blur(10px);
}
backdrop-filter не влияет на содержимое элемента, только на фон под ним. Используется для glassmorphism и overlay-эффектов.
.vintage {
filter: sepia(0.4) contrast(1.1) brightness(0.95) saturate(0.8);
}
.card {
transition: filter 0.3s ease;
}
.card:hover {
filter: brightness(1.05) contrast(1.02);
}
.button:disabled {
filter: grayscale(0.8) opacity(0.7);
cursor: not-allowed;
}
.icon {
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}
box-shadow на SVG не повторяет форму — drop-shadow даёт тень по контуру.
.gallery img {
transition: filter 0.3s ease;
}
.gallery img:hover {
filter: saturate(1.2) brightness(1.05);
}
.overlay {
filter: brightness(0.4) contrast(1.1);
}
В галерее или списке карточек неактивные элементы можно приглушить, а активный — оставить насыщенным:
.gallery-item {
filter: grayscale(0.5) opacity(0.8);
transition: filter 0.3s ease;
}
.gallery-item.active {
filter: none;
}
Часто логотип в подвале делают монохромным для сдержанного вида:
.footer-logo {
filter: grayscale(1) brightness(0.9);
}
Для интерактивных элементов можно слегка усилить яркость при фокусе, не меняя цвет:
input:focus {
filter: brightness(1.02);
}
Используйте осторожно — лучше сочетать с видимым outline для доступности. Фильтры также применяются к видео и canvas — те же правила и ограничения по производительности действуют и для медиа-контента.
Фильтры обрабатываются на уровне композитинга. Рекомендации:
will-change: filter.opacity или brightness обычно приемлемо; для blur на многих элементах — тестируйте.При комбинировании фильтров результат зависит от порядка:
/* Сначала сепия, потом яркость — тёплый приглушённый тон */
.a { filter: sepia(0.5) brightness(0.9); }
/* Сначала яркость, потом сепия — другой оттенок */
.b { filter: brightness(0.9) sepia(0.5); }
Экспериментируйте в CSS Filter Playground на reChecker для подбора нужного сочетания.
Помимо встроенных функций, filter может ссылаться на SVG-фильтр через url():
.custom {
filter: url(#myFilter);
}
В SVG определяется <filter id="myFilter"> с примитивами feGaussianBlur, feColorMatrix и др. Это даёт максимальную гибкость для сложных эффектов, но требует знания SVG-фильтров.
filter поддерживается во всех современных браузерах. Для старых Safari может потребоваться префикс -webkit-filter. IE9–11 поддерживают только старую версию с ограниченным синтаксисом. В 2026 году префиксы для filter обычно не требуются.
CSS Filter Playground на reChecker позволяет:
Удобно для подбора эффектов под дизайн и быстрого прототипирования.
brightness, contrast, grayscaleblur на слабых устройствахfilter применяется к самому элементу и его содержимому. backdrop-filter применяется к области позади полупрозрачного элемента — к контенту под ним. backdrop-filter используется для эффектов вроде glassmorphism.
Комбинация sepia(), contrast(), brightness() и saturate(): например, filter: sepia(0.4) contrast(1.1) brightness(0.95) saturate(0.8). Порядок влияет на результат. CSS Filter Playground на reChecker помогает подобрать значения визуально.
Да. blur — самый затратный. Большие радиусы на больших элементах и анимация фильтров могут вызывать лаги. Остальные фильтры (brightness, contrast, saturate и т.д.) обычно легче. Тестируйте на целевых устройствах.
Да. Перечислите их через пробел: filter: blur(2px) brightness(1.1) contrast(1.05). Порядок важен — фильтры применяются последовательно. Разный порядок даёт разный визуальный результат.
CSS Filter Playground на reChecker — бесплатный онлайн-инструмент для экспериментов с filter и backdrop-filter. Поддерживает все функции, загрузку своего изображения, комбинирование фильтров и экспорт готового CSS. Подходит для дизайнеров и разработчиков.