commit 8d99d64ff6fb3526a9ddb4b737a92e4ff20cc29c
parent 0972a0f1471ed67211b7c8918a3c049380050d7b
Author: Andsy10 <andsy10@example.com>
Date: Mon, 18 May 2026 20:11:46 +0800
Fix light variant color blending in solarized-create-color-palette
Diffstat:
| M | solarized.el | | | 102 | ++++++++++++++++++++++++++++++++++++++++++------------------------------------- |
1 file changed, 54 insertions(+), 48 deletions(-)
diff --git a/solarized.el b/solarized.el
@@ -166,20 +166,26 @@ use the latter if you need a 24-bit specification of a color."
(apply 'solarized-color-rgb-to-hex `(,@args ,digits-per-component t))))
;;;###autoload
-(defun solarized-create-color-palette (core-palette)
+(defun solarized-create-color-palette (core-palette &optional variant)
"Create color-palette from CORE-PALETTE.
The returned color-palette has the same format as `solarized-color-palette'."
- (let ((darkest-base (nth 0 core-palette))
- (brightest-base (nth 1 core-palette))
- (yellow (nth 2 core-palette))
- (orange (nth 3 core-palette))
- (red (nth 4 core-palette))
- (magenta (nth 5 core-palette))
- (violet (nth 6 core-palette))
- (blue (nth 7 core-palette))
- (cyan (nth 8 core-palette))
- (green (nth 9 core-palette)))
+ (let* ((darkest-base (nth 0 core-palette))
+ (brightest-base (nth 1 core-palette))
+ (yellow (nth 2 core-palette))
+ (orange (nth 3 core-palette))
+ (red (nth 4 core-palette))
+ (magenta (nth 5 core-palette))
+ (violet (nth 6 core-palette))
+ (blue (nth 7 core-palette))
+ (cyan (nth 8 core-palette))
+ (green (nth 9 core-palette))
+ (bg-base (if (eq variant 'light) brightest-base darkest-base))
+ (fg-base (if (eq variant 'light) darkest-base brightest-base))
+ (bg-1 (if (eq variant 'light) 0.82 0.85))
+ (bg-2 (if (eq variant 'light) 0.68 0.60))
+ (fg-1 (if (eq variant 'light) 0.38 0.30))
+ (fg-2 (if (eq variant 'light) 0.30 0.45)))
`((base03 . ,(solarized-color-blend darkest-base brightest-base 1.00 2))
(base02 . ,(solarized-color-blend darkest-base brightest-base 0.97 2))
@@ -219,41 +225,41 @@ The returned color-palette has the same format as `solarized-color-palette'."
(green-d . ,(solarized-color-blend darkest-base green 0.80 2))
(green-l . ,(solarized-color-blend brightest-base green 0.80 2))
- (yellow-1bg . ,(solarized-color-blend darkest-base yellow 0.85 2))
- (orange-1bg . ,(solarized-color-blend darkest-base orange 0.85 2))
- (red-1bg . ,(solarized-color-blend darkest-base red 0.85 2))
- (magenta-1bg . ,(solarized-color-blend darkest-base magenta 0.85 2))
- (blue-1bg . ,(solarized-color-blend darkest-base blue 0.85 2))
- (cyan-1bg . ,(solarized-color-blend darkest-base cyan 0.85 2))
- (green-1bg . ,(solarized-color-blend darkest-base green 0.85 2))
- (violet-1bg . ,(solarized-color-blend darkest-base violet 0.85 2))
-
- (yellow-1fg . ,(solarized-color-blend brightest-base yellow 0.30 2))
- (orange-1fg . ,(solarized-color-blend brightest-base orange 0.30 2))
- (red-1fg . ,(solarized-color-blend brightest-base red 0.30 2))
- (magenta-1fg . ,(solarized-color-blend brightest-base magenta 0.30 2))
- (violet-1fg . ,(solarized-color-blend brightest-base violet 0.30 2))
- (blue-1fg . ,(solarized-color-blend brightest-base blue 0.30 2))
- (cyan-1fg . ,(solarized-color-blend brightest-base cyan 0.30 2))
- (green-1fg . ,(solarized-color-blend brightest-base green 0.30 2))
-
- (yellow-2bg . ,(solarized-color-blend darkest-base yellow 0.60 2))
- (orange-2bg . ,(solarized-color-blend darkest-base orange 0.60 2))
- (red-2bg . ,(solarized-color-blend darkest-base red 0.60 2))
- (magenta-2bg . ,(solarized-color-blend darkest-base magenta 0.60 2))
- (violet-2bg . ,(solarized-color-blend darkest-base violet 0.60 2))
- (blue-2bg . ,(solarized-color-blend darkest-base blue 0.60 2))
- (cyan-2bg . ,(solarized-color-blend darkest-base cyan 0.60 2))
- (green-2bg . ,(solarized-color-blend darkest-base green 0.60 2))
-
- (yellow-2fg . ,(solarized-color-blend brightest-base yellow 0.45 2))
- (orange-2fg . ,(solarized-color-blend brightest-base orange 0.45 2))
- (red-2fg . ,(solarized-color-blend brightest-base red 0.45 2))
- (magenta-2fg . ,(solarized-color-blend brightest-base magenta 0.45 2))
- (violet-2fg . ,(solarized-color-blend brightest-base violet 0.45 2))
- (blue-2fg . ,(solarized-color-blend brightest-base blue 0.45 2))
- (cyan-2fg . ,(solarized-color-blend brightest-base cyan 0.45 2))
- (green-2fg . ,(solarized-color-blend brightest-base green 0.45 2)))))
+ (yellow-1bg . ,(solarized-color-blend bg-base yellow bg-1 2))
+ (orange-1bg . ,(solarized-color-blend bg-base orange bg-1 2))
+ (red-1bg . ,(solarized-color-blend bg-base red bg-1 2))
+ (magenta-1bg . ,(solarized-color-blend bg-base magenta bg-1 2))
+ (blue-1bg . ,(solarized-color-blend bg-base blue bg-1 2))
+ (cyan-1bg . ,(solarized-color-blend bg-base cyan bg-1 2))
+ (green-1bg . ,(solarized-color-blend bg-base green bg-1 2))
+ (violet-1bg . ,(solarized-color-blend bg-base violet bg-1 2))
+
+ (yellow-1fg . ,(solarized-color-blend fg-base yellow fg-1 2))
+ (orange-1fg . ,(solarized-color-blend fg-base orange fg-1 2))
+ (red-1fg . ,(solarized-color-blend fg-base red fg-1 2))
+ (magenta-1fg . ,(solarized-color-blend fg-base magenta fg-1 2))
+ (violet-1fg . ,(solarized-color-blend fg-base violet fg-1 2))
+ (blue-1fg . ,(solarized-color-blend fg-base blue fg-1 2))
+ (cyan-1fg . ,(solarized-color-blend fg-base cyan fg-1 2))
+ (green-1fg . ,(solarized-color-blend fg-base green fg-1 2))
+
+ (yellow-2bg . ,(solarized-color-blend bg-base yellow bg-2 2))
+ (orange-2bg . ,(solarized-color-blend bg-base orange bg-2 2))
+ (red-2bg . ,(solarized-color-blend bg-base red bg-2 2))
+ (magenta-2bg . ,(solarized-color-blend bg-base magenta bg-2 2))
+ (violet-2bg . ,(solarized-color-blend bg-base violet bg-2 2))
+ (blue-2bg . ,(solarized-color-blend bg-base blue bg-2 2))
+ (cyan-2bg . ,(solarized-color-blend bg-base cyan bg-2 2))
+ (green-2bg . ,(solarized-color-blend bg-base green bg-2 2))
+
+ (yellow-2fg . ,(solarized-color-blend fg-base yellow fg-2 2))
+ (orange-2fg . ,(solarized-color-blend fg-base orange fg-2 2))
+ (red-2fg . ,(solarized-color-blend fg-base red fg-2 2))
+ (magenta-2fg . ,(solarized-color-blend fg-base magenta fg-2 2))
+ (violet-2fg . ,(solarized-color-blend fg-base violet fg-2 2))
+ (blue-2fg . ,(solarized-color-blend fg-base blue fg-2 2))
+ (cyan-2fg . ,(solarized-color-blend fg-base cyan fg-2 2))
+ (green-2fg . ,(solarized-color-blend fg-base green fg-2 2)))))
;;; Setup Start
(defmacro solarized-with-color-variables (variant theme-name color-palette &optional childtheme-sexp)
@@ -411,7 +417,7 @@ customize the resulting theme.
CORE-PALETTE is core color-palette."
(declare (indent 2))
- (let ((color-palette (solarized-create-color-palette (eval core-palette))))
+ (let ((color-palette (solarized-create-color-palette (eval core-palette) (eval variant))))
`(solarized-with-color-variables ,variant ,theme-name ',color-palette ,childtheme-sexp)))
(defun solarized-create-theme-file (variant theme-name color-palette &optional childtheme-sexp overwrite)
@@ -450,7 +456,7 @@ customize the resulting theme.
CORE-PALETTE is core color-palette.
If OVERWRITE is non-nil, overwrite theme file if exist."
(declare (indent 2))
- (let ((color-palette (solarized-create-color-palette core-palette)))
+ (let ((color-palette (solarized-create-color-palette core-palette variant)))
(apply #'solarized-create-theme-file (list variant theme-name color-palette childtheme-sexp overwrite))))
(define-obsolete-function-alias 'create-solarized-theme-file 'solarized-create-theme-file "1.3.0")