"use client"; import { useState, useEffect } from "react"; import { motion } from "framer-motion"; import { ArrowDown, Code, Zap, Rocket } from "lucide-react"; import Image from "next/image"; const Hero = () => { const [mounted, setMounted] = useState(false); useEffect(() => { setMounted(true); }, []); const features = [ { icon: Code, text: "Next.js & Flutter" }, { icon: Zap, text: "Docker Swarm & CI/CD" }, { icon: Rocket, text: "Self-Hosted Infrastructure" }, ]; // Smooth scroll configuration const smoothTransition = { type: "spring", damping: 30, stiffness: 50, mass: 1, }; if (!mounted) { return null; } return (
{/* Profile Image with Organic Blob Mask */}
{/* Large Rotating Liquid Blobs behind image - Very slow and smooth */} {/* The Image Container with Organic Border Radius */} Dennis Konkol {/* Glossy Overlay for Liquid Feel */}
{/* Inner Border/Highlight */}
{/* Domain Badge - repositioned below image */}
dk0.dev
{/* Floating Badges - subtle animations */}
{/* Main Title */}

Dennis Konkol

Software Engineer

{/* Description */} Student and passionate{" "} self-hoster {" "} building full-stack web apps and mobile solutions. I run my own{" "} infrastructure {" "} and love exploring{" "} DevOps . {/* Features */} {features.map((feature, index) => ( {feature.text} ))} {/* CTA Buttons */} View My Work Contact Me
); }; export default Hero;