Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Kok Wui | Software Engineer</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap'); | |
body { | |
font-family: 'Space Grotesk', sans-serif; | |
scroll-behavior: smooth; | |
} | |
.gradient-text { | |
background: linear-gradient(90deg, #3b82f6, #8b5cf6); | |
-webkit-background-clip: text; | |
background-clip: text; | |
color: transparent; | |
} | |
.card-hover { | |
transition: all 0.3s ease; | |
} | |
.card-hover:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1); | |
} | |
.terminal { | |
background-color: #011627; | |
border-radius: 8px; | |
font-family: 'Courier New', monospace; | |
} | |
.terminal-header { | |
background-color: #1d3b53; | |
border-top-left-radius: 8px; | |
border-top-right-radius: 8px; | |
} | |
.terminal-dot { | |
width: 12px; | |
height: 12px; | |
border-radius: 50%; | |
display: inline-block; | |
margin-right: 6px; | |
} | |
.typewriter { | |
overflow: hidden; | |
border-right: .15em solid #3b82f6; | |
white-space: nowrap; | |
animation: | |
typing 3.5s steps(40, end), | |
blink-caret .75s step-end infinite; | |
} | |
@keyframes typing { | |
from { width: 0 } | |
to { width: 100% } | |
} | |
@keyframes blink-caret { | |
from, to { border-color: transparent } | |
50% { border-color: #3b82f6; } | |
} | |
/* Marquee styles */ | |
.marquee { | |
width: 100%; | |
overflow: hidden; | |
white-space: nowrap; | |
box-sizing: border-box; | |
} | |
.marquee span { | |
display: inline-block; | |
padding-left: 100%; | |
animation: marquee 15s linear infinite; | |
} | |
@keyframes marquee { | |
0% { transform: translate(0, 0); } | |
100% { transform: translate(-100%, 0); } | |
} | |
</style> | |
</head> | |
<body class="bg-gray-50 text-gray-800"> | |
<!-- Navigation --> | |
<nav class="fixed w-full bg-white/80 backdrop-blur-md z-50 shadow-sm"> | |
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
<div class="flex justify-between h-16"> | |
<div class="flex items-center"> | |
<span class="text-xl font-bold gradient-text">KW</span> | |
</div> | |
<div class="hidden md:flex items-center space-x-8"> | |
<a href="#about" class="text-gray-600 hover:text-indigo-600 transition">About</a> | |
<a href="#projects" class="text-gray-600 hover:text-indigo-600 transition">Projects</a> | |
<a href="#skills" class="text-gray-600 hover:text-indigo-600 transition">Skills</a> | |
<a href="#contact" class="text-gray-600 hover:text-indigo-600 transition">Contact</a> | |
</div> | |
<div class="md:hidden flex items-center"> | |
<button id="menu-btn" class="text-gray-600 hover:text-indigo-600"> | |
<i class="fas fa-bars text-xl"></i> | |
</button> | |
</div> | |
</div> | |
</div> | |
<!-- Mobile menu --> | |
<div id="mobile-menu" class="hidden md:hidden bg-white py-4 px-4 shadow-lg"> | |
<div class="flex flex-col space-y-4"> | |
<a href="#about" class="text-gray-600 hover:text-indigo-600 transition">About</a> | |
<a href="#projects" class="text-gray-600 hover:text-indigo-600 transition">Projects</a> | |
<a href="#skills" class="text-gray-600 hover:text-indigo-600 transition">Skills</a> | |
<a href="#contact" class="text-gray-600 hover:text-indigo-600 transition">Contact</a> | |
</div> | |
</div> | |
</nav> | |
<!-- Hero Section --> | |
<section class="min-h-screen flex items-center pt-16"> | |
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-20"> | |
<div class="grid md:grid-cols-2 gap-12 items-center"> | |
<div> | |
<h1 class="text-4xl md:text-5xl font-bold mb-4">Hi, I'm <span class="gradient-text">Kok Wui</span></h1> | |
<div class="marquee text-2xl md:text-3xl font-medium mb-6"> | |
<span class="gradient-text">Software Programmer • Frontend Mobile Developer • Tech Enthusiast </span> | |
</div> | |
<p class="text-gray-600 mb-8 text-lg"> | |
I build exceptional digital experiences with clean, efficient code and modern technologies. | |
</p> | |
<div class="flex space-x-4"> | |
<a href="#projects" class="px-6 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition shadow-md"> | |
View My Work | |
</a> | |
<a href="#contact" class="px-6 py-3 border border-indigo-600 text-indigo-600 rounded-lg hover:bg-indigo-50 transition"> | |
Contact Me | |
</a> | |
</div> | |
</div> | |
<div class="terminal p-0 overflow-hidden"> | |
<div class="terminal-header px-4 py-2 flex items-center"> | |
<span class="terminal-dot bg-red-500"></span> | |
<span class="terminal-dot bg-yellow-500"></span> | |
<span class="terminal-dot bg-green-500"></span> | |
<span class="text-gray-300 text-sm ml-2">bash</span> | |
</div> | |
<div class="p-4 text-green-400"> | |
<p class="mb-2">$ kokwui --intro</p> | |
<p class="mb-2">> Hello World!</p> | |
<p class="mb-2">> I'm a passionate developer with 2+ years</p> | |
<p class="mb-2">> of experience building web applications.</p> | |
<p class="mb-2">> Currently working with React, Node.js & Python.</p> | |
<p class="mb-2">$ <span class="cursor-blink">|</span></p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- About Section --> | |
<section id="about" class="py-20 bg-white"> | |
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
<h2 class="text-3xl font-bold text-center mb-12 gradient-text">About Me</h2> | |
<div class="grid md:grid-cols-3 gap-8"> | |
<div class="col-span-2"> | |
<p class="text-gray-600 mb-6 text-lg"> | |
I'm a software engineer with a passion for solving complex problems through code. | |
My journey in tech started when I built my first website at 14, and I've been | |
hooked ever since. | |
</p> | |
<p class="text-gray-600 mb-6 text-lg"> | |
I specialize in JavaScript ecosystems, but I'm always exploring new technologies | |
and frameworks. Currently, I'm diving deeper into cloud architecture and machine | |
learning applications. | |
</p> | |
<p class="text-gray-600 mb-6 text-lg"> | |
When I'm not coding, you can find me contributing to open-source projects, | |
reading tech blogs, or experimenting with new gadgets. | |
</p> | |
<div class="mt-8"> | |
<a href="#" class="inline-flex items-center text-indigo-600 hover:text-indigo-800"> | |
<span>Download Resume</span> | |
<i class="fas fa-download ml-2"></i> | |
</a> | |
</div> | |
</div> | |
<div class="flex justify-center"> | |
<div class="relative"> | |
<div class="w-64 h-64 bg-indigo-100 rounded-full overflow-hidden border-4 border-white shadow-xl"> | |
<img src="https://images.unsplash.com/photo-1571171637578-41bc2dd41cd2?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" | |
alt="Alex Carter" class="w-full h-full object-cover"> | |
</div> | |
<div class="absolute -bottom-4 -right-4 bg-white p-3 rounded-lg shadow-lg"> | |
<div class="flex items-center"> | |
<div class="w-10 h-10 bg-indigo-600 rounded-full flex items-center justify-center text-white"> | |
<i class="fas fa-code"></i> | |
</div> | |
<div class="ml-3"> | |
<p class="text-xs text-gray-500">Currently working on</p> | |
<p class="text-sm font-medium">AI Chatbot</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Skills Section --> | |
<section id="skills" class="py-20 bg-gray-50"> | |
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
<h2 class="text-3xl font-bold text-center mb-12 gradient-text">My Skills</h2> | |
<div class="grid md:grid-cols-3 gap-8 mb-12"> | |
<div class="bg-white p-6 rounded-xl shadow-sm card-hover"> | |
<div class="w-12 h-12 bg-indigo-100 rounded-lg flex items-center justify-center mb-4"> | |
<i class="fas fa-laptop-code text-indigo-600 text-xl"></i> | |
</div> | |
<h3 class="text-xl font-semibold mb-3">Frontend Development</h3> | |
<div class="flex flex-wrap gap-2"> | |
<span class="px-3 py-1 bg-indigo-100 text-indigo-800 rounded-full text-sm">React</span> | |
<span class="px-3 py-1 bg-indigo-100 text-indigo-800 rounded-full text-sm">Next.js</span> | |
<span class="px-3 py-1 bg-indigo-100 text-indigo-800 rounded-full text-sm">TypeScript</span> | |
<span class="px-3 py-1 bg-indigo-100 text-indigo-800 rounded-full text-sm">Tailwind</span> | |
<span class="px-3 py-1 bg-indigo-100 text-indigo-800 rounded-full text-sm">GraphQL</span> | |
</div> | |
</div> | |
<div class="bg-white p=6 rounded-xl shadow-sm card-hover"> | |
<div class="w-12 h-12 bg-blue-100 rounded-lg flex items-center justify-center mb-4"> | |
<i class="fas fa-server text-blue-600 text-xl"></i> | |
</div> | |
<h3 class="text-xl font-semibold mb-3">Backend Development</h3> | |
<div class="flex flex-wrap gap=2"> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">Node.js</span> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">Express</span> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">Python</span> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">Django</span> | |
<span class="px-3 py-1 bg-blue-100 text-blue-800 rounded-full text-sm">PostgreSQL</span> | |
</div> | |
</div> | |
<div class="bg-white p=6 rounded-xl shadow-sm card-hover"> | |
<div class="w-12 h-12 bg-purple-100 rounded-lg flex items-center justify-center mb-4"> | |
<i class="fas fa-cloud text-purple-600 text-xl"></i> | |
</div> | |
<h3 class="text-xl font-semibold mb-3">DevOps & Cloud</h3> | |
<div class="flex flex-wrap gap=2"> | |
<span class="px-3 py-1 bg-purple-100 text-purple-800 rounded-full text-sm">AWS</span> | |
<span class="px=3 py=1 bg-purple-100 text-purple-800 rounded-full text-sm">Docker</span> | |
<span class="px=3 py=1 bg-purple-100 text-purple-800 rounded-full text-sm">Kubernetes</span> | |
<span class="px=3 py=1 bg-purple-100 text-purple-800 rounded-full text-sm">CI/CD</span> | |
<span class="px=3 py=1 bg-purple-100 text-purple-800 rounded-full text-sm">Terraform</span> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white p=6 rounded-xl shadow-sm"> | |
<h3 class="text-xl font-semibold mb=4">My Tech Stack</h3> | |
<div class="grid grid-cols-3 md:grid-cols-6 gap=4"> | |
<div class="flex flex-col items-center p=4 hover:bg-gray-50 rounded-lg transition"> | |
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/react/react-original.svg" class="w-12 h-12 mb=2" alt="React" /> | |
<span class="text-sm">React</span> | |
</div> | |
<div class="flex flex-col items-center p=4 hover:bg-gray-50 rounded-lg transition"> | |
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/nodejs/nodejs-original.svg" class="w-12 h-12 mb=2" alt="Node.js" /> | |
<span class="text-sm">Node.js</span> | |
</div> | |
<div class="flex flex-col items-center p=4 hover:bg-gray-50 rounded-lg transition"> | |
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/typescript/typescript-original.svg" class="w-12 h-12 mb=2" alt="TypeScript" /> | |
<span class="text-sm">TypeScript</span> | |
</div> | |
<div class="flex flex-col items-center p=4 hover:bg-gray-50 rounded-lg transition"> | |
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/python/python-original.svg" class="w-12 h-12 mb=2" alt="Python" /> | |
<span class="text-sm">Python</span> | |
</div> | |
<div class="flex flex-col items-center p=4 hover:bg-gray-50 rounded-lg transition"> | |
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/aws/aws-original.svg" class="w-12 h-12 mb=2" alt="AWS" /> | |
<span class="text-sm">AWS</span> | |
</div> | |
<div class="flex flex-col items-center p=4 hover:bg-gray-50 rounded-lg transition"> | |
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon/icons/docker/docker-original.svg" class="w-12 h-12 mb=2" alt="Docker" /> | |
<span class="text-sm">Docker</span> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Projects Section --> | |
<section id="projects" class="py-20 bg-white"> | |
<div class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8"> | |
<h2 class="text-3xl font-bold text-center mb-12 gradient-text">Featured Projects</h2> | |
<div class="grid md:grid-cols-2 gap=8"> | |
<!-- Project 1 --> | |
<div class="bg-gray-50 rounded-xl overflow-hidden shadow-sm card-hover"> | |
<div class="h-48 bg-indigo-100 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" | |
alt="AI Dashboard" class="w-full h-full object-cover"> | |
</div> | |
<div class="p=6"> | |
<div class="flex justify-between items-start mb=2"> | |
<h3 class="text-xl font-semibold">AI Analytics Dashboard</h3> | |
<span class="text-xs px=2 py=1 bg-indigo-100 text-indigo-800 rounded-full">2023</span> | |
</div> | |
<p class="text-gray-600 mb=4"> | |
A real-time analytics dashboard powered by machine learning algorithms to provide business insights. | |
</p> | |
<div class="flex flex-wrap gap=2 mb=4"> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">React</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">Node.js</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">TensorFlow</span> | |
</div> | |
<div class="flex space-x=3"> | |
<a href="#" class="text-indigo-600 hover:text-indigo-800"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-indigo-600 hover:text-indigo-800"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Project 2 --> | |
<div class="bg-gray-50 rounded-xl overflow-hidden shadow-sm card-hover"> | |
<div class="h-48 bg-blue-100 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1556740738-b6a63e27c4df?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" | |
alt="E-commerce Platform" class="w-full h-full object-cover"> | |
</div> | |
<div class="p=6"> | |
<div class="flex justify-between items-start mb=2"> | |
<h3 class="text-xl font-semibold">E-commerce Platform</h3> | |
<span class="text-xs px=2 py=1 bg-blue-100 text-blue-800 rounded-full">2022</span> | |
</div> | |
<p class="text-gray-600 mb=4"> | |
A full-featured e-commerce platform with payment integration, inventory management, and analytics. | |
</p> | |
<div class="flex flex-wrap gap=2 mb=4"> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">Next.js</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">Stripe</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">MongoDB</span> | |
</div> | |
<div class="flex space-x=3"> | |
<a href="#" class="text-blue-600 hover:text-blue-800"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-blue-600 hover:text-blue-800"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Project 3 --> | |
<div class="bg-gray-50 rounded-xl overflow-hidden shadow-sm card-hover"> | |
<div class="h-48 bg-purple-100 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1516321318423-f06f85e504b3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" | |
alt="Task Automation" class="w-full h-full object-cover"> | |
</div> | |
<div class="p=6"> | |
<div class="flex justify-between items-start mb=2"> | |
<h3 class="text-xl font-semibold">Workflow Automation</h3> | |
<span class="text-xs px=2 py=1 bg-purple-100 text-purple-800 rounded-full">2023</span> | |
</div> | |
<p class="text-gray-600 mb=4"> | |
An automation tool that streamlines repetitive tasks across multiple platforms with custom triggers. | |
</p> | |
<div class="flex flex-wrap gap=2 mb=4"> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">Python</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">AWS Lambda</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">Zapier API</span> | |
</div> | |
<div class="flex space-x=3"> | |
<a href="#" class="text-purple-600 hover:text-purple-800"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-purple-600 hover:text-purple-800"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<!-- Project 4 --> | |
<div class="bg-gray-50 rounded-xl overflow-hidden shadow-sm card-hover"> | |
<div class="h-48 bg-green-100 overflow-hidden"> | |
<img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" | |
alt="Health App" class="w-full h-full object-cover"> | |
</div> | |
<div class="p=6"> | |
<div class="flex justify-between items-start mb=2"> | |
<h3 class="text-xl font-semibold">Health Tracker App</h3> | |
<span class="text-xs px=2 py=1 bg-green-100 text-green-800 rounded-full">2021</span> | |
</div> | |
<p class="text-gray-600 mb=4"> | |
A mobile application that tracks fitness metrics, nutrition, and provides personalized recommendations. | |
</p> | |
<div class="flex flex-wrap gap=2 mb=4"> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">React Native</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">Firebase</span> | |
<span class="text-xs px=2 py=1 bg-gray-200 text-gray-700 rounded-full">HealthKit</span> | |
</div> | |
<div class="flex space-x=3"> | |
<a href="#" class="text-green-600 hover:text-green-800"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-green-600 hover:text-green-800"> | |
<i class="fas fa-external-link-alt"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="text-center mt=12"> | |
<a href="#" class="inline-flex items-center px=6 py=3 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition"> | |
<span>View All Projects</span> | |
<i class="fas fa-arrow-right ml=2"></i> | |
</a> | |
</div> | |
</div> | |
</section> | |
<!-- Contact Section --> | |
<section id="contact" class="py=20 bg-gray-50"> | |
<div class="max-w-6xl mx-auto px=4 sm:px=6 lg:px=8"> | |
<h2 class="text-3xl font-bold text-center mb=12 gradient-text">Get In Touch</h2> | |
<div class="grid md:grid-cols-2 gap=12"> | |
<div> | |
<h3 class="text-xl font-semibold mb=4">Let's talk about your project</h3> | |
<p class="text-gray-600 mb=8"> | |
I'm currently available for freelance work and open to new opportunities. | |
Whether you have a question or just want to say hi, I'll try my best to get back to you! | |
</p> | |
<div class="space-y=4"> | |
<div class="flex items-center"> | |
<div class="w-10 h-10 bg-indigo-100 rounded-full flex items-center justify-center text-indigo-600 mr=4"> | |
<i class="fas fa-envelope"></i> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500">Email me at</p> | |
<a href="mailto:[email protected]" class="font-medium hover:text-indigo-600">[email protected]</a> | |
</div> | |
</div> | |
<div class="flex items-center"> | |
<div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center text-blue-600 mr=4"> | |
<i class="fas fa-phone-alt"></i> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500">Call me at</p> | |
<a href="tel:+1234567890" class="font-medium hover:text-blue-600">+1 (234) 567-890</a> | |
</div> | |
</div> | |
<div class="flex items-center"> | |
<div class="w-10 h-10 bg-purple-100 rounded-full flex items-center justify-center text-purple-600 mr=4"> | |
<i class="fas fa-map-marker-alt"></i> | |
</div> | |
<div> | |
<p class="text-sm text-gray-500">Find me at</p> | |
<p class="font-medium">San Francisco, CA</p> | |
</div> | |
</div> | |
</div> | |
<div class="mt=8"> | |
<h4 class="text-lg font-medium mb=4">Connect with me</h4> | |
<div class="flex space-x=4"> | |
<a href="#" class="w-10 h-10 bg-gray-200 rounded-full flex items-center justify-center text-gray-700 hover:bg-indigo-600 hover:text-white transition"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="w-10 h-10 bg-gray-200 rounded-full flex items-center justify-center text-gray-700 hover:bg-blue-600 hover:text-white transition"> | |
<i class="fab fa-linkedin-in"></i> | |
</a> | |
<a href="#" class="w-10 h-10 bg-gray-200 rounded-full flex items-center justify-center text-gray-700 hover:bg-blue-400 hover:text-white transition"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
<a href="#" class="w-10 h-10 bg-gray-200 rounded-full flex items-center justify-center text-gray-700 hover:bg-red-500 hover:text-white transition"> | |
<i class="fab fa-youtube"></i> | |
</a> | |
</div> | |
</div> | |
</div> | |
<div class="bg-white p=6 rounded-xl shadow-sm"> | |
<h3 class="text-xl font-semibold mb=6">Send me a message</h3> | |
<form> | |
<div class="mb=4"> | |
<label for="name" class="block text-sm font-medium text-gray-700 mb=1">Name</label> | |
<input type="text" id="name" class="w-full px=4 py=2 border border-gray-300 rounded-lg focus:ring=2 focus:ring-indigo-200 focus:border-indigo-500"> | |
</div> | |
<div class="mb=4"> | |
<label for="email" class="block text-sm font-medium text-gray-700 mb=1">Email</label> | |
<input type="email" id="email" class="w-full px=4 py=2 border border-gray-300 rounded-lg focus:ring=2 focus:ring-indigo-200 focus:border-indigo-500"> | |
</div> | |
<div class="mb=4"> | |
<label for="subject" class="block text-sm font-medium text-gray-700 mb=1">Subject</label> | |
<input type="text" id="subject" class="w-full px=4 py=2 border border-gray-300 rounded-lg focus:ring=2 focus:ring-indigo-200 focus:border-indigo-500"> | |
</div> | |
<div class="mb=6"> | |
<label for="message" class="block text-sm font-medium text-gray-700 mb=1">Message</label> | |
<textarea id="message" rows="4" class="w-full px=4 py=2 border border-gray-300 rounded-lg focus:ring=2 focus:ring-indigo-200 focus:border-indigo-500"></textarea> | |
</div> | |
<button type="submit" class="w-full bg-indigo-600 text-white py=3 rounded-lg hover:bg-indigo-700 transition shadow-md"> | |
Send Message | |
</button> | |
</form> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Footer --> | |
<footer class="bg-white py=8 border-t border-gray-200"> | |
<div class="max-w-6xl mx-auto px=4 sm:px=6 lg:px=8"> | |
<div class="flex flex-col md:flex-row justify-between items-center"> | |
<div class="mb=4 md:mb=0"> | |
<span class="text-xl font-bold gradient-text">Kok Wui</span> | |
<p class="text-gray-500 text-sm mt=1">Building digital experiences with code.</p> | |
</div> | |
<div class="flex space-x=6"> | |
<a href="#" class="text-gray-500 hover:text-indigo-600 transition"> | |
<i class="fab fa-github"></i> | |
</a> | |
<a href="#" class="text-gray-500 hover:text-blue-600 transition"> | |
<i class="fab fa-linkedin-in"></i> | |
</a> | |
<a href="#" class="text-gray-500 hover:text-blue-400 transition"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
<a href="#" class="text-gray-500 hover:text-red-500 transition"> | |
<i class="fab fa-youtube"></i> | |
</a> | |
</div> | |
</div> | |
<div class="mt=8 pt=8 border-t border-gray-200 text-center text-sm text-gray=500"> | |
<p>© 2023 Alex Carter. All rights reserved.</p> | |
</div> | |
</div> | |
</footer> | |
<script> | |
// Mobile menu toggle | |
const menuBtn = document.getElementById('menu-btn'); | |
const mobileMenu = document.getElementById('mobile-menu'); | |
menuBtn.addEventListener('click', () => { | |
mobileMenu.classList.toggle('hidden'); | |
}); | |
// Close mobile menu when clicking on a link | |
const mobileLinks = mobileMenu.querySelectorAll('a'); | |
mobileLinks.forEach(link => { | |
link.addEventListener('click', () => { | |
mobileMenu.classList.add('hidden'); | |
}); | |
}); | |
// Smooth scrolling for all links | |
document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
anchor.addEventListener('click', function (e) { | |
e.preventDefault(); | |
const targetId = this.getAttribute('href'); | |
const targetElement = document.querySelector(targetId); | |
if (targetElement) { | |
window.scrollTo({ | |
top: targetElement.offsetTop - 80, | |
behavior: 'smooth' | |
}); | |
} | |
}); | |
}); | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Laikokwei/kokwui-portfolio" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |