🎨
Модуль 2. CSS и оформление
Занятие 20
Фоны и эффекты
Сегодня мы сделаем карточки как в современных приложениях: скруглённые углы, тени и градиенты.
Сегодня сделаем вот такое
Как в любимых приложениях
- ⭕ Скруглённые углы —
border-radius - 🌫 Мягкие тени —
box-shadow - 🌈 Переходы цветов —
linear-gradient
Три свойства — и сайт выглядит современно.
border-radius
12px— мягкие углы50%— круг из квадрата999px— «таблетка»overflow: hidden— обрезать содержимое по форме
<div class="s a">12px</div>
<div class="s b">50%</div>
<div class="s c">999px</div>
.s {
display: inline-grid; place-items: center;
width: 110px; height: 110px; margin: 8px;
color: white; font: bold 18px sans-serif; background: #6c5ce7;
}
.a { border-radius: 12px; }
.b { border-radius: 50%; }
.c { width: 180px; height: 60px; border-radius: 999px; }
box-shadow — тень
0 8px 20px rgba(0,0,0,.15)
- сдвиг вправо
- сдвиг вниз
- размытие
- цвет (полупрозрачный)
<div class="c old">Резкая тень</div>
<div class="c soft">Мягкая тень</div>
body { background: #f5f6fa; padding: 20px; font-family: sans-serif; }
.c { display: inline-block; padding: 36px 24px; margin: 12px; background: white; border-radius: 16px; }
.old { box-shadow: 6px 6px 0 black; }
.soft { box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15); }
Градиенты
linear-gradient(135deg, a, b)— по диагоналиradial-gradient(circle, a, b)— от центра- Пишем в
background, не в background-color - Соседние цвета — красиво 🎨
<div class="g one"></div>
<div class="g two"></div>
<div class="g three"></div>
.g { display: inline-block; width: 140px; height: 140px; margin: 8px; border-radius: 16px; }
.one { background: linear-gradient(135deg, #a18cd1, #fbc2eb); }
.two { background: linear-gradient(90deg, #f6d365, #fda085); }
.three { background: radial-gradient(circle, #ffffff, #74b9ff); }
Картинка на фоне
background-image: url(…)background-size: cover— на весь блок- Тёмный слой сверху — текст читается
<section class="banner">
<h1>Покоряем горы</h1>
</section>
.banner {
display: grid; place-items: center; height: 220px;
background:
linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.35)),
url("/images/mountain.svg");
background-size: cover;
background-position: center;
border-radius: 16px;
}
.banner h1 { color: white; font-family: sans-serif; }
Карточка с эффектом
- Градиентный фон страницы
- Белая карточка, скругление, тень
- Круглая аватарка
- Hover: приподнять + тень больше
Наведи на карточку 👉
<div class="card">
<img class="avatar" src="/images/cat.svg" alt="Кот">
<h3>Барсик</h3>
<p>Главный тестировщик</p>
</div>
body { margin: 0; padding: 30px; font-family: sans-serif; background: linear-gradient(135deg, #a18cd1, #fbc2eb); }
.card {
width: 200px; margin: auto; padding: 24px; text-align: center;
background: white; border-radius: 20px;
box-shadow: 0 8px 20px rgba(0,0,0,.15); transition: 0.3s;
}
.card:hover { transform: translateY(-8px); box-shadow: 0 16px 30px rgba(0,0,0,.25); }
.avatar { width: 90px; height: 90px; border-radius: 50%; background: #ffeaa7; }
Правило меры
✅ Одно скругление на весь сайт
✅ 1–2 тени
✅ Градиент для акцента
✅ 1–2 тени
✅ Градиент для акцента
❌ Радуга везде
❌ Тени у каждой буквы
❌ opacity у текста
❌ Тени у каждой буквы
❌ opacity у текста
Эффект заметен, когда он один.
Запомни!
border-radius: 16pxСкруглениеbox-shadow: 0 8px 20px rgba(0,0,0,.15)Теньlinear-gradient(135deg, a, b)Линейный градиентbackground-size: coverФон на весь блокopacity: 0.8Прозрачностьtransform: translateY(-5px)Приподнять
Практика: Карточки с эффектами
- Сделай фон страницы градиентом.
- Сделай три белые карточки со скруглёнными углами и мягкой тенью.
- Сделай круглую аватарку (border-radius: 50%).
- При наведении карточка приподнимается, а тень становится больше.
🚀 Со звёздочкой: Сделай анимацию: @keyframes, чтобы аватарка медленно покачивалась. Попробуй тёмную тему с помощью CSS-переменных.
🔒 Без входа в аккаунт работу из практики нельзя сохранить на сайте, а занятие — отметить пройденным.
🪞
Подведём итоги
- Что нового я сегодня узнал(а)?
- Что получилось лучше всего?
- Где было трудно и что поможет в следующий раз?
✨ По желанию: Найди сайт-генератор градиентов и выбери градиент для своего проекта.