feat: оживление сайта — обложки, hero-фон, статистика, анимации

- ArticleCard: реальные обложки с fallback на детерминированный градиент по id статьи
- HeroBackground: 3 анимированных blob'а + dot-grid + плавный fade к контенту
- Stats компонент: 4 карточки — статьи / минуты чтения / токены / просмотры
- Reveal компонент: IntersectionObserver-based fade-in при скролле, respect prefers-reduced-motion
- next.config: rewrites /uploads/* → engine, чтобы картинки работали с относительными путями
- На странице статьи — обложка над контентом
This commit is contained in:
Alexey Pavlov
2026-05-31 09:17:08 +03:00
parent a16bf812e4
commit b1c09aa53f
8 changed files with 352 additions and 84 deletions
+8
View File
@@ -37,6 +37,14 @@ export async function listTags() {
return call('/api/articles/tags', { next: { revalidate: 300 } });
}
export async function getStats() {
try {
return await call('/api/stats', { cache: 'no-store' });
} catch {
return null;
}
}
export async function generateArticle(data) {
return call('/api/articles/generate', {
method: 'POST',