A modern, responsive portfolio website built with Next.js 14, Tailwind CSS, and Framer Motion. Features a unique dark navy theme with purple-teal gradient accents, smooth animations, and innovative layouts.
- Modern Design: Dark navy background with purple-teal gradient theme
- Unique Layouts: Circular skill arrangement, asymmetric project cards, timeline experience
- Advanced Animations: Mouse tracking, particle effects, smooth transitions using Framer Motion
- Responsive: Mobile-first design with perfect scaling across all devices
- Performance: Optimized Next.js 14 with fast loading and smooth interactions
- Accessibility: ARIA labels, keyboard navigation, screen reader support
- SEO Optimized: Meta tags, structured data, and social media optimization
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS with custom color palette
- Animations: Framer Motion
- Icons: Lucide React
- Typography: Inter, Poppins, Space Grotesk fonts
- Language: TypeScript
achal-portfolio/
βββ app/
β βββ globals.css # Global styles and custom animations
β βββ layout.tsx # Root layout with SEO optimization
β βββ page.tsx # Main page component
βββ components/
β βββ Navigation.tsx # Sticky navigation with smooth scroll
β βββ HeroSection.tsx # Interactive hero with particle animations
β βββ SkillsSection.tsx # Circular skill grid with hover effects
β βββ ProjectsSection.tsx # Asymmetric project cards
β βββ ExperienceSection.tsx # Timeline-based experience
β βββ ContactSection.tsx # Contact form with validation
βββ public/
β βββ Achal_Jain_Resume.pdf # Resume file for download
βββ package.json # Dependencies and scripts
βββ tailwind.config.js # Custom Tailwind configuration
βββ tsconfig.json # TypeScript configuration
βββ next.config.js # Next.js configuration
βββ postcss.config.js # PostCSS configuration
- Node.js 18 or higher
- npm or yarn package manager
- VS Code (recommended)
-
Extract the project files
# Extract the zip file to your desired location # Navigate to the project directory cd achal-portfolio
-
Install dependencies
npm install # or yarn install -
Add your resume
- Place your resume PDF file in the
public/folder - Name it
Achal_Jain_Resume.pdf(or update the filename in components)
- Place your resume PDF file in the
-
Start development server
npm run dev # or yarn dev -
Open your browser
- Visit
http://localhost:3000 - Your portfolio should load with full animations and styling
- Visit
Edit tailwind.config.js to change the color scheme:
colors: {
// Custom your colors here
purple: { /* your purple shades */ },
teal: { /* your teal shades */ },
navy: { /* your navy shades */ },
}Update the following files with your information:
components/HeroSection.tsx- Name, title, taglinecomponents/SkillsSection.tsx- Skills and technologiescomponents/ProjectsSection.tsx- Project details and linkscomponents/ExperienceSection.tsx- Work experience and educationcomponents/ContactSection.tsx- Contact information and social links
Change fonts in app/layout.tsx:
import { YourFont } from 'next/font/google'The portfolio is fully responsive with breakpoints:
- Mobile: < 640px
- Tablet: 640px - 1024px
- Desktop: > 1024px
- Push your code to GitHub
- Connect your repository to Vercel
- Deploy automatically with zero configuration
- Build the project:
npm run build
- Export static files:
npm run start
The portfolio includes several custom animations:
- Hero: Mouse-tracking gradient orb and floating particles
- Skills: Staggered reveal with hover scaling
- Projects: Card hover effects with glow and lift
- Experience: Timeline progression animation
- Contact: Form validation with smooth transitions
npm run dev- Start development servernpm run build- Create production buildnpm run start- Start production servernpm run lint- Run ESLint for code quality
This project is open source and available under the MIT License.
Feel free to fork this project and customize it for your own portfolio. If you make improvements, pull requests are welcome!
If you need help setting up or customizing this portfolio:
- Check the documentation above
- Review the code comments in each component
- Open an issue on GitHub
Built with β€οΈ using Next.js, Tailwind CSS, and Framer Motion