This is my take on the Simple Focus Mode Extension which I have created for Chrome.
I just published Simple Focus Mode: Boost Your Productivity with My Chrome Extension https://link.medium.com/iGcsnNTTezb
This is a minimalist Pomodoro Timer extension for Google Chrome called Simple Focus Mode. It helps users improve productivity by breaking their work into focused intervals, separated by short breaks. The extension features an elegant monochromatic design that reduces visual distractions while providing powerful time management tools.
- Complete Pomodoro Cycle: Full 25-5-25-5-25-5-25-15 minute cycles with automatic transitions
- Intelligent Website Blocking: Dynamic blocking during focus sessions only (Facebook, Twitter, Instagram, YouTube, Reddit, TikTok)
- Elegant Minimal Design: Monochromatic interface that reduces visual noise
- Session Tracking: Visual progress indicators and cycle completion tracking
- Dark Mode Support: Seamless theme switching for different working environments
- Pause/Resume Functionality: Full timer control with accurate time tracking
- Keyboard Shortcuts: Efficient control without mouse interaction
- Custom Timer Options: Flexible timing for different work styles (1-120 minutes)
- Browser Tab Updates: Real-time remaining time in tab title
- Download or clone the repository.
- Open Google Chrome and navigate to
chrome://extensions
. - Enable "Developer mode" in the top right corner.
- Click on the "Load unpacked" button and select the downloaded repository folder.
- The Simple Focus Mode extension should now be installed and visible in your extensions list.
- Click on the Simple Focus Mode icon in the Chrome toolbar.
- Click "Start" to begin a complete Pomodoro cycle.
- The extension will automatically cycle through focus sessions and breaks.
- Use the pause/resume controls as needed.
- Click "Custom" to reveal timer options.
- Adjust the duration using the slider (1-120 minutes).
- Click "Start Custom Timer" to begin.
- Spacebar: Start/Pause/Resume timer
- Escape: Stop timer
- C: Toggle custom timer
- D: Toggle dark mode
- Node.js (v14 or higher)
- npm
# Install dependencies
make install
# or manually
npm install
# Run linter with auto-fix
make lint-fix
# Validate manifest and files
make validate
# Build distribution package
make build
# Complete release process
make release
# Development setup
make dev
make install
- Install development dependenciesmake lint
- Run ESLint to check code qualitymake lint-fix
- Run ESLint and fix issues automaticallymake validate
- Validate manifest.json and check filesmake build
- Create distribution ZIP filemake clean
- Remove build artifactsmake release
- Full release process (lint + validate + build)make dev
- Development setup (install + lint-fix)
Before publishing to Chrome Web Store:
make release
This will:
- Install dependencies
- Run ESLint and fix code issues
- Validate manifest.json and required files
- Create a distribution ZIP file in
dist/
simple-focus-chromeExt/
├── manifest.json # Extension manifest
├── popup.html # Main popup interface
├── options.html # Options page
├── rules.json # Website blocking rules
├── clock_alarm.mp3 # Notification sound
├── js/
│ ├── background.js # Background service worker
│ ├── popup.js # Popup interface logic
│ ├── options.js # Options page logic
│ └── content.js # Content script
├── css/
│ ├── popup.css # Popup styling
│ └── options.css # Options page styling
├── icons/ # Extension icons
├── scripts/ # Build and validation scripts
├── Doc/ # Documentation
└── dist/ # Distribution files (generated)
Simple Focus Mode embraces the principle that less is more. The extension features:
- Monochromatic Color Palette: Clean whites, subtle grays, and deep blacks
- Typography-First Design: Clear, readable fonts with optimal spacing
- Minimal Visual Elements: Essential components only, no unnecessary decorations
- Intuitive Interface: Natural workflow that doesn't interrupt your focus
- Distraction-Free Experience: Every element serves a purpose
Feel free to contribute to this project by opening issues or submitting pull requests for improvements or bug fixes.
- Follow ESLint configuration
- Use meaningful variable names
- Add comments for complex logic
- Maintain consistent formatting
Run the full test suite before submitting:
make release
This project is released under the MIT License.
See Doc/Marketing.md for detailed changelog and version history.
If you encounter any issues or have suggestions, please open an issue on the GitHub repository.