A sleek retro 404 error page inspired by classic macOS desktops. This project features a minimal monospace design with macOS-style title bar controls, interactive color switching, and a clean, responsive UI.
Built with pure HTML, CSS & JavaScript — lightweight, no dependencies, and perfect for modern websites seeking a polished retro touch.
- Retro macOS Design — Authentic title bar with colored control buttons
- Interactive Color Switching — Click the window controls to change background colors dynamically
- Minimal & Clean — Pure monospace typography with grid background pattern
- Fully Responsive — Works seamlessly on desktop, tablet, and mobile devices
- Lightweight — Zero dependencies, ~30KB total size
- Accessibility-Focused — Semantic HTML and keyboard-friendly controls
- Open Source — MIT License
| Desktop | Mobile |
|---|---|
![]() |
![]() |
color-controls.mp4
- Copy
index.html,script.js, andstyle.cssfrom this repository - Rename
index.htmlto404.html - Place 404.html in your web root directory (usually
/public,/www, or/) - Your web server will automatically serve
404.htmlwhen a page is not found - Customize the content as needed
Note: The server must be configured to serve 404.html on 404 errors. Most hosting platforms handle this automatically.
.
├── index.html # Main page structure
├── style.css # Retro macOS-inspired styling
├── script.js # Interactive color switching
├── LICENSE # MIT License
├── README.md # This file
├── CONTRIBUTING.md # Contribution guidelines
└── assets/
└── previews/ # Preview images and videos
├── desktop.png
├── mobile.png
├── featured-and-gallery.png
└── social-media/
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Mobile browsers (iOS Safari, Chrome Mobile)
- First Contentful Paint: < 100ms
- Fully Interactive: < 500ms
- CSS Grid Background: Hardware-accelerated
The 404 page uses:
- macOS-style controls — Red, Yellow, Green color dots as window controls
- Dynamic color switching — CSS custom properties and JavaScript event listeners
- Grid background — CSS linear gradients for the retro grid pattern
- Responsive layout — Flexbox and relative units for all screen sizes
Edit the --bg-color CSS variable in style.js:
changeColor('#2b7fff'); // Default blueAdjust the .window-wrapper max-width in style.css:
max-width: 620px; /* Change this value */Edit the 404 message and description in index.html:
<h1>404</h1>
<p>Page not found</p>MIT License © 2026 Not Found Pages
See LICENSE file for details.
We welcome contributions! See CONTRIBUTING.md for guidelines on how to help.
- Issues — GitHub Issues
- Website — notfoundpages.github.io
- Social Media — @notfoundpages
Made with ❤️ by Not Found Pages

