Desktop UI

UI/UX принципи десктопних застосунків

Фундаментальні принципи проєктування користувацьких інтерфейсів для десктопних застосунків. Розуміємо різницю між UI та UX, вивчаємо закони взаємодії, принципи візуальної ієрархії, типографіки, кольору та доступності. Застосовуємо теорію на практиці через WPF та Avalonia.
Нові терміни у цій статті:User Interface (UI), User Experience (UX), Affordance, Feedback, Consistency, Visual Hierarchy, Gestalt Principles, Fitts's Law, Hick's Law, Miller's Law, Jakob's Law, Accessibility (A11y), WCAG, Contrast Ratio, Focus Management, Keyboard Navigation.

UI vs UX: фундаментальна різниця

Чому це важливо розуміти

Терміни "UI" та "UX" часто використовуються як синоніми, особливо у контексті вакансій ("UI/UX Designer") або обговорень дизайну. Проте це два принципово різні аспекти створення програмного забезпечення, і розуміння цієї різниці є критичним для побудови якісних застосунків.

User Interface (UI) — це те, що користувач бачить і з чим взаємодіє. Це візуальний шар застосунку: кнопки, поля введення, кольори, шрифти, іконки, анімації, розташування елементів на екрані. UI — це "зовнішність" програми. Якщо застосунок — це будинок, то UI — це фасад, двері, вікна, меблі всередині.

User Experience (UX) — це те, як користувач відчуває себе під час взаємодії з застосунком. Це емоційна та когнітивна реакція на використання програми: чи легко знайти потрібну функцію? Чи зрозуміло, що робить ця кнопка? Чи швидко завантажуються дані? Чи відчуває користувач контроль над процесом? UX — це "відчуття від проживання у будинку": чи зручно відкривати двері, чи добре освітлені кімнати, чи легко знайти вимикач світла у темряві.

User Interface (UI)

Візуальний дизайн — що користувач бачить:

  • Кольорова палітра та контрастність
  • Типографіка (шрифти, розміри, вага)
  • Іконографія та ілюстрації
  • Розташування елементів (Layout)
  • Анімації та переходи
  • Стилізація контролів (кнопки, поля, списки)

Інструменти: Figma, Adobe XD, Sketch, XAML, CSS

User Experience (UX)

Досвід взаємодії — що користувач відчуває:

  • Зрозумілість інтерфейсу (Learnability)
  • Ефективність виконання завдань
  • Запобігання помилкам та їх обробка
  • Задоволення від використання
  • Доступність для всіх користувачів
  • Послідовність поведінки (Consistency)

Інструменти: User Research, Wireframes, Prototyping, Usability Testing

Ключова відмінність: хороший UI не гарантує хороший UX. Застосунок може виглядати приголомшливо (бездоганна графіка, сучасні анімації, стильні кольори), але бути абсолютно незручним у використанні (незрозуміла навігація, повільні операції, відсутність зворотного зв'язку). І навпаки — застосунок з мінімалістичним, навіть "сірим" інтерфейсом може надавати чудовий UX завдяки продуманій логіці, швидкості роботи та передбачуваності.

Приклад: форма входу

Розглянемо просту форму входу (логін + пароль + кнопка "Увійти") з точки зору UI та UX:

UI-аспекти (візуальний дизайн):

  • Чи використовується сучасний шрифт без зарубок (sans-serif) для читабельності?
  • Чи достатній контраст між текстом та фоном (мінімум 4.5:1 за WCAG)?
  • Чи мають поля введення чіткі межі (border) або підкреслення?
  • Чи є placeholder-текст ("Введіть email...") сірого кольору?
  • Чи змінює кнопка колір при наведенні миші (hover state)?
  • Чи використовується іконка "замок" для поля пароля?

UX-аспекти (досвід взаємодії):

  • Чи автоматично фокусується перше поле при відкритті форми?
  • Чи можна натиснути Enter для відправки форми замість кліку на кнопку?
  • Чи показується повідомлення про помилку під полем, де сталася помилка, а не у модальному вікні?
  • Чи можна переключатись між полями через Tab?
  • Чи є кнопка "Показати пароль" (eye icon) для перевірки введеного?
  • Чи блокується кнопка "Увійти" під час запиту до сервера (з індикатором завантаження)?
  • Чи зберігається введений логін після помилки, щоб не вводити заново?

Бачите різницю? UI — це "як виглядає", UX — це "як працює і як відчувається". Обидва аспекти критично важливі, і у цій статті ми розглянемо принципи, що стосуються обох.


Фундаментальні закони взаємодії

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

Закон Фіттса (Fitts's Law)

Формулювання: Час, необхідний для досягнення цілі (наприклад, натискання кнопки мишею), залежить від відстані до цілі та розміру цілі.

Математична модель:

T = a + b × log₂(D/W + 1)

де T — час руху, D — відстань до цілі, W — ширина цілі, a та b — емпіричні константи.

Практичні наслідки для UI:

  1. Великі кнопки натискаються швидше за маленькі. Первинна дія (Primary Action) має бути найбільшою кнопкою на екрані. Наприклад, у діалозі підтвердження видалення — кнопка "Скасувати" має бути більшою за "Видалити" (або принаймні однакового розміру), щоб запобігти випадковому видаленню.
  2. Елементи, що часто використовуються, мають бути близько один до одного. Якщо користувач постійно переключається між двома контролами (наприклад, список файлів та панель попереднього перегляду), вони мають бути поруч, а не на протилежних кінцях екрана.
  3. Кути та краї екрану — "нескінченно великі цілі". Курсор не може вийти за межу екрану, тому елементи у кутах (наприклад, кнопка "Закрити" у правому верхньому куті Windows-вікна) досягаються миттєво — достатньо "кинути" курсор у кут. Це одна з причин, чому macOS розміщує меню у верхній частині екрану, а не у вікні застосунку.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

У WPF розмір кнопки контролюється через Padding (внутрішні відступи) та MinWidth/MinHeight. Для первинної дії використовуйте Padding="24,12" або більше, для вторинної — Padding="16,8". Це створює чітку візуальну ієрархію та полегшує натискання.

Закон Хіка (Hick's Law)

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

Математична модель:

T = b × log₂(n + 1)

де T — час рішення, n — кількість варіантів, b — емпірична константа.

Практичні наслідки для UI:

  1. Обмежуйте кількість опцій у меню та діалогах. Якщо у вас 20 пунктів меню на одному рівні — користувач витратить значно більше часу на пошук потрібного, ніж якби ви згрупували їх у 4-5 категорій по 4-5 пунктів. Це одна з причин, чому сучасні застосунки використовують ієрархічні меню та групування.
  2. Прогресивне розкриття (Progressive Disclosure). Не показуйте всі можливі налаштування одразу — приховайте просунуті опції за кнопкою "Додатково" або Expander. Наприклад, діалог "Відкрити файл" у Windows спочатку показує лише основні поля, а кнопка "Параметри" розкриває фільтри та додаткові налаштування.
  3. Значення за замовчуванням (Smart Defaults). Якщо 90% користувачів обирають одну й ту саму опцію — зробіть її обраною за замовчуванням. Це зменшує когнітивне навантаження: користувач може просто натиснути "Далі", не аналізуючи всі варіанти.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

Прогресивне розкриття (Progressive Disclosure) — це UX-патерн, що полягає у приховуванні складності до моменту, коли вона дійсно потрібна. Замість того, щоб показувати користувачу 20 опцій одразу (що викликає паралізацію вибору), показуємо 5 найважливіших, а решту — за запитом. У WPF це реалізується через Expander, TabControl (розділення на вкладки) або окремі діалоги налаштувань.

Закон Міллера (Miller's Law)

Формулювання: Середня людина може утримувати у короткочасній пам'яті 7 ± 2 елементи одночасно.

Це не означає, що у меню має бути рівно 7 пунктів — це означає, що людина може активно обробляти обмежену кількість інформації у конкретний момент часу. Якщо ви показуєте список з 50 елементів без групування — користувач не зможе "охопити" його цілком і буде змушений сканувати послідовно.

Практичні наслідки для UI:

  1. Групуйте елементи у смислові блоки. Замість списку з 15 налаштувань — 3 групи по 5. Замість 20 кнопок на панелі інструментів — 4-5 груп, розділених Separator.
  2. Використовуйте "chunking" (розбиття на шматки). Телефонний номер +380501234567 важко запам'ятати, але +380 50 123 45 67 — легко, бо розбитий на 4 шматки. Те саме у UI: довгі списки розбивайте на категорії, довгі форми — на кроки (wizard).
  3. Обмежуйте кількість одночасно видимих елементів навігації. Якщо у вас 30 розділів застосунку — не робіть 30 кнопок у sidebar. Зробіть 5-7 основних категорій, а всередині кожної — підрозділи.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

Закон Якоба (Jakob's Law)

Формулювання: Користувачі проводять більшість свого часу в інших застосунках, а не у вашому. Тому вони очікують, що ваш застосунок працюватиме так само, як ті, до яких вони звикли.

Цей закон сформулював Якоб Нільсен (Jakob Nielsen), один із піонерів usability-досліджень. Суть проста: не винаходьте велосипед там, де існують усталені конвенції. Якщо у 99% застосунків Ctrl + S зберігає файл — не робіть це комбінацією для "Пошуку". Якщо у всіх текстових редакторах Ctrl + Z скасовує останню дію — не змінюйте цю поведінку.

Практичні наслідки для UI:

  1. Дотримуйтесь платформних конвенцій. У Windows кнопка "OK" розташована зліва від "Скасувати", у macOS — справа. Кнопка закриття вікна у Windows — справа вгорі (червоний хрестик), у macOS — зліва вгорі (червоне коло). Не порушуйте ці правила без вагомої причини.
  2. Використовуйте стандартні іконки для стандартних дій. Іконка "дискета" для збереження, "лупа" для пошуку, "корзина" для видалення, "шестерня" для налаштувань. Навіть якщо дискети вже не існують — користувачі знають, що ця іконка означає "зберегти".
  3. Стандартні клавіатурні скорочення. Ctrl + C / V / X для копіювання/вставки/вирізання, Ctrl + F для пошуку, F5 для оновлення, Alt + F4 для закриття вікна (Windows). Не перевизначайте їх.
У WPF стандартні команди (ApplicationCommands.Save, ApplicationCommands.Copy, тощо) автоматично прив'язані до стандартних клавіатурних скорочень. Використовуйте їх замість власних KeyBinding для базових операцій — це гарантує сумісність з очікуваннями користувачів.

Принципи візуальної ієрархії

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

Розмір та вага шрифту

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

Типова шкала розмірів для десктопних застосунків:

РівеньРозмір (px)FontWeightВикористання
H1 (Заголовок сторінки)28-32Bold/SemiBoldНазва екрану, основний заголовок
H2 (Розділ)20-24SemiBoldЗаголовки розділів, групи контролів
H3 (Підрозділ)16-18SemiBoldПідзаголовки, назви груп
Body (Основний текст)14-15RegularТекст підписів, описів, вмісту
Caption (Допоміжний)12-13RegularПідказки, мітки часу, метадані
Small (Дрібний)11RegularFootnotes, дуже другорядна інформація

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

У WPF FontWeight має значення: Thin, ExtraLight, Light, Regular (за замовчуванням), Medium, SemiBold, Bold, ExtraBold, Black. Для заголовків використовуйте SemiBold або Bold, для основного тексту — Regular. Уникайте ExtraBold та Black — вони занадто агресивні для більшості UI.

Колір та контраст

Колір — другий за важливістю інструмент створення ієрархії. Елементи з вищим контрастом привертають більше уваги, ніж елементи з низьким контрастом.

Правило трьох рівнів контрасту:

  1. Високий контраст (Primary Text): Основний текст, заголовки, важливі дані. Контраст 7:1 або вище (WCAG AAA). Колір: чорний на світлому фоні, білий на темному.
  2. Середній контраст (Secondary Text): Підписи, описи, метадані. Контраст 4.5:1 (WCAG AA). Колір: темно-сірий (#374151) на світлому, світло-сірий (#D1D5DB) на темному.
  3. Низький контраст (Tertiary Text): Placeholder-текст, відключені елементи, дуже другорядна інформація. Контраст 3:1-4:1. Колір: сірий (#9CA3AF).

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

Відступи та групування (Proximity)

Елементи, що розташовані близько один до одного, сприймаються як пов'язані. Елементи, що розташовані далеко, сприймаються як окремі групи. Це один із принципів гештальт-психології, що називається Proximity (близькість).

Практичні правила відступів:

  • Всередині групи: 4-8px між пов'язаними елементами (наприклад, між Label та TextBox).
  • Між групами: 16-24px між різними групами контролів.
  • Між розділами: 32-48px між великими розділами екрану.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

У WPF використовуйте властивість Spacing у StackPanel (Avalonia) або Margin для кожного елемента (WPF). Для консистентності створіть систему відступів: 4, 8, 12, 16, 24, 32, 48 пікселів. Не використовуйте довільні значення на кшталт 13px або 27px — це порушує ритм інтерфейсу.

Принципи Гештальту у UI-дизайні

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

Принцип близькості (Proximity)

Ми вже згадували його вище: об'єкти, що розташовані близько, сприймаються як група. Це найпростіший і найпотужніший принцип групування у UI.

Принцип подібності (Similarity)

Елементи, що виглядають подібно (однаковий колір, форма, розмір, стиль), сприймаються як пов'язані, навіть якщо вони розташовані далеко один від одного.

Приклад: Якщо всі кнопки деструктивних дій (видалення, скасування) у вашому застосунку червоні — користувач швидко навчиться асоціювати червоний колір з небезпечними діями. Якщо раптом одна кнопка "Зберегти" буде червоною — це порушить очікування і може призвести до помилки.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

Принцип продовження (Continuity)

Око природно слідує за лініями, кривими та напрямками. Елементи, що розташовані вздовж лінії або кривої, сприймаються як пов'язані.

Приклад у UI: Форма з вертикальним розташуванням полів (Label зверху, TextBox знизу, Label зверху, TextBox знизу) створює вертикальну "лінію читання". Користувач інстинктивно рухається зверху вниз. Якщо раптом одне поле розташоване горизонтально (Label зліва, TextBox справа) — це порушує ритм і змушує користувача зупинитись.

Принцип замкнутості (Closure)

Мозок схильний "добудовувати" неповні форми до цілісних об'єктів. Ми бачимо коло, навіть якщо намальовано лише три чверті кола.

Приклад у UI: Іконка "гамбургер-меню" (три горизонтальні лінії) не є буквальним зображенням меню, але мозок "добудовує" асоціацію з списком. Іконка "лупа" для пошуку — це не буквальна лупа, але форма кола з ручкою миттєво розпізнається.

Принцип фігури та фону (Figure-Ground)

Мозок автоматично розділяє візуальне поле на "фігуру" (об'єкт уваги) та "фон" (контекст). Елементи з вищим контрастом, чіткими межами та меншою площею сприймаються як фігура.

Приклад у UI: Модальне вікно (діалог) з напівпрозорим темним фоном позаду. Діалог — це фігура (світлий, чіткий, у центрі), фон — це контекст (темний, розмитий, неактивний). Це чітко сигналізує користувачу: "зосередься на діалозі, решта зараз не важлива".

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...


Affordance та Feedback: як інтерфейс "розмовляє"

Affordance: "підказки до дії"

Affordance (можливість дії) — це властивість об'єкта, що підказує, як з ним взаємодіяти. Кнопка виглядає як щось, що можна натиснути. Поле введення виглядає як щось, куди можна ввести текст. Повзунок виглядає як щось, що можна перетягнути.

Дон Норман (Don Norman), автор книги "The Design of Everyday Things", розрізняє два типи affordance:

  1. Реальний affordance (Real Affordance): Фізична можливість дії. Кнопка у WPF реально може бути натиснута — вона реагує на клік.
  2. Сприйманий affordance (Perceived Affordance): Візуальна підказка, що дія можлива. Кнопка виглядає як щось, що можна натиснути (опукла форма, тінь, hover-ефект).

Проблема плоского дизайну (Flat Design): У прагненні до мінімалізму багато сучасних інтерфейсів втратили сприйманий affordance. Коли все плоске — важко зрозуміти, що є кнопкою, а що просто текстом. Рішення — використовувати інтерактивні стани (hover, pressed) для відновлення affordance.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

У WPF кнопки за замовчуванням мають чіткий affordance завдяки стандартній темі (Aero у Windows 7, Metro у Windows 8+). Але якщо ви створюєте власні стилі — обов'язково додайте hover-стан (зміна кольору при наведенні) та pressed-стан (зміна кольору при натисканні). Без цього користувач не зрозуміє, що елемент інтерактивний.

Feedback: зворотний зв'язок

Feedback — це реакція системи на дію користувача. Кожна дія має викликати миттєвий та зрозумілий зворотний зв'язок. Без feedback користувач не знає, чи система "почула" його дію, чи потрібно натиснути ще раз, чи щось пішло не так.

Типи feedback у десктопних застосунках:

  1. Візуальний feedback: Зміна кольору кнопки при наведенні/натисканні, анімація завантаження, прогрес-бар, зміна курсору (стрілка → рука → годинник).
  2. Текстовий feedback: Повідомлення про успіх ("Файл збережено"), помилку ("Невірний формат email"), попередження ("Незбережені зміни будуть втрачені").
  3. Звуковий feedback: Звук при натисканні кнопки, звук помилки (у Windows — "ding"), звук сповіщення. Рідко використовується у десктопних застосунках, але критичний для accessibility (користувачі зі слабким зором).
  4. Тактильний feedback: Вібрація (на мобільних пристроях). Не застосовується у десктопних застосунках.

Правило 0.1-1-10 секунд (Jakob Nielsen):

  • 0.1 секунди: Межа миттєвої реакції. Якщо дія виконується швидше — feedback не потрібен (користувач відчуває пряму маніпуляцію).
  • 1 секунда: Межа безперервного потоку думок. Якщо дія виконується довше — покажіть індикатор "система працює" (курсор-годинник, спінер).
  • 10 секунд: Межа утримання уваги. Якщо дія виконується довше — покажіть прогрес-бар з відсотками або часом, що залишився.

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...


Доступність (Accessibility)

Доступність — це не "додаткова функція", а фундаментальна вимога до будь-якого професійного застосунку. Приблизно 15% населення світу має ту чи іншу форму інвалідності (за даними WHO). Це означає, що кожен сьомий потенційний користувач вашого застосунку може мати проблеми зі зором, слухом, моторикою або когнітивними здібностями.

WCAG: стандарт доступності

WCAG (Web Content Accessibility Guidelines) — це міжнародний стандарт доступності, розроблений W3C. Хоча він створювався для веб-контенту, його принципи повністю застосовні до десктопних застосунків.

WCAG базується на чотирьох принципах (POUR):

Perceivable (Сприйманий)

Інформація має бути представлена у формі, що може бути сприйнята користувачем:

  • Текстові альтернативи для нетекстового контенту (alt-текст для зображень)
  • Достатній контраст між текстом та фоном
  • Можливість збільшення тексту без втрати функціональності

Operable (Керований)

Інтерфейс має бути керованим різними способами:

  • Повна підтримка клавіатурної навігації (без миші)
  • Достатньо часу для читання та взаємодії
  • Відсутність контенту, що може викликати епілептичні напади (блимання)

Understandable (Зрозумілий)

Інформація та керування мають бути зрозумілими:

  • Читабельний та передбачуваний текст
  • Послідовна навігація та поведінка
  • Допомога у виправленні помилок введення

Robust (Надійний)

Контент має бути надійно інтерпретований різними технологіями:

  • Сумісність з асистивними технологіями (скрін-рідери)
  • Валідна розмітка та семантика
  • Підтримка різних платформ та пристроїв

Контраст кольорів

Один із найпростіших і найважливіших аспектів доступності — достатній контраст між текстом та фоном. WCAG визначає два рівні:

  • WCAG AA (мінімальний): Контраст 4.5:1 для звичайного тексту, 3:1 для великого тексту (18pt+ або 14pt+ жирний).
  • WCAG AAA (розширений): Контраст 7:1 для звичайного тексту, 4.5:1 для великого тексту.

Приклади контрасту:

ТекстФонКонтрастWCAG AAWCAG AAA
#000000 (чорний)#FFFFFF (білий)21:1✅ Так✅ Так
#111827 (темно-сірий)#FFFFFF (білий)16.1:1✅ Так✅ Так
#6B7280 (сірий)#FFFFFF (білий)4.6:1✅ Так❌ Ні
#9CA3AF (світло-сірий)#FFFFFF (білий)2.8:1❌ Ні❌ Ні
#3B82F6 (синій)#FFFFFF (білий)3.1:1❌ Ні❌ Ні
Ніколи не використовуйте світло-сірий текст (#9CA3AF або світліше) на білому фоні для основного контенту. Це порушує WCAG AA і робить текст нечитабельним для користувачів зі слабким зором. Для основного тексту використовуйте #111827 або #1F2937, для вторинного — #374151 або #6B7280.

Клавіатурна навігація

Кожен елемент інтерфейсу, з яким можна взаємодіяти мишею, має бути доступний через клавіатуру. Це критично важливо не лише для користувачів з обмеженою моторикою, а й для "power users", що віддають перевагу клавіатурі.

Основні клавіші навігації:

  • Tab — перехід до наступного елемента
  • Shift + Tab — перехід до попереднього елемента
  • Enter або Space — активація кнопки/чекбоксу
  • — навігація у списках, меню, слайдерах
  • Esc — закриття діалогу, скасування дії
  • Alt + підкреслена літера — активація контролу через AccessKey

Порядок фокусу (Tab Order): Елементи мають отримувати фокус у логічному порядку — зверху вниз, зліва направо (для LTR-мов). У WPF порядок фокусу визначається властивістю TabIndex (за замовчуванням — порядок у XAML).

Loading Avalonia WebAssembly...

Downloading .NET runtime (10MB)...

У WPF властивість IsTabStop="False" дозволяє виключити елемент з Tab-навігації. Використовуйте це для декоративних елементів (іконки, розділювачі), але ніколи для інтерактивних контролів (кнопки, поля введення).

Практичні завдання


Підсумок

Що ми вивчили у цій статті

У цій статті ми розглянули фундаментальні принципи UI/UX дизайну, що застосовуються до десктопних застосунків.

UI vs UX — це не синоніми: UI — це візуальний шар (що користувач бачить), UX — це досвід взаємодії (що користувач відчуває). Хороший UI не гарантує хороший UX, і навпаки.

Закони взаємодії — емпірично підтверджені принципи, що керують поведінкою користувачів: Закон Фіттса (великі кнопки натискаються швидше), Закон Хіка (більше опцій = довше рішення), Закон Міллера (7±2 елементи у короткочасній пам'яті), Закон Якоба (користувачі очікують стандартної поведінки).

Візуальна ієрархія створюється через розмір шрифту, вагу, колір, контраст та відступи. Три рівні контрасту: високий (основний текст), середній (вторинний текст), низький (допоміжний текст). Групування через відступи (Proximity) — 4-8px всередині групи, 16-24px між групами, 32-48px між розділами.

Принципи Гештальту пояснюють, як мозок сприймає візуальні об'єкти: Proximity (близькість), Similarity (подібність), Continuity (продовження), Closure (замкнутість), Figure-Ground (фігура та фон).

Affordance та Feedback — ключові UX-концепції: affordance підказує, як взаємодіяти з елементом, feedback підтверджує, що дія виконана. Правило 0.1-1-10 секунд визначає, коли потрібен індикатор завантаження.

Доступність (Accessibility) — не опція, а вимога. WCAG визначає стандарти: контраст мінімум 4.5:1 (AA) або 7:1 (AAA), повна клавіатурна навігація, логічний Tab Order, текстові альтернативи для нетекстового контенту.

Що далі

У наступній статті ми перейдемо до Dependency Properties — системи властивостей WPF, що є фундаментом для Data Binding, стилів, анімацій та всього, що робить WPF потужним. Розуміння UI/UX принципів допоможе вам приймати правильні рішення при проєктуванні інтерфейсів на основі цих технологій.