Верстка лендінгу з Figma
До цього моменту ти верстав за текстовими описами. Але в реальній роботі фронтенд-розробник отримує макет від дизайнера — і його потрібно перетворити на код. Саме цим ми зараз і займемося.
Твоє завдання — зверстати фітнес-лендінг treine.me за готовим макетом у Figma. Це твій перший досвід роботи з дизайн-інструментом — і дуже важливий навик для будь-якого верстальника.
Макет у Figma: Layout to study HTML & CSS (Community)
Як працювати з Figma
Figma — це інструмент для дизайну інтерфейсів. Тобі не потрібно вміти в ній малювати — лише читати макет і витягувати потрібні значення.
- Відкрий макет за посиланням вище. Переглядати можна без реєстрації, але з акаунтом зручніше (безкоштовно)
- Навігація: скрол для зуму, затисни
Space+ перетягуй мишкою для переміщення - Inspect panel: клікни на будь-який елемент — справа з'явиться панель із CSS-властивостями (розміри, кольори, шрифти, відступи)
- Кольори: клікни на колір у правій панелі, щоб скопіювати HEX-код
- Шрифти: у панелі Inspect бачиш
font-family,font-size,font-weight— це те, що потрібно для CSS - Відстані: затисни
Alt(Option на Mac) і наведи на інший елемент — Figma покаже відстань між ними в пікселях - Експорт зображень: виділи елемент → внизу правої панелі секція "Export" → обери формат (SVG для іконок, PNG для ілюстрацій)
Якщо не вдається експортувати зображення — не хвилюйся, використай placeholder-ілюстрацію з unDraw або простий CSS-блок замість картинки.
Завдання
Файлова структура
figma-landing/
├── index.html
├── style.css
└── images/
└── hero-illustration.png ← експорт з Figma або placeholder
Структура сторінки
┌──────────────────── header ─────────────────────┐
│ treine.me Home About Training│
├─────────────────────────────────────────────────┤
│ hero section │
│ ┌─── text ────────────┐ ┌─── image ──────────┐ │
│ │ WORKOUTS MADE │ │ │ │
│ │ EXCLUSIVE FOR YOU! │ │ [illustration] │ │
│ │ │ │ │ │
│ │ We create exclusive │ │ │ │
│ │ and unique workouts │ │ │ │
│ │ │ │ │ │
│ │ [🟢 Start now] │ │ │ │
│ └─────────────────────┘ └─────────────────────┘ │
├──────────────────── footer ─────────────────────┤
│ send us a message @treine.me │
└─────────────────────────────────────────────────┘
Вимоги
1. Семантичний HTML
- Використовуй теги
<header>,<main>,<section>,<footer> <nav>для навігації з посиланнями- Заголовок у
<h1>, опис у<p>
2. Header (Flexbox)
- Логотип "treine.me" зліва, навігація справа
display: flexзjustify-content: space-betweenтаalign-items: center- Навігаційні посилання через
<ul>+display: flex+gap - Активний пункт ("Home") виділений жирним шрифтом
3. Hero-секція (Flexbox — головна частина)
- Два блоки поруч: текстовий контент зліва, ілюстрація справа
display: flexна секції, кожен блок займає приблизно половину ширини- Текстовий блок:
display: flex+flex-direction: columnдля вертикального розташування заголовка, опису та кнопки - Вертикальне центрування контенту через
justify-content: center
4. Заголовок із акцентом
- Текст: "WORKOUTS MADE EXCLUSIVE FOR YOU!"
- Слово "EXCLUSIVE" виділене кольором акценту (бірюзовий/зелений з макету)
- Загорни це слово у
<span>з окремим класом
5. CTA-кнопка
- Зелена кнопка "Start now" з іконкою (WhatsApp або телефон)
display: inline-flex+align-items: center+gapдля іконки та тексту- Округлені кути (
border-radius), padding, колір тексту білий
6. Кольори та типографіка
- Витягни кольори з Figma і збережи їх у CSS-змінних:
:root { --color-primary: /* твій колір з макету */; --color-text: /* темний текст */; --color-text-light: /* світліший текст опису */; --color-bg: #FFFFFF; } - Підключи шрифт з Google Fonts (перевір який шрифт у Figma)
- Дотримуйся розмірів тексту з макету (
font-size,font-weight)
7. Відступи та розміри
- Контейнер з
max-width: 1280pxтаmargin: 0 auto - Відступи (
padding) витягни з Figma через Inspect або Alt-наведення - Використовуй
remдля розмірів
Бонусні завдання
Декоративні елементи (+10 балів)
- Патерн з точок на фоні (як у правому нижньому куті макету)
- Геометричні фігури (кола, прямокутники) через
::before/::afterзposition: absolute
Hover-ефекти (+10 балів)
- Навігаційні посилання: зміна кольору з
transition - CTA-кнопка: зміна
background-colorабоtransform: scale(1.05)на hover - Плавні переходи через
transition: all 0.3s ease
Responsive (+10 балів)
- На мобільних (до 768px): hero-секція стає вертикальною (текст зверху, картинка знизу)
flex-direction: columnв media query- Заголовок зменшується, кнопка на всю ширину
Підказки
- Для двох колонок у hero:
display: flexна батьківському елементі, кожен дочірній —flex: 1 - Для кольорового слова:
<span class="accent">EXCLUSIVE</span>+.accent { color: var(--color-primary); } - Для кнопки з іконкою:
display: inline-flex; align-items: center; gap: 8px; - Для іконки WhatsApp: Unicode-символ
☎або SVG-іконка - Для контейнера:
.container { max-width: 1280px; margin: 0 auto; padding: 0 40px; } - Для патерну точок (бонус):
background-image: radial-gradient(circle, rgba(0,0,0,0.1) 1px, transparent 1px); background-size: 20px 20px;
Критерії оцінки
| Критерій | Бали |
|---|---|
| Семантичний HTML (header, main, section, footer, nav) | 10 |
| Flexbox header (логотип + навігація, space-between) | 15 |
| Flexbox hero-секція (два блоки поруч) | 20 |
| Кольори та шрифти з Figma (CSS-змінні, Google Fonts) | 15 |
| CTA-кнопка з іконкою (inline-flex, стилізація) | 10 |
| Відступи та розміри близькі до макету | 15 |
| Чистий, організований CSS | 15 |
| Бонус: Декоративні елементи (точки, фігури через CSS) | +10 |
| Бонус: Hover-ефекти з transitions | +10 |
| Бонус: Responsive (mobile-friendly hero) | +10 |