A modern, responsive portfolio website built with React and Vite, featuring beautiful space-themed animations and a dynamic light/dark theme system.
- Responsive Design: Works seamlessly across all devices
- Modern Interface: Clean, professional layout with space aesthetics
- Smooth Animations: Dynamic background effects with stars and meteors
- Interactive Elements: Hover effects and smooth transitions
- Dual Theme Support: Light and dark modes with independent styling
- Dynamic Background: Separate animated backgrounds for each theme
- Dark Theme: Classic white stars and meteors
- Light Theme: Colorful stars (7 colors) and meteors (5 colors)
- Persistent Theme: Saves user preference in localStorage
- Instant Switching: Reactive theme changes without page reload
- Vite Build Tool: Lightning-fast development and optimized production builds
- Modern React: Built with React 19 and modern hooks
- Optimized Animations: CSS keyframes for smooth, performant animations
- Lazy Loading: Efficient resource loading
- Hero Section: Eye-catching introduction with animated background
- About Me: Personal introduction and background
- Skills Section: Technical skills and expertise
- Projects: Portfolio projects with detailed modals
- Contact Section: Professional contact information
- Resume Viewer: Integrated PDF resume display
- React 19: Latest React with modern features
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Lucide React: Modern icon library
- CSS Custom Properties: Dynamic theming system
- CSS Keyframes: Smooth animations for stars and meteors
- Tailwind Utilities: Custom utility classes for consistent styling
- Responsive Design: Mobile-first approach
- ESLint: Code linting and formatting
- Git: Version control
- Modern JavaScript: ES6+ features
- Node.js (v18 or higher)
- npm or yarn
-
Clone the repository
git clone https://github.com/Achlys2004/Portfolio.git cd Portfolio -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open in browser
http://localhost:5173
npm run buildnpm run previewsrc/
βββ Components/ # React components
β βββ AboutMe.jsx # About section
β βββ ContactSection.jsx # Contact information
β βββ HeroSection.jsx # Hero/landing section
β βββ Navbar.jsx # Navigation component
β βββ ProjectSection.jsx # Projects showcase
β βββ SkillsSection.jsx # Skills display
β βββ StarBackground.jsx # Animated background
β βββ ThemeToggle.jsx # Theme switcher
β βββ ...
βββ Pages/ # Page components
β βββ Home.jsx # Main page
β βββ NotFound.jsx # 404 page
βββ Files/ # Static assets
β βββ *.pdf # Resume files
βββ lib/ # Utility functions
βββ assets/ # Images and icons
βββ index.css # Global styles
βββ main.jsx # App entry point
The portfolio features a sophisticated dual-theme system:
- Independent Backgrounds: Each theme has completely separate star and meteor animations
- Reactive Switching: Uses MutationObserver to detect theme changes instantly
- Conditional Rendering: JavaScript-based theme detection for reliable functionality
- Stars: Gentle pulsing animation with random timing
- Meteors: Diagonal movement across screen with staggered appearance
- Colors: Light theme features vibrant colors (Blue, Purple, Pink, Cyan, Emerald, Amber, Red)
- Performance: CSS-based animations for optimal performance
- Modal System: Detailed project views with descriptions
- GitHub Integration: Direct links to source code
- Technology Tags: Clear tech stack indication
- Responsive Images: Optimized for all screen sizes
Theme colors can be customized in src/index.css:
:root {
--background: 210 40% 98%;
--foreground: 222 47% 11%;
--primary: 250 47% 60%;
/* ... */
}Animation speeds and effects can be modified in the CSS keyframes:
@keyframes meteor {
/* Customize meteor movement */
}
@keyframes pulse-subtle {
/* Customize star pulsing */
}Update personal information in the respective component files:
HeroSection.jsx- Name and titleAboutMe.jsx- Personal descriptionSkillsSection.jsx- Technical skillsProjectSection.jsx- Portfolio projects
The portfolio is fully responsive with breakpoints for:
- Mobile: 320px - 768px
- Tablet: 768px - 1024px
- Desktop: 1024px+
This project is open source and available under the MIT License.
Aathil Nishad
- GitHub: @Achlys2004