From ad2ebc8de95d35a79d932e037b3f32942162f2a3 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Wed, 21 Jan 2026 12:49:27 +0100 Subject: [PATCH] Animated home page --- src/components/home/CTASection.tsx | 8 +-- src/components/home/HeroSection.tsx | 77 +++++++++++++++++++------ src/components/home/ProjectsSection.tsx | 33 ++++++++--- src/components/home/SkillsSection.tsx | 42 +++++++++----- 4 files changed, 116 insertions(+), 44 deletions(-) diff --git a/src/components/home/CTASection.tsx b/src/components/home/CTASection.tsx index ce97082..d604f2e 100644 --- a/src/components/home/CTASection.tsx +++ b/src/components/home/CTASection.tsx @@ -6,7 +6,7 @@ export function CTASection() {
{/* Background Effects */}
- +

@@ -14,8 +14,8 @@ export function CTASection() { extraordinary?

- Whether you need a complex system, a modern web application, or specialized tooling, - I'm here to bring your vision to life. + Whether you need a complex system, a modern web application, or + specialized tooling, I'm here to bring your vision to life.

); -} \ No newline at end of file +} diff --git a/src/components/home/HeroSection.tsx b/src/components/home/HeroSection.tsx index e78c3ca..afb31cf 100644 --- a/src/components/home/HeroSection.tsx +++ b/src/components/home/HeroSection.tsx @@ -1,43 +1,76 @@ +"use client"; + import { ArrowRight, Github, Linkedin, Youtube } from "lucide-react"; import Link from "next/link"; +import { motion } from "framer-motion"; +import { staggerContainer, fadeInUp, slowFloat } from "@/lib/animations"; export function HeroSection() { return ( -
+ {/* Background Effects */}
-
-
+ +
-
+ {/* Status Badge */} -
+ Available for new projects -
+
{/* Main Heading */} -

+ Building{" "} exceptional
digital experiences -

+ {/* Subheading */} -

+ I'm{" "} Klesti Selimaj, a 16-year-old software engineer with 6+ years of experience. Passionate about low-level systems, modern web apps, and crafting tools that make a difference. -

+ {/* CTA Buttons */} -
+ View GitHub -
+ {/* Social Links */} -
+ -
-
+ +
{/* Scroll Indicator */} -
+
-
-
+ + ); } diff --git a/src/components/home/ProjectsSection.tsx b/src/components/home/ProjectsSection.tsx index 3d4780f..2e2a995 100644 --- a/src/components/home/ProjectsSection.tsx +++ b/src/components/home/ProjectsSection.tsx @@ -1,4 +1,8 @@ +"use client"; + import { ExternalLink, Github, Star } from "lucide-react"; +import { motion } from "framer-motion"; +import { fadeInUp, staggerContainer } from "@/lib/animations"; const projects = [ { @@ -56,10 +60,16 @@ const projects = [ export function ProjectsSection() { return ( -
+
{/* Section Header */} -
+ Portfolio @@ -71,15 +81,16 @@ export function ProjectsSection() { showcase my skills in systems programming, web development, and tooling.

-
+ {/* Projects Grid */}
{projects.map((project, index) => ( -
{/* Header */}
@@ -137,12 +148,16 @@ export function ProjectsSection() { View
-
+ ))}
{/* View All CTA */} -
+ -
+
-
+ ); } diff --git a/src/components/home/SkillsSection.tsx b/src/components/home/SkillsSection.tsx index bd664bd..500ddea 100644 --- a/src/components/home/SkillsSection.tsx +++ b/src/components/home/SkillsSection.tsx @@ -1,3 +1,8 @@ +"use client"; + +import { motion } from "framer-motion"; +import { fadeInUp, staggerContainer } from "@/lib/animations"; + const skills = [ { category: "Languages", @@ -39,26 +44,33 @@ const stats = [ export function SkillsSection() { return ( -
+
{/* Stats */}
{stats.map((stat, index) => ( -
{stat.value}
{stat.label}
-
+ ))}
{/* Section Header */} -
+ Expertise @@ -69,15 +81,16 @@ export function SkillsSection() { From low-level systems programming to modern web development, I bring a diverse skill set to every project.

-
+ {/* Skills Grid */}
{skills.map((category, categoryIndex) => ( -

@@ -95,18 +108,21 @@ export function SkillsSection() {

-
))}
-
+ ))} -
+ ); }