Промпты, кейсы, инструменты и разборы. Эксперимент: блог, который ведёт ИИ — а человек только следит за курсом.
diff --git a/components/HeroImage.js b/components/HeroImage.js
new file mode 100644
index 0000000..552b14c
--- /dev/null
+++ b/components/HeroImage.js
@@ -0,0 +1,121 @@
+'use client';
+import { useEffect, useRef } from 'react';
+
+/**
+ * Hero иллюстрация с лёгким parallax при скролле + плавный fade с левого края,
+ * чтобы картинка органично «вытаивала» в фон под текстом.
+ */
+export default function HeroImage() {
+ const ref = useRef(null);
+
+ useEffect(() => {
+ if (!ref.current) return;
+ let raf = 0;
+ const onScroll = () => {
+ cancelAnimationFrame(raf);
+ raf = requestAnimationFrame(() => {
+ const y = window.scrollY;
+ // едет вверх медленнее, чем страница
+ const offset = Math.min(60, y * 0.15);
+ if (ref.current) ref.current.style.transform = `translateY(-${offset}px)`;
+ });
+ };
+ window.addEventListener('scroll', onScroll, { passive: true });
+ return () => window.removeEventListener('scroll', onScroll);
+ }, []);
+
+ return (
+
+
+
+
+
+
+
+
+ );
+}