branch: externals/standard-themes
commit 7e406fe6034dd4ce89cc0881300d41160d244d5f
Author: Elías Gabriel Pérez <[email protected]>
Commit: Elías Gabriel Pérez <[email protected]>

    Add standard-wombat and standard-adwaita themes.
    
    These themes are counterparts to the wombat.el and adwaita.el themes
    that are included in Emacs.
---
 standard-adwaita.el | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++
 standard-themes.el  |   8 ++-
 standard-wombat.el  | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 342 insertions(+), 3 deletions(-)

diff --git a/standard-adwaita.el b/standard-adwaita.el
new file mode 100644
index 0000000000..7fe1053ef3
--- /dev/null
+++ b/standard-adwaita.el
@@ -0,0 +1,167 @@
+;;; standard-adwaita.el --- Like the built-in adwaita theme, but more 
consistent  -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2026 Free Software Foundation, Inc.
+
+;; Author: Elijah Gabe Pérez <[email protected]>
+;; Keywords: faces, theme, accessibility
+
+;; This file is NOT part of GNU Emacs.
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; TODO:
+
+;;; Code:
+
+(require 'standard-themes)
+
+(defcustom standard-adwaita-palette-overrides nil
+  "Overrides for `adwaita-palette'."
+  :type '(repeat (list symbol (choice symbol string)))
+  :group 'adwaita-theme)
+
+(defconst standard-adwaita-palette
+  (modus-themes-generate-palette
+   `((bg-main "#EDEDED")
+     (fg-main "#2E3436")
+     (red "#c01c28")
+     (green "#3a944a")
+     (yellow "#c88800")
+     (blue "#3584e4")
+     (magenta "#9841bb")
+     (cyan "#2190a4")
+
+     (bg-tab-bar "#eeeeec")
+     (bg-tab-other "#ffffff")
+
+     (cursor "#00BBFF")
+     (border "#EDEDED")
+     (fringe "#E6E6E6")
+
+     (bg-mode-line-active "white")
+     (fg-mode-line-active "#2E3436")
+     (bg-mode-line-inactive "white")
+     (fg-mode-line-inactive "#C6C6C6")
+
+     (fg-prompt "#0084C8")
+
+     (bg-hl-line "#D9E2EF")
+     (bg-region "#C2D5E9")
+
+     (info "#4E9A06")
+     (warning "#CE5C00")
+     (err "#B50000")
+     (builtin "#A020F0")
+     (constant "#F5666D")
+     (comment "#204A87")
+     (fnname "#00578E")
+     (keyword "#A52A2A")
+     (string "#4E9A06")
+     (type "#2F8B58")
+     (variable "#0084C8")
+     (warning "#F5666D")
+
+     (fg-link "#0066CC")
+     (fg-link-visited "#6799CC")
+
+     (bg-mark-select "#4A90D9")
+     (fg-mark-select "white")
+     (bg-search-lazy "#77A4DD")
+     (fg-search-lazy "white")
+     (bg-hover "#4A90D9")
+
+     (bg-search-current "#77A4DD")
+     (fg-search-current "white")
+
+     (fg-added "#4E9A06")
+     (fg-removed "#F5666D")
+     (bg-added "#eeffee")
+     (bg-removed "#ffeeee")
+
+     (mail-subject   "#FF7092")
+     (mail-cite-0    "#00578E")
+     (mail-cite-1    "#0084C8"))
+   'cool
+   nil
+   (append
+    '((fg-region unspecified)
+      (bg-link unspecified)
+      (bg-link-visited unspecified)
+      (bg-line-number-inactive unspecified)
+      (bg-line-number-active bg-hl-line)
+      (mail-recipient mail-subject))
+    standard-themes-common-palette-mappings)))
+
+(defvar standard-adwaita-custom-faces
+  `(`(dired-header ((,c (:weight bold :foreground "#0084C8"))))
+    ;; `(widget-button ((,c (:weight bold :foreground "#0084C8"))))
+    ;; `(success ((,c (:weight bold :foreground "#4E9A06"))))
+
+    ;; `(highlight ((,c (:foreground "white" :background "#4A90D9"))))
+
+    `(erc-action-face ((,c (:foreground "#F5666D"))))
+    `(erc-button ((,c (:foreground "#A8799C"))))
+    `(erc-current-nick-face ((,c (:weight bold :foreground "#FF7092"))))
+    `(erc-error-face ((,c (:foreground "#F5666D" :weight bold))))
+    `(erc-input-face ((,c (:foreground "black"))))
+    `(erc-keyword-face ((,c (:foreground "#F5666D"))))
+    `(erc-my-nick-face ((,c (:weight bold :foreground "#FF8CA7"))))
+    `(erc-nick-default-face ((,c (:weight bold :foreground "#0084C8"))))
+    `(erc-notice-face ((,c (:foreground "#0084C8"))))
+    `(erc-prompt-face ((,c (:foreground "black"))))
+    `(erc-timestamp-face ((,c (:foreground ,"#4CB64A"))))
+
+    `(magit-log-sha1 ((,c (:foreground "#FF7092"))))
+    `(magit-log-head-label-local ((,c (:foreground "#4F78B5"))))
+    `(magit-log-head-label-remote ((,c (:foreground ,"#4CB64A"))))
+    `(magit-branch ((,c (:weight bold :foreground "#0084C8"))))
+    `(magit-section-title ((,c (:weight bold :foreground "#00578E"))))
+    `(magit-item-highlight ((,c (:background "#FEFFBF"))))
+    `(magit-diff-add ((,c (:weight bold :foreground "#4CB64A"))))
+    `(magit-diff-del ((,c (:bold nil :foreground "#F5666D"))))
+
+    `(gnus-group-mail-1-empty ((,c (:foreground "#00578E"))))
+    `(gnus-group-mail-1 ((,c (:weight bold :foreground "#4F78B5"))))
+    `(gnus-group-mail-3-empty ((,c (:foreground "#00578E"))))
+    `(gnus-group-mail-3 ((,c (:weight bold :foreground "#9CBB43"))))
+    `(gnus-group-news-3-empty ((,c (:foreground "#00578E"))))
+    `(gnus-group-news-3 ((,c (:weight bold :foreground "#9CBB43"))))
+    `(gnus-header-name ((,c (:weight bold :foreground "#0084C8"))))
+    `(gnus-header-subject ((,c (:weight bold :foreground "#FF7092"))))
+    `(gnus-header-content ((,c (:foreground "#FF7092"))))
+    `(gnus-button ((,c (:weight bold :foreground "#00578E"))))
+    `(gnus-cite-1 ((,c (:foreground "#00578E"))))
+    `(gnus-cite-2 ((,c (:foreground "#0084C8"))))
+
+    `(image-dired-thumb-mark ((,c (:background "#CE5C00"))))
+    `(image-dired-thumb-flagged ((,c (:background "#B50000"))))
+
+    ;; `(diff-added ((,c (:weight bold :foreground "#4E9A06"))))
+    ;; `(diff-removed ((,c (:weight bold :foreground "#F5666D"))))
+    ))
+
+(modus-themes-theme
+ 'standard-adwaita
+ 'standard-themes
+ "Like the built-in adwaita theme, but more consistent"
+ 'light
+ 'modus-themes-operandi-palette
+ 'standard-adwaita-palette
+ 'standard-adwaita-palette-overrides
+ 'standard-adwaita-custom-faces)
+
+(provide 'standard-adwaita)
+;;; standard-adwaita.el ends here
diff --git a/standard-themes.el b/standard-themes.el
index 89041ad7c9..93ea516ac1 100644
--- a/standard-themes.el
+++ b/standard-themes.el
@@ -60,11 +60,11 @@ if you prefer to blend Standard and Modus into a single 
group, enable
   :tag "Standard Themes")
 
 (defconst standard-themes-light-themes
-  '(standard-light standard-light-tinted)
+  '(standard-light standard-light-tinted standard-adwaita)
   "List of symbols with the light Standard themes.")
 
 (defconst standard-themes-dark-themes
-  '(standard-dark standard-dark-tinted)
+  '(standard-dark standard-dark-tinted standard-wombat)
   "List of symbols with the dark Standard themes.")
 
 (defvaralias 'standard-themes-collection 'standard-themes-items
@@ -183,7 +183,9 @@ if you prefer to blend Standard and Modus into a single 
group, enable
   '((standard-light standard-themes "Like the unthemed light Emacs, but more 
consistent." light standard-light-palette nil standard-light-palette-overrides)
     (standard-light-tinted standard-themes "Light ochre variant of the 
standard-light theme." light standard-light-tinted-palette nil 
standard-light-tinted-palette-overrides)
     (standard-dark standard-themes "Like the unthemed dark Emacs, but more 
consistent." dark standard-dark-palette nil standard-dark-palette-overrides)
-    (standard-dark-tinted standard-themes "Night sky variant of standard-dark 
theme." dark standard-dark-tinted-palette nil 
standard-dark-tinted-palette-overrides)))
+    (standard-dark-tinted standard-themes "Night sky variant of standard-dark 
theme." dark standard-dark-tinted-palette nil 
standard-dark-tinted-palette-overrides)
+    (standard-adwaita standard-themes "Like the built-in adwaita theme, but 
more consistent" light standard-adwaita-palette nil 
standard-adwaita-palette-overrides)
+    (standard-wombat standard-themes "Like the built-in adwaita theme, but 
more consistent" dark standard-wombat-palette nil 
standard-wombat-palette-overrides)))
 
 (defvar standard-themes--declared-p nil)
 
diff --git a/standard-wombat.el b/standard-wombat.el
new file mode 100644
index 0000000000..e798dd03b2
--- /dev/null
+++ b/standard-wombat.el
@@ -0,0 +1,170 @@
+;;; standard-wombat.el --- Like the built-in wombat theme, but more consistent 
 -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2026 Free Software Foundation, Inc.
+
+;; Author: Elijah Gabe Pérez <[email protected]>
+;; Keywords: faces, theme, accessibility
+
+;; This file is NOT part of GNU Emacs.
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; TODO:
+
+;;; Code:
+
+(require 'standard-themes)
+
+(defconst standard-wombat-palette
+  (modus-themes-generate-palette
+   '((bg-main "#242424")
+     (fg-main "#f6f3e8")
+     (fg-dim "#99968b") ; (?)
+     (red "#e5786d") ; or "#b85149"
+     (green "#92a65e") ; or "#cae982" or "#95e454"
+     (yellow "#ddaa6f") ; or "#edc4a3" or "#ccaa8f"
+     (yellow-faint "#ccaa8f") ; (?)
+     (blue "#8ac6f2") ; or "#5b98c2" or "#333366"
+     (magenta "#a6a1de") ; or "#64619a"
+     (cyan "#70cecc") ; or "#3f9f9e"
+
+     (cursor "#656565")
+     (fringe "#303030")
+     (border "#303030")
+
+     (bg-search-current "#343434")
+     (fg-search-current "#857b6f")
+
+     (bg-hover "#333333")
+     (bg-hover-secondary "#333366")
+     (bg-hl-line "#404040")
+     (bg-region "#4f4f4f")
+
+     (bg-mode-line-active "#444444")
+     (fg-mode-line-active "#f6f3e8")
+     (fg-mode-line-inactive "#857b6f")
+
+     (bg-tab-bar "#303030")
+
+     (fg-link "#8ac6f2")
+     (fg-link-visited "#e5786d")
+
+     (fg-prompt "#e5786d")
+
+     (comment "#99968b")
+     (constant "#e5786d")
+     (keyword "#8ac6f2")
+     (string "#95e454")
+     (docstring "#cae982")
+     (type "#92a65e")
+     (variable "#cae682")
+     (warning "#ff9900")
+     (info "#95e454")
+
+     (keybind "#ddaa6f")
+
+     (mail-subject "#cae682")
+     (mail-recipient "#95e454")
+     (mail-cite-0 "#99968b")
+     (mail-cite-1 "#92a65e")
+     (mail-cite-2 "#ddaa6f")
+     (mail-cite-3 "#ff9900")
+     (mail-other "#95e454")
+
+     (bg-button-active "#333333")
+     (fg-button-active "#f6f3e8")
+
+     (bg-mark-select "#333366")
+     (bg-search-lazy "#384048")
+     (fg-search-lazy "#a0a8b0"))
+   'warm
+   nil
+   (append
+    '((bg-line-number-inactive unspecified)
+      (bg-line-number-active bg-hl-line)
+      (fg-region unspecified)
+      (bg-link unspecified)
+      (underline-link fg-link)
+      (bg-link-visited unspecified)
+      (underline-link-visited fg-link-visited)
+      (bg-line-number-inactive unspecified)
+      (bg-line-number-active bg-hl-line)
+      (builtin constant)
+      (preprocessor constant)
+      (fnname variable)
+      (fnname-call fnname)
+      (mail-recipient mail-subject)
+      (fg-mark-select fg-main))
+    standard-themes-common-palette-mappings)))
+
+(defcustom standard-wombat-palette-overrides nil
+  "Overrides for `standard-wombat-palette'."
+  :type '(repeat (list symbol (choice symbol string)))
+  :group 'wombat-theme)
+
+;; Extracted from wombat-theme.el,
+;; override some faces which exclusive from wombat-theme.el.
+(defvar standard-wombat-custom-faces
+  `(`(hl-line ((,c (:background ,bg-hl-line :underline (:color ,fg-dim :style 
line :position t)))))
+    `(highlight ((,c (:background "#454545" :foreground "#ffffff" :underline 
t))))
+    `(mode-line ((,c (:inherit modus-themes-ui-variable-pitch
+                               :background ,bg-mode-line-active
+                               :foreground ,fg-mode-line-active
+                               :box nil))))
+    `(mode-line-inactive ((,c (:inherit modus-themes-ui-variable-pitch
+                                        :background ,bg-mode-line-inactive
+                                        :foreground ,fg-mode-line-inactive
+                                        :box nil))))
+    `(homoglyph ((,c (:foreground "#ddaa6f" :weight bold))))
+    `(help-key-binding ((,c (:background "#333333" :foreground "#f6f3e8"))))
+    `(header-line ((,c (:background "#303030" :foreground "#e7f6da"))))
+    `(gnus-group-news-1-low ((,c (:foreground "#95e454"))))
+    `(gnus-group-news-2 ((,c (:weight bold :foreground "#cae682"))))
+    `(gnus-group-news-2-low ((,c (:foreground "#cae682"))))
+    ;; `(gnus-group-news-3 ((,c (:weight bold :foreground "#ccaa8f"))))
+    `(gnus-group-news-3-low ((,c (:foreground "#ccaa8f"))))
+    `(gnus-group-news-4 ((,c (:weight bold :foreground "#99968b"))))
+    `(gnus-group-news-4-low ((,c (:foreground "#99968b"))))
+    `(gnus-group-news-5 ((,c (:weight bold :foreground "#cae682"))))
+    `(gnus-group-news-5-low ((,c (:foreground "#cae682"))))
+    ;; `(gnus-group-news-low ((,c (:foreground "#99968b"))))
+    `(gnus-group-mail-1 ((,c (:weight bold :foreground "#95e454"))))
+    `(gnus-group-mail-1-low ((,c (:foreground "#95e454"))))
+    `(gnus-group-mail-2 ((,c (:weight bold :foreground "#cae682"))))
+    `(gnus-group-mail-2-low ((,c (:foreground "#cae682"))))
+    `(gnus-group-mail-3 ((,c (:weight bold :foreground "#ccaa8f"))))
+    `(gnus-group-mail-3-low ((,c (:foreground "#ccaa8f"))))
+    `(gnus-group-mail-low ((,c (:foreground "#99968b"))))
+    `(gnus-header-content ((,c (:foreground "#8ac6f2"))))
+    ;; `(gnus-header-from ((,c (:weight bold :foreground "#95e454"))))
+    ;; `(gnus-header-subject ((,c (:foreground "#cae682"))))
+    `(gnus-header-name ((,c (:foreground "#8ac6f2"))))
+    `(gnus-header-newsgroups ((,c (:foreground "#cae682"))))
+    `(message-header-name ((,c (:foreground "#8ac6f2" :weight bold))))
+    `(message-separator ((,c (:foreground "#e5786d" :weight bold))))))
+
+(modus-themes-theme
+ 'standard-wombat
+ 'standard-themes
+ "Like the built-in wombat theme, but more consistent."
+ 'dark
+ 'modus-themes-vivendi-palette
+ 'standard-wombat-palette
+ 'standard-wombat-palette-overrides
+ 'standard-wombat-custom-faces)
+
+(provide 'standard-wombat)
+;;; standard-wombat.el ends here

Reply via email to