From c1274e851abb4b8a80dca0131038e23223a6eb85 Mon Sep 17 00:00:00 2001
From: Ajay Bura <32841439+ajbura@users.noreply.github.com>
Date: Mon, 25 Aug 2025 18:49:14 +0530
Subject: [PATCH] Add option for monochrome mode (#2464)
---
src/app/features/settings/general/General.tsx | 8 ++++++++
src/app/pages/ThemeManager.tsx | 11 ++++++++++-
src/app/state/settings.ts | 2 ++
3 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/src/app/features/settings/general/General.tsx b/src/app/features/settings/general/General.tsx
index ed11ec4d..b861a060 100644
--- a/src/app/features/settings/general/General.tsx
+++ b/src/app/features/settings/general/General.tsx
@@ -305,6 +305,7 @@ function PageZoomInput() {
function Appearance() {
const [systemTheme, setSystemTheme] = useSetting(settingsAtom, 'useSystemTheme');
+ const [monochromeMode, setMonochromeMode] = useSetting(settingsAtom, 'monochromeMode');
const [twitterEmoji, setTwitterEmoji] = useSetting(settingsAtom, 'twitterEmoji');
return (
@@ -332,6 +333,13 @@ function Appearance() {
/>
+
+ }
+ />
+
+
{
document.body.className = '';
document.body.classList.add(configClass, varsClass);
document.body.classList.add(...activeTheme.classNames);
- }, [activeTheme]);
+
+ if (monochromeMode) {
+ document.body.style.filter = 'grayscale(1)';
+ } else {
+ document.body.style.filter = '';
+ }
+ }, [activeTheme, monochromeMode]);
return {children};
}
diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts
index 15bf9a14..31ee6ccb 100644
--- a/src/app/state/settings.ts
+++ b/src/app/state/settings.ts
@@ -14,6 +14,7 @@ export interface Settings {
useSystemTheme: boolean;
lightThemeId?: string;
darkThemeId?: string;
+ monochromeMode?: boolean;
isMarkdown: boolean;
editorToolbar: boolean;
twitterEmoji: boolean;
@@ -47,6 +48,7 @@ const defaultSettings: Settings = {
useSystemTheme: true,
lightThemeId: undefined,
darkThemeId: undefined,
+ monochromeMode: false,
isMarkdown: true,
editorToolbar: false,
twitterEmoji: false,