Мета роботи

Опанувати професійне інженерне середовище Visual Studio Code (VS Code). Навчитися налаштовувати IDE, інтегрувати локальних ШІ-асистентів (GitHub Copilot/VS Code Chat) та застосовувати їх для генерації чисого, семантичного HTML5 та CSS3 коду (без використання сторонніх CSS-фреймворків). Опанувати методологію побудови сучасних макетів за допомогою CSS Flexbox та Grid, а також навчити ШІ проводити автоматизований рефакторинг та оптимізацію стилів за допомогою CSS-змінних.

Стек інструментів для роботи

Раніше на те, щоб написати адаптивний, кросбраузерний каркас, налаштувати сітку та вручну виявити всі незакриті теги чи помилки каскадності в CSS витрачалися дні. Сьогодні генеративний ШІ та інтелектуальні середовища розробки IDE (Integrated Development Environment) виконують цю рутинну роботу за секунди.

Сучасне середовище розробки — це повноцінний інтелектуальний хаб, де напарником розробника стає штучний інтелект. Проте, тут криється найбільша пастка для початківця. ШІ бездоганно пише код, але він часто зловживає стандартними контейнерами <div> (так звана «div-мішанина» або div-soup), створюючи сторінки, які доступні лише для візуального сприйняття, але повністю «сліпі» для пошукових роботів (Search Engine Optimization, SEO) та екранних скрінрідерів.

Лабораторна робота показує шлях перетворення ШІ з простого генератора коду на суворого технічного ревізора. В роботі показано сучасний цикл розробки: Створення коду → ШІ-допомога → Перевірка стандартів → Тестування якості вебінтерфейсу. Студенти навчаться писати якісну, доступну та сучасну семантичну верстку, використовуючи потенціал локальних ШІ-асистентів. В лабораторній роботі процес починається з чистого HTML5/CSS3 та семантики, щоб студенти чітко розуміли архітектуру, перш ніж переходити до важких фреймворків.

Стек інструментів
  • Редактор коду. Visual Studio Code (VS Code - актуальна версія). Популярний безкоштовний редактор програмного коду від Microsoft з підтримкою великої кількості мов програмування, розширень та інтегрованих інструментів розробки. Використовується для написання, редагування, налагодження та тестування вебкоду.
  • ШІ-інструменти. Вбудований GitHub Copilot Chat (або альтернативне розширення Bito/Codeium/Claude Code в межах інтерфейсу VS Code).
  • Додаткові розширення VS Code. Live Server, Prettier, Auto Rename Tag та інші.
  • Зовнішні генеративні ШІ-системи. ChatGPT, Gemini та інші генеративні ШІ-системи.
  • Інструменти аналізу та тестування вебінтерфейсу. DevTools (Developer Tools). Вбудований набір інструментів сучасних веббраузерів для аналізу та налагодження вебсторінок. Надає можливість переглядати HTML-структуру, змінювати CSS в реальному часі, аналізувати продуктивність сторінки та тестувати адаптивність інтерфейсу.

Сучасне інженерне середовище розробки та ШІ-інтеграція

В сучасній фронтенд індустрії швидкість та якість написання коду залежать від правильного налаштування робочого простору. Visual Studio Code (VS Code) є фактичним стандартом завдяки своїй легкості, модульності та глибокій інтеграції з інструментами штучного інтелекту.

Visual Studio Code (VS Code) — це безкоштовний, легкий кросплатформний редактор вихідного коду, розроблений компанією Microsoft для операційних систем Windows, macOS та Linux. Завдяки своїй швидкодії, гнучкості та величезній екосистемі розширень, VS Code став фактичним індустріальним стандартом серед веб-розробників та інженерів програмного забезпечення.

Архітектура та технологічний стек

На відміну від класичних «важких» інтегрованих середовищ розробки (Integrated Development Environment, IDE), таких як Visual Studio або продукти JetBrains, VS Code проектувався як швидкий редактор коду з можливістю модульного розширення до повноцінного середовища розробки.

  • VS Code побудований на базі фреймворку Electron, який використовує Chromium (веб-движок для рендерингу інтерфейсу) та Node.js (для роботи з файловою системою та виконання скриптів). Це дозволяє редактору поєднувати гнучкість веб-технологій (HTML, CSS, TypeScript) з високою швидкістю роботи нативного додатка.
  • Серцем текстового редактора є движок Monaco, який забезпечує плавне прогортання, миттєве підсвічування синтаксису та роботу з тисячами рядків коду без затримок.
Ключовий функціонал

VS Code «з коробки» має потужний набір інструментів, який мінімізує потребу в сторонньому софті:

  • IntelliSense (Розумне автодоповнення). Технологія, яка аналізує контекст написаного коду і пропонує варіанти завершення функцій, тегів чи змінних, а також показує типи параметрів та документацію безпосередньо під час введення тексту.
  • Вбудований Git-клієнт. Надає можливість виконувати базові операції контролю версій (коміти, пуші, створення гілок, вирішення конфліктів злиття) через графічний інтерфейс користувача (GUI) без використання командного рядка.
  • Інтегрований термінал. Наявність вбудованої консолі (PowerShell/CMD на Windows, Bash/Zsh на Linux/macOS) надає розробнику можливість запускати локальні сервери, збірки проєктів чи Git-команди, не виходячи з вікна редактора.
Модульність та екосистема розширень

Головна сила VS Code полягає в Marketplace — магазині розширень (Extensions), який допомагає кастомізувати редактор під будь-яку технологію. Розширення поділяються на кілька категорій:

  1. Інструменти автоматизації та форматування:
    • Prettier — автоматично вирівнює відступи, розставляє дужки та крапки з комою відповідно до стандартів чистого коду.
    • Live Server — запускає локальний веб-сервер, який автоматично оновлює сторінку в браузері в реальному часі при кожній зміні HTML/CSS/JS коду.
  2. Покращення інтерфейсу:
    • Auto Rename Tag — автоматично змінює парний тег HTML/XML, якщо розробник редагує відкриваючий або закриваючий тег.
    • Material Icon Theme — додає наочні іконки для різних типів файлів та папок в дереві проєкту, спрощуючи навігацію.
ШІ-трансформація

Сучасний етап розвитку VS Code характеризується глибокою інтеграцією штучного інтелекту в робочий процес інженера (AI-Workflow).

  • ШІ-інструменти (такі як GitHub Copilot, Codeium, Claude Code) вбудовуються безпосередньо в інтерфейс. Вони здатні аналізувати відкриті файли проєкту та генерувати код на основі коментарів розробника або автодописувати логічні конструкції в реальному часі.
  • Вікна чату (Chat Interfaces)надають можливість вести діалог з ШІ безпосередньо в бічній панелі VS Code. Розробник може виділити фрагмент коду і попросити ШІ:
    1. Пояснити логіку роботи (корисно для навчання).
    2. Провести рефакторинг (оптимізувати структуру, винести змінні).
    3. Знайти та виправити баг (генерація виправлень та опис помилки).

Вибір розширень для Visual Studio Code залежить від технологічного стека, але є золотий набір інструментів, який повинен мати кожен сучасний веб-інженер. Цей набір поділяється на базову автоматизацію та ШІ-асистентів, які кардинально прискорюють написання коду.

ШІ-асистенти

  • GitHub Copilot або Codeium — найкращі інструменти для автодоповнення коду в реальному часі та контекстного чату в бічній панелі. Вони пишуть функції, шукають баги та пояснюють чужий код.
  • Tabnine — альтернатива, якщо потрібен локальний ШІ, який не надсилає код на зовнішні сервери.

ШІ-асистенти (GitHub Copilot/Codeium) — інтегруються безпосередньо в інтерфейс редактора коду. Вони працюють за двома сценаріями: Inline Completion (автодописування коду на основі контексту під час друкування) та Chat Interface (вікно розмови, де можна давати інструкції на генерацію цілих блоків або рефакторинг наявного коду за допомогою промптів).

Веб-розробка (HTML/CSS/JavaScript)

  • Live Server — запускає локальний сервер в один клік. Сторінка в браузері автоматично оновлюється щоразу, як натиснути Ctrl+S в VS Code.
  • Auto Rename Tag — при зміні відкриваючого тегу HTML (наприклад, <div> на <section>), розширення автоматично зміняє і закриваючий парний тег. Рятує від рутинних помилок.
  • Tailwind CSS IntelliSense — якщо до сторінки підключено Tailwind. Він підказує назви класів прямо під час введення, показує колірні палітри та CSS-еквіваленти класів.

Форматування та якість коду

  • Prettier - Code formatter — автоматично вирівнює відступи, розставляє крапки з комою та лапки. Робить код ідеально структурованим і чистим.
  • SonarLint або ESLint — це персональні QA-інспектори. Вони підсвічують підозрілі місця в коді, потенційні баги та застарілі конструкції під час написання коду.
  • Error Lens — підсвічує помилки та попередження прямо в рядку коду (inline), детально розписуючи, що саме не так, без потреби наводити курсор чи заглядати в термінал.

Продуктивність та Git

  • GitLens — Git supercharged — показує навпроти кожного рядка коду, хто, коли і яким комітом його змінив. Незамінна річ для командної роботи.
  • Path Intellisense — автоматично підказує правильні шляхи до файлів (картинок, стилів, скриптів), коли їх прописують в атрибутах src="" чи href="".

Візуальна кастомізація

  • Material Icon Theme — заміняє стандартні іконки файлів в дереві проєкту на красиві, кольорові та інтуїтивно зрозумілі значки для кожного формату (.html, .css, .js, .json).
  • Community Material Theme або One Dark Pro — топові темні теми для зменшення навантаження на очі під час тривалого кодингу.

Не потрібно встановлювати всі розширення одночасно. VS Code побудований на базі Electron (Chromium + Node.js), і якщо встановити 50 плагінів, він почне споживати багато оперативної пам'яті та довше запускатися.

Варто почати з базової трійки: Live Server, Prettier та будь-якого ШІ-асистента (Codeium/Copilot). Цього вистачить, щоб закривати 90% навчальних та комерційних завдань. Інші роширення встановлюють відповідно до поточного завдання

Семантика проти «div-мішанини»

На початкових етапах розвитку вебтехнологій мова HTML мала обмежений набір засобів для опису структури документа. Розробники здебільшого використовували універсальний тег <div> для створення будь-яких блоків сторінки: заголовків, меню, основного контенту, бічних панелей і підвалів. В результаті код багатьох сайтів перетворювався на так звану «div-мішанину» (div soup) — велику кількість вкладених <div>, призначення яких було зрозуміле лише за назвами класів або коментарями в коді. Такий підхід ускладнював підтримку проєкту, погіршував читабельність коду та не надавав браузерам та допоміжним технологіям інформації про реальну структуру сторінки.

З появою стандарту HTML5 введено спеціальні семантичні теги, які надають можливість не лише візуально організувати сторінку, а й описати змістовне призначення кожного блоку. Семантична розмітка робить код більш зрозумілим для інших розробників, допомагає пошуковим системам точніше аналізувати вміст сторінки та покращує доступність вебресурсів для людей, які користуються програмами екранного озвучення.

  • <header> — верхня або вступна частина сторінки. Зазвичай містить логотип компанії, назву сайту, навігаційне меню, пошуковий рядок або короткий вступний текст.
  • <nav> — область навігації сайту. Використовується для групування основних навігаційних посилань: головного меню, меню розділів сайту, списку категорій та навігаційних панелей. Наявність тегу <nav> допомагає допоміжним технологіям швидко знаходити блоки навігації.
  • <main> — основний унікальний вміст сторінки. Цей тег містить центральний контент документа. На одній HTML-сторінці повинен бути лише один елемент <main>, оскільки він позначає головну частину контенту.
  • <section> — логічний тематичний розділ документа. Використовується для об'єднання пов'язаного контенту в окремі частини, наприклад «Про нас», «Послуги», «Відгуки», «Контакти». Кожна секція повинна мати власний заголовок (<h2>–<h6>), який описує її зміст.
  • <article> — незалежний самодостатній фрагмент контенту. Це може бути новина, публікація в блозі, коментар користувача, картка товару або запис на форумі. Вміст <article> може існувати окремо від сторінки та бути поширеним або використаним в іншому контексті.
  • <aside> — додатковий або другорядний вміст. Найчастіше використовується для бічних панелей, рекламних блоків, списків популярних статей, тегів, додаткових посилань або іншої інформації, яка пов'язана з основним контентом, але не є його ключовою частиною.
  • <footer> — нижня частина сторінки або розділу. Зазвичай містить інформацію про авторські права, контактні дані, посилання на політику конфіденційності, додаткову навігацію, посилання на соціальні мережі та інші службові відомості.
Основні семантичні елементи HTML5

Використання семантичних тегів є важливим для сучасної веброзробки. Правильно структурований HTML-код стає більш читабельним, легшим для підтримки та масштабування. Семантична розмітка позитивно впливає на SEO-оптимізацію, оскільки пошукові системи краще розуміють структуру документа, а також підвищує рівень доступності, забезпечуючи комфортну взаємодію з вебресурсом для всіх категорій користувачів.

Сучасні CSS-сітки та CSS-змінні

Сучасна веброзробка неможлива без ефективних інструментів побудови адаптивних інтерфейсів. В ранніх версіях CSS для створення макетів використовувалися таблиці, плаваючі елементи (float) та складні системи позиціонування, що часто призводило до громіздкого коду та проблем з підтримкою дизайну. Сучасний стандарт CSS пропонує значно потужніші засоби керування розташуванням елементів — CSS Flexbox та CSS Grid, які надають можливість створювати гнучкі, масштабовані та адаптивні інтерфейси для різних типів пристроїв.

Ці дві технології не є конкурентами, а доповнюють одна одну. Вибір між ними залежить від характеру завдання: Flexbox використовується для роботи з одним напрямком розташування елементів, а Grid — для керування складними двовимірними структурами.

CSS Flexbox — гнучке розташування елементів в одному напрямку

CSS Flexible Box Layout (Flexbox) призначений для створення одновимірних макетів, в яких елементи розташовуються або в рядок, або в стовпець. Flexbox надає можливість легко керувати вирівнюванням, порядком елементів, відстанями між ними та їхньою поведінкою при зміні розміру екрану.

Найчастіше Flexbox застосовується для створення:

  • горизонтальних навігаційних меню;
  • панелей інструментів;
  • груп кнопок;
  • карток товарів в рядок;
  • форм введення даних;
  • компонентів інтерфейсу, елементи яких повинні рівномірно розподілятися за шириною або висотою.
CSS Flexbox

Основною перевагою Flexbox є його здатність автоматично адаптувати розташування елементів залежно від доступного простору. Наприклад, меню може автоматично розтягуватися по всій ширині сторінки, а блоки — переноситися на новий рядок на малих екранах. Це значно спрощує створення адаптивного дизайну без використання складних обчислень ширини елементів.

CSS Grid — потужна система двовимірних сіток

CSS Grid Layout є інструментом для побудови двовимірних структур, де розробник може одночасно керувати рядками та стовпцями макета. На відміну від Flexbox, який працює лише в одному напрямку, Grid надає можливість точно визначати положення кожного елемента в межах сітки.

CSS Grid особливо ефективний при створенні:

  • загальної структури вебсторінки (шапка, бічна панель, основний контент, підвал);
  • складних адаптивних галерей зображень;
  • інформаційних панелей;
  • багатоколонкових макетів;
  • складних компонентів з різними областями розташування контенту.
CSS Grid

Grid надає можливість визначати кількість стовпців і рядків, їхню ширину, відстані між ними та правила автоматичного розміщення елементів. Завдяки цьому можна створювати складні макети з мінімальною кількістю HTML-коду, не використовуючи додаткові обгортки або сторонні CSS-фреймворки.

CSS Custom Properties — змінні для централізованого керування стилями

Ще одним важливим інструментом сучасного CSS є CSS Custom Properties, або CSS-змінні. Вони надають можливість зберігати значення, які багаторазово використовуються в різних частинах стилів, і керувати ними з одного місця.

Зазвичай глобальні змінні оголошуються в спеціальному селекторі :root, який представляє кореневий елемент документа. В цьому блоці можна зберігати:

  • основні та допоміжні кольори інтерфейсу;
  • кольори тексту та фону;
  • параметри шрифтів;
  • розміри відступів і проміжків між елементами;
  • радіуси заокруглення;
  • значення тіней та анімацій.

Наприклад, замість багаторазового використання однакового значення кольору в десятках CSS-правил, розробник задає змінну один раз і використовує її у всьому проєкті. Якщо в майбутньому необхідно змінити фірмовий колір сайту, достатньо змінити лише значення відповідної змінної.

Особливо важливими CSS-змінні є при реалізації сучасних функцій інтерфейсу, таких як перемикання між світлою та темною темами. Для цього достатньо перевизначити набір змінних для певного класу або атрибута, не переписуючи всі CSS-правила.

Основний синтаксис

CSS
:root {
    --primary-color: #0066ff;     /* основний синій */
    --text-color: #333333;        /* колір тексту */
    --font-size-base: 16px;       /* базовий розмір шрифту */
    --border-radius: 8px;         /* заокруглення */
    --container-width: 1200px;    /* максимальна ширина контенту */
}
.button {
    background-color: var(--primary-color);
    color: white;
    padding: 12px 24px;
    border-radius: var(--border-radius);
}
.card {
    border: 2px solid var(--primary-color);
    border-radius: var(--border-radius);
}

Використання CSS змінних є значно ефективніше, ніж просто писати значення. Отримується багато переваг: легко підтримувати проєкт, швидко змінювати тему (світла/темна), робиться менше помилок, код стає чистішим і зрозумілішим.

  • Без змінних (старий підхід):
  • CSS
    h1 { color: #0066ff; }
    .button { background: #0066ff; }
    .link { color: #0066ff; }
    
  • Зі змінними (сучасний підхід):
  • Змінили --primary-color на #ff5500 → всі елементи автоматично оновились.
    
Архітектура CSS-змінних

Для початківців як правильно організувати рекомендую таку структуру:

CSS
:root {
    /* 1. Кольори */
    --color-primary: #0066ff;
    --color-secondary: #ff5500;
    --color-text: #222222;
    --color-text-light: #666666;
    --color-background: #ffffff;
    --color-border: #eeeeee;

    /* 2. Типографіка */
    --font-family-base: 'Inter', system-ui, sans-serif;
    --font-size-xs: 12px;
    --font-size-sm: 14px;
    --font-size-base: 16px;
    --font-size-lg: 18px;
    --font-size-xl: 24px;

    /* 3. Відступи та розміри */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;

    /* 4. Радіуси та тіні */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --shadow-sm: 0 2px 4px rgba(0,0,0,0.1);
}											

Використання CSS Flexbox, CSS Grid та CSS змінних є основою сучасної фронтенд-розробки. Поєднання цих технологій допомагає створювати гнучкі, адаптивні та легко підтримувані інтерфейси. Flexbox забезпечує зручне керування окремими компонентами, Grid відповідає за складну структуру сторінки, а CSS-змінні допомагають підтримувати єдину дизайн-систему та швидко змінювати зовнішній вигляд вебзастосунку.

Шрифти для Веб

Шрифт є одним з важливих елементів дизайну документа, який може підсилити чи навпаки зменшити ефективність донесення інформації до користувача. Важко переоцінити значення шрифту в оформленні тексту, будь то веб-сторінка чи журнальна стаття. Вірно підібраний шрифт полегшує сприйняття і додає сторінці неповторного стилю.

Під час підготовки до створення веб-сайту, необхідно визначитися зі шрифтами, що будуть використані. Часто різними шрифтами дизайнер набирає не лише основний текст сторінки, але і різноманітні заголовки, логотипи, та інші елементи, що прикрашатимуть сторінку.

Досвідчений розробник знає, що браузер може використовувати для відображення сторінки лише ті шрифти, які встановлені на комп'ютері у користувача. З цієї точки зору шрифти можна умовно розподілити до двох категорій:

  • Стандартні шрифти, які містяться в інсталяційних пакетах операційних систем, офісних програмах та Інтернет застосуваннях. Вони без проблем відображаються в переважної більшості користувачів.
  • Довільні шрифти, які користувач доставляє за власними потребами та уподобаннями. Вони можуть бути відсутніми в значної групи користувачів.

В Інтернеті історично склалося таке поняття як «безпечні» веб-шрифти. Безпечним шрифтом можна назвати шрифт, який є стандартним для всіх операційних систем. Нажаль, абсолютно безпечних шрифтів не існує. Окремі шрифти можна назвати безпечними з деякими обмовками.

Основою для визначення «безпечних» шрифтів послужили шрифти найбільш поширеної операційної системи Windows, які використовуються в інших операційних системах.

  • Arial
  • Arial Black
  • Comic Sans MS
  • Courier New
  • Georgia
  • Impact
  • Times New Roman
  • Trebuchet MS
  • Verdana

Ці шрифти є в кожного користувача Windows, Mac OS і у переважної більшості користувачів Unix/Linux.

Для того, щоб текст сторінки міг відображатися однаково за задумом дизайнера в будь-якій операційній системі, існує можливість задавати кілька шрифтів для відображення тексту, тобто застосувати комбінації безпечних шрифтів - безпечні лінійки шрифтів.

p {
font-family: Tahoma, Verdana, sans-serif;
}

За замовченням, для відображення тексту буде застосовано перший за ліком шрифт. У разі його відсутності на комп’ютері користувача для відображення буде використано наступний за ліком шрифт, і так далі. Зрештою, браузер обере з переліку відповідний для відображення шрифт.

Для відображення довільних шрифтів розроблено багато технологій, і розробнику варто знати про всі, щоб обрати зручний для нього підхід.

Під’єднання шрифтів @ font-face в файлі стилів

Властивість CSS @font-face надає можливість втілити на сайт нестандартні шрифти, які можна вибрати в мережі або створити самостійно.

Синтаксис CSS для оголошення користувацького шрифту дуже простий. Потрібно лише зазначити назву шрифту, джерело файлу шрифту і його можна застосувати до будь-якого елементу.

@font-face {
	font-family: "MyFontName";
	src: url('font.ttf');
}
body {
	font-family: "MyFontName";/використовуємо підключений шрифт */
}

Практичний приклад

  
@font-face {
	font-family: "PT Sans Narrow"
	url("fonts/PTSans-Narrow.ttf") format("truetype")
}	
body {
	font-family: 'PT Sans Narrow', sans-serif;
}

Google Fonts — безкоштовний сервіс з тисячами відкритих шрифтів, який надає можливість швидко та якісно інтегрувати сучасні шрифти в будь-який проєкт без необхідності завантажувати файли шрифтів на сервер.

На сервісі Google Web Fonts містяться інструкції по підключенню вибраного шрифту до сайту, проведення налаштування зовнішнього вигляду онлайн шрифту і отримання повного набору CSS властивостей, які потрібно додати у файл стилів сайту.

Вибраний онлайн шрифт для сайту буде довантажуватися до браузера користувача з серверів Google, що допоможе не створювати додаткове навантаження на сервер власного хостингу, як у випадку, коли онлайн шрифти для сайту зберігаються на його хостингу.

Способи підключення Google Fonts
  1. Через HTML (рекомендовано для більшості проєктів):
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500;600&display=swap" rel="stylesheet">
    
  2. Через CSS (@import):
    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Space+Grotesk:wght@500;600&display=swap');
    
Втілення в проєкті (практичні кроки)
  • Обрати 1–2 шрифти (один для заголовків, один для основного тексту). Надмірна кількість шрифтів погіршує продуктивність.
  • Використовувати параметр &display=swap — це забезпечує швидке відображення тексту (FOIT → FOUT).
  • Інтегрувати шрифти через CSS-змінні для централізованого керування:
:root {
	--font-primary: 'Inter', system-ui, sans-serif;
	--font-heading: 'Space Grotesk', sans-serif;
	--font-weight-regular: 400;
	--font-weight-medium: 500;
	--font-weight-semibold: 600;
}
body {
	font-family: var(--font-primary);
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	font-weight: var(--font-weight-semibold);
}

Переваги використання Google Fonts

  • Швидке покращення візуальної якості макету без додаткових файлів.
  • Легке поєднання з CSS Custom Properties — всі зміни шрифтів відбуваються в одному місці.
  • Підтримка змінних шрифтів (variable fonts) — один файл замість кількох важких варіантів.
  • Краща доступність і SEO (правильні font-fallbacks та display=swap).
  • ШІ-асистенти (Copilot/Chat) можуть допомогти згенерувати оптимальний набір шрифтів та CSS-змінні за описом дизайну.

Іконкові шрифти — це спеціальні шрифти, в яких замість літер містяться векторні іконки. Вони надають можливість додавати іконки на сайт як звичайний текст, що робить їх масштабованими, легкими в стилізації та швидкими в завантаженні.

Популярні сучасні іконкові шрифти (на 2026р.)

  • Font Awesome 6 — найпопулярніший набір (понад 2000 іконок, включаючи бренди, соціальні мережі, медичні, транспортні тощо).
  • Material Symbols (від Google) — сучасні, змінні іконки з підтримкою різних стилів (Outlined, Rounded, Sharp).
  • Bootstrap Icons — легкий і чистий набір іконок.
  • Remix Icon або Tabler Icons — сучасні та мінімалістичні іконки.
Способи підключення
  1. Через Google Fonts (Material Symbols)
  2. <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
    
  3. Через CDN (найшвидший для лабораторної роботи)
  4. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
    
  5. Локальне підключення (рекомендується для фінальних проєктів).
Практичне втілення в HTML+CSS
<i class="fas fa-home"></i>
<i class="fas fa-search"></i>
<button><i class="fas fa-arrow-right"></i> Перейти</button>

Інтеграція з CSS-змінними (рекомендовано)
:root {
	--icon-font: "Font Awesome 6 Free";
	--icon-size: 1.25rem;
	--icon-color-primary: #6366f1;
}
.icon {
	font-family: var(--icon-font);
	font-size: var(--icon-size);
	color: var(--icon-color-primary);
}
/* Приклад темної теми */
[data-theme="dark"] {
	--icon-color-primary: #818cf8;
}

Переваги іконкових шрифтів

  • Дуже малий розмір файлу порівняно з окремими SVG-файлами.
  • Легко змінювати колір, розмір, тінь та анімацію через CSS.
  • Масштабуються без втрати якості.
  • Швидко інтегруються з ШІ-асистентами (достатньо описати потрібну іконку — Copilot підкаже клас).

В навчальних проєктах іконкові шрифти — відмінний інструмент для швидкого прототипування. В комерційних проєктах все частіше переходять на оптимізовані SVG-спрайти.

Методологія ШІ-рефакторингу

Це методологія використання штучного інтелекту як розумного помічника для покращення, а не просто генератора нового коду. В межах лабораторної роботи ШІ виступає як професійний тестувальник, який аналізує існуючий код, знаходить проблеми та пропонує покращення за принципами чистого коду (Clean Code).

Замість того, щоб просто попросити ШІ «зроби мені гарний CSS», потрібно йому надати чітку методологію: «Проаналізуй цей CSS як senior фронтенд-розробник і виконай рефакторинг за принципами Clean Code».

Базові правила Clean Code (KISS, DRY, YAGNI) трансформуються в специфічні інженерні правила верстки. Чистий код фронтенду визначає, наскільки швидко сайт буде завантажуватися, чи зможуть його прочитати пошукові роботи, та скільки часу витратить інший розробник (або ШІ) на внесення змін.

Строга семантичність

Код має промовляти своїми тегами, не вживати виключно <div> та <span>. Кожен блок повинен мати своє логічне призначення.

  • Погано: <div class="header">, <div class="nav">, <span class="heading">
  • Добре: <header>, <nav>, <h1>

Правильна ієрархія заголовків

Заголовки <h1>–<h6> будують скелет сторінки для пошукових роботів (SEO).

  • На сторінці має бути лише один тег <h1> (назва всього лендингу чи статті).
  • Не можна перескакувати через рівні (наприклад, після <h2> відразу ставити <h4>).

Обов'язкова доступність (Accessibility/a11y)

  • Всі зображення <img> мусять мати атрибут alt="" з описом того, що зображено на картинці (для скрінрідерів). Якщо картинка суто декоративна, можна залишити його порожнім alt="", але не видаляти.
  • Кнопки без тексту (наприклад, просто іконка-хрестик для закривання модального вікна) повинні мати атрибут aria-label="Закрити модальне вікно".

Чистота атрибутів та форматування

  • Використовувати нижній регістр для тегів та атрибутів (<div class="...">, а не <DIV CLASS="...">).
  • Слідкувати за правильними відступами (2 або 4 пробіли) за допомогою плагіна Prettier. Код не повинен вирівнюватися в один стовбчик чи мати хаотичну, не їєрархічну структуру.

Принцип DRY (Don't Repeat Yourself) через CSS-змінні

DRY — це один з основних принципів чистого коду, який перекладається як «Не повторюйся». В контексті CSS він означає: Не повторювати одні й ті самі значення (кольори, відступи, шрифти, розміри тощо) в багатьох місцях коду.

Якщо порушити принцип DRY в CSS, виникають серйозні проблеми:

  • Важко підтримувати код. Якщо потрібно змінити основний колір бренду з #0066ff на #ff5500, доведеться вручну знайти і замінити його в 50–100+ місцях.
  • Зростає ймовірність помилок. Можна пропустити одне місце і отримати невідповідність в дизайні.
  • Код стає "брудним" і важким для читання.
  • Складно впроваджувати зміни (наприклад, темну тему Dark Mode).

Приклад, як виглядає порушення DRY в CSS. Тут колір #0066ff повторюється 6 разів.

CSS.header {
    color: #0066ff;
    border-bottom: 3px solid #0066ff;
}
.button {
    background-color: #0066ff;
    border: 2px solid #0066ff;
}
.card {
    border: 1px solid #0066ff;
}
.link {
    color: #0066ff;
}

Для дотримання принципу DRY в сучасному CSS використовуються CSS-змінні.

CSS
:root {
    --color-primary: #0066ff;
    --color-primary-hover: #0052cc;
    --spacing-md: 16px;
    --radius-md: 8px;
}
.header {
    color: var(--color-primary);
    border-bottom: 3px solid var(--color-primary);
}
.button {
    background-color: var(--color-primary);
    border: 2px solid var(--color-primary);
}
.card {
    border: 1px solid var(--color-primary);
}

Тепер, щоб змінити основний колір достатньо змінити одне значення в :root.

Принцип DRY в CSS робить код легшим в підтримці, швидшим в змінах, більш професійним.

Відмова від inline-стилів

Прагнути не писати стилі всередині HTML-тегів через атрибут style="". Це повністю ламає архітектуру, унеможливлює кешування та перевикористання коду.

  • Погано: <p style="color: red; font-size: 18px;">Текст</p>
  • Добре: <p class="alert-text">Текст</p> (а стилі винесено в .css файл).

Логічна структура та архітектура іменування

Якщо писати "ванільний" CSS (без Tailwind), варто використовувати зрозумілу методологію іменування класів, наприклад BEM (Block, Element, Modifier). Назви мають бути логічними, а не залежати від зовнішнього вигляду.

  • Погано: .red-button (якщо кнопка стане синьою, назва втратить сенс), .b1, .left_block.
  • Добре: .button, .button--primary (модифікатор), .card__title (елемент всередині блоку)

Уникати використання !important

Надмірне використання !important — це ознака брудної архітектури та втрати контролю над каскадом CSS. Воно "забиває костилі" в код, які потім майже неможливо перевизначити. Стилі мають перемагати за рахунок правильної специфічності селекторів.

Групування властивостей всередині селектора

Тримати властивості в однаковому порядку всередині кожного класу. Наприклад, за специфікацією або за логічними блоками (Групування за моделлю коробки):

  • Позиціонування (position, top, z-index)
  • Блочна модель/Розміри (display, width, height, margin, padding)
  • Текст/Типографіка (font-size, color, text-align)
  • Візуальні ефекти (background, border, box-shadow, transition)

Виявлення дублювання

ШІ шукає, де є повтори однакових значень:

  • Один колір #0066ff написано 15 разів.
  • Відступ padding: 16px 24px; повторюється в 8 місцях.
  • Шрифт font-family: 'Inter', sans-serif; є скрізь

Приклад «сирого» коду:

CSS
.header { color: #0066ff; }
.button { background: #0066ff; }
.card-title { color: #0066ff; }
Абстракція в CSS-змінні

ШІ виносить всі повторювані значення в секцію :root:

CSS
:root {
    --color-primary: #0066ff;
    --spacing-md: 16px;
    --font-base: 'Inter', system-ui, sans-serif;
}

ШІ замінює в коді CSS всі жорсткі значення на CSS змінні:

CSS
.header { color: var(--color-primary); }
.button { background: var(--color-primary); }
.card-title { color: var(--color-primary); }
Очищення коду
  • Видалення стилів, які не використовуються в HTML-коді
  • Оптимізація каскаду (порядок селекторів).
  • Приведення назв класів до єдиного стилю (BEM або інший).
  • Додавання коментарів до секцій.
  • Підготовлення коду до легкого впровадження темної теми Dark Mode.

Приклад рефакторингу та оптимізації

До рефакторингу (сирий код):

CSS
.hero {
    background: #0066ff;
    padding: 80px 20px;
    color: white;
}
.btn {
    background: #0066ff;
    padding: 16px 32px;
    border-radius: 8px;
    color: white;
}
.card {
    padding: 24px;
    border: 1px solid #0066ff;
}

Після ШІ-рефакторингу:

CSS
/* =============================================
   ГЛОБАЛЬНІ ЗМІННІ
   ============================================= */
:root {
    --color-primary: #0066ff;
    --color-primary-hover: #0052cc;
    --spacing-xl: 80px;
    --spacing-md: 24px;
    --radius-md: 8px;
    --border-color: #e5e7eb;
}
/* =============================================
   КОМПОНЕНТИ
   ============================================= */
.hero {
    background-color: var(--color-primary);
    padding: var(--spacing-xl) 20px;
    color: white;
}
.btn {
    background-color: var(--color-primary);
    padding: 16px 32px;
    border-radius: var(--radius-md);
    color: white;
    transition: background-color 0.3s ease;
}
.btn:hover {
    background-color: var(--color-primary-hover);
}
.card {
    padding: var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
}
Універсальний промпт для рефакторингу
Ти — senior frontend-розробник з 8+ років досвіду. 
Виконай Refactoring Guard цього CSS-коду.

Правила:
1. Вияви всі дублювання (кольори, відступи, радіуси, шрифти).
2. Створи добре структуровану секцію :root зі змістовними назвами змінних.
3. Заміни всі повторювані значення (більше 3 разів) на var(--змінні).
4. Видали стилі, які не використовуються в HTML-коді.
5. Оптимізуй порядок і додай коментарі.
6. Підготуй код для легкого впровадження темної теми Dark Mode.

Надаю CSS код:
[paste your code here]

Покроковий хід виконання роботи

Підготовчий етап. Встановлення та налаштування VS Code

Крок 1. Встановлення VS Code
  1. Перейти на офіційний сайт: code.visualstudio.com
  2. Натиснути Download для відповідної операційної системи (Windows/macOS/Linux).
  3. Встановити програму зі стандартними налаштуваннями.
Крок 2. Налаштування робочого середовища в VS Code
  1. Увімкнути опцію автозбереження: File → Auto Save (або Ctrl+Shift+P → Preferences: Open Settings (UI) → знайти Files: Auto Save → встановити afterDelay).
  2. Встановити обов’язкові розширення (Extensions):
    • Live Server (Ritwick Dey). Запускає локальний сервер з функцією "живого перезавантаження" (live reload). При збереженні HTML/CSS/JS файлу сторінка автоматично оновлюється в браузері. Ідеально для верстки — не треба постійно тиснути F5.
    • Prettier - Code formatter (Prettier). Автоматично форматує код в єдиному стилі (розставляє відступи, лапки, коми тощо). Працює з HTML, CSS, JS, JSON, Markdown та багатьма іншими мовами. Достатньо натиснути Shift+Alt+F (або зберегти файл, якщо налаштовано) — і код стає охайним.
    • Auto Rename Tag. Автоматично перейменовує парний закриваючий тег, якщо змінити відкриваючий (і навпаки). Наприклад, якщо змінити <div> на <section>, закриваючий </div> автоматично стане </section>. Величезна економія часу при роботі з HTML/JSX.
    • Material Icon Theme. Заміняє стандартні іконки файлів і папок на бічній панелі на яскраві, кольорові та легко впізнавані (згідно з дизайном Material Design). Допомагає візуально швидше орієнтуватися в проекті серед десятків файлів.
  3. Обрати один з ШІ-асистентів:
    • GitHub Copilot (якщо є доступ).
    • Codeium (повністю безкоштовний).
    • Claude Code або Bito.
  4. Перезапустити VS Code.

Основний алгоритм виконання лабораторної роботи

Етап 1. Створення структури проєкту
  1. Створити нову папку на комп’ютері, наприклад: lab-05-semantic-layout.
  2. Відкрити цю папку у VS Code: File → Open Folder.
  3. Створити таку структуру файлів:textlab-05-semantic-layout.
  4. ├── index.html
    ├── css/
    │   └── style.css
    └── assets/
        └── images/ (для картинок)
    
Етап 2. Генерація первинного каркасу на основі прототипу (з ЛР №4)
  1. Відкрити два файли: index.html та style.css.
  2. Відкрити бічну панель AI Chat у VS Code.
  3. Надіслати до ШІ структурований опис каркасу сайту з ЛР №4 або завантажити туди скріншот/експорт Figma-схеми.
  4. Надати промпт для AI Chat
  5. "Дій як Senior Frontend Developer. 
    На основі моєї структури проєкту (вказати тематику, наприклад: Сайт сервісного центру) згенеруй чисту HTML5 розмітку для головної сторінки. 
    Не використовуй жодних фреймворків (Bootstrap чи Tailwind). 
    Мені потрібен класичний каркас: шапка, навігація, героїчна секція, блок послуг (де згодом буде віджет), форма зворотного зв'язку та футер. 
    Навмисно зроби структуру суто на тегах <div>, щоб ми могли виконати рефакторинг далі. 
    Пов'яжи файл з style.css. В CSS налаштуй базові кольори та шрифти без використання CSS-змінних."
  6. Перевірити, щоб були присутні обов’язкові елементи:
  7. <!DOCTYPE html>
    <html lang="uk">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
Етап 3. ШІ-рефакторинг та впровадження семантики HTML5
  1. Отриманий код вставити в index.html. Запустити Live Server, щоб бачити сторінку в браузері.
  2. Виділити весь згенерований код або відкрити вікно швидких дій ШІ (Ctrl+I/Cmd+I безпосередньо у файлі).
  3. Поставити завдання ШІ-асистенту проаналізувати "div-мішанину" (надмірне використання тегів <div>) та перетворити його на чисту семантичну структуру.
  4. Промпт для AI Chat (Етап 3):
  5. "Проаналізуй файл index.html. Виконай рефакторинг коду відповідно до стандартів W3C та сучасного SEO. 
    Заміни несемантичні теги <div> на семантичні елементи HTML5 (<header>, <nav>, <main>, <section>, <article>, <aside>, <footer>). 
    Переконайся, що структура заголовків <h1>-<h6> є логічною та послідовною. 
    Поверни лише виправлений код з лаконічними коментарями, чому саме було зроблено зміни."
    
Етап 4. Побудова сітки макета за допомогою Flexbox/Grid та оптимізація CSS
  1. Перейти до файлу style.css.
  2. Використовуючи AI Chat, сформувати сучасну блочну модель. Для глобального розташування секцій (наприклад, контент + сайдбар або сітка карток послуг) використовувати CSS Grid, а для внутрішніх елементів (меню навігації, кнопки, вирівнювання елементів в картці) — CSS Flexbox.
  3. Поставити завдання ШІ-асистенту на додавання сучасних CSS-правил (змінних для колірної палітри та шрифтів).
  4. Промпт для AI Chat (Етап 4):
  5. "Напиши базові CSS стилі для мого index.html. 
    Додай в :root CSS-змінні для основних кольорів (колірна гама з ЛР №4: основний, акцентний, темний, світлий фони) та шрифтових пар. 
    Для секції карток послуг використай CSS Grid з адаптивною властивістю grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)). 
    Для навігаційного меню в шапці використай Flexbox. 
    Стилі мають бути чистими, без дублювання. Додай скидання стилів (reset/box-sizing)."
    
Етап 5. Підключення Google Fonts та іконкових шрифтів
  1. Відкрити файл index.html.
  2. Підключити Google Fonts (рекомендовано 1–2 шрифти) в один зі способів
    • 1. В HTML-коді в розділі <head> підключити лінк на шрифти:
    • HTML
      <link rel="preconnect" href="https://fonts.googleapis.com">
      <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
      <link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
      
    • 2. В HTML-коді в розділі <head> здійснити імпорт шрифтів
    • <style>
      @import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');
      </style>
      
    • 3. В CSS-коді здійснити імпорт шрифтів
    • @import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');
      
  3. У файлі style.css оголосити шрифти через CSS-змінні в секції :root:
  4. CSS
    :root {
        --font-primary: 'Inter', system-ui, sans-serif;
        --font-heading: 'Raleway', sans-serif;
        --font-weight-regular: 400;
        --font-weight-medium: 500;
        --font-weight-semibold: 600;
    }
    
  5. Застосувати шрифти до елементів:
  6. CSS
    :root {
        --font-primary: 'Inter', system-ui, sans-serif;
        --font-heading: 'Raleway', sans-serif;
        --font-weight-regular: 400;
        --font-weight-medium: 500;
        --font-weight-semibold: 600;
    }
    /*CSS*/
    body {
        font-family: var(--font-primary);
    }
    h1, h2, h3, h4, h5, h6 {
        font-family: var(--font-heading);
        font-weight: var(--font-weight-semibold);
    }
    
  7. Підключити іконковий шрифт (рекомендується Font Awesome 6):
  8. HTML<!-- У розділі <head> -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css">
    
  9. Використовувати іконки в HTML:
  10. HTML
    <i class="fas fa-home"></i>
    <i class="fas fa-search"></i>
    <button><i class="fas fa-arrow-right"></i> Перейти</button>
    
  11. Створити CSS-клас для зручного керування іконками та додати його до :root:
  12. CSS
    :root {
        --icon-size: 1.25rem;
        --icon-color: #6366f1;
    }
    .icon {
        font-size: var(--icon-size);
        color: var(--icon-color);
    }
    
  13. Перевірити через Live Server, що шрифти та іконки коректно відображаються. За потреби скоригувати розміри, кольори та відступи.
Етап 6. Рефакторинг CSS
  1. Скопіювати весь CSS-код. Відкрити чат ШІ (Copilot Chat або Codeium) і задати промпт:
  2. "Виконай рефакторинг та оптимізацію цього CSS-коду.
    1. Вияви всі дублювання (кольори, відступи, шрифти, радіуси).
    2. Створи добре структуровану секцію :root зі змістовними назвами змінних.
    3. Заміни всі повторювані значення (більше 3 разів) на var(--змінні).
    4. Видали стилі, які не використовуються в HTML-коді.
    5. Оптимізуй порядок селекторів і додай коментарі.
    Надаю код:
    [вставте свій CSS]"
    
  3. За допомогою Live Server перевірити коректність відображення сайту в браузері.
Етап 7. Тестування та валідація
  1. За допомогою Live Server (правою кнопкою по index.html → Open with Live Server) перевірити коректність відображення сайту в браузері.
  2. Перевірити:
    • Правильність відображення елементів сторінки
    • Адаптивність сторінки для різних розмірів екрану
  3. Виділити фрагмент HTML або CSS-коду, який викликає сумніви, та надіслати промпт до ШІ через сервіс Ctrl+I щодо оптимізації
    "Перевір цей фрагмент CSS на відповідність кросбраузерним стандартам та оптимізуй його"
    
    або скористатися командою /explain, щоб зрозуміти логіку складних Grid-сіток.
  4. Зробити скріншоти до і після рефакторингу.

Зміст звіту та технічні фінальні артефакти

В результаті виконання роботи студент формує та завантажує на диск (у власну папку) звіт в форматі PDF.

  1. Титульний лист з назвою лабораторної роботи, даними студента та обраною бізнес-тематикою.
  2. Скріншот інтерфейсу VS Code з встановленими та активованими розширеннями (включаючи AI Chat).
  3. Скріншот фінального семантичного HTML-коду (основні блоки) та блоку :root з CSS-змінними з IDE.
  4. Два скріншоти відображення сайту в браузері: на екрані ПК та в режимі емуляції смартфона (через DevTools F12 → Toggle Device Toolbar) для демонстрації адаптивності Grid-сітки.
  5. Промпт-паспорт (Prompt Log). Тексти запитів, які надсилалися в AI Chat для рефакторингу та побудови CSS-сітки, з коротким описом того, які правки ШІ вніс успішно, а що довелося коригувати вручну.

Критерії оцінювання лабораторної роботи

  • Налаштування робочого середовища IDE. Коректне встановлення розширень, інтеграція AI Chat в робочу область VS Code.
  • Семантична коректність HTML5. Повна відсутність «div-мішанини». Грамотне і логічне використання тегів <header>, <nav>, <main>, <section>, <article>, <footer>. Наявність атрибутів alt для картинок та правильна ієрархія заголовків <h1>-<h6>.
  • Сучасна CSS-архітектура. Галерея та картки реалізовано за допомогою комбінації CSS Grid та Flexbox. Код адаптивний і коректно перелаштовується під мобільні екрани без руйнування контенту. Наявність та використання CSS-змінних для всієї дизайн-системи.
  • Валідність та якість коду. Чистота коду, наявність коментарів та структуровані відступи (форматування).
  • Промпт-паспорт. Оцінюється якість комунікації з ШІ. Наявність чітких інструкцій, використання ітераційного підходу («промпт → аналіз результату → коригуючий промпт»).
  • Захист роботи. Усна відповідь на запитання викладача. Студент повинен розуміти згенерований код і пояснити кожну властивість.

Контрольні запитання

  1. Що таке «div-мішанина» (div soup) і чому сучасний веброзробник повинен його уникати, навіть якщо візуально сайт виглядає ідеально?
  2. Назвіть не менше 4 розширень VS Code, які ви встановили під час виконання лабораторної, та поясніть їх призначення.
  3. Що таке семантична верстка? Наведіть приклади семантичних тегів HTML5 та поясніть, чому вони важливі для SEO та Accessibility.
  4. Яка різниця між тегами <div> і <section>? В яких випадках не можна використовувати <div>?
  5. Що таке CSS-змінні (Custom Properties)? Як їх оголошувати і як використовувати?
  6. Поясніть, як працює розширення Live Server. Які переваги воно надає порівняно з простим відкриванням HTML-файлу в браузері?
  7. Що таке Prettier і чому його рекомендують використовувати? Які основні правила форматування він застосовує?
  8. Наведіть приклад використання CSS Flexbox для створення горизонтального меню. Які ключові властивості ви використовували?
  9. Наведіть приклад використання CSS Grid для створення сітки з 3 колонок. Яка різниця між Flexbox і Grid?
  10. Як правильно організувати архітектуру CSS-змінних? Наведіть приклад структури :root.
  11. Що таке рефакторинг (Refactoring Guard)? Опишіть основні етапи цієї методології.
  12. Як правильно скласти промпт для ШІ, щоб він виконав якісний рефакторинг CSS-коду? Наведіть приклад ефективного промпту.
  13. В чому полягає принцип DRY (Don’t Repeat Yourself) в контексті CSS? Як ШІ допомагає його дотримуватися?
  14. Які переваги надає використання ШІ-асистентів (Copilot/Codeium) під час верстки порівняно з ручним написанням коду? Наведіть конкретні приклади з лабораторної.

Глосарій термінів. Семантична верстка та рефакторинг базового каркасу

Рекомендовано для вивчення перед захистом Лабораторної роботи №5

  • IDE (Integrated Development Environment/Інтегроване середовище розробки) — комплексне програмне забезпечення для розробників, яке зазвичай містить текстовий редактор, інструменти автоматизації та відлагодження. В даній лабораторній роботі як IDE є Visual Studio Code (VS Code).
  • Electron — технологічний фреймворк, на базі якого побудовано VS Code. Він поєднує веб-движок Chromium (для рендерингу інтерфейсу) та Node.js (для роботи з файловою системою), що надає можливість створювати кросплатформні додатки за допомогою HTML, CSS та TypeScript.
  • Monaco Editor — внутрішній движок текстового редактора в VS Code, який забезпечує плавне прогортання, миттєве підсвічування синтаксису та швидку роботу з великими обсягами коду.
  • IntelliSense — технологія розумного автодоповнення коду в VS Code, яка аналізує контекст, пропонує варіанти завершення функцій, тегів або змінних, а також виводить документацію безпосередньо під час введення тексту.
  • ШІ-асистент (AI Assistant) — інструмент на базі нейромереж (наприклад, GitHub Copilot, Codeium, Tabnine), який інтегрується в редактор коду для прискорення розробки за допомогою генерації та аналізу коду.
  • Inline Completion (Автодописування) — сценарій роботи ШІ, коли асистент аналізує відкриті файли і пропонує продовження рядка чи логічної конструкції безпосередньо під час друкування коду.
  • Chat Interface (Інтерфейс чату) — вікно розмови з ШІ в бічній панелі або всередині файлу (швидкі дії Ctrl+I), де розробник може давати текстові інструкції (промпти) на пояснення, рефакторинг або пошук багів.
  • Hot Reload (Гаряче оновлення) — технологія (що реалізована, наприклад, через розширення Live Server), яка автоматично оновлює сторінку в браузері в реальному часі при кожному збереженні змін в коді.

  • Семантична розмітка (Semantic Markup) — підхід до проектування вебсторінок, за якого вибір тегів базується на їхньому змістовному значенні (семантиці), а не на зовнішньому вигляді.
  • Div-мішанина (Div Soup) — поганий тон у веброзробці, який полягає в надмірному та безсистемному використанні універсальних контейнерів <div> замість відповідних семантичних тегів HTML5.
  • Accessibility (Доступність) — властивість веб-інтерфейсів бути доступними та зручними для всіх користувачів, зокрема для людей з порушеннями зору, які використовують технології доступності (скрінрідери/екранні диктори).
  • Пошукова оптимізація SEO (Search Engine Optimization) — комплекс заходів для підвищення видимості сайту в пошукових системах. Семантична розмітка безпосередньо покращує SEO-індексацію сайту роботами Google.
  • W3C (World Wide Web Consortium) — консорціум Всесвітньої павутини, який розробляє та впроваджує технологічні стандарти для веб-індустрії.
  • Валідатор (W3C Markup Validator) — інструмент Консорціуму Всесвітньої павутини для перевірки відповідності коду вебсторінки чинним стандартам і виявлення синтаксичних або структурних помилок.
  • Семантичні вузли макета:
    • <header> — вступна частина сторінки або секції (логотип, меню).
    • <nav> — блок навігаційних посилань.
    • <main> — унікальний, центральний контент сторінки (може бути лише один на сторінці).
    • <section> — семантичний тег, що позначає тематичний розділ документа, зазвичай містить власний заголовок і групує пов'язаний за змістом контент.
    • <article> — семантичний тег, призначений для автономного, самодостатнього контенту, який можна витягнути з контексту сторінки й використати в іншому місці (наприклад, стаття, пост у блозі, картка товару).
    • <aside> — бічна панель (сайдбар) з додатковим чи непрямим контентом.

  • Лайаут (Layout) — структура, каркас або модель розташування елементів на веб-сторінці в двовимірному просторі екрана.
  • CSS Grid Layout — двовимірна система сіток в CSS, яка надає можливість одночасно керувати розташуванням елементів як по горизонталі (стовпці), так і по вертикалі (рядки). Використовується як макро-розмітка для створення загальної сітки сайту або складних галерей.
  • CSS Flexbox (Flexible Box Layout) — одновимірна модель макетування (вздовж одного рядка або одного стовпчика), яка надає можливість ефективно розподіляти простір та вирівнювати елементи в межах одного напрямку (рядка або стовпця). ідеально підходить для мікро-елементів: навігаційних панелей, вирівнювання іконок, кнопок тощо.
  • CSS-змінні (Custom Properties) — інструмент, який надає можливість оголошувати та зберігати певні динамічні значення (кольори, відступи, шрифти) в одному місці та повторно викликати їх через функцію var() по всьому проєкту.
  • Фракція (1fr) — одиниця виміру в CSS Grid, що позначає одну частку (фракцію) вільного простору, який розподіляється між колонками чи рядками сітки.
  • Gap (Відступ сітки) — CSS-властивість, яка задає відстань між комірками в Grid або Flexbox без використання стандартних зовнішніх відступів (margin), захищаючи дизайн від небажаних зсувів.

  • Промпт-інжиніринг (Prompt Engineering) — процес проектування, написання та оптимізації текстових запитів (промптів) для штучного інтелекту з метою отримання максимально точного, валідного та структурованого коду.
  • ШІ-чат IDE (In-Editor AI Chat) — інтегрований в середовище розробки (VS Code) інтерфейс взаємодії з нейромережею, який аналізує контекст проекту в реальному часі та допомагає писати, рефакторити чи виправляти код безпосередньо в редакторі.
  • Ітеративний робочий процес (Iterative Workflow) — циклічний процес розробки за участю ШІ, що складається з генерації коду, його тестування/валідації, збору помилок та повторного запиту до ШІ для точкового виправлення дефектів до досягнення ідеального результату.

  • Рефакторинг (Refactoring) — процес контрольованого переписування та оптимізації внутрішньої структури коду без зміни його зовнішньої поведінки чи функціоналу.
  • Принцип DRY (Don't Repeat Yourself) — базовий принцип розробки, спрямований на уникнення дублювання інформації та коду. Забезпечується абстрагуванням повторюваних значень в CSS-змінні.
  • Псевдоклас :root — псевдоклас в CSS, що відповідає найвищому рівню DOM-дерева (елементу <html>). Використовується для глобального оголошення CSS-змінних, щоб вони були доступні по всьому документу.
  • Fallback (Значення за замовчуванням) — запасний варіант значення у функції var(), який спрацьовує та захищає стилі, якщо потрібна CSS-змінна не завантажилась або не була оголошена.
  • Область видимості (Scope) — межі коду, в яких змінна є активною та доступною. Може бути глобальною (в :root) або локальною (всередині конкретного компонента чи блоку).