Текстовая анимация

Абзац с бегущим маркером

Крупный абзац проявляется слово за словом из размытия, а когда собрался — по нему начинает ходить маркер: подсветка по очереди переезжает с одной смысловой фразы на другую и идёт по кругу.

Что можно поменять

  • текст абзаца в пропе text
  • набор подсвечиваемых фраз highlights — это слова из того же абзаца, не индексы
  • цвет подсветки через проп accent под свой бренд

Ссылка для ИИ-агента: в ней превью, код и инструкция.

Превью

1440pxТема страницы

Использовать с ИИ

  1. 1. Скопируйте ссылку.
  2. 2. Напишите агенту своими словами и вставьте её в предложение.
  3. 3. Агент откроет ссылку и поставит компонент из реестра.
AI
1Выбрали здесь

добавь это на главную первым экраном:

https://vibeui.ru/c/text-002?theme=dark

2Вставили в чат агента
3Получили в проекте

Не знаете, куда вставить? Пошаговый гайд

Показать полную инструкцию

То, что лежит по ссылке в развёрнутом виде. Нужна, если агент не может открыть ссылку — тогда вставьте этот текст целиком.

Загружается…

Для разработчика

Команда установки — в блоке «Исходник компонента» ниже: подписанная ссылка действует сутки.

Технические заметки

Компонент самодостаточен: один файл, ноль зависимостей, палитра в локальных --vibeui-text-002-*. Тему берёт из окружения через light-dark() плюс строку для класса .dark. Абзац приходит одной строкой в пропе text и разбирается на слова здесь же; подсвечиваемые куски задаются словами в highlights, а не индексами: компонент ищет фразу как подряд идущую цепочку слов, сравнивая их без окружающей пунктуации. Проявление — @keyframes на каждом слове: translateY(30%) → 0, blur(10px) → 0, прозрачность 0 → 1 за 550 мс по cubic-bezier(0.16,1,0.3,1), задержка calc(45 мс * индекс слова). Маркер — абсолютная подложка под словом с отрицательным z-index (слово держит isolation:isolate, иначе подложка ушла бы за фон абзаца); у слова в середине фразы она дотянута вправо на 0.3em, чтобы пробел между словами тоже был закрашен. Переезд маркера — transition scaleX 0.78 → 1 и прозрачности за 300 мс по пружине, выписанной точками в linear(). Очередь фраз ведёт клиентский таймер: он вступает после того, как абзац дособрался, и дальше переключает фразу каждые interval секунд по кругу. При prefers-reduced-motion таймер не запускается, а вся подсветка показана сразу. Слово под маркером меняет цвет на акцентный (--vibeui-text-002-accent-text, 300 мс), а сама подложка держится светлее акцента — акцентный по акцентному не читался бы. Включённое состояние подсветки приходит инлайном (opacity, transform и цвет слова), а не правилом на data-атрибут: перерисовка меняет атрибуты слова и его подложки разом, и такое правило пересчитывалось с отставанием на шаг. Атрибуты data-on и data-edge остаются в разметке как точка зацепа для чужих стилей.

Теги

  • text
  • animated text
  • paragraph
  • highlight
  • marker
  • blur
  • reveal
  • stagger
  • words
Исходник компонента

Тот же файл, который поставит агент. Нужен, если вы предпочитаете скопировать код руками.

Загружается…