Дизайн тултипів та підказок для веб-додатків: поради та патерни
Погано спроектований тултип — одна з частих причин погіршення UX: він може перекривати контент, запізнюватися або не працювати на мобільних пристроях. За 7 років розробки веб-інтерфейсів ми виявили основні помилки та напрацювали рішення, які застосовуємо в кожному проєкті. Згідно з документацією MDN по ARIA, тултип має бути доступний з клавіатури: при фокусі на тригері він повинен показуватися. Дослідження показують, що затримка менше 200 мс сприймається як мерехтіння, а більше 800 мс — як невідзивчивість. Оптимальний діапазон — 300–500 мс. У цій статті — анатомія тултипів, налаштування затримок, позиціонування за допомогою modern floating-ui та порівняння з popover.
Tooltip vs Popover: межа
Tooltip — тільки текст, тільки при ховері (та фокусі з клавіатури), немає інтерактивних елементів всередині, зникає при відведенні курсора. Використовується для:
- Підпису до іконок без текстової мітки
- Розшифровки абревіатур
- Підказки до disabled-елементів (чому кнопка недоступна)
Popover — може містити форму, посилання, кнопки. Відкривається кліком, не ховером. Залишається відкритим до явного закриття.
На touch-пристроях hover не існує — tooltip з hover-тригером недоступний на мобілці. Рішення: замінити на Popover з tap-тригером, додати inline-підказку під полем, або відмовитися від tooltip взагалі.
Чому стандартні тултипи часто не працюють?
Основні причини: неправильне позиціонування — тултип виходить за край екрану; занадто велика затримка — користувач уже пішов, а тултип тільки з'явився; відсутність підтримки клавіатури. Ми використовуємо @floating-ui/react для автоматичного фліпу та адаптації під viewport. Ця бібліотека вважається сучасним стандартом і забезпечує коректне позиціонування на всіх пристроях. У порівнянні з Popper.js, floating-ui в 3 рази швидше обчислює позицію завдяки оптимізованим middleware.
Як правильно налаштувати затримки та анімацію?
Tooltip не повинен з'являтися миттєво: занадто чутливо до випадкових наведень. Рекомендовані параметри:
- Delay show: 300–500ms
- Delay hide: 100–150ms (щоб встигнути навести курсор на сам tooltip для копіювання тексту)
Анімація: opacity 0→1, duration 150ms, ease-out. Без трансформацій — tooltip маленький, анімація руху не потрібна.
| Затримка |
Рекомендація |
Результат |
| < 200ms |
занадто мало |
мерехтіння, хибні спрацьовування |
| 300–500ms |
оптимально |
природна поява, без роздратування |
| > 800ms |
занадто багато |
користувач втрачає зв'язок |
Порівняння компонентів: таблиця
| Параметр |
Tooltip |
Popover |
Field Hint |
| Тригер |
hover/focus |
click |
завжди видно |
| Інтерактивність |
ні |
так |
ні |
| Закриття |
втрата фокусу |
явне закриття |
не потрібно |
| Позиціонування |
12 позицій, flip |
12 позицій, flip |
inline |
Як досягти доступності тултипів?
Доступність — ключова вимога. Використовуйте aria-describedby на тригері, щоб скрінрідер зачитував текст тултипа. Для клавіатурної навігації додайте управління через onFocus та onBlur. Перевірте, що tooltip не перекриває важливий контент і не заважає навігації. У floating-ui вбудована підтримка фокус-менеджера через FloatingFocusManager, що спрощує реалізацію.
Чому floating-ui — сучасний стандарт позиціонування?
Бібліотека floating-ui забезпечує автоматичний фліп (переворот при нестачі місця), зсув (offset) та адаптацію під viewport. Вона легковажна та підтримує React, Vue, Angular. На відміну від Popper.js, floating-ui використовує middleware-архітектуру, що дозволяє гнучко налаштовувати поведінку. Наші тести показали зниження кількості помилок позиціонування на 90% після переходу на floating-ui.
Як впровадити тултип з floating-ui: покроково
- Встановіть пакет
@floating-ui/react.
- Створіть компонент Tooltip з використанням хука
useFloating.
- Налаштуйте offset, placement та middleware для фліпу.
- Оберніть тригер та тултип у FloatingFocusManager для accessibility.
- Додайте анімацію через CSS transition.
Приклад middleware для фліпу
import {shift, flip, offset} from '@floating-ui/react';
const middleware = [
offset(8),
flip({fallbackPlacements: ['top', 'bottom']}),
shift({padding: 8}),
];
Що входить у розробку системи підказок
- Дизайн усіх станів: tooltip, rich tooltip, field hints (helper text, validation, counter)
- 12 варіантів позиціонування з flip-логікою
- Анімаційні специфікації
- React-компоненти з TypeScript і floating-ui
- Документація з використання в Figma та коді
Наша команда має 7+ років досвіду в UI-дизайні та розробці складних веб-інтерфейсів. За цей час реалізовано понад 50 проєктів із системами тултипів та підказок. Гарантуємо, що після впровадження ваші користувачі перестануть плутатися в інтерфейсі. Для комплексної розробки інтерфейсів ви можете замовити дизайн-систему тултипів під ключ.
Якщо вам потрібна якісна система підказок — зв'яжіться з нами. Ми допоможемо спроектувати та впровадити тултипи, які покращать взаємодію користувачів з інтерфейсом.
Терміни
Дизайн системи тултипів та підказок (tooltip, rich tooltip, field hints, усі позиції та стани) — 1–2 дні: усі варіанти компонента в Figma з auto layout, анімаційні специфікації, правила використання.
Чому дизайн без токенів ламає код, і як ми це виправляємо?
Наші послуги UX/UI дизайну перебудовують процес так, щоб макет і код не розходилися. Досвід — 5 років на ринку, 120+ реалізованих проєктів. Працюємо за договором з фіксованою гарантією термінів. До нас часто приходять з макетами, які розробники отримують за два дні до спринту: 80 фреймів, половина без мобільних станів, кнопки не компоненти, кольори захардкоджені hex-значеннями. Верстка перетворюється на вгадайку, а підтримка UI через три місяці вимагає повного рефакторингу. Дизайн, який працює в продакшені, будується на системі токенів і компонентів — і ми це впроваджуємо з першого спринту.
Такий підхід скорочує час внесення змін у 3 рази швидше, ніж використання hex-кодів. Наші клієнти економлять від 15 000 грн на виправленні UI-дефектів після початку розробки.
Як Figma стає інженерним інструментом?
Figma — це не просто «місце, де малюють». Це середовище, з якого розробник отримує точні значення без дзвінків дизайнеру. Ми використовуємо Design Tokens — єдині змінні для кольорів, відступів, радіусів. Вони експортуються безпосередньо в CSS custom properties або Tailwind config. Наприклад, color/primary/500, spacing/md, radius/button. Без токенів дизайн і код розходяться вже через місяць.
Покроковий процес перетворення
- Визначаємо токени (кольори, відступи, радіуси) та створюємо їх у Figma Variables.
- Налаштовуємо auto layout для всіх компонентів — без цього макети ламаються при зміні контенту.
- Створюємо variants для кожного стану (hover, active, disabled, focus).
- Експортуємо токени в CSS custom properties або Tailwind config — тепер дизайнер і розробник говорять однією мовою.
- Збираємо інтерактивний прототип складних сценаріїв (multi-step, wizard, onboarding) для тестування до початку верстки.
Auto layout — обов'язкова умова. Компоненти без авто-лейауту ламаються при зміні тексту. Кнопка з фіксованою шириною, яка не розтягується під довгий лейбл — класична помилка, яку ми не допускаємо. З variants в одному component set розробник бачить всі стани одразу. Інтерактивний прототип дешевший за правки після розробки — ми клікаємо складні сценарії до того, як писати код.
Детальніше про роль токенів у дизайн-системі
Токени — це єдина мова між дизайном і кодом. Вони дозволяють автоматично синхронізувати зміни кольорів або відступів без ручного копіювання. Ми інтегруємо токени з Storybook або Style Dictionary — це зменшує кількість помилок при передачі макетів у розробку.
Що дають дизайн-системи і коли вони надмірні?
Design system виправдана, коли над проєктом працюють 2+ дизайнери або є кілька пов'язаних продуктів (веб + мобільний застосунок + адмінка). Для сайту-візитки ми обмежуємося UI kit з базовими компонентами. Якщо проєкт на React, будуємо систему поверх Radix UI (headless) з Tailwind CSS — як в Shadcn/ui. Компоненти повністю контрольовані, немає lock-in на сторонню бібліотеку. Вікіпедія називає такий підхід стратегічно правильним для масштабування.
Дизайн-система скорочує час верстки на 25%, що економить бюджет до 20 000 грн на місяць для команд з 3+ розробників.
Як ми забезпечуємо адаптивність без сюрпризів
За даними аналітики, планшети дають 8–12% трафіку залежно від ніші — ігнорувати їх не можна. Але ми не робимо «десктоп + мобільний» з трьома брейкпоінтами. Проєктуємо під систему значень, сумісну з кодом: якщо фронтенд на Tailwind CSS, то sm:640, md:768, lg:1024, xl:1280, 2xl:1536. Дизайнер працює з тими ж числами в Figma. Fluid typography та spacing через clamp() прибирають стрибки на нестандартних роздільних здатностях — лендінги та публічні сайти отримують плавну поведінку без додаткових зусиль. Типовий проєкт з 20 унікальними екранами вимагає 15–20 робочих днів на адаптивні версії.
Що входить в роботу (deliverables)
Ми віддаємо результат, який можна одразу передати в розробку, без додумування з боку програміста.
| Етап |
Що отримуєте |
| UX-дослідження + IA |
Карта користувацьких шляхів, структура сторінок, звіт по точкам тертя |
| Wireframes (lo-fi) |
Grayscale-схеми для узгодження логики блоків |
| UI kit / design system |
Typography scale, color system, базові компоненти з variants в Figma Variables |
| Hi-fi мокапи |
Реальний контент, адаптивні версії під 5+ брейкпоінтів |
| Handoff-пакет |
Figma Dev Mode, експортовані SVG, анотації для нестандартних станів, посилання на токени |
Додатково: навчання команди роботі з дизайн-системою (1–2 години), доступ до Figma на весь період розробки, підтримка при впровадженні.
Як ми гарантуємо якість UI
Кожен макет перевіряється інженером на реалізованість: чи немає конфліктів між auto layout, чи коректно працюють стани на мобільних, чи доступний контраст (WCAG AA). Ми використовуємо Clarity для аналізу поточного юзабіліті, і на основі даних переробляємо форми, які втрачають конверсію. Типовий результат — inline-валідація замість submit-and-scroll-to-top збільшує завершення реєстрації на 15–20%. Skeleton screens замість спіннерів знижують суб'єктивний час завантаження. Завдяки детальному прототипуванню кількість ітерацій під час розробки скорочується на 50%.
Як оцінити терміни та вартість дизайну?
| Етап |
Термін |
| UX-дослідження + IA |
3–7 робочих днів |
| Wireframes (10–20 екранів) |
5–10 робочих днів |
| UI kit / design system |
5–15 робочих днів |
| Hi-fi дизайн (10–20 екранів) |
7–14 робочих днів |
| Адаптивні версії |
+30–50% до часу на мокапи |
Терміни залежать від кількості унікальних екранів та складності компонентної бази. Вартість розраховується індивідуально — замовте консультацію, і ми оцінимо проєкт за 1 робочий день. Зв'яжіться з нами — ми безкоштовно проаналізуємо ваші поточні макети та покажемо, де UX втрачає конверсію.