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
+11
View File
@@ -65,6 +65,17 @@ export default async function ArticlePage({ params }) {
)}
</div>
{article.cover_url && (
<div className="mb-10 -mx-4 sm:mx-0">
<img
src={article.cover_url}
alt={article.title}
className="w-full rounded-xl"
style={{ aspectRatio: '16/9', objectFit: 'cover' }}
/>
</div>
)}
<div
className="prose prose-lg max-w-none font-serif prose-headings:font-sans"
dangerouslySetInnerHTML={{ __html: html }}