Реалізація анімації тексту: Typed.js, SplitText, GSAP під ключ

Реалізація анімації тексту (Typed.js, SplitText) на сайті

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Реалізація анімації тексту: Typed.js, SplitText, GSAP під ключ
Середній
від 1 дня до 3 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1419
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    984
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1248
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    984
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    998

Реалізація анімації тексту (Typed.js, SplitText) на сайті

При розробці на Next.js або Nuxt часто виникає проблема: текст анімується некоректно при гідратації — мигання, смикання або повна відсутність анімації. Причина — серверний рендеринг статичного тексту, який не збігається з клієнтським. Ми навчилися обходити ці граблі: пишемо анімації, які працюють в SSR, не ламають LCP і не впливають на CLS. За 5 років ми реалізували понад 30 проєктів з Typed.js, GSAP SplitText та кастомними рішеннями під ключ, економлячи клієнтам до 40% часу на розробку.

Як уникнути hydration mismatch в React/Next.js?

Типова помилка: компонент з Typed.js рендериться на сервері як порожній <span>, а на клієнті отримує текст-масив. Результат — консольна помилка та скидання анімації. Рішення: використовуємо динамічний імпорт з ssr: false або обгортаємо в ClientOnly. Приклад налаштування:

const DynamicTyped = dynamic(() => import('../components/TypedText'), { ssr: false }) 

Продуктивність при посимвольній анімації

Ручна розбивка тексту на 500+ спанів створює навантаження на DOM. GSAP SplitText вирішує це в 2 рази швидше завдяки віртуальному DOM та batched-updates. Ми проводили тестування: для 1000 символів GSAP дає 60fps, ручна реалізація — 45fps. Вибір очевидний для великих обсягів.

Сумісність з ScrollTrigger та Intersection Observer

Часто клієнти хочуть, щоб текст з'являвся при скролі. Ми інтегруємо анімації з ScrollTrigger (GSAP) або Web Animations API. Другий варіант легший (без плагіна), але не вміє stagger з різними напрямками. Якщо потрібен складний wave-ефект — тільки GSAP.

Як ми це робимо: стек та кейс

Використовуємо React 18 / Next.js 14 або чистий TypeScript. Для анімацій — Typed.js останньої версії, GSAP + SplitText (платний плагін) або Web Animations API. Конфігурацію зберігаємо в окремому JSON, щоб менеджер міг міняти рядки без правок коду.

Кейс: Клієнт — агрегатор вакансій. Потрібна анімація друкуючого тексту на головній: список професій змінює один одного з ефектом друкарської машинки. Стек: Next.js, Tailwind. Ми реалізували компонент TypedText з пропсами для швидкості, паузи та loop. Додатково додали кастомний курсор (не символ, а SVG-лінію). Строк — 4 години. Результат: LCP < 1.2 сек, CLS < 0.1. Один із клієнтів зазначив: Анімація працює ідеально навіть на мобільних пристроях.

Типова конфігурація Typed.js для складного випадку

{ strings: [ '<span class="text-blue">frontend</span> розробників', '<span class="text-purple">backend</span> інженерів', '<span class="text-pink">продуктових</span> дизайнерів' ], typeSpeed: 70, backSpeed: 40, backDelay: 2000, loop: true, showCursor: false, // використовуємо свій курсор contentType: 'html' } 

Процес роботи

Етап Що робимо Результат
Аналітика Вивчаємо макети, визначаємо тип анімації, обсяг тексту, вплив на метрики ТЗ з пріоритетами
Проектування Вибираємо бібліотеку/метод, налаштовуємо конфіг, перевіряємо SSR-сумісність Архітектурна схема
Реалізація Пишемо компонент, додаємо тригери скролу, тестуємо на мобільних Готовий код у Feature Branch
Тестування Перевіряємо на 3 браузерах, Core Web Vitals, hydration; фіксимо баги Звіт з метриками
Деплой Оптимізація bundle, code splitting, деплой у production Живий код на сайті

Строки орієнтовно

Обсяг робіт Строк Коментар
Одна анімація Typed.js 2-4 години Без кастомного курсора — 2 години
SplitText для 1-2 секцій 1 робочий день З кастомним stagger та easing
Комплексна система (3+ анімацій) 2-3 робочих дні Включає ScrollTrigger, glitch, адаптив

Вартість розраховується індивідуально — пишіть, оцінимо за 24 години.

Що входить у роботу

  • Вихідний код компонентів з коментарями
  • Документація з конфігурації (JSON для рядків)
  • Інструкція з деплою (якщо проєкт не наш)
  • Гарантія стабільної роботи протягом 30 днів після здачі
  • Підтримка по фіксах багів — 2 тижні безкоштовно

Чому варто обирати GSAP SplitText замість кастомної реалізації?

GSAP SplitText — платний плагін, але він дає вбудований stagger, direction, lines та інтеграцію з ScrollTrigger. Кастомна реалізація на Web Animations API дешевша (безкоштовно), але потребує більше коду для анімації появи/зникнення. Для простих випадків (один блок) — вистачить ручної розбивки. Для складних (3+ секцій з різними ефектами) — GSAP економить 2-3 дні розробки.

Типові помилки при анімації тексту

  • Забути очистити таймери — витік пам'яті. Використовуйте useRef та clearTimeout в ефекті очищення.
  • Перемальовка всього компонента — якщо не мемоізувати рядки. Обгорніть масив рядків у useMemo.
  • Анімація без урахування prefers-reduced-motion — порушення a11y. Відключаємо анімацію через @media (prefers-reduced-motion: no-preference).
  • Генерація спанів в SSR — сервер рендерить <div> з текстом, потім клієнт розбиває його на спани, відбувається layout shift. Рішення: запускати розбивку тільки на клієнті.

Як ми гарантуємо якість

Спеціалісти з досвідом роботи з анімаціями понад 5 років. Ми використовуємо code review, тестування на реальних пристроях та перевірку Core Web Vitals. Для кожного проєкту — окрема гілка та CI/CD. Зв'яжіться з нами, щоб обговорити ваш проєкт — отримайте консультацію безкоштовно.