-
+
);
diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx
index 375fe3d..3de5b64 100644
--- a/src/components/layout/Header.tsx
+++ b/src/components/layout/Header.tsx
@@ -3,65 +3,97 @@
import Image from "next/image";
import Link from "next/link";
import { Menu, X } from "lucide-react";
-import { useState } from "react";
+import { useState, useEffect } from "react";
import { BRAND, NAV_LINKS } from "@/lib/constants";
-import { ThemeToggle } from "@/components/ui/ThemeToggle";
export function Header() {
const [menuOpen, setMenuOpen] = useState(false);
+ const [scrolled, setScrolled] = useState(false);
+
+ useEffect(() => {
+ function handleScroll() {
+ setScrolled(window.scrollY > 20);
+ }
+ window.addEventListener("scroll", handleScroll, { passive: true });
+ return () => window.removeEventListener("scroll", handleScroll);
+ }, []);
return (
-
-
-
-
-
+
);
}
diff --git a/src/components/sections/About.tsx b/src/components/sections/About.tsx
index eeea83d..d3dddc6 100644
--- a/src/components/sections/About.tsx
+++ b/src/components/sections/About.tsx
@@ -1,21 +1,29 @@
import { siteContent } from "@/data/content";
import { SectionHeading } from "@/components/ui/SectionHeading";
import { Reveal } from "@/components/ui/Reveal";
+import { Heart } from "lucide-react";
export function About() {
const { about } = siteContent;
return (
-
+
+
{about.title}
-
+
{about.paragraphs.map((text, i) => (
- {text}
+
))}
diff --git a/src/components/sections/Classes.tsx b/src/components/sections/Classes.tsx
index 89d41fa..a172397 100644
--- a/src/components/sections/Classes.tsx
+++ b/src/components/sections/Classes.tsx
@@ -1,7 +1,8 @@
"use client";
import { useState } from "react";
-import { Flame, Sparkles, Wind, Zap, Star, Monitor } from "lucide-react";
+import Image from "next/image";
+import { Flame, Sparkles, Wind, Zap, Star, Monitor, ArrowRight } from "lucide-react";
import { siteContent } from "@/data/content";
import { SectionHeading } from "@/components/ui/SectionHeading";
import { Reveal } from "@/components/ui/Reveal";
@@ -9,12 +10,12 @@ import { ClassModal } from "@/components/ui/ClassModal";
import type { ClassItem } from "@/types";
const iconMap: Record
= {
- flame: ,
- sparkles: ,
- wind: ,
- zap: ,
- star: ,
- monitor: ,
+ flame: ,
+ sparkles: ,
+ wind: ,
+ zap: ,
+ star: ,
+ monitor: ,
};
export function Classes() {
@@ -22,22 +23,57 @@ export function Classes() {
const [selectedClass, setSelectedClass] = useState(null);
return (
-
+
+
{classes.title}
-
+
{classes.items.map((item) => (
setSelectedClass(item)}
>
-
{iconMap[item.icon]}
-
{item.name}
-
{item.description}
+ {/* Background image */}
+ {item.images && item.images[0] && (
+
+ )}
+
+ {/* Dark gradient overlay */}
+
+
+ {/* Rose tint on hover */}
+
+
+ {/* Content */}
+
+ {/* Icon badge */}
+
+ {iconMap[item.icon]}
+
+
+
+ {item.name}
+
+
+
+ {item.description}
+
+
+ {/* Hover arrow */}
+
+
))}
diff --git a/src/components/sections/Contact.tsx b/src/components/sections/Contact.tsx
index cd99966..fad440c 100644
--- a/src/components/sections/Contact.tsx
+++ b/src/components/sections/Contact.tsx
@@ -8,51 +8,65 @@ export function Contact() {
const { contact } = siteContent;
return (
-