summaryrefslogtreecommitdiff
path: root/.config/emacs/mango-theme.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/mango-theme.el')
-rw-r--r--.config/emacs/mango-theme.el119
1 files changed, 64 insertions, 55 deletions
diff --git a/.config/emacs/mango-theme.el b/.config/emacs/mango-theme.el
index ff339bc..3771aca 100644
--- a/.config/emacs/mango-theme.el
+++ b/.config/emacs/mango-theme.el
@@ -1,16 +1,19 @@
;;; mango-theme.el --- Just your average dark theme -*- lexical-binding: t; -*-
(deftheme mango
- "Just another dark theme because none of the other options out there were just
-as I would like them. Why try to fix someone elses themes when I make my own?")
+ "Mildly dark, dark theme.
+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.")
-(defun mango-theme--get-color (name)
- "Get the RGB value of the color NAME from ‘mango-theme-palette’"
- (cadr (assq name mango-theme-palette)))
+(defun mango-theme--color (name)
+ "Get the RGB value of the color NAME from `mango-theme-colors-alist'."
+ (declare (pure t) (side-effect-free t))
+ (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
+`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...)"
@@ -20,97 +23,103 @@ graphically, so I shouldn’t need to have multiple specs per face.
(add-to-list 'ret `(backquote ,(list (car spec) `((((type graphic)) ,(cdr spec)))))))
(reverse ret)))
-(defconst mango-theme-palette
- '((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")
- (orange "#F1B282")
- (pink "#ED97F5")
- (spanish-red "#E60026"))
- "The color palette used throughout the ‘mango’ theme.")
+(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")
+ (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--get-color 'foreground)
- :background ,(mango-theme--get-color 'background))
+ :foreground ,(mango-theme--color 'foreground)
+ :background ,(mango-theme--color 'background))
(fringe
:inherit default)
;; Lines
(hl-line
- :background ,(mango-theme--get-color 'background-faint))
+ :background ,(mango-theme--color 'background-faint))
(region
- :background ,(mango-theme--get-color 'middleground))
+ :background ,(mango-theme--color 'middleground))
(header-line
- :background ,(mango-theme--get-color 'middleground))
- (mode-line
+ :background ,(mango-theme--color 'middleground))
+ (mode-line-active
:inherit header-line)
(mode-line-inactive
- :background ,(mango-theme--get-color 'background-cool)
+ :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--get-color 'background-faint)
- :background ,(mango-theme--get-color 'background))
+ :foreground ,(mango-theme--color 'background-faint)
+ :background ,(mango-theme--color 'background))
(line-number-current-line
- :foreground ,(mango-theme--get-color 'orange)
- :background ,(mango-theme--get-color 'background)
+ :foreground ,(mango-theme--color 'orange)
+ :background ,(mango-theme--color 'background)
:weight bold)
;; Documentation
(font-lock-comment-face
- :foreground ,(mango-theme--get-color 'disabled))
+ :foreground ,(mango-theme--color 'disabled))
(font-lock-doc-face
:inherit font-lock-comment-face)
;; Core Language
(font-lock-keyword-face
- :foreground ,(mango-theme--get-color 'violet))
+ :foreground ,(mango-theme--color 'violet))
(font-lock-type-face
- :foreground ,(mango-theme--get-color 'celestial-blue))
+ :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--get-color 'khaki))
+ :foreground ,(mango-theme--color 'khaki))
(font-lock-preprocessor-face
- :foreground ,(mango-theme--get-color 'pink)
+ :foreground ,(mango-theme--color 'pink)
:weight bold)
;; Variables
(font-lock-variable-name-face
- :foreground ,(mango-theme--get-color 'pale-azure))
+ :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--get-color 'orange))
+ :foreground ,(mango-theme--color 'orange))
(help-key-binding
:inherit font-lock-constant-face)
;; Org Mode
(org-code
- :foreground ,(mango-theme--get-color 'orange))
+ :foreground ,(mango-theme--color 'orange))
(org-verbatim
- :foreground ,(mango-theme--get-color 'lime))
+ :foreground ,(mango-theme--color 'lime))
(org-block
- :background ,(mango-theme--get-color 'background-cool))
+ :background ,(mango-theme--color 'background-cool))
(org-hide
- :foreground ,(mango-theme--get-color 'background))
+ :foreground ,(mango-theme--color 'background))
(org-quote
:inherit org-block
:slant italic)
@@ -121,19 +130,19 @@ graphically, so I shouldn’t need to have multiple specs per face.
;; Magit
(magit-diff-hunk-heading
- :background ,(mango-theme--get-color 'background-cool))
+ :background ,(mango-theme--color 'background-cool))
(magit-diff-hunk-heading-highlight
- :background ,(mango-theme--get-color 'middleground))
+ :background ,(mango-theme--color 'middleground))
(magit-diff-context-highlight
:inherit hl-line)
(magit-section-highlight
:inherit hl-line)
(git-commit-summary
- :foreground ,(mango-theme--get-color 'khaki))
+ :foreground ,(mango-theme--color 'khaki))
(git-commit-overlong-summary
- :foreground ,(mango-theme--get-color 'foreground)
- :background ,(mango-theme--get-color 'spanish-red)
+ :foreground ,(mango-theme--color 'foreground)
+ :background ,(mango-theme--color 'spanish-red)
:weight bold)
;; Vertico
@@ -142,16 +151,16 @@ graphically, so I shouldn’t need to have multiple specs per face.
;; Marginalia
(marginalia-documentation
- :foreground ,(mango-theme--get-color 'disabled)
+ :foreground ,(mango-theme--color 'disabled)
:underline nil)
;; Tempel
(tempel-default
:slant italic
- :background ,(mango-theme--get-color 'middleground))
+ :background ,(mango-theme--color 'middleground))
(tempel-field
:slant italic
- :background ,(mango-theme--get-color 'middleground))
+ :background ,(mango-theme--color 'middleground))
(tempel-form
:slant italic
- :background ,(mango-theme--get-color 'middleground)))
+ :background ,(mango-theme--color 'middleground)))