Bits of Me - Personal Portfolio
magicherry.github.io
A modern, highly interactive personal portfolio built with React. Evolved from an open-source template, this project has been extensively customized with a focus on fluid animations, glassmorphic design, and a wonderful user experience.
Whether viewed on a desktop or a mobile device, the portfolio adapts seamlessly—featuring dynamic navigation systems, interactive project showcases, and subtle visual feedback that brings the interface to life.
| Dark Mode | Light Mode |
|---|---|
![]() |
![]() |
- Dynamic Theming: Seamless Light and Dark modes that automatically sync with system preferences, featuring smooth transitions and tailored glassmorphic effects for both themes.
- Bilingual Experience: Built-in Chinese and English switching with automatic browser-language detection and temporary manual override support.
- Responsive & Polished: Mobile-first design with glassmorphic visuals, subtle blurs, and a clean contemporary aesthetic.
- Advanced Navigation System: Floating glassmorphic top pill navigation on desktop, with an optional side panel and an app-like bottom navigation bar on mobile.
- Interactive UI/UX: Custom mouse glow effects, scroll-triggered fade-in animations, and an interactive particle background powered by
@tsparticles/react.
- Modern Tech Stack: Built with React 19, React Router v6, and Bootstrap 5.
- Project Showcase: Redesigned Projects section with tag filtering and flexible List/Grid layout toggles.
- Professional Tracks: Dedicated experience timeline using
react-vertical-timeline-component. - Integrated Resume: Built-in PDF viewer using
react-pdf, with separate Chinese and English resume files. - GitHub Integration: Live GitHub contribution calendar visualization.
Clone down this repository. You will need these tools installed:
git(for cloning)node20.16+ or 22.3+ andnpm(bundled with Node)- Optional:
nvmfor managing Node versions - Optional:
vercelCLI if you plan to deploy with Vercel
Recommended: use Node
20.16+to avoid engine warnings fromreact-pdf/pdfjs-dist.
Install dependencies and start the development server:
npm install
npm startRuns the app in the development mode.
Open http://localhost:3001 to view it in the browser.
The page will reload if you make edits.
Open the project folder and navigate to /src/components/.
Each section is modularized for clarity, making it easy to adjust structure, visuals, copy, or interactions as the portfolio evolves.
- Data Customization: Update your personal information, projects, and experiences in the respective data files (e.g.,
src/components/Projects/ProjectData.jsandsrc/components/Experiences/ExperienceData.js). - Localization: Adjust language behavior in
src/context/LanguageContext.jsand update bilingual copy directly in the related components. - Assets: Replace images in the
src/Assets/directory. - Resume: Replace
src/Assets/cv/Yuting_Zhou_CV.pdfandsrc/Assets/cv/Yuting_Zhou_CV_zh.pdfwith your own PDF resumes.
Grateful to the open-source community and the following projects for inspiration and building blocks:
- React
- Bootstrap
- React-Bootstrap
- React Icons
- Vercel
- Contributors of the original portfolio template by Soumyajit

