DevSkillRoad

Тени и эффекты в CSS

✨ box-shadow, text-shadow, filter

В этой лекции разберём способы добавления теней и фильтров к элементам и тексту.

1. box-shadow — тень блока

Добавляет тень элементу. В отличие от border, тень не увеличивает размер элемента и не влияет на расположение соседей.

Синтаксис: box-shadow: смещение-x смещение-y размытие цвет;

Параметры:

.shadow {
    box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.2);
}
Тень от блока

✅ Тень смещена на 4px вниз и вправо, размыта на 10px

Внутренняя тень — inset

Ключевое слово inset делает тень внутренней (рисует внутри элемента).

.inset-shadow {
    box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.3);
}
Внутренняя тень

✅ Тень внутри элемента, создаёт эффект углубления

📌 Отличие от border: border увеличивает размер элемента. box-shadow не влияет на размер и расположение, но может накладываться на соседние элементы.

2. text-shadow — тень текста

Добавляет тень к тексту. Синтаксис похож на box-shadow, но нет параметра размера тени.

Синтаксис: text-shadow: смещение-x смещение-y размытие цвет;

.text-shadow {
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}
Текст с тенью

✅ У текста появилась мягкая тень

Несколько теней одновременно

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

.multiple-shadows {
    background-color: white;
    color: #530899;
    text-shadow: 2px 2px 4px #14b8a6,
                 -2px -2px 4px #ffc107;
}
Эффект тиснения цветными тенями

✅ Бирюзовая тень снизу-справа, жёлтая сверху-слева

3. filter — фильтры

Фильтры позволяют применять к элементу графические эффекты, такие как размытие, изменение яркости, контрастности и другие.

Возможные значения:

Пример 1: размытие (blur)

.blur {
    filter: blur(4px);
}
Размытый текст

✅ Элемент размыт

Пример 2: чёрно-белый (grayscale)

.grayscale {
    filter: grayscale(100%);
}
Чёрно-белый блок

✅ Цвета стали серыми

Пример 3: яркость (brightness)

.bright {
    filter: brightness(150%);
}
Увеличенная яркость

✅ Блок стал светлее

Пример 4: тень через drop-shadow

.drop-shadow {
    filter: drop-shadow(4px 4px 6px rgba(0,0,0,0.3));
}
Тень через filter

✅ То же, что box-shadow, но через filter

Пример 5: комбинация фильтров

.combined {
    filter: brightness(120%) contrast(150%) grayscale(50%);
}
Комбинация фильтров

✅ Применены сразу три фильтра

📓 Из тетради: «Тени и фильтры — это быстрый способ сделать дизайн выразительнее. Но не переусердствуйте: слишком много теней или сильное размытие мешают читать контент. А фильтры могут замедлять страницу, если их много».