From 19f35a70b7e453ffbe4651ddf4214dd6f410ae4f Mon Sep 17 00:00:00 2001 From: Tooru Fujisawa Date: Sat, 27 Dec 2025 15:41:03 +0900 Subject: [PATCH 01/33] Apply dark mode to common elements --- res/css/global.css | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/res/css/global.css b/res/css/global.css index 72c99c9064..f28ea9a0d6 100644 --- a/res/css/global.css +++ b/res/css/global.css @@ -2,6 +2,41 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +:root { + --base-foreground-color: #000; + --base-background-color: #fff; + --link-foreground-color: var(--blue-60); + --link-visited-foreground-color: var(--purple-70); + --link-active-foreground-color: var(--red-50); + + background-color: var(--base-background-color); + color: var(--base-foreground-color); +} + +@supports (color-scheme: dark) { + @media (prefers-color-scheme: dark) { + :root { + --base-foreground-color: var(--grey-20); + --base-background-color: var(--ink-90); + --link-foreground-color: var(--blue-40); + --link-visited-foreground-color: var(--purple-40); + --link-active-foreground-color: var(--red-50); + } + } +} + +a { + color: var(--link-foreground-color); +} + +a:visited { + color: var(--link-visited-foreground-color); +} + +a:active { + color: var(--link-active-foreground-color); +} + /** * This class should be used to create a small colored square. It's used * especially for categories and network mime types. From 20da872d5c88949fdc5ed151e336fc3e4fc7b41f Mon Sep 17 00:00:00 2001 From: Tooru Fujisawa Date: Sat, 27 Dec 2025 21:35:13 +0900 Subject: [PATCH 02/33] Apply dark mode to photon components --- res/css/focus.css | 10 ++-- res/css/global.css | 24 ++++++++ res/css/photon/button.css | 68 ++++++++++++++++----- res/css/photon/checkbox.css | 14 ++--- res/css/photon/input.css | 34 ++++++++--- res/css/photon/label.css | 2 +- res/css/photon/message-bar.css | 103 +++++++++++++++++++++++++------- res/css/photon/radio-button.css | 14 ++--- res/img/svg/info-icon-light.svg | 4 ++ res/img/svg/warning-light.svg | 4 ++ 10 files changed, 214 insertions(+), 63 deletions(-) create mode 100644 res/img/svg/info-icon-light.svg create mode 100644 res/img/svg/warning-light.svg diff --git a/res/css/focus.css b/res/css/focus.css index a6291dcff1..3925aa3858 100644 --- a/res/css/focus.css +++ b/res/css/focus.css @@ -18,15 +18,15 @@ input[type='range']:focus-visible, select:focus-visible, button:focus-visible { box-shadow: - 0 0 0 1px var(--blue-50) inset, - 0 0 0 1px var(--blue-50), - 0 0 0 4px var(--blue-50-a30); + 0 0 0 1px var(--focus-border-color) inset, + 0 0 0 1px var(--focus-border-color), + 0 0 0 4px var(--focus-shadow-color); outline: 0; } a:focus-visible { box-shadow: - 0 0 0 2px var(--blue-50), - 0 0 0 6px var(--blue-50-a30); + 0 0 0 2px var(--focus-border-color), + 0 0 0 6px var(--focus-shadow-color); outline: 0; } diff --git a/res/css/global.css b/res/css/global.css index f28ea9a0d6..8433a55153 100644 --- a/res/css/global.css +++ b/res/css/global.css @@ -8,6 +8,18 @@ --link-foreground-color: var(--blue-60); --link-visited-foreground-color: var(--purple-70); --link-active-foreground-color: var(--red-50); + --clickable-foreground-color: var(--grey-90); + --clickable-background-color: var(--grey-90-a10); + --clickable-border-color: var(--grey-90-a30); + --clickable-hover-background-color: var(--grey-90-a20); + --clickable-active-background-color: var(--grey-90-a30); + --clickable-ghost-hover-background-color: var(--grey-90-a10); + --clickable-ghost-active-background-color: var(--grey-90-a20); + --clickable-checked-background-color: var(--blue-60); + --clickable-checked-hover-background-color: var(--blue-70); + --clickable-checked-active-background-color: var(--blue-80); + --focus-border-color: var(--blue-50); + --focus-shadow-color: var(--blue-50-a30); background-color: var(--base-background-color); color: var(--base-foreground-color); @@ -21,6 +33,18 @@ --link-foreground-color: var(--blue-40); --link-visited-foreground-color: var(--purple-40); --link-active-foreground-color: var(--red-50); + --clickable-foreground-color: var(--grey-20); + --clickable-background-color: var(--grey-10-a10); + --clickable-border-color: var(--grey-10-a40); + --clickable-hover-background-color: var(--grey-10-a20); + --clickable-active-background-color: var(--grey-10-a40); + --clickable-ghost-hover-background-color: var(--grey-10-a10); + --clickable-ghost-active-background-color: var(--grey-10-a20); + --clickable-checked-background-color: var(--blue-50); + --clickable-checked-hover-background-color: var(--blue-60); + --clickable-checked-active-background-color: var(--blue-70); + --focus-border-color: var(--blue-40); + --focus-shadow-color: var(--blue-50-a30); } } } diff --git a/res/css/photon/button.css b/res/css/photon/button.css index aeff4be412..14eccf58ea 100644 --- a/res/css/photon/button.css +++ b/res/css/photon/button.css @@ -4,6 +4,15 @@ /* See https://design.firefox.com/photon/components/buttons.html for the spec */ .photon-button { + --internal-primary-foreground-color: #fff; + --internal-primary-background-color: var(--blue-60); + --internal-primary-hover-background-color: var(--blue-70); + --internal-primary-active-background-color: var(--blue-80); + --internal-destructive-foreground-color: #fff; + --internal-destructive-background-color: var(--red-60); + --internal-destructive-hover-background-color: var(--red-70); + --internal-destructive-active-background-color: var(--red-80); + /* These flex and sizing properties aren't necessary when a real