This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a React-based personal portfolio website for Manos Minadakis (manosmin.github.io). It's a single-page application showcasing professional experience, skills, projects, and certificates with an interactive Three.js background animation.
npm start- Start development server (React development mode)npm run build- Build production bundlenpm test- Run tests with React Testing Librarynpm run deploy- Deploy to GitHub Pages (runs build first)
- Single Page Application: Built with React 18 and Create React App
- Component-based: Modular components in
src/components/ - Dark Mode: Toggle between light/dark themes with persistent state
- Three.js Integration: Interactive 3D background animation
- EmailJS Integration: Contact form functionality without backend server
App.js- Main application with dark mode state and layout structureHeader.js- Navigation with dark mode toggle and mobile drawerThreeAnimation.js- Three.js 3D cube animation backgroundLettersAnimation.js- Animated text effectsContact.js- Contact form with EmailJS integrationDrawer.js- Mobile navigation drawer
useIsVisible()inApp.js- Intersection Observer hook for scroll-based animations
- Tailwind CSS: Primary styling framework with extensive custom animations
- Custom Animations: Defined in
tailwind.config.js:typewriter,caret- Text typing effectsdrop-in,fly-in-down,fade-in-*- Entrance animationsslide-in*- Sliding transitions
- Responsive Design: Mobile-first with breakpoints at md (768px) and 2xl (1536px)
- Dark Mode: CSS class-based theming with Tailwind's dark variant
Required for EmailJS contact form functionality:
REACT_APP_EMAIL_SERVICE_ID- EmailJS service identifierREACT_APP_EMAIL_TEMPLATE_ID- Email template identifierREACT_APP_EMAIL_USER_ID- EmailJS user/public key
react&react-dom- React frameworkthree- 3D graphics library for background animationemailjs-com- Client-side email sendingreact-icons- Icon library (primarily Ionicons5)typewriter-effect- Text animation effects
tailwindcss- CSS frameworkgh-pages- GitHub Pages deployment- Standard Create React App tooling (react-scripts, testing-library)
The site deploys to GitHub Pages at https://manosmin.github.io/. The build process:
npm run predeploybuilds the projectnpm run deploypublishes the build folder to gh-pages branch
- All components use functional React with hooks
- Animation delays are controlled via CSS custom properties (
--delay) - Dark mode is handled through prop drilling from App component
- Intersection Observer used for scroll-triggered animations
- Mobile responsiveness handled through Tailwind responsive classes