Responsive галерея зображень
Створи responsive галерею зображень, яка красиво виглядає на будь-якому екрані. Використай Flexbox для розкладки та CSS transitions для hover-ефектів.
Завдання
Файлова структура
flexbox-gallery/
├── index.html
├── style.css
└── images/ ← 8-12 зображень (можна з picsum.photos)
Вимоги
1. HTML-структура:
- Хедер з назвою галереї
- Секція з фільтрами (кнопки: "Все", "Природа", "Місто", "Люди" — стилізовані, без JS)
- Сітка зображень (8-12 карток)
- Кожна картка: зображення + підпис + категорія
- Футер
2. Flexbox Layout:
- Контейнер карток —
display: flexзflex-wrap: wrap - Картки використовують
flex: 1 1 280px(мінімум 280px, ростуть рівномірно) gapміж картками- Навігація фільтрів — flex з
justify-content: centerтаgap
3. Responsive:
- Mobile (до 768px): картки на всю ширину (1 колонка)
- Tablet (768px+): 2 колонки
- Desktop (1024px+): 3-4 колонки
- Хедер адаптується (менший font-size на мобільному)
4. Hover-ефекти:
- Картка при наведенні:
transform: translateY(-4px)+box-shadow - Зображення при наведенні:
transform: scale(1.05)зoverflow: hiddenна контейнері - Кнопки фільтрів: зміна фону при hover
- Всі ефекти з
transition
5. Стилізація:
- Google Fonts
border-radiusна картках- Категорія відображається як бейдж (маленький тег з фоном)
box-sizing: border-boxна всіх елементах
Для зображень
Якщо немає своїх фото, використовуй Lorem Picsum:
<img src="https://picsum.photos/400/300?random=1" alt="Опис фото">
<img src="https://picsum.photos/400/300?random=2" alt="Опис фото">
Підказки
- Для overflow ефекту на зображенні: обгортка з
overflow: hidden, зображення зtransition: transform 0.3s - Кнопки фільтрів стилізуй як flex-елементи з
gap, без функціональності (це CSS-завдання) - Для mobile-first: базові стилі — одна колонка, потім
@mediaдля tablet та desktop aspect-ratio: 4/3на зображеннях для однакових пропорцій
Критерії оцінки
| Критерій | Бали |
|---|---|
| Flexbox layout з wrap та gap | 20 |
| Responsive (mobile / tablet / desktop) | 25 |
| Hover-ефекти з transitions | 25 |
| Загальна стилізація та типографіка | 15 |
| Чистий, організований CSS | 15 |