Skip to content

SergioSediq/macos-big-sur-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MacOS Big Sur Clone ๐Ÿ

A meticulously crafted macOS desktop clone built out of pure fascination for Apple's elegant UI design. This project replicates the macOS Big Sur experience as closely as possible, including the iconic dynamic dock behavior that Mac users know and love.


๐Ÿง  Author

Member Position Responsibilities
Sergio Sediq Full Stack Developer UI/UX Replication, State Management (Zustand), Dynamic Dock Animation (Framer Motion), Theme System, TypeScript Architecture

โšก Technologies

  • Vite - Lightning-fast build tool
  • React.js - Component-based UI library
  • TypeScript - Type-safe development
  • Zustand - Lightweight state management
  • Framer Motion - Smooth, realistic animations

๐Ÿš€ Features

  • Light and Dark Mode - Seamlessly switch between themes for a personalized experience, just like real macOS
  • Custom Background Colors - Tailor your desktop with various background color options
  • System Color Preferences - Customize accent colors with options like blue, green, orange, and more
  • Dynamic Dock Animation - Realistic magnification effect when hovering over dock items
  • Settings Modal - Full-featured system preferences panel
  • Responsive Design - Adapts to different screen sizes while maintaining the Mac aesthetic

๐Ÿ’ญ The Process

I began this journey by carefully gathering all the necessary assetsโ€”dock icons, wallpapers, and UI elements that capture the essence of macOS.

First, I established the project constants and implemented Zustand for clean, efficient state management. This gave me a solid foundation to build upon.

Next came the navigation bar and system preference color functionalities. I wanted users to feel like they were truly customizing their Mac experience, so I made sure the color switching was smooth and instant.

Then came the most exciting (and challenging) part: the dynamic dock. Getting that iconic Mac dock behavior just rightโ€”where each icon scales and magnifies as your cursor approachesโ€”required careful work with Framer Motion. Each dock item needed to scale smoothly based on cursor proximity, creating that satisfying, realistic effect that Mac users instantly recognize.

Finally, I built the settings modal, allowing users to switch between dark and light modes and change background colors, completing the authentic macOS experience.


๐ŸŽจ Design Philosophy

Every pixel matters when recreating something as refined as macOS. I focused on:

  • Pixel-perfect accuracy - Matching spacing, sizing, and proportions
  • Smooth animations - Natural, physics-based motion
  • Attention to detail - From shadow effects to blur overlays
  • Performance - Maintaining 60fps even with complex animations

๐ŸŽฅ Demo/Preview


๐Ÿšฆ Getting Started

Prerequisites

  • Node.js 16+
  • npm or yarn

Installation

  1. Clone the repository
git clone https://github.com/SergioSediq/macos-bigsur-clone.git
cd macos-bigsur-clone
  1. Install dependencies
npm install
# or
yarn install
  1. Run development server
npm run dev
# or
yarn dev
  1. Open in browser

Navigate to http://localhost:5173 (or the port shown in your console)


๐Ÿ“‚ Project Structure

macos-bigsur-clone/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/       # React components
โ”‚   โ”‚   โ”œโ”€โ”€ Dock/        # Dynamic dock component
โ”‚   โ”‚   โ”œโ”€โ”€ MenuBar/     # Top menu bar
โ”‚   โ”‚   โ””โ”€โ”€ Settings/    # Settings modal
โ”‚   โ”œโ”€โ”€ store/           # Zustand state management
โ”‚   โ”œโ”€โ”€ assets/          # Images and icons
โ”‚   โ”œโ”€โ”€ constants/       # App constants
โ”‚   โ””โ”€โ”€ App.tsx          # Main application
โ”œโ”€โ”€ public/              # Static assets
โ””โ”€โ”€ package.json

๐ŸŽฎ Features Breakdown

Dynamic Dock

The dock uses Framer Motion to create realistic scaling effects:

  • Icons magnify smoothly as cursor approaches
  • Adjacent icons scale proportionally
  • Spring physics for natural motion

Theme System

Complete light/dark mode implementation:

  • Instant theme switching
  • Persistent user preferences
  • Smooth color transitions

Color Customization

System-wide accent color options:

  • Blue, Purple, Pink, Red, Orange, Yellow, Green, Graphite
  • Updates all UI elements consistently

๐Ÿค” How It Can Be Improved

Potential Enhancements

  • Authentic Boot Screen - Add the iconic Apple loading screen with progress bar
  • Functional Apps - Make dock apps actually work:
    • Working calculator with real calculations
    • Functional calendar showing actual dates
    • Notes app with text editing
    • Safari with basic web browsing
  • Window Management - Draggable, resizable application windows
  • Spotlight Search - Cmd+Space search functionality
  • Notification Center - Working notification system
  • Mission Control - Multi-desktop workspace switching
  • Launchpad - Grid view of all applications
  • Persistence - Save user settings and open windows
  • Sound Effects - macOS system sounds for interactions

Technical Improvements

  • Implement actual app functionality
  • Add keyboard shortcuts (Cmd+Q, Cmd+W, etc.)
  • Create draggable windows with minimize/maximize/close
  • Add right-click context menus
  • Implement file system simulation

๐Ÿ› ๏ธ Customization

Change Wallpaper

Add your wallpaper to src/assets/wallpapers/ and update:

// src/constants/wallpapers.ts
export const wallpapers = [
  { id: 1, url: '/wallpapers/your-wallpaper.jpg' },
  // Add more wallpapers
];

Add Dock Icons

Update the dock configuration in src/constants/dock.ts:

export const dockApps = [
  {
    id: 'app-name',
    name: 'App Name',
    icon: '/icons/app-icon.png',
  },
  // Add more apps
];

๐ŸŽฏ Key Challenges Solved

Dynamic Dock Animation

Implementing the magnetic dock effect required:

  • Real-time cursor position tracking
  • Distance-based scaling calculations
  • Smooth spring animations
  • Performance optimization for 60fps

Theme Management

Creating a seamless theme system involved:

  • Global state management with Zustand
  • CSS variable manipulation
  • Persistent storage
  • Instant UI updates

๐Ÿค Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

MIT License - feel free to use this project for learning or personal use!


๐Ÿ™ Acknowledgments

  • Inspired by macOS Big Sur's beautiful design language
  • Built with love for Apple's attention to detail
  • Special thanks to the React and Framer Motion communities

๐Ÿ”— Links


Built with ๐ŸŽ by Sergio Sediq

About

๐Ÿ MacOS Big Sur UI clone for the web built with React, TypeScript, and Styled-Components.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors