A free and open-source browser extension for customizing the appearance of Google Docs.
- Modern, sleek dark mode
- Normal and midnight variants
- Vibrant light mode
- Customizable accent color
- Adjustable document background (unstable on Chromium browsers)
- Colorful and grayscale document invert (may affect images)
- Toggleable document border
- Accessible settings popup
- Quick toggle button (removable)
- Non-destructive
If enabled, click the button in the bottom-left corner of the screen to instantly enable/disable the extension for the current document.
Pressing this button will only temporarily enable/disable the extension; to properly turn the extension off, use the settings popup. You can hide this toggle button in the settings popup as well.
Install from the Chrome Web Store or Firefox Add-ons.
- Node.js
- npm
- Firefox (optional, for hot-reload testing)
Install dependencies
npm installBuild and watch
npm run devChanges to src/ will automatically rebuild to build/. Changes to webpack.config.cjs require restarting the dev script.
Firefox with hot-reload
npm run firefoxLaunches a temporary Firefox instance with the extension installed. The extension automatically reloads when files in build/ change.
Note: The Firefox profile is temporary and will not persist logins (e.g. docs.google.com) between sessions.
Check formatting and lint
npm run checkThis is also run in the continuous integration GitHub Actions workflow.
Important
Pull requests must pass these checks before being merged!
Build and package
npm run buildThis calls build.sh which creates optimized bundles of CSS and JavaScript, then packages those files in a .zip file within release/.
The version of the extension is set by the top level package.json, which is copied to the extension's manifest.json during the build process.
The version must follow the structure: <MAJOR VER>.<MINOR VER>.<PATCH VER>.
The tag name for a release must follow the structure: v<VERSION>.
Contributions are welcome! Please feel free to submit issues or pull requests.
This project is open-source and available under the GNU GPLv3 License.