Files
matheoguilbert.fr/app/[locale]/page.tsx
T
mguilbert 87efea3cc1 redesign(homepage): elegant editorial redesign with scroll animations
- HeroSection: full-viewport split layout with staggered entrance animations,
  editorial typography, tech stack tags, animated scroll indicator
- WorksSection: refined header with section label, scroll-reveal on entry
- ProjectCard: per-card IntersectionObserver reveal, numbered projects,
  enhanced hover states (scale + brightness), improved CTA
- FeatureSection: card grid with border/glass treatment and staggered reveals
- AboutSection: animated timeline progress line, scroll-triggered card entrances
- FeatureColumn: icon container with hover treatment
- globals.css: fadeUp/lineGrow/arrowBounce keyframes, .reveal utility,
  prefers-reduced-motion support, brand-accent color token
- lib/useReveal.ts: IntersectionObserver hook for scroll reveals

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 08:39:54 +02:00

29 lines
808 B
TypeScript

import HeroSection from "@/components/sections/HeroSection";
import WorksSection from "@/components/sections/WorksSection";
import FeatureSection from "@/components/sections/FeatureSection";
import TimelineSection from "@/components/sections/AboutSection";
import { getAllProjects } from "@/lib/projects/get-projects";
type props = {
params: Promise<{
locale: string;
}>;
};
export default async function Home({ params }: props) {
const { locale } = await params;
const projects = getAllProjects().filter((item) => item.ready);
return (
<main className="bg-brand-beige text-brand-brown flex flex-col">
<HeroSection />
<div className="px-8 md:px-14 lg:px-20">
<WorksSection projects={projects} locale={locale} />
<FeatureSection />
<TimelineSection />
</div>
</main>
);
}