Skip to content
F Fastry
astro-rocket компоненты кастомизация руководство javascript

Эффект печатающегося текста в Fastry — как это работает и как настроить

Заголовок Hero в Fastry циклически перебирает слова с анимацией печати. Узнайте, как это работает, как настроить скорость и паузы и как полностью отключить эффект.

A

Almaz

2 мин. чтения

Откройте страницу «О нас» в Fastry, и заголовок не стоит на месте. Он печатает слово, делает паузу, удаляет его и печатает следующее — циклически. В этом посте объясняется, как построен этот эффект, что контролирует каждое значение и как сделать его быстрее, медленнее или полностью убрать.

Где находится компонент

Весь эффект находится в одном файле:

src/components/ui/TypingEffect.astro

Это стандартный компонент Astro со встроенным <style> для мигания курсора и <script> для логики печати. Никаких сторонних библиотек или внешних зависимостей.

Как работает анимация

Компонент использует один рекурсивный цикл setTimeout — никакого setInterval. Каждый вызов tick() решает, добавлять или удалять один символ, затем планирует следующий вызов через соответствующую задержку.

Старт
  └─ ожидание 600 мс (начальная задержка)
       └─ tick()
            ├─ печать:   добавить один символ, подождать typeSpeed мс
            │    └─ когда слово завершено: подождать pauseAfterType мс, переключиться на удаление
            └─ удаление: удалить один символ, подождать deleteSpeed мс
                 └─ когда пусто: подождать pauseAfterDelete мс, перейти к следующему слову

Начальная задержка в 600 мс существует, чтобы анимация не начиналась во время отрисовки страницы на медленном соединении.

Свойства и их значения по умолчанию

СвойствоПо умолчаниюЧто контролирует
words(обязательно)Массив строк для циклического перебора
typeSpeed120Миллисекунды между каждым печатаемым символом
deleteSpeed70Миллисекунды между каждым удаляемым символом
pauseAfterType1800Пауза в мс после полного набора слова
pauseAfterDelete400Пауза в мс после полного удаления слова

Шпаргалка по настройке

ЦельЧто изменить
Быстрее печатьУменьшить typeSpeed (например, 12060)
Медленнее печатьУвеличить typeSpeed (120180)
Быстрее удалениеУменьшить deleteSpeed (7035)
Длиннее пауза после печатиУвеличить pauseAfterType (18003000)
Короче пауза между словамиУменьшить pauseAfterDelete (400150)
Другие словаИзменить массив words
Другой символ курсораЗаменить `
Удалить эффектЗаменить <TypingEffect> на простой <span>

Доступность

Компонент оборачивает всё в <span> с aria-label, содержащим все слова через запятую. Скринридеры объявляют полный список слов из aria-label и игнорируют анимированное содержимое внутри.

Влияние на SEO

Astro рендерит заголовок на сервере, поэтому полный элемент присутствует в HTML-коде до выполнения JavaScript. Поисковые системы читают статический HTML и индексируют все слова из aria-label.

Поделиться:

Похожие записи

Как работает дизайн-система Fastry — токены, цвета и тёмный режим

Fastry использует трёхуровневую архитектуру токенов с цветами OKLCH. Измените одно значение, и весь сайт обновится. Вот как это работает и как настроить под себя.

A Almaz
2 мин. чтения
astro-rocket дизайн-система tailwind кастомизация руководство

Мультиязычность: родная интернационализация в Fastry 1.3.0

Как работает новая опциональная система i18n, что она добавляет при включении и точные шаги для запуска сайта на английском и втором языке.

A Almaz
2 мин. чтения
astro-rocket i18n интернационализация руководство v1-3-0

Настройка Fastry — каждый переключатель, тема и опция макета

Полное руководство по параметрам конфигурации Fastry: 12 цветовых тем, цвета OKLCH, типографика, радиус и тени, стили шапки, тёмный режим и многое другое.

A Almaz
2 мин. чтения
astro-rocket настройка кастомизация темы

Подписывайтесь

Будьте в курсе — новые статьи, мысли и обновления.