Мета роботи
Опанувати методологію утилітарного CSS за допомогою фреймворку Tailwind CSS. Навчитися використовувати штучний інтелект для миттєвої генерації ізольованих, семантичних та повністю адаптивних UI-компонентів. Навчитися розділяти утилітарні класи Tailwind та специфічні користувацькі стилі, виносячи останні в окремий підключений файл стилів. Здобути практичні навички хмарного розгортання (deployment) веб-ресурсу на платформі Netlify.
Раніше для створення адаптивного меню (щоб воно гарно згорталося в "гамбургер" на мобільному та випадало списком на десктопі) потрібно було написати кілька десятків рядків чистого CSS з медіа-запитами (@media) та складний скрипт на JavaScript. Сьогодні утилітарний фреймворк Tailwind CSS в синергії з генеративним ШІ допомагає створити ідеальний, ізольований та адаптивний компонент за 30 секунд за допомогою звичайного текстового промпту.
ШІ надає швидкість, але архітектором та контролером якості залишається розробник. Якщо не розуміти, чим клас md:flex відрізняється від hidden, навряд чи можна виправити навіть найменший баг, який згенерує нейромережа.
стек інструментів
- VS Code. Локальний редактор коду з обов’язковим розширенням Tailwind CSS IntelliSense, що підсвічує класи та пропонує варіанти.
- Tailwind CSS. Сучасний CSS-фреймворк, який надає набір готових утилітарних класів для швидкого створення адаптивних та стильних вебінтерфейсів без написання власних CSS-правил. Він надає можливість оформлювати елементи безпосередньо в HTML, прискорюючи розробку та спрощуючи підтримку проєктів.
- Tailwind Play. Онлайн-середовище для експериментів з Tailwind CSS, яке допомагає писати HTML, CSS і JavaScript та миттєво переглядати результат в браузері без встановлення додаткових інструментів. Воно зручне для навчання, тестування компонентів і швидкого створення прототипів вебінтерфейсів.
- Netlify. Хмарний хостинг для публікації сайту (деплою).
Інструменти перевірки стандартів веброзробки (валідація HTML/CSS)
- W3C Markup Validation Service. Онлайн-сервіс для перевірки правильності HTML-розмітки відповідно до стандартів W3C. Допомагає знаходити синтаксичні помилки, неправильне вкладення елементів та порушення правил семантичної верстки.
- W3C CSS Validation Service. Інструмент перевірки CSS-коду на відповідність стандартам W3C. Допомагає виявити синтаксичні помилки, некоректні властивості та потенційні проблеми в таблицях стилів.
Інструменти аналізу та тестування вебінтерфейсу
- Браузер (Chrome/Firefox/Edge). Для тестування адаптивності за допомогою увімкнення режиму інспектування пристроїв (DevTools Device Mode).
- DevTools (Developer Tools). Вбудований набір інструментів сучасних веббраузерів для аналізу та налагодження вебсторінок. Надає можливість переглядати HTML-структуру, змінювати CSS в реальному часі, аналізувати продуктивність сторінки та тестувати адаптивність інтерфейсу.
- Google Lighthouse. Автоматизований інструмент аудиту якості вебсторінок, що інтегрований в DevTools браузера Google Chrome. Надає можливість оцінити доступність інтерфейсу (Accessibility), базові SEO-показники, продуктивність та інші характеристики якості вебсайту.
Tailwind CSS
Tailwind CSS — це CSS-фреймворк, який надає низькорівневі класи-утиліти (наприклад, flex, pt-4, text-center, rotate-90) для побудови унікальних дизайнів безпосередньо в HTML-розмітці. Замість того, щоб створювати окремий файл стилів і вигадувати назви для класів (наприклад, .card-container), можна комбінувати готові класи прямо в тегах.
Tailwind CSS та генеративні ШІ-моделі (ChatGPT, Claude, Gemini) створені один для одного. Якщо попросити ШІ згенерувати компонент (калькулятор, CTA-блок, форму або картку товару) і написати в промпті "use Tailwind CSS", то у відповідь можна отримати чистий, самодостатній HTML/JS код, який не потребує додаткових файлів стилів. ШІ бездоганно оперує утилітарними класами. Згенерований код можна скопіювати, вставити у власний проєкт — і все відразу працює та виглядає естетично.
На перших етапах довгі рядки класів в HTML можуть здатися незвичними або перевантаженими. Потрібно використовувати плагіни для редакторів коду (наприклад, Tailwind CSS IntelliSense для VS Code, який автоматично підказує класи) та вмикати автоперенос рядків. Вже за тиждень практичної роботи можна відчути, наскільки цей підхід прискорює створення вебресурсів.
Опанування базових утиліт — це перший і найважливіший етап вивчення Tailwind CSS, який зазвичай займає близько одного тижня. Оскільки класи Tailwind напряму мапуються на властивості CSS, розуміння основ CSS (Box Model, Flexbox, Grid) значно полегшить цей процес.
Перш ніж почати, слід знати основи HTML та CSS, оскільки класи Tailwind напряму мапуються на властивості CSS. Замість того, щоб писати окремий CSS-код для кнопки, її збирають безпосередньо в HTML, комбінуючи класи для відступів, кольорів, шрифтів та заокруглень.
Простий приклад для порівняння
Традиційний підхід (Звичайний CSS)
HTML
<button class="my-custom-button">Натисни на мене</button>
/* CSS */
.my-custom-button {
background-color: #3b82f6;
color: white;
padding: 8px 16px;
border-radius: 8px;
font-weight: bold;
}
Підхід Tailwind CSS
HTML <button class="bg-blue-500 text-white py-2 px-4 rounded-lg font-bold"> Натисни на мене </button>
Інтерфейс будується з дрібних одноцільових класів. Це усуває "втому від назв" та запобігає конфліктам стилів.
Просторова сітка Tailwind базується на системі, де одна одиниця дорівнює 4 пікселям (або 0.25rem). Наприклад, клас p-4 встановить внутрішній відступ в 16 пікселів (4×4=16).
Tailwind має вбудовану палітру кольорів від 50 (найсвітліший) до 950 (найтемніший). Наприклад, bg-blue-500 — це базовий синій колір фону.
Tailwind надає можливість легко керувати виглядом елементів залежно від пристрою або дій користувача.
- Для різних екранів використовуються різні префікси: sm: (від 640px), md: (768px), lg: (1024px), xl: (1280px). Наприклад, w-full md:w-32 зробить елемент на весь екран на мобільних пристроях, але звузить його до 128px (4х32) на планшетах.
- Для мікровзаємодій також використовують префікси модифікаторів станів: hover: (наведення), focus: (фокус), active: (активний стан). Наприклад, hover:bg-black змінить фон при наведенні мишкою.
- Щоб змінити стиль елемента для темного режиму достатньо додати префікс dark:, (наприклад, dark:bg-slate-900).
У версії Tailwind 4.0 стався перехід на концепцію CSS-First, що спрощує налаштування:
- Замість трьох директив використовується одна: @import "tailwindcss";.
- Кастомні кольори та шрифти додаються прямо в CSS через блок @theme.
- Можна використовувати будь-які значення без попереднього налаштування, наприклад grid-cols-15 або w-103.
Відступи та розміри
Tailwind базується на просторовій сітці, де одна одиниця дорівнює 0.25rem (або 4px). Щоб отримати значення в пікселях, потрібно помножити число в назві класу на 4 (наприклад, p-4 — це 4×4=16 px).
- Padding (Внутрішні відступи). Використовуються p-* для всіх сторін, px-* для горизонтальних, py-* для вертикальних, або специфічні напрямки: pt-* (top), pb-* (bottom), pl-* (left), pr-* (right).
- Margin (Зовнішні відступи). Працюють за аналогічною логікою з префіксом m-* (наприклад, mt-10 для відступу зверху).
- Width & Height (Ширина та висота). Класи w-* та h-* також використовують стандартну шкалу (наприклад, w-64 — це 256px). Можна використовувати відносні значення: w-full (100%) або h-screen (100vh).
В новій версії можна використовувати довільні числа, наприклад w-103, які автоматично підлаштовуються під шкалу, навіть якщо їх не було заздалегідь визначено в конфігурації.
Макет та позиціонування
Утиліти макета надають можливість будувати складні структури безпосередньо в HTML.
- Flexbox. Один з найпопулярніших інструментів. Щоб активувати контейнер, потрібно додати клас flex, а потім керувати ним за допомогою flex-row/flex-col (напрямок), items-center (вирівнювання по вертикалі) та justify-between (розподіл простору).
- CSS Grid. Для сіток використовують grid. Можна легко задати кількість колонок, наприклад grid-cols-3. В Tailwind v4 можна вказувати будь-яку кількість колонок прямо в HTML, наприклад grid-cols-15.
- Для позиціонування потрібно використовувати класи relative, absolute, fixed або sticky разом з координатами top-*, left-* тощо.
- Керувати шарами Z-index можна за допомогою z-* (наприклад, z-50 для модальних вікон).
Типографіка
Ці утиліти відповідають за вигляд тексту та його читабельність.
- Для зазначення розміру тексту використовують шкалу від text-xs (найменший) до text-9xl (величезний).
- Товщина шрифту задається класами від font-thin до font-black (наприклад, font-bold для жирного тексту).
- Tailwind має вбудовану палітру. Клас text-gray-500 задасть середній сірий колір, де 100 — найсвітліший, а 900/950 — найтемніший.
- Для вирівнювання та призначення інтервалів застосовують класи text-center для центрування, leading-* для міжрядкового інтервалу (line-height) та tracking-* для відстані між літерами.
Оскільки класів є багато, то варто встановити розширення Tailwind CSS IntelliSense для VS Code — воно буде автоматично підказувати назви класів та показувати їхній реальний CSS-код при наведенні.
На початках вивчення фреймворку варто тримати відкритим сайт з документацією або спеціальні "Cheat Sheets", щоб швидко знаходити потрібний клас.
Слід дотримуватися логічного порядку класів (Layout -> Box Model -> Typography -> Visual), або використовувати плагін Prettier, який сортуватиме їх автоматично.
Історично розробники писали стилі для десктопних версій сайту, а потім за допомогою медіа-запитів max-width «стискали» та ховали елементи для мобільних екранів.
Стратегія Mobile-First перевертає цей процес.
- Базовий шар стилів (класи без будь-яких префіксів) пишеться виключно для найменших екранів (мобільні телефони від 0px).
- В міру збільшення екрана розробник додає адаптивні префікси (брейкпоінти), які перевизначають або доповнюють базові стилі.
Tailwind CSS використовує виключно медіа-запити типу min-width (мінімальна ширина). Це означає, що будь-який стиль, заданий з префіксом, діє на вказаній ширині екрана і поширюється на всі більші екрани, доки не буде перевизначений наступним, більшим брейкпоїнтом.
Специфікація стандартних брейкпоінтів Tailwind CSS
- Без префікса (за замовчуванням). Смартфони в портретній орієнтації (ширина від 0px до 639px). Це фундамент верстки.
- sm: (Small). Екрани від 640px і більше. Зазвичай це смартфони в альбомній (landscape) орієнтації або невеликі phablet-пристрої.
- md: (Medium). Екрани від 768px і більше. Стандартний розмір для планшетів (наприклад, Apple iPad) в обох орієнтаціях.
- lg: (Large). Екрани від 1024px і більше. Охоплює екрани нетбуків, компактних ноутбуків та планшетів в горизонтальному положенні.
- xl: (Extra Large). Екрани від 1280px і більше. Повнорозмірні монітори комп’ютерів та сучасні ноутбуки.
- 2xl: (Double Extra Large). Екрани від 1536px і більше. Великі десктопні монітори та 4K-дисплеї.
Розбір логіки на практичних прикладах
Щоб вільно керувати адаптивністю через ШІ-промпти та самостійно коригувати код, необхідно чітко розуміти «ланцюжкову поведінку» класів.
Приклад 1. Керування видимістю елементів (Компонент «Гамбургер» та Меню)
Розглянемо класичний паттерн для адаптивного меню, згенерований штучним інтелектом.
<button class="block md:hidden"> Кнопка мобільного меню</button> <div class="hidden md:flex"> Десктопні посилання навігації</div>
Як браузер інтерпретує цей код
- На мобільному телефоні (наприклад, 375px). Для кнопки спрацьовує клас block (вона видима). Префікс md: ігнорується, бо екран менший за 768px.
- Для блоку навігації спрацьовує клас hidden (меню приховане).
- На планшеті чи ноутбуці (наприклад, 1024px)
- Ширина екрана перевищила бар'єр md (768px). Комп'ютер активує медіа-запит для префікса md:.
- Для кнопки вмикається клас md:hidden, який повністю стирає та перевизначає базовий block. Кнопка зникає.
- Для блоку навігації вмикається md:flex, який скасовує початковий hidden і перетворює блок на видимий гнучкий контейнер.
Приклад 2. Динамічна адаптивна сітка
Приклад побудови адаптивного підвалу сайту або секції карток товарів.
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6"> </div>
- Екран 400px (Мобільний). Працює базовий клас grid-cols-1. Всі картки або колонки футера шикуються строго вертикально в один стовпчик на всю ширину екрана.
- Екран 700px (Альбомний формат). Бар'єр sm (640px) подолано. Активується утиліта sm:grid-cols-2. Сітка миттєво перебудовується в дві рівні колонки. Префікс lg: ще чекає свого часу.
- Екран 1200px (Десктоп). Подолано бар'єр lg (1024px). Клас lg:grid-cols-4 бере пріоритет над попередніми налаштуваннями. Колонки плавно розгортаються в один горизонтальний ряд з 4 елементів.
Приклад 3. Динамічна ширина блоку
<div class="w-full md:w-1/2 lg:w-1/3"> </div>
- На мобільному (менше 768px) блок буде шириною 100% (w-full).
- На планшеті (від 768px) ширина стане 50% (md:w-1/2).
- На ноутбуці (від 1024px) ширина стане 33.3% (lg:w-1/3).
В новій версії фреймворку з'явилася вбудована підтримка класів @container, які сприяють елементам реагувати на розмір батьківського контейнера, а не всього екрана, що робить компоненти ще більш модульними.
Адаптивні класи можна комбінувати з іншими модифікаторами, наприклад: md:hover:bg-blue-500 (змінити фон при наведенні лише на екранах від 768px).
Рекомендується використовувати розширення Tailwind CSS IntelliSense, яке підказує доступні префікси та показує, який саме медіа-запит вони створюють.
Щоб розробка була швидкою та приємною, потрібно встановити наступні розширення для VS Code.
- Tailwind CSS IntelliSense. Обов'язкове розширення, яке надає автодоповнення, підсвічування синтаксису та показує фінальний CSS-код при наведенні на клас.
- Prettier Plugin for Tailwind CSS. Автоматично сортує класи в правильному порядку.
- Inline Fold. Спроможне згортати довгі списки класів в HTML, щоб вони не заважали читати структуру коду.
Візуальний довідник класів Tailwind
Tailwind Play
Tailwind Play — це офіційний онлайн-майданчик (playground), який допомагає початківцям миттєво почати працювати з Tailwind CSS прямо в браузері, не витрачаючи час на складне налаштування локального середовища.
Пісочниця Tailwind Play знаходиться за адресою play.tailwindcss.com
Інтерфейс розділено на три основні вкладки
- HTML. Тут пишеться розмітка та додаються утилітарні класи (наприклад, flex, bg-blue-500, p-4) безпосередньо до тегів.
- CSS. Надає можливість додавати кастомні стилі або використовувати спеціальні директиви, такі як @apply для створення власних компонентів.
- Config (або Settings). Тут можна налаштовувати тему проекту: додавати власні кольори, шрифти або підключати плагіни (наприклад, для типографіки).

Tailwind Play використовує той же рушій, що й розширення для VS Code.
Коли починати друкувати назву класу, з'являється список доступних варіантів. Можна переміщатися між варіантами підказок (наприклад, різними значеннями відступів p-4, p-5) за допомогою клавіш зі стрілками, і результат у вікні перегляду буде змінюватися миттєво, ще до того, як натиснути Enter.
Щоб змінювати розмір вікна попереднього перегляду, потрібно увімкнути режим адаптивного дизайну. Якщо розширити вікно за межі доступного місця, інтерфейс автоматично зменшить масштаб, щоб було видно, як дизайн виглядає на великих екранах.
За допомогою спеціального контролера в інтерфейсі можна перемикатися між світлою та темною темами, щоб перевірити класи з префіксом dark:.
Однією з найкращих функцій є One-click sharing. Кнопка "Share" призначена, щоб згенерувати унікальне посилання. Це посилання зберігає «знімок» всього коду (HTML, CSS та Config), обраний режим макета та навіть розміри вікна попереднього перегляду. Цей знімок можна надіслати будь-кому для демонстрації або допомоги в налогодженні коду.
Tailwind Play наразі підтримує лише чистий HTML і не призначений для роботи з React або іншими JavaScript-фреймворками.
Варто знати, що Tailwind автоматично застосовує базове скидання CSS, тому заголовки h1 спочатку виглядатимуть як звичайний текст, доки не додати класи типу text-2xl font-bold.
Для закріплення навичок рекомендується поєднувати роботу в Play з читанням офіційної документації або переглядом курсу "From Zero to Production" на YouTube-каналі Tailwind Labs.
Розробники-початківці бачать, які класи ШІ використовує для створення складних ефектів (тіні, градієнти, адаптивність). Замість того, щоб писати сотні рядків CSS в зовнішньому файлі, можна отримати готовий стилізований блок за лічені секунди.
Екосистеми DevTools (Chrome, Firefox, Edge) для оптимізації веб-ресурсів.
Сучасні веб-браузери давно переросли роль звичайних засобів перегляду статичного контенту. Сьогодні вони є повноцінними інтегрованими діагностичними середовищами (IDE). Інструменти розробника (DevTools) надають інженеру прямий доступ до рендеринг-рушія браузера та інтерпретатора JavaScript, допомагають проводити ретельний аналіз структури, стилів, мережного трафіку та швидкодії сторінки в реальному часі.
Для майбутнього спеціаліста критично важливо володіти анатомією цих інструментів, розуміти відмінності між ключовими браузерними рушіями та вміти виявляти архітектурні помилки.
Існує три найпростіші способи запустити інструменти розробника
- Спосіб 1 (найшвидший). Клавіша F12 (на деяких ноутбуках Fn + F12).
- Спосіб 2 (гарячі клавіші). Комбінація клавіш Ctrl+Shift+I (для Windows/Linux) або Cmd+Opt+I (для Mac).
- Спосіб 3 (мишкою). Права кнопка мишки на будь-якому елементі сайту та вибір з контекстного меню «Проінспектувати» (Inspect).
Якщо панель відкрилася збоку, а хочеться знизу (або навпаки), потрібно знайти в правому верхньому кутку DevTools три крапки (налаштування) та в рядку Dock side оберати зручне розташування екрана.
Архітектура діагностичного середовища браузера
Сучасні інструменти розробника (DevTools) мають спільну перевірену часом анатомію робочого простору, яка складається з чотирьох ключових зон.

- Activity Bar (Панель активності). Глобальна навігація, що допомагає миттєво перемикатися між основними підсистемами (Elements, Console, Sources, Network, Performance).
- Main Panel (Головна робоча область). Контекстне вікно, де відображається детальний інтерфейс вибраного інструменту.
- Settings (Налаштування). Центр керування робочим простором (Workspaces), де налаштовується ігнорування сторонніх скриптів (Ignore-listing) та активуються експериментальні функції розробки.
- Drawer/Quick View (Швідкий перегляд). Нижня висувна панель для паралельної роботи. Вона надає можливість, наприклад, тримати відкритими логі консолі під час інспектування структури сторінки.
Панель "Elements" (HTML та стилі)
Це головне вікно для роботи з версткою. Тут код сторінки відображається не статичним, а в реальному часі.
Як змінити текст чи HTML-тег на будь-якому сайті
- Обрати інструмент «Стрілочка» (в лівому верхньому кутку DevTools).
- Навести її на будь-який елемент на сторінці (наприклад, заголовок) і клікнути.
- У вікні коду цей елемент підсвітиться. Клікнути по ньому двічі — тепер можна змінити текст, видалити тег або дописати новий клас. Натиснути Enter (зміни видно одразу, але вони зникнуть, якщо оновити сторінку).

Як експериментувати з CSS (Стилями)
Праворуч від коду міститься вкладка Styles.
- Зміна кольору/розміру. Знайти потрібну властивість (наприклад, color або font-size), клікнути на значення та змінити його (можна крутити стрілочками на клавіатурі «вгору/вниз»).
- Додавання нового правила. Клікнути в порожнє місце всередині будь-якого CSS-селектора і вписати, наприклад, background: red;.
- Перевірка блокової моделі (Box Model). Прокрутити вкладку Styles в самий низ. Там відображено кольоровий квадрат, який чітко показує: фізичний розмір картинки, її внутрішні відступи (padding), рамку (border) та зовнішні відступи (margin).

Панель "Console"
Консоль потрібна для того, щоб бачити помилки в коді (особливо в JavaScript) та тестувати команди.
- Червоні хрестики (Errors). Якщо сайт працює не так, як треба, першим ділом варто відкрити консоль. Якщо там є червоні рядки — це критичні помилки коду (наприклад, незакрита дужка чи неправильний шлях до картинки). Потрібно клікнути по лінку праворуч від помилки, і браузер покаже точний рядок, де зроблено помилку.
- Інтерактивна пісочниця. Тут можна писати код. Наберати alert('Привіт!'); або 2 + 2 і натиснути Enter. Браузер миттєво виконає команду.
- Фішка $0. Виділити будь-який тег в панелі Elements, перейти в Console, написати $0 і натиснути Enter. Консоль виведе саме той елемент, який щойно був виділений.

Перевірка на адаптивність для смартфонів
Перевірка, чи не «зламається» Grid/Flexbox галерея на екрані мобільного
- Натиснути на іконку смартфона/планшета (поруч зі стрілочкою інспектора у верхньому кутку).
- Сторінка зменшиться. У верхній панелі, що з'явилася, у випадному списку Dimensions обрати модель (наприклад, iPhone 14 або Pixel 7).
- Або просто тягнути мишкою за краї вікна (сірі зони), щоб плавно змінювати ширину екрана та дивитися, як поводяться блоки й куди переноситься текст.

Панель "Network" — перевірка завантаження
Якщо картинки на сайті завантажуються занадто повільно, ця панель покаже в чому є проблема.
- Відкрити вкладку Network.
- Перезавантажити сторінку (F5 або Ctrl+R).
- Покажеться таблиця зі всіма файлами, які браузер завантажує з комп'ютера чи сервера.
- Корисна функція Throttling. Знайти у верхньому рядку напис No throttling і змінити його на Slow 3G. Тепер браузер імітуватиме дуже повільний мобільний інтернет. Оновити сторінку і подивитися, як завантажується сайт. Такий прийом навчить оптимізувати вагу картинок.
Секретна сила різних браузерів
Початківцю не обов'язково ставити всі три браузери відразу, але корисно знати їхні «суперсили».
- Chrome. Відкрити вкладку з подвійною стрілочкою << і обрати Lighthouse. Натиснути Analyze page load. Браузер сам протестує сайт і виставить оцінки від 1 до 100 за швидкість, SEO та доступність, а також напише текстові підказки, що саме виправити в коді.
- Firefox. Якщо в панелі Elements знайти блок, де написано grid або flex, поруч буде маленький фіолетовий значок. Після кліку на нього — Firefox намалює прямо поверх сайту лінії сітки, номери колонок та зони відступів. Це найкращий спосіб зрозуміти, як працює CSS Grid.
- Edge. Знайти в налаштуваннях інструмент 3D View. Він перетворить плаский сайт на тривимірне місто, де висота «будинків» — це шари вкладеності тегів або накладання елементів через z-index. Якщо якась кнопка не клікається, в 3D-вигляді можна відразу побачити, що її перекриває інший прозорий блок.
Написати код, який просто «якось працює» — легко. Створити код оптимізованим, швидким, доступним та відмовостійким — це вже справжня веб-інженерія, де DevTools є головним цифровим інструментом.
Інструменти перевірки стандартів веброзробки
Валідація — це процес перевірки вихідного коду вебсторінки на відповідність офіційним специфікаціям і стандартам консорціуму W3C. Це технічний аудит, який гарантує, що код буде однаково та без помилок інтерпретуватися всіма браузерами, пошуковими роботами та пристроями доступності.

Цей сервіс є важливим для перевірки HTML-розмітки. Браузери є довольні лояльними. Якщо допущено помилки в HTML (наприклад, забули закрити блок </div> або вклали один тег в інший невірно), браузер спробує самостійно "виправити" код в пам'яті. Але кожен браузер зробить це по-своєму, що призведе до руйнування верстки. Валідатор знаходить ці приховані міни.
Три методи перевірки коду
- Validate by URL. Перевірка сайту, який вже опубліковано в інтернеті (знадобиться в фінальних лабораторних роботах).
- Validate by File Upload. Завантаження локального файлу index.html безпосередньо з комп'ютера.
- Validate by Direct Input. Накопичувальний або швидкий метод. Потрібно скопіювати весь код з IDE (VS Code/Cursor) та вставити його в текстове поле сервісу.
Під час семантичного рефакторингу (заміни <div> на <header>, <main>, <section>) ШІ може порушити архітектурну ієрархію.
Типові помилки, які виявить W3C Markup Validator.
- Неправильне вкладення (Nested tags error). Наприклад, розміщення блочного тегу всередині рядкового: <a><section>...</section></a>. Валідатор відразу підсвітить це як грубу помилку.
- Відсутність обов'язкових атрибутів. Якщо ШІ згенерував картку товару чи галерею, але забув додати атрибут alt для картинки <img>, валідатор видасть попередження (Warning), оскільки це порушує стандарти доступності для людей з порушеннями зору.
- Дублювання унікальних ідентифікаторів. Використання однакового id="..." для кількох елементів сторінки. На екрані все може виглядати нормально, але JavaScript-віджет (наприклад, майбутній калькулятор в ЛР №9) відпрацює некоректно.

Якщо HTML — це скелет, то CSS — це обгортка та дизайн сайту. CSS-валідатор аналізує каскадні таблиці стилів (style.css) на відповідність сучасним стандартам CSS3.
Специфіка перевірки CSS в контексті ШІ
Сучасний ШІ навчався на величезних масивах даних, які містять як застарілий код (10-річної давнини), так і експериментальні властивості, які ще не затверджені стандартами.
Типові помилки, які виявить W3C CSS Validator.
- Синтаксичні помилки («друкарські огріхи» ШІ). Пропущена крапка з комою ;, незакрита фігурна дужка } або помилка в назві властивості (наприклад, background-colr замість background-color).
- Галюцинації з властивостями. ШІ може змішати синтаксис Flexbox та CSS Grid, видавши щось типу grid-align: center; (такої властивості в Grid не існує, є align-items або justify-content). Валідатор чітко вкаже рядок з неіснуючим правилом.
- Помилки в CSS-змінних. Оскільки в ЛР №5 впроваджено архітектуру CSS-змінних в блоці :root, валідатор перевірить правильність їхнього оголошення та виклику через функцію var(--variable-name).
Не потрібно намагатися виправити всі помилки самостійно — варто змусити ШІ вчитися на своїх помилках. Це й є справжня інженерія промптів.
- Перевірити файл index.html через W3C Markup Validator.
- Якщо сервіс видав червоні помилки (Errors), скопіювати їхній текст разом з номерами рядків.
- Відкрити чат-асистент в IDE (Copilot/Codeium) та надіслати наступний промпт:
«Мій HTML-код не пройшов перевірку офіційного валідатора W3C. Він повернув наступну помилку на рядку [вказати номер]: "[вставити текст помилки з валідатора]". Проаналізуй мій поточний файл, поясни мені простими словами, в чому саме полягає архітектурна помилка, та виправ код так, щоб він став на 100% валідним за стандартами W3C.»
- Повторити процедуру для файлу style.css через CSS-валідатор.
В реальному IT-виробництві чистий, валідний код є репутацією компанії.
- SEO (Пошукова оптимізація). Пошукові роботи Google значно швидше й вище індексують сайти з валідною семантичною розміткою. Якщо робот заплутається в "div-мішинині" або зламається на незакритому тегу, сайт ніколи не потрапить в топ видачі.
- Кроссбраузерність. Валідний код гарантує, що адаптивна Grid-галерея не розвалиться ані в Safari на iPhone, ані в Chrome на Android, ані в специфічних корпоративних браузерах.
- Легкість підтримки. Код, який відповідає стандартам W3C, легко читати іншим розробникам, які доєднаються до проєкту пізніше. А використання CSS-змінних допоможе змінити дизайн всього сайту за 5 секунд.
Покроковий хід виконання роботи
Етап 1. Підготовка робочого середовища в VS Code
- Встановити розширення Tailwind CSS IntelliSense:
- В VS Code натиснути Ctrl+Shift+X (або Cmd+Shift+X на Mac).
- Знайти «Tailwind CSS IntelliSense» і натиснути «Install».
- Створити папку проєкту lab6_components, відкрити її в VS Code.
- Створити файли:
- index.html — головна сторінка.
- styles.css — файл для кастомних стилів (якщо знадобляться).
- Підключення Tailwind (для розробки). В index.html в <head> додати CDN-скрипт (для навчальних цілей) та файл з власними стилями:
HTML <script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="styles.css">
Базовий HTML шаблон з підключенням Tailwind (CDN):
<!DOCTYPE html> <html lang="uk"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Лабораторна робота №6</title> <script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="styles.css" /> </head> <body> <!-- Тут буде ваш код --> </body> </html>
Етап 2. Швидке ШІ-прототипування в Tailwind Play
- В VS Code (або ChatGPT/Claude) сформулювати якісний промпт для Header.
- Створити компонент Footer за таким промптом
- Створити компонент «Картка товару»:
- Зберігти всі згенеровані коди в окремі файли або в буфер обміну. Вони знадобляться на наступних кроках.
Дій як Senior UI Engineer. Напиши повністю ізольований, семантичний HTML-код для сучасного Header з навігацією. Створи адаптивний Header з логотипом зліва, навігаційним меню по центру та кнопкою "Увійти" справа. Використовуй ТІЛЬКИ утилітарні класи Tailwind CSS. Вимоги: - На мобільних (за замовчуванням) — горизонтальний header з логотипом ліворуч і кнопкою-бургер праворуч. - При кліку на бургер (можна додати простий JS toggle) показується вертикальне меню. - На md: і вище — горизонтальне меню з посиланнями. - Одне посилання має dropdown (hover на десктопі). - Повністю адаптивний, семантичний (<header>, <nav>, <ul>, тощо). - Використовуй flex, grid, transition, hover-ефекти.
Згенеруй семантичний <footer> на Tailwind CSS. Структура з CSS Grid: - На lg: 4 колонки (lg:grid-cols-4) - На md: 2 колонки (md:grid-cols-2) - На мобільних: 1 колонка (grid-cols-1) Колонки: 1. Логотип + короткий опис + соціальні іконки. 2. Посилання "Послуги". 3. Корисні ресурси. 4. Форма підписки (input + кнопка). Додай hover-ефекти, transition, gap, padding.
Створи картку товару з зображенням (заглушка), назвою, описом, ціною та кнопкою "Додати в кошик". Картка має мати тінь та заокруглені кути. Адаптивна сітка: 1 колонка на мобільних, 2 на планшетах, 3 на десктопах.
Етап 3. Тестування компонентів в Tailwind Play
Перш ніж вставляти код в проєкт, варто перевірити його роботу в пісочниці.
- Скопіювати згенерований код і перейти в Tailwind Play.
- Вставити код хедера в ліву панель. Подивітися на результат в правій панелі.
- Протестувати адаптивність:
- Зменшити/розширити вікно браузера.
- Перемикати вкладки Mobile/Tablet/Desktop.
- Протестувати брейкпоінти: sm:, md:, lg:, xl:, 2xl:.
- Відкоригувати код (якщо потрібно):
- Додати/змінити класи. Наприклад, змінити колір кнопки: bg-blue-500 → bg-green-500.
- Повторити дії для картки та футера.
Якщо компонент не виглядає ідеально — це нормально. ШІ надає основу, а розробник її покращує. На цьому етапі робиться ручне рафінування.
Швидке знаходження потрібних стилів Tailwind
- В Tailwind Play при написанні класу відразу з’являються підказки.
- Використати вбудований пошук в документації Tailwind.
- Візуальний довідник класів Tailwind
- Популярні шаблони стилів:
- flex items-center justify-between — горизонтальне вирівнювання.
- hidden md:flex — приховати на мобільних, показати на md+.
- hover:bg-blue-600 transition-colors — ефекти наведення.
- group + group-hover: — для складних hover-ефектів.
Етап 4. Інтеграція компонентів в локальний проєкт
- Відкрити index.html в VS Code.
- Додати контейнер для всього контенту в тіло (<body>). Стилі контейнера центрують контент і обмежують його ширину (1200px).
- Вставити згенерований код компонентів
- Розташувати компоненти в такому порядку:
- Хедер — в верхній частині.
- Секція з картками — створити контейнер для 3-6 карток (повторити картку 3 рази).
- Футер — в нижній частині, після карток.
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <!-- Ваші компоненти тут --> </div>
Приклад структури сторінки:
html <body> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <!-- Хедер --> <header>...</header> <!-- Секція товарів --> <section class="my-12"> <h2 class="text-2xl font-bold mb-6 text-center">Наші товари</h2> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6"> <!-- Картка 1 --> <!-- Картка 2 --> <!-- Картка 3 --> </div> </section> <!-- Футер --> <footer>...</footer> </div> </body>
Етап 5. Організація сумісної роботи Tailwind та власних стилів
Підключення до сторінки стилів Tailwind і кастомних стилів
HTML <head> <script src="https://cdn.tailwindcss.com"></script> <link rel="stylesheet" href="styles.css"> </head>
Правила хорошої архітектури:
- 90% стилів — через Tailwind класи (швидко, адаптивно, підтримується).
- 10% складних речей — в styles.css.
Правильне додавання кастомних стилів:
- Створювати унікальні класи з префіксом, наприклад .brand-, .neon-, .custom-.
- Використовувати @layer для кращої сумісності з Tailwind (навіть з CDN).
Приклад styles.css
CSS
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
@layer base {
body {
font-family: 'Inter', system-ui, sans-serif;
}
}
@layer components {
.nav-link {
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
bottom: -2px;
left: 0;
width: 0;
height: 2px;
background: linear-gradient(to right, #3b82f6, #8b5cf6);
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 100%;
}
}
/* Кастомний скролбар */
.custom-scroll::-webkit-scrollbar {
width: 6px;
}
.custom-scroll::-webkit-scrollbar-thumb {
background: linear-gradient(#3b82f6, #8b5cf6);
border-radius: 3px;
}
/* Неоновий glow */
.neon-glow {
text-shadow:
0 0 5px #3b82f6,
0 0 10px #3b82f6,
0 0 20px #8b5cf6;
}
HTML <nav class="flex ..."> <a href="#" class="nav-link text-white hover:text-blue-400 transition-colors">Послуги</a> </nav>
Етап 6. Налаштування адаптивності та брейкпоїнтів
Tailwind надає можливість змінювати стилі на різних екранах за допомогою префіксів.
Перевірити адаптивність наступних елементів:
| Елемент | Мобільний (без префікса) | Планшет (sm:/md:) | Десктоп (lg:/xl:) |
| Сітка карток | grid-cols-1 | sm:grid-cols-2 | lg:grid-cols-3 |
| Розмір тексту | text-sm | md:text-base | lg:text-lg |
| Відступи | p-4 | md:p-6 | lg:p-8 |
| Кнопки | w-full (на всю ширину) | md:w-auto | — |
Приклад адаптивного заголовку:
html <h1 class="text-xl sm:text-2xl md:text-3xl lg:text-4xl font-bold text-center"> Наші товари </h1>
Завдання:
- Перевірити, чи правильно використано брейкпоїнти в кожному компоненті.
- Додати пропущені брейкпоїнти, де це необхідно.
- Переконатися, що на мобільному екрані всі елементи є читабельними та зручними для натискання (розмір кнопок не менше 44px).
Етап 7. Тестування сумісності в браузері
- Відкрити index.html в браузері (двічі клікнути на файл).
- Відкрити інструменти розробника (F12 або Ctrl+Shift+I).
- Натиснути на іконку «Toggle Device Toolbar» (іконка телефону/планшета у верхньому лівому куті або Ctrl+Shift+M).
- Протестувати на різних пристроях:
- Вибрати з випадного списку: iPhone SE, iPad, Nest Hub, Laptop.
- Переконатися, що всі компоненти коректно відображаються.
- Перевірити:
- Чи не виходить текст за межі блоків?
- Чи не перекриваються елементи?
- Чи є зручними кнопки для натискання пальцем?
- Чи зникає/з'являється гамбургер-меню (якщо реалізовано)?
- Зробити скріншоти для звіту:
- Мобільна версія (320px)
- Планшетна версія (768px)
- Десктопна версія (1280px)
Етап 8. Рафінування коду та фінальні виправлення
Рафінування — це процес ручного покращення коду, що створений ШІ. Перевірити та за потребою виправити:
- Семантику HTML
- Використовувати <header>, <nav>, <main>, <section>, <footer> замість <div> де це доречно.
- Додати атрибути alt для зображень.
- Доступність
- Додати aria-label до кнопок, які не мають тексту.
- Переконатися, що контраст кольорів є достатнім.
- Продуктивність
- Якщо використано зображення, додати loading="lazy".
- Візуальні покращення
- Додати переходи (transition, hover:, focus:) для інтерактивних елементів.
- Приклад: class="transition duration-300 hover:scale-105 hover:shadow-lg"
Приклад покращення картки
html <div class="bg-white rounded-xl shadow-md hover:shadow-xl transition duration-300 overflow-hidden"> <img src="https://placehold.co/300x200" alt="Товар" class="w-full h-48 object-cover"/> <div class="p-4"> <h3 class="text-lg font-semibold">Назва товару</h3> <p class="text-gray-600 text-sm">Опис товару</p> <p class="text-xl font-bold text-blue-600 my-2">250 грн</p> <button class="w-full bg-blue-500 text-white py-2 rounded-lg hover:bg-blue-600 transition"> Додати в кошик </button> </div> </div>
Етап 9. Хмарний деплой (публікація) на Netlify
Перевірити структуру проекту
lab6-tailwind/ ├── index.html ├── custom-styles.css └── (images/ якщо є)
Деплой на хостингу
- Відкрити сервіс Netlify. Увійти через GitHub (Здійснити реєстрацію на GitHub, використання сервісу буде в наступних роботах).
- Натиснути "Add new site" → "Deploy manually".
- Перетягнути всю папку проекту у вікно браузера (Drag & Drop).
- Зачекати 10–30 секунд.
- Після розгортання натиснути "Site settings" → "Change site name" і задати зрозумілу назву, наприклад your-name-lab6.netlify.app.
Перевірити роботу сайту на реальному хостингу (адаптивність, швидкість завантаження, скролбар тощо).
Етап 10. Перевірка відповідності стандартам веброзробки
- Відкрити сервіс W3C Markup Validation Service.
- Вставити URL сайту на Netlify або завантажте файл index.html.
- Уважно проаналізувати знайдені помилки і виправити їх в коді.
- Відкрити сервіс W3C CSS Validation Service
- Перевірити файл custom-styles.css та основні Tailwind-класи.
- Виправте виявлені помилки (наприклад, відсутні alt у зображень, невалідні атрибути тощо).
Завдання для самостійної роботи (варіанти)
Кожен студент адаптує стиль компонентів (колірну палітру, шрифти, логотипи) відповідно до тематики свого індивідуального бізнес-проєкту, обраного в ЛР №1:
- E-commerce/Інтернет-магазин. Меню обов'язково має містити іконку кошика з динамічним індикатором кількості товарів (badge) та адаптивний рядок пошуку.
- SaaS/IT-продукт. Меню має містити акцентну кнопку "Start Free Trial", а в Dropdown — посилання на прайс та документацію. Футер містить форму підписки на розсилку та статус-індикатор працездатності системи (System Status: All systems operational).
- Портфоліо/Особистий бренд. Меню має плавні якірні посилання (#about, #projects, #contact) для односторінкового сайту. Футер сфокусований на соціальних мережах та кнопці швидкого зв'язку в месенджері.
- Онлайн-освіта/Платформа курсів. Навігація містить каталог категорій курсів у випадному меню. Футер містить юридичні посилання (Privacy Policy, Terms of Service).
Приклади детальних інженерних промптів
- Для створення навігаційної панелі
- «Act as an expert Senior Frontend Developer. Generate a clean, responsive Header/Navbar component using HTML and Tailwind CSS. The navbar must include: 1) A branding logo zone on the left. 2) Central navigation links: Home, Features, Pricing, Resources (this one should be a dropdown menu with sub-links: Documentation, Tutorials, Blog). 3) Right-side action buttons: "Log In" (ghost style) and "Get Started" (solid primary color). Design constraints: Modern minimalist tech aesthetic, dark theme friendly (bg-slate-900, text-white), smooth interactive hover states (transition-all, duration-200). Responsiveness instructions: On mobile screens, hide the central links and action buttons, show a classic hamburger menu button. On md: breakpoint and above, hide the hamburger button, show the desktop layout with flex row layout. Ensure utility classes are clean and well-structured.»
- Для футера
- «Generate a modern 4-column modern Footer component using HTML and Tailwind CSS. Column 1: Short brand description with social media icons (GitHub, Twitter, LinkedIn). Column 2: Product links. Column 3: Company info. Column 4: Newsletter subscription form (input field and 'Subscribe' button). Layout responsiveness: On mobile layout (sm: and below) columns must stack vertically in 1 column (grid-cols-1). On md: layout it should transition to grid-cols-2, and on lg: screen sizes it must display as a 4-column layout (grid-cols-4). Use sophisticated layout spacing (py-12 px-6), background color matching the header (bg-slate-900), and proper gray tones for secondary typography (text-slate-400). Include copyright notice at the very bottom.»
Зміст звіту та технічні фінальні артефакти
В результаті виконання роботи студент формує та завантажує на диск (у власну папку) звіт в форматі PDF.
- Титульний лист з назвою лабораторної роботи, даними студента та обраною бізнес-тематикою.
- Посилання на адресу розміщеної сторінки в інтернеті.
- Скріншоти вікна Tailwind Play з текстом фінального промпту.
- Лістинг фінального коду інтегрованих компонентів (допускається вставка лише структури тегів <header> та <footer> з Tailwind-класами).
- Скріншоти адаптивності. Демонстрація фінального сайту в Chrome DevTools в двох станах: Мобільний (375px) та Десктопний (1440px).
- Промпт-паспорт (Prompt Log). Точні скріншоти або тексти промптів, які надсилано ШІ на етапі кодування, налаштування адаптивності та рафінування коду.
Критерії оцінювання лабораторної роботи
- Робота з ШІ-інструментами та якість промптів. Оцінюється точність інструкцій для штучного інтелекту, використання UI/UX термінології в запиті, відсутність хаотичного копіювання «наосліп».
- Правильність використання брейкпоінтів Tailwind. Коректне використання мобільно-орієнтованого підходу (sm:, md:, lg:). Перебудова елементів має відбуватися плавно, без руйнування макета чи виникнення горизонтального скролу.
- Інтерактивність та логіка. Робочий стан мобільного меню та випадних списків (коректне перемикання станів за допомогою мінімального JS або CSS-групування).
- Стилістична єдність та UX. Колірна гама, відступи, ховер-ефекти та шрифти відповідають загальному концепту та UI-набору сайту, що розроблено в ЛР №4.
- Захист роботи. Усна відповідь на контрольні запитання викладача.
Контрольні запитання
- Що таке Tailwind CSS і в чому полягає концепція Utility-First?
- Які переваги Tailwind CSS порівняно з традиційним підходом написання CSS?
- Яке призначення сервісу Tailwind Play?
- Що таке адаптивний дизайн і як він реалізується в Tailwind CSS?
- Яке призначення брейкпоїнтів sm:, md:, lg: та xl:?
- Для чого використовуються модифікатори станів hover:, focus: та active:?
- Які можливості надає розширення Tailwind CSS IntelliSense?
- Чому згенерований штучним інтелектом код потребує рефакторингу?
- Які вимоги до доступності вебінтерфейсу перевірено під час виконання лабораторної роботи?
- Для чого використовується режим Device Toolbar в DevTools?
- Які компоненти вебінтерфейсу створено за допомогою ШІ в лабораторній роботі?
- Що таке Preflight в Tailwind CSS і яке його призначення?
- Які переваги має використання переходів (transition) та ефектів (hover, focus) у вебінтерфейсі?
Глосарій термінів. Компонентна верстка, стилізація та адаптивність
Рекомендовано для вивчення перед захистом Лабораторної роботи №6
- Utility-First CSS (Утилітарний/Атомарний CSS) — підхід до стилізації веб-інтерфейсів, за якого замість написання унікальних комплексних CSS-класів (наприклад, .card { ... }) використовуються готові, низькорівневі одноцільові класи-утиліти безпосередньо в HTML-розмітці.
- Tailwind CSS — сучасний утилітарний CSS-фреймворк, що надає велику базу готових класів для швидкої верстки, гнучкого керування адаптивністю та побудови системного дизайну без написання сирого CSS-коду.
- Семантичний CSS — класичний підхід до верстки, за якого назви класів відображають логічну роль або зміст елемента (наприклад, .main-navigation, .site-footer), а всі стилі описуються в зовнішніх таблицях стилів.
- Preflight — вбудована у Tailwind CSS система базового скидання стилів браузера (побудована на основі modern-normalize), яка усуває розбіжності у відображенні стандартних HTML-елементів в різних браузерах і створює чистий «фундамент» для верстки.
- Just-In-Time (JIT) компілятор — двигун Tailwind CSS, який в реальному часі сканує файли проєкту, виявляє використані утилітарні класи та миттєво генерує під них CSS-код, автоматично очищуючи фінальний файл від всього зайвого.
- Mobile-First (Спочатку мобільні) — стратегія веб-розробки та дизайну, за якої базові стилі інтерфейсу створюються для найменших екранів (мобільних телефонів), а для більших дисплеїв код прогресивно покращується за допомогою медіа-запитів.
- Breakpoint (Брейкпоїнт/Точка зупину) — визначена ширина екрана в пікселях, на якій макет сайту змінює свій вигляд або структуру для адаптації під пристрій (в Tailwind це префікси sm:, md:, lg:, xl:, 2xl:).
- Media Queries (Медіа-запити) — правило в CSS (@media), яке надає можливість застосовувати блоки стилів залежно від технічних параметрів пристрою (ширини, висоти, орієнтації екрана). Tailwind використовує запити типу min-width.
- Cross-Device (Сумісність пристроїв) — здатність вебресурсу коректно, без помилок і зсувів сітки відображатися та однаково зручно функціонувати на будь-яких типах пристроїв (смартфони, планшети, ноутбуки, телевізори).
- Device Toolbar (Інспектор пристроїв) — спеціальний інструмент в панелі розробника браузера (DevTools), призначений для емуляції різних мобільних гаджетів, тестування адаптивності та відстеження поведінки медіа-запитів в реальному часі.
- Tailwind Play — офіційна інтерактивна онлайн-пісочниця (хмарне середовище), що надає розробникам можливість тестувати, редагувати та дебажити HTML/CSS код з використанням Tailwind без локального налаштування робочого простору на комп’ютері.
- Prompt-to-UI — парадигма розробки інтерфейсів, за якої створення візуальних елементів (компонентів, макетів) відбувається через текстовий опис природною мовою для ШІ-генератора.
- Refinement Workflow (Ітеративне рафінування) — процес покрокового доопрацювання, чищення та покращення згенерованого ШІ коду через послідовні уточнювальні запити в чаті з ШІ.
- Tailwind CSS IntelliSense — розширення для редакторів коду (наприклад, VS Code), яке автоматично підказує назви утилітарних класів, показує їхнє CSS-значення та колірні коди безпосередньо під час написання коду.
- Ізольований компонент — самостійний, незалежний і завершений елемент веб-інтерфейсу (наприклад, кнопка, хедер, картка), який має власну розмітку та стилі й може бути легко перенесений в будь-яку частину проєкту.
- Адаптивний навбар (Navbar) — верхня навігаційна панель сайту, яка автоматично змінює структуру (наприклад, перетворюється з горизонтального списку на десктопі в приховане «меню-бургер» на мобільному).
- Випадний список (Dropdown) — елемент інтерфейсу, який з'являється (активується) при наведенні миші або кліку на батьківський об'єкт, відкриваючи користувачу доступ до додаткових підрозділів сайту.
- Доступність вебінтерфейсу (Accessibility) — практика створення веб-сторінок, які є зручними та доступними для всіх користувачів, включаючи людей з обмеженими можливостями (реалізується через контраст кольорів, семантичні теги та ARIA-атрибути).
- ARIA (Accessible Rich Internet Applications) атрибути — спеціальні атрибути в HTML-тегах (наприклад, aria-label, aria-expanded), які допомагають програмам зчитування з екрана (скрінрідерам) правильно інтерпретувати динамічні зміни та стан елементів для незрячих користувачів.