Skip to content
F Fastry
astro-rocket анимации intersection-observer view-transitions

Анимации в Fastry — Intersection Observer, плавные появления и View Transitions

Как Fastry использует нативные веб-анимации с Intersection Observer, плавные появления элементов и View Transitions API для бесшовной навигации.

A

Almaz

2 мин. чтения

Fastry использует нативные веб-анимации без тяжелых библиотек. Всё построено на Intersection Observer API, CSS-переходах и View Transitions API.

Плавные появления (Fade-in Animations)

Элементы на страницах появляются плавно при прокрутке с помощью Intersection Observer. Компонент FadeIn находится в src/components/effects/ и оборачивает любой HTML или компонент Astro:

<FadeIn>
  <h2>Этот заголовок появится плавно</h2>
</FadeIn>

Компонент использует нативный Intersection Observer — без дополнительных библиотек. Каждый элемент анимируется один раз при первом появлении в области видимости.

Настройка анимации

Компонент FadeIn принимает пропсы для настройки:

<FadeIn direction="up" duration={600} delay={100} threshold={0.2}>
  <p>Контент с кастомной анимацией</p>
</FadeIn>
  • direction — направление: up, down, left, right, none
  • duration — длительность в мс
  • delay — задержка в мс
  • threshold — порог видимости (0–1)

View Transitions API

Fastry использует View Transitions API для плавной навигации между страницами. Переходы настроены в BaseLayout.astro:

---
import { ViewTransitions } from 'astro:transitions';
---
<!doctype html>
<html lang="ru">
  <head>
    <ViewTransitions />
  </head>
</html>

Навигация между страницами происходит с кросс-фейдом, что создаёт ощущение нативного приложения. Цветовой режим и тема сохраняются при переходах.

Эффект печатающего текста в Hero

Компонент TypingEffect в шапке Hero создаёт эффект печатающегося текста. Он циклически перебирает фразы с эффектом пишущей машинки:

<TypingEffect
  words={["Быстро", "Современно", "Адаптивно"]}
  typeSpeed={80}
  deleteSpeed={40}
  pauseDuration={2000}
/>

Компонент написан на чистом TypeScript без зависимостей.

Индикатор прокрутки

В шапке может отображаться индикатор прогресса прокрутки — тонкая цветная полоса, показывающая, как далеко пользователь продвинулся по странице. Включается пропсом showScrollProgress на компоненте Header.

Кольцо прогресса

Для более визуального подхода доступно кольцо прогресса, которое отображает прогресс прокрутки в виде кольцевого индикатора.

Все анимации отключаются при prefers-reduced-motion: reduce, что обеспечивает доступность для пользователей с чувствительностью к движению.

Поделиться:

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

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

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

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

Комментарии к постам блога — Giscus с ленивой загрузкой

Fastry поддерживает комментарии в блоге на основе Giscus и GitHub Discussions. Скрипт загружается лениво — читатели платят нулевую стоимость, если не прокручивают до низа.

A Almaz
2 мин. чтения
astro-rocket функции блог комментарии giscus

Независимое меню подвала — разные ссылки в шапке и подвале

Fastry теперь позволяет настраивать меню подвала независимо от навигации шапки. Добавьте ссылку на Политику конфиденциальности, Импринт или Политику Cookie без загромождения основной навигации.

A Almaz
2 мин. чтения
astro-rocket функции подвал навигация

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

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