branch: externals/modus-themes
commit 2c85a495cba75b31b9758795a014ba7a6f1c97f1
Author: Protesilaos Stavrou <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>
Push a derived colour only if needed in modus-themes-generate-palette
I want to do the same for the mappings, but I will have to go soon...
---
modus-themes.el | 51 +++++++++++++++++++--------------------------------
1 file changed, 19 insertions(+), 32 deletions(-)
diff --git a/modus-themes.el b/modus-themes.el
index 71e7a33df6..f9a2eec4c9 100644
--- a/modus-themes.el
+++ b/modus-themes.el
@@ -7626,40 +7626,27 @@ With optional MAPPINGS use them instead of trying to
derive new ones."
(eq cool-or-warm-preference 'cool))
((modus-themes-color-is-warm-or-cool-p bg-main
'cool))
(t
- (error "The COOL-OR-WARM-PREFERENCE must be
either `cool' or `warm', not `%S'" cool-or-warm-preference)))))
+ (error "The COOL-OR-WARM-PREFERENCE must be
either `cool' or `warm', not `%S'" cool-or-warm-preference))))
+ (push-derived-value-fn (lambda (name value)
+ (unless (assq name base-colors)
+ (push (list name value) derivatives)))))
;; Base entries
- (push (list 'bg-dim (modus-themes-generate-gradient bg-main 5))
derivatives)
- (push (list 'bg-active (modus-themes-generate-gradient bg-main 10))
derivatives)
- (push (list 'bg-inactive (modus-themes-generate-gradient bg-main 8))
derivatives)
- (push (list 'border (modus-themes-generate-gradient bg-main 20))
derivatives)
- (push (list 'fg-dim (modus-themes-generate-gradient fg-main 20))
derivatives)
- (push
- (list
- 'fg-alt
- (modus-themes-generate-color-warmer-or-cooler
- (modus-themes-generate-gradient fg-main 10)
- 0.8
- cool-or-warm-preference))
- derivatives)
- ;; Base colors
+ (funcall push-derived-value-fn 'bg-dim (modus-themes-generate-gradient
bg-main 5))
+ (funcall push-derived-value-fn 'bg-active
(modus-themes-generate-gradient bg-main 10))
+ (funcall push-derived-value-fn 'bg-inactive
(modus-themes-generate-gradient bg-main 8))
+ (funcall push-derived-value-fn 'border (modus-themes-generate-gradient
bg-main 20))
+ (funcall push-derived-value-fn 'fg-dim (modus-themes-generate-gradient
fg-main 20))
+ (funcall push-derived-value-fn 'fg-alt
(modus-themes-generate-color-warmer-or-cooler (modus-themes-generate-gradient
fg-main 10) 0.8 prefers-cool-p))
+ ;; Primary and secondary colors
(pcase-dolist (`(,name ,value) six-colors)
- (push (list
- (intern (format "%s-warmer" name))
- (modus-themes-generate-gradient
- (modus-themes-generate-color-warmer value 0.9)
- (if bg-main-dark-p 20 -20)))
- derivatives)
- (push (list
- (intern (format "%s-cooler" name))
- (modus-themes-generate-gradient
- (modus-themes-generate-color-cooler value 0.9)
- (if bg-main-dark-p 20 -20)))
- derivatives)
- (push (list (intern (format "%s-faint" name))
(modus-themes-generate-gradient value (if bg-main-dark-p 10 -10))) derivatives)
- (push (list (intern (format "%s-intense" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -5 5))) derivatives)
- (push (list (intern (format "bg-%s-intense" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -30 30))) derivatives)
- (push (list (intern (format "bg-%s-subtle" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -50 50))) derivatives)
- (push (list (intern (format "bg-%s-nuanced" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -70 70))) derivatives))
+ (funcall push-derived-value-fn (intern (format "%s-warmer" name))
(modus-themes-generate-gradient (modus-themes-generate-color-warmer value 0.9)
(if bg-main-dark-p 20 -20)))
+ (funcall push-derived-value-fn (intern (format "%s-cooler" name))
(modus-themes-generate-gradient (modus-themes-generate-color-cooler value 0.9)
(if bg-main-dark-p 20 -20)))
+ (funcall push-derived-value-fn (intern (format "%s-faint" name))
(modus-themes-generate-gradient value (if bg-main-dark-p 10 -10)))
+ (funcall push-derived-value-fn (intern (format "%s-intense" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -5 5)))
+ (funcall push-derived-value-fn (intern (format "bg-%s-intense" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -30 30)))
+ (funcall push-derived-value-fn (intern (format "bg-%s-subtle" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -50 50)))
+ (funcall push-derived-value-fn (intern (format "bg-%s-nuanced" name))
(modus-themes-generate-gradient value (if bg-main-dark-p -70 70))))
+ ;; TODO 2025-11-24: For the color mappings we want the equivalent of
push-derived-fn.
(unless color-mappings
;; Mappings
(push (list 'bg-completion (if prefers-cool-p 'bg-cyan-subtle
'bg-yellow-subtle)) color-mappings)