A modern, responsive portfolio website built with React, Material-UI, and Vite. Features a clean design with dark mode support, smooth animations, and accessibility-first approach.
- Fully Responsive Design - Optimized for all device sizes (mobile, tablet, desktop)
- Dark Mode Support - Toggle between light and dark themes with persistent preference
- Smooth Animations - Elegant transitions and scroll-based animations
- Accessibility First - WCAG 2.1 AA compliant with keyboard navigation support
- Performance Optimized - Fast loading with lazy loading and code splitting
- SEO Ready - Proper meta tags, semantic HTML, and sitemap
- Hero - Introduction with profile image and call-to-action buttons
- About Me - Personal background and quick facts
- Education - Academic background with timeline
- Skills & Technologies - Technical expertise across full-stack development
- Featured Projects - Showcase of development work with live demos
- Experience - Professional experience and internships
- Contact - Contact form and social links
- Resume - Downloadable PDF resume
- Footer - Site navigation and copyright
- Frontend Framework: React 19.1.1
- Build Tool: Vite 7.1.7
- UI Library: Material-UI (MUI) 7.3.5
- Styling: Emotion (CSS-in-JS)
- Icons: React Icons 5.5.0
- Form Handling: React Hook Form 7.66.0
- Language: JavaScript (ES6+)
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd portfolio- Install dependencies:
npm install- Start the development server:
npm run dev- Open your browser and navigate to:
http://localhost:5173
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
portfolio/
├── public/ # Static assets
│ └── vite.svg
├── src/
│ ├── components/ # React components
│ │ ├── common/ # Reusable components
│ │ ├── layout/ # Layout components
│ │ └── sections/ # Page sections
│ ├── context/ # React Context providers
│ │ └── ThemeContext.jsx
│ ├── data/ # Static data
│ │ ├── education.js
│ │ ├── experience.js
│ │ ├── projects.js
│ │ └── skills.js
│ ├── theme/ # MUI theme configuration
│ │ └── theme.js
│ ├── utils/ # Utility functions
│ │ └── helpers.js
│ ├── App.jsx # Main app component
│ ├── main.jsx # Entry point
│ └── index.css # Global styles
├── index.html # HTML template
├── package.json
├── vite.config.js # Vite configuration
└���─ README.md
Update the following files with your information:
-
Data Files (
src/data/)education.js- Add your educational backgroundexperience.js- Add your work experienceprojects.js- Add your projectsskills.js- Add your technical skills
-
Hero Section (
src/components/sections/Hero.jsx)- Update profile image URL
- Update name and description
-
Contact Information (
src/components/sections/Contact.jsx)- Update email, LinkedIn, GitHub links
Edit src/theme/theme.js to customize colors:
primary: {
main: '#377dff', // Primary blue
// ...
},
secondary: {
main: '#f9b934', // Secondary yellow
// ...
},Replace placeholder images in:
- Hero section profile image
- Project thumbnails in
src/data/projects.js
npm run buildThe optimized files will be in the dist/ directory.
- Push your code to GitHub
- Connect your repository to Netlify
- Set build command:
npm run build - Set publish directory:
dist
npm install -g vercel
vercel- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This portfolio follows WCAG 2.1 Level AA guidelines:
- Semantic HTML5 elements
- Proper heading hierarchy
- Keyboard navigation support
- Focus indicators
- Color contrast ratios
- Alt text for images
- ARIA labels where needed
None at the moment. Please report any issues you find!
This project is open source and available under the MIT License.
Aebrahm Ramos
- Email: aebrahmramos.dev@gmail.com
- LinkedIn: linkedin.com/in/aebrahmramos
- GitHub: github.com/AebrahmRamos
- Material-UI team for the excellent component library
- React Icons for the icon set
- Vite team for the blazing fast build tool
Made with ❤️ by Aebrahm Ramos