A macOS desktop clone. I created this project out of fascination for the Mac/Apple desktop UI and wanted to try to replicate it as closely as possible, even with the dynamic dock behavior.
https://macos-aarxa.netlify.app
Vite
React.js
TypeScript
Zustand
Framer Motion
- Light and Dark Mode: Seamlessly switch between light and dark themes for a personalized experience.
- Custom Background Colors: Tailor your desktop with the ability to change the background color to suit your style.
- System Color Preferences: Customize your system's color scheme with options like blue, green, orange, and more.
I began by gathering all the necessary images for the dock and wallpaper. Then, I established constants and implemented Zustand for state management. Next, I worked on the navigation bar and system preference color functionalities. After that, I tackled the dynamic dock, which was a bit challenging to animate. Each dock item scales slightly when selected, creating a realistic effect. I also created a settings modal, allowing users to switch between dark and light modes and change background colors.
Start by adding an introductory loading screen, like the one you see on a Mac with the progress bar and Apple's logo. To make this project even better, think about making features like the calculator and calendar docks actually work. In other words, try to make your project function just like the real macOS desktop.
![Screenshot 2024-06-12 at 6 11 14 PM](https://private-user-images.githubusercontent.com/113505509/339174294-faa03394-f91c-4098-a270-f78ba19a059c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNzIzMDcsIm5iZiI6MTcyNDI3MjAwNywicGF0aCI6Ii8xMTM1MDU1MDkvMzM5MTc0Mjk0LWZhYTAzMzk0LWY5MWMtNDA5OC1hMjcwLWY3OGJhMTlhMDU5Yy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQyMDI2NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hNjE4MWQwYTIyMDI3Y2NkOTc1ZDY5MWFmNTkwMTlhZGYwOWE0MzZjZTg5MzUxMTAyZTNjYmRjNmUxNjc5OGU2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.YeLIo5eTCK27QDP5cKNq0SHFYcAZch2JYja2AmtpHq4)
![Screenshot 2024-06-12 at 6 08 52 PM](https://private-user-images.githubusercontent.com/113505509/339173931-0e42477a-86a9-4ee6-b85b-4649ee412fa6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQyNzIzMDcsIm5iZiI6MTcyNDI3MjAwNywicGF0aCI6Ii8xMTM1MDU1MDkvMzM5MTczOTMxLTBlNDI0NzdhLTg2YTktNGVlNi1iODViLTQ2NDllZTQxMmZhNi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODIxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgyMVQyMDI2NDdaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mNzUzYjliYTljMjdhNDBmNWY3MjFmNmJkMTRlZGVjZThlYWEzYWVhNTVmMGU0ZTE1M2M3ZmU0ZTViNzE4NDFkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9._fhvTC2XTzxLyRwOiqxXBYdmGohspRQbbEZonU-k1Pg)
To run the project in your local environment, follow these steps:
- Clone the repository to your local machine.
- Navigate to the project directory and run
npm install
oryarn
to install the required dependencies. - Start the project with
npm run dev
oryarn dev
. - Open http://localhost:5173 (or the address displayed in your console) in your web browser to view the application.