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

Перекидная надпись

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

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

  • надписи: text в покое и hoverText под курсором
  • адрес ссылки href
  • цвет акцента через проп accent — им красятся стрелка и фокус

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

Превью

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент самодостаточен: один файл, ноль зависимостей, палитра в локальных --vibeui-text-001-*. Тему берёт из окружения через light-dark() плюс строку для класса .dark. Клиентского JS нет: обе надписи лежат в одной ячейке inline-grid, поэтому ширина берётся по длинной и при подмене не прыгает, а само перекидывание — это transition по :hover и :focus-visible. Каждая буква сидит в своей коробке с overflow:hidden и уезжает на 115% от собственной высоты; направление задаёт переменная --vibeui-text-001-dir (+1 у чётных, −1 у нечётных), поэтому строка разъезжается встречными потоками. Transform идёт 300 мс по пружине, выписанной точками в linear(), а opacity и размытие — 180 мс по cubic-bezier(0.16,1,0.3,1): размытие короче хода и прячет момент подмены. Задержка каждой буквы — transition-delay: calc(stagger * индекс), 14 мс на букву. Размер кегля считается от собственной ширины блока (container-type:inline-size, clamp с cqi), а не от окна. Ссылка растянута на ширину родителя и держит надпись по центру (--vibeui-text-001-align), но курсор ловит только сама надпись: у растянутой строки pointer-events сняты, иначе она перекидывалась бы от наведения на пустое место сбоку. При prefers-reduced-motion переходы выключаются, надпись просто меняется. Под курсором надпись, подчёркивание и стрелка красятся акцентом (--vibeui-text-001-accent-text): в тёмной теме он высветлен, потому что чистый акцентный на тёмном фоне читается тускло.

Теги

  • text
  • animated text
  • hover
  • link
  • swap
  • letters
  • stagger
  • blur
  • roll
Исходник компонента

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

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