An interactive portfolio website that recreates the experience of macOS desktop environment in your browser.
- Authentic macOS Experience: Fully interactive desktop environment mimicking macOS interface
- Boot Animation: Realistic macOS boot screen on first load
- Draggable Windows: All application windows can be dragged and repositioned
- Multiple Applications:
- Finder: Browse through project files and folders
- Safari: Web browser showcasing projects and links
- Terminal: Interactive terminal experience
- Resume: View professional resume/CV
- Photos: Gallery showcasing images
- Text Editor: View and display text content
- Contact: Get in touch form or information
- Dock: Functional application launcher with hover effects
- Menu Bar: macOS-style navigation bar with system controls
- Smooth Animations: Powered by GSAP for fluid interactions
- React 19 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server (using Rolldown for faster builds)
- Tailwind CSS 4 - Styling
- GSAP - Animations and draggable interactions
- Zustand - State management
- Lucide React - Icon library
- Day.js - Date/time utilities
- Node.js 20+
- pnpm (recommended) or npm
- Clone the repository:
git clone https://github.com/xiaopeng-ye/macos-portfolio.git
cd macos-portfolio- Install dependencies:
pnpm install
# or
npm install- Start the development server:
pnpm dev
# or
npm run dev- Open http://localhost:5173 in your browser
pnpm build
# or
npm run buildThe built files will be in the dist directory.
pnpm preview
# or
npm run previewmacos-portfolio/
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── BootScreen.tsx
│ │ ├── Dock.tsx
│ │ ├── Navbar.tsx
│ │ └── ...
│ ├── windows/ # Application window components
│ │ ├── Finder.tsx
│ │ ├── Safari.tsx
│ │ ├── Terminal.tsx
│ │ └── ...
│ ├── store/ # Zustand state management
│ ├── constants/ # App constants and configurations
│ ├── hoc/ # Higher-order components
│ ├── App.tsx # Main app component
│ └── main.tsx # Application entry point
├── public/ # Static assets
│ ├── icons/ # App and system icons
│ ├── images/ # Wallpapers and images
│ └── files/ # Document files
└── dist/ # Production build output
- Update Resume: Modify the Resume component in
src/windows/Resume.tsx - Add Projects: Update the Finder or Safari components with your projects
- Change Wallpaper: Replace images in
public/images/ - Customize Icons: Update icons in
public/icons/ - Modify Contact Info: Edit the Contact component in
src/windows/Contact.tsx
This project uses Tailwind CSS 4. Global styles are in src/index.css. Component-specific styles use Tailwind utility classes.
- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Optimized with Vite's Rolldown bundler for faster builds
- Lazy loading of window components
- GSAP for hardware-accelerated animations
- React 19's latest performance improvements
MIT License - feel free to use this project for your own portfolio!
- Inspired by macOS design
- Built with modern web technologies
- Icons from Lucide React
Made with ❤️ using React and TypeScript
