solarized-emacs

a fork of Bozhidar Batsov's solarized-emacs
git clone https://git.trogloxene.org/solarized-emacs.git
Log | Files | Refs | README

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:
Msolarized.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")