A fast, minimalist portfolio website built with Next.js, TypeScript, and Tailwind CSS.
- ⚡ Next.js App Router with React Server Components
- 🎨 Tailwind CSS with custom color palette
- 🌓 Dark mode by default with light mode toggle
- ♿ Accessible - semantic HTML, keyboard navigation, ARIA labels
- 📱 Responsive - mobile-first design
- 🎭 Smooth animations - respects
prefers-reduced-motion - 🔍 SEO optimized - meta tags, OpenGraph, Twitter cards
- 📦 Static export - optimized for GitHub Pages
- Zaffre Blue:
#0ABEFF- Primary accent - Imperial Red:
#f7253a- Secondary accent - Black:
#000500- Dark mode background - White:
#ffffff- Light mode background
- Node.js 18+
- npm
npm installnpm run devOpen http://localhost:3000 to view the site.
npm run buildThis creates a static export in the out/ directory.
This repo is configured to auto-deploy to GitHub Pages via GitHub Actions.
- Workflow:
.github/workflows/deploy.yml - Trigger: Push to
master(ormain) - Build directory:
site/ - Static export output:
site/out/ - Custom domain:
yashsharma.dev(viapublic/CNAME) andpublic/.nojekyll
Deploy steps:
- Merge your changes into
master(ormain). - The "Deploy to GitHub Pages" action will build and publish automatically.
- Your site will be live at https://yashsharma.dev once the job finishes (~1–2 minutes).
- Build locally:
npm run build - Serve or upload the
site/out/directory to a static host of your choice
site/
├── app/
│ ├── layout.tsx # Root layout with theme provider
│ ├── page.tsx # Main single-page app
│ └── globals.css # Global styles + Tailwind
├── components/
│ ├── Navigation.tsx # Floating hamburger menu
│ ├── ThemeProvider.tsx # Theme context provider
│ └── ThemeToggle.tsx # Theme toggle button
├── public/
│ └── avatar.jpeg # Profile image
├── next.config.mjs # Next.js configuration
├── tailwind.config.ts # Tailwind configuration
└── package.json # Dependencies
- Theme toggle works (light/dark)
- Theme persists on reload
- No flash of wrong theme on first load
- Hamburger menu opens/closes smoothly
- Backdrop blur appears when menu is open
- ESC key closes menu
- Keyboard navigation works (Tab, Enter, ESC)
- All links have visible focus states
- Responsive on mobile/tablet/desktop
- Respects
prefers-reduced-motion - Lighthouse score ≥90 on all metrics
- Theme system with dark mode
- Floating navigation menu
- Basic page structure
- Typing animation for tagline
- About section with avatar
- Projects grid with cards
- Contact section
- GitHub Pages deployment workflow
- Blog scaffold (future)
© 2025 Yash Sharma. All rights reserved.