From 83153c314d4200e9839cfbb92838fb42438523b4 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 3 Apr 2026 02:08:38 +0200 Subject: emacs: Add a light theme --- .config/emacs/mango-light-theme.el | 347 +++++++++++++++++++++++++ .config/emacs/mango-theme.el | 507 +++++++++++++++++++++++-------------- 2 files changed, 669 insertions(+), 185 deletions(-) create mode 100644 .config/emacs/mango-light-theme.el (limited to '.config') diff --git a/.config/emacs/mango-light-theme.el b/.config/emacs/mango-light-theme.el new file mode 100644 index 0000000..4cbda4f --- /dev/null +++ b/.config/emacs/mango-light-theme.el @@ -0,0 +1,347 @@ +;;; mango-light-theme.el --- Just your average light theme -*- lexical-binding: t; -*- + +(deftheme mango-light + "Mildly light, light theme. +Your average not-so-light light theme, because none of the other options +were exactly to my liking. It’s about time I had a theme to call my +own.") + +;; Colors are defined as: (GUI-HEX 256-COLOR 16-COLOR) +(defconst mango-light-theme-colors-alist + '(;; (foreground . ("#3B4252" "color-238" "black")) + ;; (background . ("#ECEFF4" "color-255" "white")) + ;; (background-cool . ("#E5E9F0" "color-254" "white")) + ;; (background-dark . ("#FAFBFC" "color-231" "brightwhite")) + ;; (background-faint . ("#D8DEE9" "color-253" "brightwhite")) + ;; (middleground . ("#C8D0E0" "color-252" "brightwhite")) + (disabled . ("#9BA6B5" "color-247" "brightblack")) + (foreground . ("#000000" "color-0" "black")) + (background . ("#ffffff" "color-0" "black")) + (middleground . ("#c4c4c4" "color-0" "black")) + (background-cool . ("#e0e0e0" "color-0" "black")) + ;; TODO: Rename to foreground-light + (background-dark . ("#595959" "color-0" "black")) + (background-faint . ("#e6e6e6" "color-0" "black")) + + (celestial-blue . ("#1B61CE" "color-26" "blue")) + (dark-red . ("#A12027" "color-124" "red")) + (khaki . ("#8A6C23" "color-94" "yellow")) + (lime . ("#358A2A" "color-28" "green")) + (magenta . ("#9A35B3" "color-127" "magenta")) + (pale-azure . ("#0A74B8" "color-31" "cyan")) + (red . ("#D22129" "color-160" "brightred")) + (salmon . ("#D1570B" "color-166" "brightyellow")) + (violet . ("#7A3B9E" "color-97" "magenta"))) + "The color palette used throughout `mango-light-theme'. +Each color is mapped to a list of colors of the form +(GUI-HEX 256-COLOR 16-COLOR) for use in true-color, 256-color, and +16-color modes.") + +(defsubst mango-light-theme-color (name &optional display) + "Get the color value of NAME for the given DISPLAY. +DISPLAY can be 'gui, '256, or '16." + (let ((colors (alist-get name mango-light-theme-colors-alist))) + (pcase display + ('gui (nth 0 colors)) + ('256 (nth 1 colors)) + ('16 (nth 2 colors)) + (_ (nth 0 colors))))) + +(custom-theme-set-faces + 'mango-light + + ;; Standard Stuff + `(default + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'foreground 'gui) + :background ,(mango-light-theme-color 'background 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'foreground '256) + :background ,(mango-light-theme-color 'background '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'foreground '16) + :background ,(mango-light-theme-color 'background '16))))) + `(fringe + ((t (:inherit default)))) + + ;; Lines + `(hl-line + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'background-faint 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'background-faint '256))) + (((type tty)) + (:background ,(mango-light-theme-color 'background-faint '16))))) + `(region + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'middleground '256))) + (((type tty)) + (:background ,(mango-light-theme-color 'middleground '16))))) + `(header-line + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'middleground '256))) + (((type tty)) + (:background ,(mango-light-theme-color 'middleground '16))))) + `(mode-line-active + ((t ( :box ,(mango-light-theme-color 'celestial-blue 'gui) + :inherit header-line)))) + `(mode-line-inactive + ((((type graphic tty) (min-colors 16777216)) + ( :background ,(mango-light-theme-color 'background-cool 'gui) + :box ,(mango-light-theme-color 'background-faint 'gui) + :weight light)) + (((type tty) (min-colors 256)) + ( :background ,(mango-light-theme-color 'background-cool '256) + :box ,(mango-light-theme-color 'background-faint 'gui) + :weight light)) + (((type tty)) + ( :background ,(mango-light-theme-color 'background-cool '16) + :box ,(mango-light-theme-color 'background-faint 'gui) + :weight light)))) + `(window-divider + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'background-cool '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'background-cool '16))))) + `(window-divider-first-pixel + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'background-cool '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'background-cool '16))))) + `(window-divider-last-pixel + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'background-cool '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'background-cool '16))))) + + ;; Line Numbers + `(line-number + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'disabled 'gui) + :background ,(mango-light-theme-color 'background 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'disabled '256) + :background ,(mango-light-theme-color 'background '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'disabled '16) + :background ,(mango-light-theme-color 'background '16))))) + `(line-number-current-line + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'salmon 'gui) + :background ,(mango-light-theme-color 'background 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'salmon '256) + :background ,(mango-light-theme-color 'background '256) :weight bold)) + (((type tty)) + (:foreground ,(mango-light-theme-color 'salmon '16) + :background ,(mango-light-theme-color 'background '16) :weight bold)))) + + ;; Documentation + `(font-lock-comment-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'khaki 'gui) :weight semi-bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'khaki '256) :weight semi-bold)) + (((type tty)) + (:foreground ,(mango-light-theme-color 'khaki '16) :weight semi-bold)))) + `(font-lock-doc-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'disabled 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'disabled '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'disabled '16))))) + + ;; Modeline + `(mm-modeline-overwrite-face ((t (:weight normal)))) + `(mm-modeline-readonly-face ((t (:weight normal)))) + `(mm-modeline-buffer-name-face ((t (:inherit font-lock-constant-face)))) + `(mm-modeline-buffer-modified-face ((t (:inherit shadow)))) + `(mm-modeline-major-mode-name-face ((t (:weight normal)))) + `(mm-modeline-major-mode-symbol-face ((t (:inherit shadow)))) + `(mm-modeline-git-branch-face ((t (:inherit font-lock-constant-face)))) + `(mm-modeline-narrow-face + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'dark-red 'gui) :foreground ,(mango-light-theme-color 'background-dark 'gui) :box ,(mango-light-theme-color 'dark-red 'gui) :weight normal)) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'dark-red '256) :foreground ,(mango-light-theme-color 'background-dark '256) :box ,(mango-light-theme-color 'dark-red '256) :weight normal)) + (((type tty)) + (:background ,(mango-light-theme-color 'dark-red '16) :foreground ,(mango-light-theme-color 'background-dark '16) :box ,(mango-light-theme-color 'dark-red '16) :weight normal)))) + + ;; Core Language + `(font-lock-builtin-face ((t (:inherit font-lock-preprocessor-face)))) + `(font-lock-keyword-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'violet 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'violet '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'violet '16))))) + `(font-lock-type-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'celestial-blue 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'celestial-blue '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'celestial-blue '16))))) + + ;; Function-likes + `(font-lock-function-name-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'khaki 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'khaki '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'khaki '16))))) + `(font-lock-preprocessor-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'magenta 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'magenta '256) :weight bold)) + (((type tty)) + (:foreground ,(mango-light-theme-color 'magenta '16) :weight bold)))) + + ;; Variables + `(font-lock-constant-face ((t (:inherit font-lock-variable-name-face :weight bold)))) + `(font-lock-variable-name-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'pale-azure 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'pale-azure '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'pale-azure '16))))) + + ;; Other literals + `(help-key-binding ((t (:inherit font-lock-constant-face)))) + `(font-lock-string-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'salmon 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'salmon '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'salmon '16))))) + `(font-lock-number-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'salmon 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'salmon '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'salmon '16))))) + + ;; Org Mode + `(org-quote ((t (:inherit org-block :slant italic)))) + `(org-code + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'salmon 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'salmon '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'salmon '16))))) + `(org-verbatim + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'lime 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'lime '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'lime '16))))) + `(org-block + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'background-cool '256))) + (((type tty)) + (:background ,(mango-light-theme-color 'background-cool '16))))) + `(org-hide + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'background 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'background '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'background '16))))) + + ;; Info Page + `(Info-quoted ((t (:inherit default)))) + + ;; Magit + `(magit-diff-context-highlight ((t (:inherit hl-line)))) + `(magit-section-highlight ((t (:inherit hl-line)))) + `(magit-diff-hunk-heading + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'background-cool '256))) + (((type tty)) + (:background ,(mango-light-theme-color 'background-cool '16))))) + `(magit-diff-hunk-heading-highlight + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-light-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-light-theme-color 'middleground '256))) + (((type tty)) + (:background ,(mango-light-theme-color 'middleground '16))))) + `(git-commit-summary + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'khaki 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'khaki '256))) + (((type tty)) + (:foreground ,(mango-light-theme-color 'khaki '16))))) + `(git-commit-overlong-summary + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'background-dark 'gui) + :background ,(mango-light-theme-color 'red 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'background-dark '256) + :background ,(mango-light-theme-color 'red '256) :weight bold)) + (((type tty)) + (:foreground ,(mango-light-theme-color 'background-dark '16) + :background ,(mango-light-theme-color 'red '16) :weight bold)))) + + ;; Vertico + `(vertico-current ((t (:inherit hl-line)))) + + ;; Marginalia + `(mm-diffstat-counter-added ((t (:foreground "green" :weight bold)))) + `(mm-diffstat-counter-removed ((t (:foreground "red" :weight bold)))) + `(marginalia-documentation + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-light-theme-color 'disabled 'gui) :underline nil)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-light-theme-color 'disabled '256) :underline nil)) + (((type tty)) + (:foreground ,(mango-light-theme-color 'disabled '16) :underline nil)))) + + ;; Tempel + `(tempel-default + ((((type graphic tty) (min-colors 16777216)) + (:slant italic :background ,(mango-light-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:slant italic :background ,(mango-light-theme-color 'middleground '256))) + (((type tty)) + (:slant italic :background ,(mango-light-theme-color 'middleground '16))))) + `(tempel-field + ((((type graphic tty) (min-colors 16777216)) + (:slant italic :background ,(mango-light-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:slant italic :background ,(mango-light-theme-color 'middleground '256))) + (((type tty)) + (:slant italic :background ,(mango-light-theme-color 'middleground '16))))) + `(tempel-form + ((((type graphic tty) (min-colors 16777216)) + (:slant italic :background ,(mango-light-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:slant italic :background ,(mango-light-theme-color 'middleground '256))) + (((type tty)) + (:slant italic :background ,(mango-light-theme-color 'middleground '16)))))) + +(provide-theme 'mango-light) diff --git a/.config/emacs/mango-theme.el b/.config/emacs/mango-theme.el index f18f4c0..72a76f9 100644 --- a/.config/emacs/mango-theme.el +++ b/.config/emacs/mango-theme.el @@ -6,189 +6,326 @@ Your average not-so-dark dark theme, because none of the other options were exactly to my liking. It’s about time I had a theme to call my own.") -(defsubst mango-theme--color (name) - "Get the RGB value of the COLOR." - (alist-get name mango-theme-colors-alist)) - -(defmacro mango-theme--generate-set-faces (&rest body) - "A macro to provide a much simpler syntax than what is expected by -`custom-theme-set-faces'. This is possible because I only run Emacs -graphically, so I shouldn’t need to have multiple specs per face. - -\(fn SPEC...)" - (declare (indent 0)) - (let ((ret '('mango custom-theme-set-faces))) - (dolist (spec body) - (add-to-list 'ret `(backquote - ,(list (car spec) `((((type graphic)) - ,(cdr spec))))))) - (reverse ret))) - (defconst mango-theme-colors-alist - '((foreground . "#C5C8C6") - (background . "#2B303B") - (background-cool . "#363C4A") - (background-dark . "#1D2635") - (background-faint . "#414859") - (middleground . "#4F5561") - (disabled . "#999999") - (pale-azure . "#9CDCFE") - (celestial-blue . "#569CD6") - (violet . "#E57AE5") - (khaki . "#F0E68C") - (lime . "#B8F182") - (dark-red . "#841A11") - (orange . "#F1B282") - (pink . "#ED97F5") - (spanish-red . "#E60026")) - "The color palette used throughout the `mango-theme'.") - -(mango-theme--generate-set-faces - ;; Standard Stuff - (default - :foreground ,(mango-theme--color 'foreground) - :background ,(mango-theme--color 'background)) - (fringe - :inherit default) - - ;; Lines - (hl-line - :background ,(mango-theme--color 'background-faint)) - (region - :background ,(mango-theme--color 'middleground)) - (header-line - :background ,(mango-theme--color 'middleground)) - (mode-line-active - :inherit header-line) - (mode-line-inactive - :background ,(mango-theme--color 'background-cool) - :weight light) - (window-divider - :foreground ,(mango-theme--color 'background-cool)) - (window-divider-first-pixel - :foreground ,(mango-theme--color 'background-cool)) - (window-divider-last-pixel - :foreground ,(mango-theme--color 'background-cool)) - - ;; Line Numbers - (line-number - :foreground ,(mango-theme--color 'background-faint) - :background ,(mango-theme--color 'background)) - (line-number-current-line - :foreground ,(mango-theme--color 'orange) - :background ,(mango-theme--color 'background) - :weight bold) - - ;; Documentation - (font-lock-comment-face - :foreground ,(mango-theme--color 'disabled)) - (font-lock-doc-face - :inherit font-lock-comment-face) - - ;; Modeline - (mm-modeline-overwrite-face - :weight bold) - (mm-modeline-readonly-face - :weight bold) - (mm-modeline-buffer-name-face - :inherit font-lock-constant-face) - (mm-modeline-buffer-modified-face - :inherit shadow) - (mm-modeline-major-mode-name-face - :weight bold) - (mm-modeline-major-mode-symbol-face - :inherit shadow) - (mm-modeline-narrow-face - :background ,(mango-theme--color 'dark-red) - :box ,(mango-theme--color 'dark-red) - :weight bold) - (mm-modeline-git-branch-face - :inherit font-lock-constant-face) - - ;; Core Language - (font-lock-keyword-face - :foreground ,(mango-theme--color 'violet)) - (font-lock-type-face - :foreground ,(mango-theme--color 'celestial-blue)) - (font-lock-builtin-face - :inherit font-lock-preprocessor-face) - - ;; Function-likes - (font-lock-function-name-face - :foreground ,(mango-theme--color 'khaki)) - (font-lock-preprocessor-face - :foreground ,(mango-theme--color 'pink) - :weight bold) - - ;; Variables - (font-lock-variable-name-face - :foreground ,(mango-theme--color 'pale-azure)) - (font-lock-constant-face - :inherit font-lock-variable-name-face - :weight bold) - - ;; Other literals - (font-lock-number-face - :foreground ,(mango-theme--color 'orange)) - (help-key-binding - :inherit font-lock-constant-face) - - ;; Org Mode - (org-code - :foreground ,(mango-theme--color 'orange)) - (org-verbatim - :foreground ,(mango-theme--color 'lime)) - (org-block - :background ,(mango-theme--color 'background-cool)) - (org-hide - :foreground ,(mango-theme--color 'background)) - (org-quote - :inherit org-block - :slant italic) - - ;; Info Page - (Info-quoted - :inherit default) - - ;; Magit - (magit-diff-hunk-heading - :background ,(mango-theme--color 'background-cool)) - (magit-diff-hunk-heading-highlight - :background ,(mango-theme--color 'middleground)) - (magit-diff-context-highlight - :inherit hl-line) - (magit-section-highlight - :inherit hl-line) - - (git-commit-summary - :foreground ,(mango-theme--color 'khaki)) - (git-commit-overlong-summary - :foreground ,(mango-theme--color 'foreground) - :background ,(mango-theme--color 'spanish-red) - :weight bold) - - ;; Vertico - (vertico-current - :inherit hl-line) - - ;; Marginalia - (marginalia-documentation - :foreground ,(mango-theme--color 'disabled) - :underline nil) - (mm-diffstat-counter-added - :foreground "green" - :weight bold) - (mm-diffstat-counter-removed - :foreground "red" - :weight bold) - - ;; Tempel - (tempel-default - :slant italic - :background ,(mango-theme--color 'middleground)) - (tempel-field - :slant italic - :background ,(mango-theme--color 'middleground)) - (tempel-form - :slant italic - :background ,(mango-theme--color 'middleground))) + '((foreground . ("#C5C8C6" "color-251" "white")) + (background . ("#2B303B" "color-236" "black")) + (background-cool . ("#363C4A" "color-237" "black")) + (background-dark . ("#1D2635" "color-234" "black")) + (background-faint . ("#414859" "color-238" "brightblack")) + (middleground . ("#4F5561" "color-239" "brightblack")) + (disabled . ("#999999" "color-246" "brightblack")) + (celestial-blue . ("#569CD6" "color-74" "brightblue")) + (dark-red . ("#841A11" "color-88" "red")) + (khaki . ("#F0E68C" "color-228" "yellow")) + (lime . ("#B8F182" "color-156" "green")) + (magenta . ("#ED97F5" "color-213" "magenta")) + (pale-azure . ("#9CDCFE" "color-117" "cyan")) + (red . ("#E60026" "color-160" "brightred")) + (salmon . ("#F1B282" "color-216" "brightyellow")) + (violet . ("#E57AE5" "color-176" "brightmagenta"))) + "The color palette used throughout `mango-theme'. +Each color is mapped to a list of colors of the form +(GUI-HEX 256-COLOR 16-COLOR) for use in true-color, 256-color, and +16-color modes.") + +(defsubst mango-theme-color (name &optional display) + "Get the color value of NAME for the given DISPLAY. +DISPLAY can be 'gui, '256, or '16." + (let ((colors (alist-get name mango-theme-colors-alist))) + (pcase display + ('gui (nth 0 colors)) + ('256 (nth 1 colors)) + ('16 (nth 2 colors)) + (_ (nth 0 colors))))) + +(custom-theme-set-faces + 'mango + + ;; Standard Stuff + `(default + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'foreground 'gui) + :background ,(mango-theme-color 'background 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'foreground '256) + :background ,(mango-theme-color 'background '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'foreground '16) + :background ,(mango-theme-color 'background '16))))) + `(fringe + ((t (:inherit default)))) + + ;; Lines + `(hl-line + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'background-faint 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'background-faint '256))) + (((type tty)) + (:background ,(mango-theme-color 'background-faint '16))))) + `(region + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'middleground '256))) + (((type tty)) + (:background ,(mango-theme-color 'middleground '16))))) + `(header-line + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'middleground '256))) + (((type tty)) + (:background ,(mango-theme-color 'middleground '16))))) + `(mode-line-active + ((t (:inherit header-line)))) + `(mode-line-inactive + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'background-cool 'gui) :weight light)) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'background-cool '256) :weight light)) + (((type tty)) + (:background ,(mango-theme-color 'background-cool '16) :weight light)))) + `(window-divider + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'background-cool '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'background-cool '16))))) + `(window-divider-first-pixel + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'background-cool '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'background-cool '16))))) + `(window-divider-last-pixel + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'background-cool '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'background-cool '16))))) + + ;; Line Numbers + `(line-number + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'background-faint 'gui) + :background ,(mango-theme-color 'background 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'background-faint '256) + :background ,(mango-theme-color 'background '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'background-faint '16) + :background ,(mango-theme-color 'background '16))))) + `(line-number-current-line + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'salmon 'gui) + :background ,(mango-theme-color 'background 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'salmon '256) + :background ,(mango-theme-color 'background '256) :weight bold)) + (((type tty)) + (:foreground ,(mango-theme-color 'salmon '16) + :background ,(mango-theme-color 'background '16) :weight bold)))) + + ;; Documentation + `(font-lock-comment-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'khaki 'gui) :weight semi-bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'khaki '256) :weight semi-bold)) + (((type tty)) + (:foreground ,(mango-theme-color 'khaki '16) :weight semi-bold)))) + `(font-lock-doc-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'disabled 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'disabled '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'disabled '16))))) + + ;; Modeline + `(mm-modeline-overwrite-face ((t (:weight bold)))) + `(mm-modeline-readonly-face ((t (:weight bold)))) + `(mm-modeline-buffer-name-face ((t (:inherit font-lock-constant-face)))) + `(mm-modeline-buffer-modified-face ((t (:inherit shadow)))) + `(mm-modeline-major-mode-name-face ((t (:weight bold)))) + `(mm-modeline-major-mode-symbol-face ((t (:inherit shadow)))) + `(mm-modeline-git-branch-face ((t (:inherit font-lock-constant-face)))) + `(mm-modeline-narrow-face + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'dark-red 'gui) :box ,(mango-theme-color 'dark-red 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'dark-red '256) :box ,(mango-theme-color 'dark-red '256) :weight bold)) + (((type tty)) + (:background ,(mango-theme-color 'dark-red '16) :box ,(mango-theme-color 'dark-red '16) :weight bold)))) + + ;; Core Language + `(font-lock-builtin-face ((t (:inherit font-lock-preprocessor-face)))) + `(font-lock-keyword-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'violet 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'violet '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'violet '16))))) + `(font-lock-type-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'celestial-blue 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'celestial-blue '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'celestial-blue '16))))) + + ;; Function-likes + `(font-lock-function-name-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'khaki 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'khaki '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'khaki '16))))) + `(font-lock-preprocessor-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'magenta 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'magenta '256) :weight bold)) + (((type tty)) + (:foreground ,(mango-theme-color 'magenta '16) :weight bold)))) + + ;; Variables + `(font-lock-constant-face ((t (:inherit font-lock-variable-name-face :weight bold)))) + `(font-lock-variable-name-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'pale-azure 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'pale-azure '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'pale-azure '16))))) + + ;; Other literals + `(help-key-binding ((t (:inherit font-lock-constant-face)))) + `(font-lock-string-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'salmon 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'salmon '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'salmon '16))))) + `(font-lock-number-face + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'salmon 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'salmon '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'salmon '16))))) + + ;; Org Mode + `(org-quote ((t (:inherit org-block :slant italic)))) + `(org-code + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'salmon 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'salmon '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'salmon '16))))) + `(org-verbatim + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'lime 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'lime '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'lime '16))))) + `(org-block + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'background-cool '256))) + (((type tty)) + (:background ,(mango-theme-color 'background-cool '16))))) + `(org-hide + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'background 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'background '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'background '16))))) + + ;; Info Page + `(Info-quoted ((t (:inherit default)))) + + ;; Magit + `(magit-diff-context-highlight ((t (:inherit hl-line)))) + `(magit-section-highlight ((t (:inherit hl-line)))) + `(magit-diff-hunk-heading + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'background-cool 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'background-cool '256))) + (((type tty)) + (:background ,(mango-theme-color 'background-cool '16))))) + `(magit-diff-hunk-heading-highlight + ((((type graphic tty) (min-colors 16777216)) + (:background ,(mango-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:background ,(mango-theme-color 'middleground '256))) + (((type tty)) + (:background ,(mango-theme-color 'middleground '16))))) + `(git-commit-summary + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'khaki 'gui))) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'khaki '256))) + (((type tty)) + (:foreground ,(mango-theme-color 'khaki '16))))) + `(git-commit-overlong-summary + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'foreground 'gui) + :background ,(mango-theme-color 'red 'gui) :weight bold)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'foreground '256) + :background ,(mango-theme-color 'red '256) :weight bold)) + (((type tty)) + (:foreground ,(mango-theme-color 'foreground '16) + :background ,(mango-theme-color 'red '16) :weight bold)))) + + ;; Vertico + `(vertico-current ((t (:inherit hl-line)))) + + ;; Marginalia + `(mm-diffstat-counter-added ((t (:foreground "green" :weight bold)))) + `(mm-diffstat-counter-removed ((t (:foreground "red" :weight bold)))) + `(marginalia-documentation + ((((type graphic tty) (min-colors 16777216)) + (:foreground ,(mango-theme-color 'disabled 'gui) :underline nil)) + (((type tty) (min-colors 256)) + (:foreground ,(mango-theme-color 'disabled '256) :underline nil)) + (((type tty)) + (:foreground ,(mango-theme-color 'disabled '16) :underline nil)))) + + ;; Tempel + `(tempel-default + ((((type graphic tty) (min-colors 16777216)) + (:slant italic :background ,(mango-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:slant italic :background ,(mango-theme-color 'middleground '256))) + (((type tty)) + (:slant italic :background ,(mango-theme-color 'middleground '16))))) + `(tempel-field + ((((type graphic tty) (min-colors 16777216)) + (:slant italic :background ,(mango-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:slant italic :background ,(mango-theme-color 'middleground '256))) + (((type tty)) + (:slant italic :background ,(mango-theme-color 'middleground '16))))) + `(tempel-form + ((((type graphic tty) (min-colors 16777216)) + (:slant italic :background ,(mango-theme-color 'middleground 'gui))) + (((type tty) (min-colors 256)) + (:slant italic :background ,(mango-theme-color 'middleground '256))) + (((type tty)) + (:slant italic :background ,(mango-theme-color 'middleground '16)))))) + +(provide-theme 'mango) -- cgit v1.2.3