diff options
| -rw-r--r-- | README.md | 16 | ||||
| -rw-r--r-- | evergarden-common.el | 341 | ||||
| -rw-r--r-- | evergarden-fall-theme.el | 156 | ||||
| -rw-r--r-- | evergarden-spring-theme.el | 154 | ||||
| -rw-r--r-- | evergarden-summer-theme.el | 155 | ||||
| l--------- | evergarden-theme.el | 1 | ||||
| -rw-r--r-- | evergarden-winter-theme.el | 155 | ||||
| -rw-r--r-- | evergarden.tera | 477 |
8 files changed, 963 insertions, 492 deletions
@@ -1,21 +1,9 @@ <h3 align="center"> <img src="https://codeberg.org/evergarden/.profile/raw/branch/main/assets/logo-circle.png" width="100" alt="Logo"/><br/> - Evergarden for <a href="https://codeberg.org/roughlynamed/emacs-evergarden">Emacs</a> + Evergarden for <a href="https://www.gnu.org/software/emacs/emacs.html">Emacs</a> </h3> <p align="center"> - <a href="https://codeberg.org/evergarden/template/stars"> - <img src="https://img.shields.io/gitea/stars/evergarden/template?gitea_url=https%3A%2F%2Fcodeberg.org&style=for-the-badge&colorA=2B3337&colorB=F5D098"> - </a> - <a href="https://codeberg.org/evergarden/template/issues"> - <img src="https://img.shields.io/gitea/issues/open/evergarden/template?gitea_url=https%3A%2F%2Fcodeberg.org&style=for-the-badge&colorA=2B3337&colorB=F7A182"> - </a> - <a href="https://codeberg.org/evergarden/template/activity/contributors"> - <img src="https://img.shields.io/github/contributors/evergardentheme/template?style=for-the-badge&colorA=2B3337&colorB=B3E6DB"> - </a> -</p> - -<p align="center"> <img src="assets/previews/preview.webp"/> </p> @@ -40,7 +28,7 @@ <!-- TODO: get to MELPA soon --> ### Usage -1. Download the theme file +1. Download the theme files 2. Add the directory with the theme file to your `custom-theme-load-path` and load the theme ``` emacs-lisp diff --git a/evergarden-common.el b/evergarden-common.el new file mode 100644 index 0000000..c897de4 --- /dev/null +++ b/evergarden-common.el @@ -0,0 +1,341 @@ +;;; evergarden-common.el --- Shared engine for the evergarden theme family -*- lexical-binding: t; -*- + +;; Author: expansion of the original evergarden theme by @koi.rip +;; Version: 0.2.0 +;; Package-Requires: ((emacs "28.1") (modus-themes "5.0.0") (ef-themes "2.0.0")) +;; Keywords: faces, theme + +;;; Commentary: +;; this is NOT a theme in itself + +;;; Code: + +(require 'modus-themes) +(require 'ef-themes) + +(defgroup evergarden-theme nil + "Cozy evergarden theme family built on Modus and Ef." + :group 'faces + :group 'ef-themes + :prefix "evergarden-") + +(defconst evergarden-theme-family 'evergarden-theme + "Shared theme family symbol for every evergarden flavor.") + +(defconst evergarden--term-mappings-dark + '((bg-term-black bg-main) + (fg-term-black bg-main) + (bg-term-black-bright overlay0) + (fg-term-black-bright overlay0) + (bg-term-white fg-dim) + (fg-term-white fg-dim) + (bg-term-white-bright fg-main) + (fg-term-white-bright fg-main)) + "ANSI black/white terminal mapping for dark-background flavors. +Anchors \"black\" to the darkest neutrals and \"white\" to the lightest, +the same relationship a light theme uses just inverted.") + +(defconst evergarden--term-mappings-light + '((bg-term-black fg-main) + (fg-term-black fg-main) + (bg-term-black-bright fg-dim) + (fg-term-black-bright fg-dim) + (bg-term-white border) + (fg-term-white border) + (bg-term-white-bright bg-main) + (fg-term-white-bright bg-main)) + "ANSI black/white terminal mapping for the light-background flavor (summer). +Matches fortune-gold-theme.el's light-theme convention.") + +(defconst evergarden--term-mappings-color + '((bg-term-red red) (fg-term-red red) + (bg-term-red-bright red-warmer) (fg-term-red-bright red-warmer) + (bg-term-green green) (fg-term-green green) + (bg-term-green-bright green-warmer) (fg-term-green-bright green-warmer) + (bg-term-yellow yellow) (fg-term-yellow yellow) + (bg-term-yellow-bright yellow-warmer) (fg-term-yellow-bright yellow-warmer) + (bg-term-blue blue) (fg-term-blue blue) + (bg-term-blue-bright blue-warmer) (fg-term-blue-bright blue-warmer) + (bg-term-magenta magenta) (fg-term-magenta magenta) + (bg-term-magenta-bright magenta-warmer) (fg-term-magenta-bright magenta-warmer) + (bg-term-cyan cyan) (fg-term-cyan cyan) + (bg-term-cyan-bright cyan-warmer) (fg-term-cyan-bright cyan-warmer)) + "ANSI colored-slot terminal mapping, identical for every flavor. +Left as true family colors (not the green signature) since ANSI red should +stay red, ANSI blue should stay blue, etc., regardless of flavor.") + +(defconst evergarden-palette-mappings-partial + (append + '( + (err red) + (warning orange) + (info cyan) + (underline-err red) + (underline-warning orange) + (underline-note cyan) + (modeline-err red) + (modeline-warning yellow) + (modeline-info cyan) + (bg-prominent-warning bg-warning) + (fg-prominent-warning fg-main) + (bg-prominent-note bg-info) + (fg-prominent-note fg-main) + + (fg-link blue) + (fg-link-visited magenta) + (fg-link-symbolic cyan) + (bg-link unspecified) + (bg-link-symbolic unspecified) + (bg-link-visited unspecified) + (underline-link blue) + (underline-link-visited magenta) + (underline-link-symbolic cyan) + + (name cyan) + (keybind green) + (identifier fg-main) + (fg-prompt green) + (bg-prompt unspecified) + + (builtin cyan-cooler) + (comment fg-dim) + (constant magenta-cooler) + (fnname cyan) + (fnname-call cyan-warmer) + (keyword red) + (preprocessor green) + (property fg-main) + (docstring fg-dim) + (docmarkup green-cooler) + (string green-warmer) + (type yellow) + (variable blue) + (variable-use blue) + (rx-backslash orange) + (rx-construct magenta) + + (accent-0 green) + (accent-1 cyan) + (accent-2 magenta-warmer) + (accent-3 orange) + + (fg-button-active fg-main) + (fg-button-inactive fg-dim) + (bg-button-active bg-main) + (bg-button-inactive bg-dim) + (fg-region fg-main) + (bg-mark-delete bg-red-subtle) + (fg-mark-delete red) + (bg-mark-select bg-green-subtle) + (fg-mark-select green) + (bg-mark-other bg-cyan-subtle) + (fg-mark-other cyan) + + (date-common cyan) + (date-deadline red) + (date-deadline-subtle red-faint) + (date-event fg-alt) + (date-holiday red-warmer) + (date-holiday-other magenta-warmer) + (date-now fg-main) + (date-range fg-alt) + (date-scheduled green) + (date-scheduled-subtle green-faint) + (date-weekday blue) + (date-weekend red-faint) + + (fg-prose-code green-cooler) + (prose-done green) + (fg-prose-macro green) + (prose-metadata fg-dim) + (prose-metadata-value fg-alt) + (prose-table fg-alt) + (prose-table-formula cyan) + (prose-tag yellow-faint) + (prose-todo red) + (fg-prose-verbatim magenta-warmer) + + (mail-cite-0 green) + (mail-cite-1 cyan) + (mail-cite-2 magenta-warmer) + (mail-cite-3 red-warmer) + (mail-part cyan) + (mail-recipient blue) + (mail-subject green) + (mail-other fg-alt) + + (bg-search-static bg-cyan-subtle) + (bg-search-current bg-green-intense) + (bg-search-lazy bg-green-subtle) + (bg-search-replace bg-red-intense) + + (bg-search-rx-group-0 bg-green-intense) + (bg-search-rx-group-1 bg-magenta-intense) + (bg-search-rx-group-2 bg-cyan-intense) + (bg-search-rx-group-3 bg-red-intense) + + (bg-space-err bg-red-intense) + (bg-space bg-main) + (fg-space border) + + (fringe bg-main) + (fg-line-number-active green) + (fg-line-number-inactive overlay1) + (bg-line-number-active bg-hl-line) + (bg-line-number-inactive bg-main) + + (bg-tab-bar bg-dim) + (bg-tab-current bg-main) + (bg-tab-other bg-dim) + + (bg-prominent-err bg-err) + (fg-prominent-err err) + (fg-paren-match fg-main) + (underline-paren-match unspecified) + (bg-active-argument bg-active) + (fg-active-argument green) + (bg-active-value bg-green-subtle) + (fg-active-value green) + + (bg-prose-block-delimiter bg-prose-block) + (fg-prose-block-delimiter fg-dim) + (bg-prose-block-contents bg-prose-block) + (bg-prose-code unspecified) + (bg-prose-macro unspecified) + (bg-prose-verbatim unspecified) + + (fg-completion-match-0 green) + (fg-completion-match-1 cyan) + (fg-completion-match-2 magenta-warmer) + (fg-completion-match-3 orange) + (bg-completion-match-0 unspecified) + (bg-completion-match-1 unspecified) + (bg-completion-match-2 unspecified) + (bg-completion-match-3 unspecified) + (bg-completion bg-dim) + (fg-search-current fg-main) + + (rainbow-0 green) + (rainbow-1 cyan) + (rainbow-2 magenta) + (rainbow-3 blue) + (rainbow-4 orange) + (rainbow-5 red) + (rainbow-6 yellow) + (rainbow-7 fg-alt) + (rainbow-8 fg-dim) + + (fg-heading-0 green) + (fg-heading-1 green) + (fg-heading-2 cyan) + (fg-heading-3 magenta) + (fg-heading-4 blue) + (fg-heading-5 orange) + (fg-heading-6 red) + (fg-heading-7 fg-alt) + (fg-heading-8 fg-dim) + (bg-heading-0 unspecified) + (bg-heading-1 bg-green-nuanced) + (bg-heading-2 unspecified) + (bg-heading-3 bg-magenta-nuanced) + (bg-heading-4 bg-blue-nuanced) + (bg-heading-5 unspecified) + (bg-heading-6 bg-red-nuanced) + (bg-heading-7 unspecified) + (bg-heading-8 unspecified) + (overline-heading-0 green) + (overline-heading-1 green) + (overline-heading-2 cyan) + (overline-heading-3 magenta) + (overline-heading-4 blue) + (overline-heading-5 orange) + (overline-heading-6 red) + (overline-heading-7 unspecified) + (overline-heading-8 unspecified)) + evergarden--term-mappings-color) + "Semantic color mappings shared by every evergarden flavor. +Only references palette symbol names, never literal hex, so the exact same +list works whether the active flavor's palette is dark or light.") + +(defconst evergarden-custom-faces + '(`(corfu-default ((,c :inherit modus-themes-fixed-pitch + :background ,bg-dim + :foreground ,fg-main))) + `(corfu-current ((,c :background ,bg-green-intense + :foreground ,fg-main + :extend t + :box (:line-width -1 :color ,green) + :weight semi-bold))) + `(corfu-border ((,c :background ,border + :foreground ,border))) + `(corfu-bar ((,c :background ,green))) + `(corfu-popupinfo ((,c :background ,bg-dim + :foreground ,fg-main)))) + "Additional face overrides shared by every evergarden flavor.") + +(defun evergarden--ensure-modus-theme-metadata (name family description mode palette-sym overrides-sym) + "Declare NAME as a Modus-derived theme when reloading in-session. + +FAMILY, DESCRIPTION, MODE, PALETTE-SYM and OVERRIDES-SYM are forwarded to +`modus-themes-declare', matching what `modus-themes-theme' expects to find +if the theme object already exists in the current session." + (unless (plist-get (get name 'theme-properties) :modus-core-palette) + (modus-themes-declare name family description mode palette-sym nil overrides-sym) + (modus-themes-register name))) + +(defun evergarden-build-theme (flavor-name palette-partial mode) + "Register and define one evergarden flavor. + +FLAVOR-NAME is a symbol like `evergarden-fall'. PALETTE-PARTIAL is that +flavor's base palette (its own analogue of one spring.lua/summer.lua/ +fall.lua/winter.lua table, plus the warmer/cooler/faint/intense/subtle/ +nuanced variants Modus needs). MODE is `dark' or `light' and selects which +of `evergarden--term-mappings-dark'/`-light' gets appended." + (let* ((flavor-str (symbol-name flavor-name)) + (description (format "Cozy evergarden dark theme, %s flavor." + (capitalize (substring flavor-str (length "evergarden-"))))) + (palette-sym (intern (concat flavor-str "-palette"))) + (overrides-sym (intern (concat flavor-str "-palette-overrides"))) + (term-mappings (if (eq mode 'dark) + evergarden--term-mappings-dark + evergarden--term-mappings-light))) + (eval + `(progn + (defcustom ,overrides-sym nil + ,(format "Overrides for `%s'. + +Each element should have the form (NAME VALUE), where NAME is a palette +entry from `%s' and VALUE is either another palette symbol or a color +string." + palette-sym palette-sym) + :group 'evergarden-theme + :package-version '(evergarden-theme . "0.2.0") + :type '(repeat (list symbol (choice symbol string)))) + + (defconst ,palette-sym + (modus-themes-generate-palette + ',palette-partial + ',(if (eq mode 'dark) 'cool 'warm) + nil + (append evergarden-palette-mappings-partial + ',term-mappings + ef-themes-palette-common)) + ,(format "Full palette for `%s'." flavor-name)) + + (evergarden--ensure-modus-theme-metadata + ',flavor-name 'evergarden-theme ,description ',mode ',palette-sym ',overrides-sym) + + (modus-themes-theme + ',flavor-name 'evergarden-theme ,description ',mode + ',palette-sym nil ',overrides-sym 'evergarden-custom-faces)) + t))) + +;;;###autoload +(when load-file-name + (add-to-list 'custom-theme-load-path + (file-name-as-directory + (file-name-directory load-file-name)))) + +(provide 'evergarden-common) + +;;; evergarden-common.el ends here diff --git a/evergarden-fall-theme.el b/evergarden-fall-theme.el new file mode 100644 index 0000000..300ccc3 --- /dev/null +++ b/evergarden-fall-theme.el @@ -0,0 +1,156 @@ +;;; evergarden-fall-theme.el --- Evergarden, Fall flavor -*- lexical-binding: t; -*- + +;; Author: expansion of the original evergarden theme by @koi.rip +;; Version: 0.2.0 +;; Package-Requires: ((emacs "28.1") (modus-themes "5.0.0") (ef-themes "2.0.0")) +;; Keywords: faces, theme + +;;; Commentary: +;; +;; The Fall flavor of evergarden + +;;; Code: + +(let ((dir (file-name-directory (or load-file-name buffer-file-name)))) + (add-to-list 'load-path dir) + (require 'evergarden-common)) + +(defconst evergarden-fall-palette-partial + '( + (cursor "#fae6ef") + (bg-main "#232a2e") + (bg-dim "#2b3337") + (bg-alt "#374145") + (fg-main "#f8f9e8") + (fg-dim "#adc9bc") + (fg-alt "#96b4aa") + (bg-active "#4a585c") + (bg-inactive "#2b3337") + (border "#58686d") + + (bg-hl "#4a585c") + (bg-prose-block "#2A3237") + (red "#f57f82") + (orange "#f7a182") + (yellow "#f5d098") + (lime "#dbe6af") + (green "#cbe3b3") + (aqua "#b3e3ca") + (skye "#b3e6db") + (snow "#afd9e6") + (blue "#b2caed") + (purple "#d2bdf3") + (pink "#f3c0e5") + (cherry "#fae6ef") + (subtext1 "#adc9bc") + (subtext0 "#96b4aa") + (overlay2 "#839e9a") + (overlay1 "#6f8788") + (overlay0 "#58686d") + (surface2 "#4a585c") + (surface1 "#374145") + (surface0 "#2b3337") + (mantle "#1c2225") + (crust "#171c1f") + + (red-warmer "#F6798F") + (red-cooler "#F68F74") + (red-faint "#CD7476") + + (green-warmer "#dbe6af") + (green-cooler "#C1E4B7") + (green-faint "#B2C99A") + + (yellow-warmer "#F6C497") + (yellow-cooler "#F3DF9F") + (yellow-faint "#D2B588") + + (blue-warmer "#afd9e6") + (blue-cooler "#B6C0EE") + (blue-faint "#97AED0") + + (magenta "#d2bdf3") + (magenta-warmer "#f3c0e5") + (magenta-cooler "#E1C1F4") + (magenta-faint "#B6A0D8") + + (cyan "#b3e3ca") + (cyan-warmer "#B3E3BF") + (cyan-cooler "#b3e6db") + (cyan-faint "#97C7AE") + + (bg-red-intense "#6D2C2E") + (bg-red-subtle "#482A2B") + (bg-red-nuanced "#372828") + (bg-green-intense "#4D6D2C") + (bg-green-subtle "#39482A") + (bg-green-nuanced "#2F3728") + (bg-yellow-intense "#6D532C") + (bg-yellow-subtle "#483C2A") + (bg-yellow-nuanced "#373128") + (bg-blue-intense "#2C476D") + (bg-blue-subtle "#2A3748") + (bg-blue-nuanced "#282E37") + (bg-magenta-intense "#452C6D") + (bg-magenta-subtle "#362A48") + (bg-magenta-nuanced "#2D2837") + (bg-cyan-intense "#2C6D4B") + (bg-cyan-subtle "#2A4839") + (bg-cyan-nuanced "#28372F") + + (bg-graph-red-0 "#A63033") + (bg-graph-red-1 "#6B2E2F") + (bg-graph-green-0 "#6BA630") + (bg-graph-green-1 "#4D6B2E") + (bg-graph-yellow-0 "#A67730") + (bg-graph-yellow-1 "#6B532E") + (bg-graph-blue-0 "#3060A6") + (bg-graph-blue-1 "#2E476B") + (bg-graph-magenta-0 "#5E30A6") + (bg-graph-magenta-1 "#462E6B") + (bg-graph-cyan-0 "#30A669") + (bg-graph-cyan-1 "#2E6B4B") + + (bg-added "#4D6D2C") + (bg-added-faint "#39482A") + (bg-added-refine "#435B2B") + (bg-added-fringe "#6BA630") + (fg-added "#cbe3b3") + (fg-added-intense "#8BCC4A") + (bg-changed "#6D532C") + (bg-changed-faint "#483C2A") + (bg-changed-refine "#5B482B") + (bg-changed-fringe "#A67730") + (fg-changed "#F3DF9F") + (fg-changed-intense "#F1BF22") + (bg-removed "#6D2C2E") + (bg-removed-faint "#482A2B") + (bg-removed-refine "#5B2B2C") + (bg-removed-fringe "#A63033") + (fg-removed "#f57f82") + (fg-removed-intense "#EF050B") + (bg-diff-context "#4a585c") + + (bg-mode-line-active "#435054") + (fg-mode-line-active "#f8f9e8") + (bg-mode-line-inactive "#2b3337") + (fg-mode-line-inactive "#adc9bc") + (border-mode-line-active "#cbe3b3") + (border-mode-line-inactive "#58686d") + (bg-completion "#2b3337") + (bg-hover "#4a585c") + (bg-hover-secondary "#2A3748") + (bg-hl-line "#4a585c") + (bg-paren-match "#6D532C") + (bg-err "#6D2C2E") + (bg-warning "#6D532C") + (bg-info "#2C6D4B") + (bg-region "#4D6D2C") + (bg-prose-block "#2A3237")) + "Base palette entries for `evergarden-fall'.") + +(evergarden-build-theme 'evergarden-fall evergarden-fall-palette-partial 'dark) + +(provide 'evergarden-fall-theme) + +;;; evergarden-fall-theme.el ends here diff --git a/evergarden-spring-theme.el b/evergarden-spring-theme.el new file mode 100644 index 0000000..d63d94c --- /dev/null +++ b/evergarden-spring-theme.el @@ -0,0 +1,154 @@ +;;; evergarden-spring-theme.el --- Evergarden, Spring flavor -*- lexical-binding: t; -*- + +;; Author: expansion of the original evergarden theme by @koi.rip +;; Version: 0.2.0 +;; Package-Requires: ((emacs "28.1") (modus-themes "5.0.0") (ef-themes "2.0.0")) +;; Keywords: faces, theme + +;;; Commentary: +;; the spring flavour of evergarden +;;; Code: + +(let ((dir (file-name-directory (or load-file-name buffer-file-name)))) + (add-to-list 'load-path dir) + (require 'evergarden-common)) + +(defconst evergarden-spring-palette-partial + '( + (cursor "#fae6ef") + (bg-main "#2b3438") + (bg-dim "#343e43") + (bg-alt "#3e4a4f") + (fg-main "#f8f9e8") + (fg-dim "#adc9bc") + (fg-alt "#96b4aa") + (bg-active "#4a585c") + (bg-inactive "#343e43") + (border "#58686d") + + (bg-hl "#4a585c") + (bg-prose-block "#323C41") + (red "#f57f82") + (orange "#f7a182") + (yellow "#f5d098") + (lime "#dbe6af") + (green "#cbe3b3") + (aqua "#b3e3ca") + (skye "#b3e6db") + (snow "#afd9e6") + (blue "#b2caed") + (purple "#d2bdf3") + (pink "#f3c0e5") + (cherry "#fae6ef") + (subtext1 "#adc9bc") + (subtext0 "#96b4aa") + (overlay2 "#839e9a") + (overlay1 "#6f8788") + (overlay0 "#58686d") + (surface2 "#4a585c") + (surface1 "#3e4a4f") + (surface0 "#343e43") + (mantle "#232a2e") + (crust "#1c2225") + + (red-warmer "#F6798F") + (red-cooler "#F68F74") + (red-faint "#CD7476") + + (green-warmer "#dbe6af") + (green-cooler "#C1E4B7") + (green-faint "#B2C99A") + + (yellow-warmer "#F6C497") + (yellow-cooler "#F3DF9F") + (yellow-faint "#D2B588") + + (blue-warmer "#afd9e6") + (blue-cooler "#B6C0EE") + (blue-faint "#97AED0") + + (magenta "#d2bdf3") + (magenta-warmer "#f3c0e5") + (magenta-cooler "#E1C1F4") + (magenta-faint "#B6A0D8") + + (cyan "#b3e3ca") + (cyan-warmer "#B3E3BF") + (cyan-cooler "#b3e6db") + (cyan-faint "#97C7AE") + + (bg-red-intense "#6D2C2E") + (bg-red-subtle "#482A2B") + (bg-red-nuanced "#372828") + (bg-green-intense "#4D6D2C") + (bg-green-subtle "#39482A") + (bg-green-nuanced "#2F3728") + (bg-yellow-intense "#6D532C") + (bg-yellow-subtle "#483C2A") + (bg-yellow-nuanced "#373128") + (bg-blue-intense "#2C476D") + (bg-blue-subtle "#2A3748") + (bg-blue-nuanced "#282E37") + (bg-magenta-intense "#452C6D") + (bg-magenta-subtle "#362A48") + (bg-magenta-nuanced "#2D2837") + (bg-cyan-intense "#2C6D4B") + (bg-cyan-subtle "#2A4839") + (bg-cyan-nuanced "#28372F") + + (bg-graph-red-0 "#A63033") + (bg-graph-red-1 "#6B2E2F") + (bg-graph-green-0 "#6BA630") + (bg-graph-green-1 "#4D6B2E") + (bg-graph-yellow-0 "#A67730") + (bg-graph-yellow-1 "#6B532E") + (bg-graph-blue-0 "#3060A6") + (bg-graph-blue-1 "#2E476B") + (bg-graph-magenta-0 "#5E30A6") + (bg-graph-magenta-1 "#462E6B") + (bg-graph-cyan-0 "#30A669") + (bg-graph-cyan-1 "#2E6B4B") + + (bg-added "#4D6D2C") + (bg-added-faint "#39482A") + (bg-added-refine "#435B2B") + (bg-added-fringe "#6BA630") + (fg-added "#cbe3b3") + (fg-added-intense "#8BCC4A") + (bg-changed "#6D532C") + (bg-changed-faint "#483C2A") + (bg-changed-refine "#5B482B") + (bg-changed-fringe "#A67730") + (fg-changed "#F3DF9F") + (fg-changed-intense "#F1BF22") + (bg-removed "#6D2C2E") + (bg-removed-faint "#482A2B") + (bg-removed-refine "#5B2B2C") + (bg-removed-fringe "#A63033") + (fg-removed "#f57f82") + (fg-removed-intense "#EF050B") + (bg-diff-context "#4a585c") + + (bg-mode-line-active "#435054") + (fg-mode-line-active "#f8f9e8") + (bg-mode-line-inactive "#343e43") + (fg-mode-line-inactive "#adc9bc") + (border-mode-line-active "#cbe3b3") + (border-mode-line-inactive "#58686d") + (bg-completion "#343e43") + (bg-hover "#4a585c") + (bg-hover-secondary "#2A3748") + (bg-hl-line "#4a585c") + (bg-paren-match "#6D532C") + (bg-err "#6D2C2E") + (bg-warning "#6D532C") + (bg-info "#2C6D4B") + (bg-region "#4D6D2C") + (bg-prose-block "#323C41")) + "Base palette entries for `evergarden-spring'") + +(evergarden-build-theme 'evergarden-spring evergarden-spring-palette-partial 'dark) + +(provide 'evergarden-spring-theme) + +;;; evergarden-spring-theme.el ends here diff --git a/evergarden-summer-theme.el b/evergarden-summer-theme.el new file mode 100644 index 0000000..807aaca --- /dev/null +++ b/evergarden-summer-theme.el @@ -0,0 +1,155 @@ +;;; evergarden-spring-theme.el --- Evergarden, Spring flavor -*- lexical-binding: t; -*- + +;; Author: expansion of the original evergarden theme by @koi.rip +;; Version: 0.2.0 +;; Package-Requires: ((emacs "28.1") (modus-themes "5.0.0") (ef-themes "2.0.0")) +;; Keywords: faces, theme + +;;; Commentary: +;; summer flavour of evergarden + +;;; Code: + +(let ((dir (file-name-directory (or load-file-name buffer-file-name)))) + (add-to-list 'load-path dir) + (require 'evergarden-common)) + +(defconst evergarden-spring-palette-partial + '( + (cursor "#fae6ef") + (bg-main "#2b3438") + (bg-dim "#343e43") + (bg-alt "#3e4a4f") + (fg-main "#f8f9e8") + (fg-dim "#adc9bc") + (fg-alt "#96b4aa") + (bg-active "#4a585c") + (bg-inactive "#343e43") + (border "#58686d") + + (bg-hl "#4a585c") + (bg-prose-block "#323C41") + (red "#f57f82") + (orange "#f7a182") + (yellow "#f5d098") + (lime "#dbe6af") + (green "#cbe3b3") + (aqua "#b3e3ca") + (skye "#b3e6db") + (snow "#afd9e6") + (blue "#b2caed") + (purple "#d2bdf3") + (pink "#f3c0e5") + (cherry "#fae6ef") + (subtext1 "#adc9bc") + (subtext0 "#96b4aa") + (overlay2 "#839e9a") + (overlay1 "#6f8788") + (overlay0 "#58686d") + (surface2 "#4a585c") + (surface1 "#3e4a4f") + (surface0 "#343e43") + (mantle "#232a2e") + (crust "#1c2225") + + (red-warmer "#F6798F") + (red-cooler "#F68F74") + (red-faint "#CD7476") + + (green-warmer "#dbe6af") + (green-cooler "#C1E4B7") + (green-faint "#B2C99A") + + (yellow-warmer "#F6C497") + (yellow-cooler "#F3DF9F") + (yellow-faint "#D2B588") + + (blue-warmer "#afd9e6") + (blue-cooler "#B6C0EE") + (blue-faint "#97AED0") + + (magenta "#d2bdf3") + (magenta-warmer "#f3c0e5") + (magenta-cooler "#E1C1F4") + (magenta-faint "#B6A0D8") + + (cyan "#b3e3ca") + (cyan-warmer "#B3E3BF") + (cyan-cooler "#b3e6db") + (cyan-faint "#97C7AE") + + (bg-red-intense "#6D2C2E") + (bg-red-subtle "#482A2B") + (bg-red-nuanced "#372828") + (bg-green-intense "#4D6D2C") + (bg-green-subtle "#39482A") + (bg-green-nuanced "#2F3728") + (bg-yellow-intense "#6D532C") + (bg-yellow-subtle "#483C2A") + (bg-yellow-nuanced "#373128") + (bg-blue-intense "#2C476D") + (bg-blue-subtle "#2A3748") + (bg-blue-nuanced "#282E37") + (bg-magenta-intense "#452C6D") + (bg-magenta-subtle "#362A48") + (bg-magenta-nuanced "#2D2837") + (bg-cyan-intense "#2C6D4B") + (bg-cyan-subtle "#2A4839") + (bg-cyan-nuanced "#28372F") + + (bg-graph-red-0 "#A63033") + (bg-graph-red-1 "#6B2E2F") + (bg-graph-green-0 "#6BA630") + (bg-graph-green-1 "#4D6B2E") + (bg-graph-yellow-0 "#A67730") + (bg-graph-yellow-1 "#6B532E") + (bg-graph-blue-0 "#3060A6") + (bg-graph-blue-1 "#2E476B") + (bg-graph-magenta-0 "#5E30A6") + (bg-graph-magenta-1 "#462E6B") + (bg-graph-cyan-0 "#30A669") + (bg-graph-cyan-1 "#2E6B4B") + + (bg-added "#4D6D2C") + (bg-added-faint "#39482A") + (bg-added-refine "#435B2B") + (bg-added-fringe "#6BA630") + (fg-added "#cbe3b3") + (fg-added-intense "#8BCC4A") + (bg-changed "#6D532C") + (bg-changed-faint "#483C2A") + (bg-changed-refine "#5B482B") + (bg-changed-fringe "#A67730") + (fg-changed "#F3DF9F") + (fg-changed-intense "#F1BF22") + (bg-removed "#6D2C2E") + (bg-removed-faint "#482A2B") + (bg-removed-refine "#5B2B2C") + (bg-removed-fringe "#A63033") + (fg-removed "#f57f82") + (fg-removed-intense "#EF050B") + (bg-diff-context "#4a585c") + + (bg-mode-line-active "#435054") + (fg-mode-line-active "#f8f9e8") + (bg-mode-line-inactive "#343e43") + (fg-mode-line-inactive "#adc9bc") + (border-mode-line-active "#cbe3b3") + (border-mode-line-inactive "#58686d") + (bg-completion "#343e43") + (bg-hover "#4a585c") + (bg-hover-secondary "#2A3748") + (bg-hl-line "#4a585c") + (bg-paren-match "#6D532C") + (bg-err "#6D2C2E") + (bg-warning "#6D532C") + (bg-info "#2C6D4B") + (bg-region "#4D6D2C") + (bg-prose-block "#323C41")) + "Base palette entries for `evergarden-spring'") + +(evergarden-build-theme 'evergarden-spring evergarden-spring-palette-partial 'dark) + +(provide 'evergarden-spring-theme) + +;;; evergarden-spring-theme.el ends here diff --git a/evergarden-theme.el b/evergarden-theme.el deleted file mode 120000 index 15bf1ba..0000000 --- a/evergarden-theme.el +++ /dev/null @@ -1 +0,0 @@ -/home/sophie/stow/doom/.config/doom/extra-themes/evergarden-theme.el
\ No newline at end of file diff --git a/evergarden-winter-theme.el b/evergarden-winter-theme.el new file mode 100644 index 0000000..99067b8 --- /dev/null +++ b/evergarden-winter-theme.el @@ -0,0 +1,155 @@ +;;; evergarden-winter-theme.el --- Evergarden, Winter flavor -*- lexical-binding: t; -*- + +;; Author: expansion of the original evergarden theme by @koi.rip +;; Version: 0.2.0 +;; Package-Requires: ((emacs "28.1") (modus-themes "5.0.0") (ef-themes "2.0.0")) +;; Keywords: faces, theme + +;;; Commentary: +;; +;; the winter flavour of evergarden +;;; Code: + +(let ((dir (file-name-directory (or load-file-name buffer-file-name)))) + (add-to-list 'load-path dir) + (require 'evergarden-common)) + +(defconst evergarden-winter-palette-partial + '( + (cursor "#fae6ef") + (bg-main "#1e2528") + (bg-dim "#262f33") + (bg-alt "#374145") + (fg-main "#f8f9e8") + (fg-dim "#adc9bc") + (fg-alt "#96b4aa") + (bg-active "#4a585c") + (bg-inactive "#262f33") + (border "#58686d") + + (bg-hl "#4a585c") + (bg-prose-block "#252D31") + (red "#f57f82") + (orange "#f7a182") + (yellow "#f5d098") + (lime "#dbe6af") + (green "#cbe3b3") + (aqua "#b3e3ca") + (skye "#b3e6db") + (snow "#afd9e6") + (blue "#b2caed") + (purple "#d2bdf3") + (pink "#f3c0e5") + (cherry "#fae6ef") + (subtext1 "#adc9bc") + (subtext0 "#96b4aa") + (overlay2 "#839e9a") + (overlay1 "#6f8788") + (overlay0 "#58686d") + (surface2 "#4a585c") + (surface1 "#374145") + (surface0 "#262f33") + (mantle "#191e21") + (crust "#171c1f") + + (red-warmer "#F6798F") + (red-cooler "#F68F74") + (red-faint "#CD7476") + + (green-warmer "#dbe6af") + (green-cooler "#C1E4B7") + (green-faint "#B2C99A") + + (yellow-warmer "#F6C497") + (yellow-cooler "#F3DF9F") + (yellow-faint "#D2B588") + + (blue-warmer "#afd9e6") + (blue-cooler "#B6C0EE") + (blue-faint "#97AED0") + + (magenta "#d2bdf3") + (magenta-warmer "#f3c0e5") + (magenta-cooler "#E1C1F4") + (magenta-faint "#B6A0D8") + + (cyan "#b3e3ca") + (cyan-warmer "#B3E3BF") + (cyan-cooler "#b3e6db") + (cyan-faint "#97C7AE") + + (bg-red-intense "#6D2C2E") + (bg-red-subtle "#482A2B") + (bg-red-nuanced "#372828") + (bg-green-intense "#4D6D2C") + (bg-green-subtle "#39482A") + (bg-green-nuanced "#2F3728") + (bg-yellow-intense "#6D532C") + (bg-yellow-subtle "#483C2A") + (bg-yellow-nuanced "#373128") + (bg-blue-intense "#2C476D") + (bg-blue-subtle "#2A3748") + (bg-blue-nuanced "#282E37") + (bg-magenta-intense "#452C6D") + (bg-magenta-subtle "#362A48") + (bg-magenta-nuanced "#2D2837") + (bg-cyan-intense "#2C6D4B") + (bg-cyan-subtle "#2A4839") + (bg-cyan-nuanced "#28372F") + + (bg-graph-red-0 "#A63033") + (bg-graph-red-1 "#6B2E2F") + (bg-graph-green-0 "#6BA630") + (bg-graph-green-1 "#4D6B2E") + (bg-graph-yellow-0 "#A67730") + (bg-graph-yellow-1 "#6B532E") + (bg-graph-blue-0 "#3060A6") + (bg-graph-blue-1 "#2E476B") + (bg-graph-magenta-0 "#5E30A6") + (bg-graph-magenta-1 "#462E6B") + (bg-graph-cyan-0 "#30A669") + (bg-graph-cyan-1 "#2E6B4B") + + (bg-added "#4D6D2C") + (bg-added-faint "#39482A") + (bg-added-refine "#435B2B") + (bg-added-fringe "#6BA630") + (fg-added "#cbe3b3") + (fg-added-intense "#8BCC4A") + (bg-changed "#6D532C") + (bg-changed-faint "#483C2A") + (bg-changed-refine "#5B482B") + (bg-changed-fringe "#A67730") + (fg-changed "#F3DF9F") + (fg-changed-intense "#F1BF22") + (bg-removed "#6D2C2E") + (bg-removed-faint "#482A2B") + (bg-removed-refine "#5B2B2C") + (bg-removed-fringe "#A63033") + (fg-removed "#f57f82") + (fg-removed-intense "#EF050B") + (bg-diff-context "#4a585c") + + (bg-mode-line-active "#435054") + (fg-mode-line-active "#f8f9e8") + (bg-mode-line-inactive "#262f33") + (fg-mode-line-inactive "#adc9bc") + (border-mode-line-active "#cbe3b3") + (border-mode-line-inactive "#58686d") + (bg-completion "#262f33") + (bg-hover "#4a585c") + (bg-hover-secondary "#2A3748") + (bg-hl-line "#4a585c") + (bg-paren-match "#6D532C") + (bg-err "#6D2C2E") + (bg-warning "#6D532C") + (bg-info "#2C6D4B") + (bg-region "#4D6D2C") + (bg-prose-block "#252D31")) + "Base palette entries for `evergarden-winter'") + +(evergarden-build-theme 'evergarden-winter evergarden-winter-palette-partial 'dark) + +(provide 'evergarden-winter-theme) + +;;; evergarden-winter-theme.el ends here diff --git a/evergarden.tera b/evergarden.tera deleted file mode 100644 index c6ca17e..0000000 --- a/evergarden.tera +++ /dev/null @@ -1,477 +0,0 @@ ---- -whiskers: - version: "^2.9.0" - matrix: - - flavor: ["fall", "winter", "spring", "summer"] - filename: "evergarden-{{ flavor }}.el" ---- -{% set red = flavor.colors.red %} -{% set orange = flavor.colors.orange %} -{% set yellow = flavor.colors.yellow %} -{% set lime = flavor.colors.lime %} -{% set green = flavor.colors.green %} -{% set aqua = flavor.colors.aqua %} -{% set skye = flavor.colors.skye %} -{% set snow = flavor.colors.snow %} -{% set blue = flavor.colors.blue %} -{% set purple = flavor.colors.purple %} -{% set pink = flavor.colors.pink %} -{% set cherry = flavor.colors.cherry %} -{% set text = flavor.colors.text %} -{% set subtext1 = flavor.colors.subtext1 %} -{% set subtext0 = flavor.colors.subtext0 %} -{% set overlay2 = flavor.colors.overlay2 %} -{% set overlay1 = flavor.colors.overlay1 %} -{% set overlay0 = flavor.colors.overlay0 %} -{% set surface2 = flavor.colors.surface2 %} -{% set surface1 = flavor.colors.surface1 %} -{% set surface0 = flavor.colors.surface0 %} -{% set base = flavor.colors.base %} -{% set mantle = flavor.colors.mantle %} -{% set crust = flavor.colors.crust %} - -;;; evergarden-theme.el --- Cozy evergarden dark theme -*- lexical-binding: t; -*- - -;; Author: expansion of the original evergarden theme by @koi.rip -;; Version: 0.1.0 -;; Package-Requires: ((emacs "28.1") (modus-themes "5.0.0") (ef-themes "2.0.0")) -;; Keywords: faces, theme - -;;; Commentary: -;; The evergarden theme (https://evergarden.moe), ported to Emacs and based on ef/modus themes - -;;; Code: - -(require 'modus-themes) -(require 'ef-themes) - -(defgroup evergarden-theme nil - "Cozy evergarden dark theme built on Modus and Ef." - :group 'faces - :group 'ef-themes - :prefix "evergarden-") - -(defconst evergarden-theme-description - "Cozy evergarden dark theme with forest-green accents." - "Documentation string for the `evergarden' theme.") - -(defconst evergarden-theme-name 'evergarden - "Theme symbol for `evergarden'.") - -(defconst evergarden-theme-family 'evergarden-theme - "Theme family symbol for `evergarden'.") - -(defconst evergarden-theme-background-mode 'dark - "Background mode for `evergarden'.") - -(defconst evergarden-palette-partial - '( - (cursor "{{ cherry.hex }}") - (bg-main "{{ base.hex }}") - (bg-dim "{{ surface0.hex }}") - (bg-alt "{{ surface1.hex }}") - (fg-main "{{ text.hex }}") - (fg-dim "{{ subtext1.hex }}") - (fg-alt "{{ subtext0.hex }}") - (bg-active "{{ surface2.hex }}") - (bg-inactive "{{ surface0.hex }}") - (border "{{ overlay0.hex }}") - - (bg-hl "{{ surface2.hex }}") - (bg-prose-block "#2A3237") - (red "{{ red.hex }}") - (orange "{{ orange.hex }}") - (yellow "{{ yellow.hex }}") - (lime "{{ lime.hex }}") - (green "{{ green.hex }}") - (aqua "{{ aqua.hex }}") - (skye "{{ skye.hex }}") - (snow "{{ snow.hex }}") - (blue "{{ blue.hex }}") - (purple "{{ purple.hex }}") - (pink "{{ pink.hex }}") - (cherry "{{ cherry.hex }}") - (subtext1 "{{ subtext1.hex }}") - (subtext0 "{{ subtext0.hex }}") - (overlay2 "{{ overlay2.hex }}") - (overlay1 "{{ overlay1.hex }}") - (overlay0 "{{ overlay0.hex }}") - (surface2 "{{ surface2.hex }}") - (surface1 "{{ surface1.hex }}") - (surface0 "{{ surface0.hex }}") - (mantle "{{ mantle.hex }}") - (crust "{{ crust.hex }}") - - (red-warmer "#F6798F") - (red-cooler "#F68F74") - (red-faint "#D07173") - - (green-warmer "#DBE6AF") - (green-cooler "#BBE2AF") - (green-faint "#B2C49F") - - (yellow-warmer "#F6C497") - (yellow-cooler "#F2DC96") - (yellow-faint "#D4B586") - - (blue-warmer "#AFD9E6") - (blue-cooler "#AEB9EC") - (blue-faint "#9AAFCD") - - (magenta "#D2BDF3") - (magenta-warmer "#F3C0E5") - (magenta-cooler "#DCB9F2") - (magenta-faint "#B6A0D8") - - (cyan "#B3E3CA") - (cyan-warmer "#B3E3BF") - (cyan-cooler "#B3E6DB") - (cyan-faint "#9DC1AE") - - (bg-red-intense "#6D2C2E") - (bg-green-intense "#4D6D2C") - (bg-yellow-intense "#6D532C") - (bg-blue-intense "#2C476D") - (bg-magenta-intense "#452C6D") - (bg-cyan-intense "#2C6D4B") - - (bg-red-subtle "#482A2B") - (bg-green-subtle "#39482A") - (bg-yellow-subtle "#483C2A") - (bg-blue-subtle "#2A3748") - (bg-magenta-subtle "#362A48") - (bg-cyan-subtle "#2A4839") - - (bg-red-nuanced "#372828") - (bg-green-nuanced "#2F3728") - (bg-yellow-nuanced "#373128") - (bg-blue-nuanced "#282E37") - (bg-magenta-nuanced "#2D2837") - (bg-cyan-nuanced "#28372F") - - (bg-graph-red-0 "#A63033") - (bg-graph-red-1 "#6B2E2F") - (bg-graph-green-0 "#6BA630") - (bg-graph-green-1 "#4D6B2E") - (bg-graph-yellow-0 "#A67730") - (bg-graph-yellow-1 "#6B532E") - (bg-graph-blue-0 "#3060A6") - (bg-graph-blue-1 "#2E476B") - (bg-graph-magenta-0 "#5E30A6") - (bg-graph-magenta-1 "#462E6B") - (bg-graph-cyan-0 "#30A669") - (bg-graph-cyan-1 "#2E6B4B") - (bg-added "#4D6D2C") - (bg-added-faint "#39482A") - (bg-added-refine "#577B32") - (bg-added-fringe "#4D6B2E") - (fg-added "#CBE3B3") - (fg-added-intense "#8BCC4A") - (bg-changed "#6D532C") - (bg-changed-faint "#483C2A") - (bg-changed-refine "#7B5E32") - (bg-changed-fringe "#6B532E") - (fg-changed "#F2DC96") - (fg-changed-intense "#F69D18") - (bg-removed "#6D2C2E") - (bg-removed-faint "#482A2B") - (bg-removed-refine "#7B3234") - (bg-removed-fringe "#6B2E2F") - (fg-removed "#F57F82") - (fg-removed-intense "#F41A20") - (bg-diff-context "#4A585C") - (bg-mode-line-active "#455356") - (fg-mode-line-active "#F8F9E8") - (bg-mode-line-inactive "#2B3337") - (fg-mode-line-inactive "#ADC9BC") - (border-mode-line-active "#CBE3B3") - (border-mode-line-inactive "#58686D") - (bg-completion "#374145") - (bg-hover "#4A585C") - (bg-hover-secondary "#2B3646") - (bg-hl-line "#4A585C") - (bg-paren-match "#604D2E") - (bg-err "#6D2C2E") - (bg-warning "#6D532C") - (bg-info "#2C6D4B") - (bg-region "#4A585C")) - "Base palette entries for `evergarden'.") - -(defconst evergarden-palette-mappings-partial - '( - (err red) - (warning orange) - (info cyan) - (underline-err red) - (underline-warning orange) - (underline-note cyan) - (modeline-err red) - (modeline-warning yellow) - (modeline-info cyan) - (bg-prominent-warning bg-warning) - (fg-prominent-warning fg-main) - (bg-prominent-note bg-info) - (fg-prominent-note fg-main) - (fg-link blue) - (fg-link-visited magenta) - (fg-link-symbolic cyan) - (bg-link unspecified) - (bg-link-symbolic unspecified) - (bg-link-visited unspecified) - (underline-link blue) - (underline-link-visited magenta) - (underline-link-symbolic cyan) - (name cyan) - (keybind green) - (identifier fg-main) - (fg-prompt green) - (bg-prompt unspecified) - (builtin cyan-cooler) - (comment fg-dim) - (constant magenta-cooler) - (fnname cyan) - (fnname-call cyan-warmer) - (keyword red) - (preprocessor green) - (property fg-main) - (docstring fg-dim) - (docmarkup green-cooler) - (string green-warmer) - (type yellow) - (variable blue) - (variable-use blue) - (rx-backslash orange) - (rx-construct magenta) - (accent-0 green) - (accent-1 cyan) - (accent-2 magenta-warmer) - (accent-3 orange) - (fg-button-active fg-main) - (fg-button-inactive fg-dim) - (bg-button-active bg-main) - (bg-button-inactive bg-dim) - (fg-region fg-main) - (bg-mark-delete bg-red-subtle) - (fg-mark-delete red) - (bg-mark-select bg-green-subtle) - (fg-mark-select green) - (bg-mark-other bg-cyan-subtle) - (fg-mark-other cyan) - (date-common cyan) - (date-deadline red) - (date-deadline-subtle red-faint) - (date-event fg-alt) - (date-holiday red-warmer) - (date-holiday-other magenta-warmer) - (date-now fg-main) - (date-range fg-alt) - (date-scheduled green) - (date-scheduled-subtle green-faint) - (date-weekday blue) - (date-weekend red-faint) - (fg-prose-code green-cooler) - (prose-done green) - (fg-prose-macro green) - (prose-metadata fg-dim) - (prose-metadata-value fg-alt) - (prose-table fg-alt) - (prose-table-formula cyan) - (prose-tag yellow-faint) - (prose-todo red) - (fg-prose-verbatim magenta-warmer) - (mail-cite-0 green) - (mail-cite-1 cyan) - (mail-cite-2 magenta-warmer) - (mail-cite-3 red-warmer) - (mail-part cyan) - (mail-recipient blue) - (mail-subject green) - (mail-other fg-alt) - (bg-search-static bg-cyan-subtle) - (bg-search-current bg-green-intense) - (bg-search-lazy bg-green-subtle) - (bg-search-replace bg-red-intense) - (bg-search-rx-group-0 bg-green-intense) - (bg-search-rx-group-1 bg-magenta-intense) - (bg-search-rx-group-2 bg-cyan-intense) - (bg-search-rx-group-3 bg-red-intense) - (bg-space-err bg-red-intense) - (bg-space bg-main) - (fg-space border) - (fringe bg-main) - (fg-line-number-active green) - (fg-line-number-inactive overlay1) - (bg-line-number-active bg-hl-line) - (bg-line-number-inactive bg-main) - (bg-tab-bar bg-dim) - (bg-tab-current bg-main) - (bg-tab-other bg-dim) - (bg-prominent-err bg-err) - (fg-prominent-err err) - (fg-paren-match fg-main) - (underline-paren-match unspecified) - (bg-active-argument bg-active) - (fg-active-argument green) - (bg-active-value bg-green-subtle) - (fg-active-value green) - (bg-prose-block-delimiter bg-prose-block) - (fg-prose-block-delimiter fg-dim) - (bg-prose-block-contents bg-prose-block) - (bg-prose-code unspecified) - (bg-prose-macro unspecified) - (bg-prose-verbatim unspecified) - (fg-completion-match-0 green) - (fg-completion-match-1 cyan) - (fg-completion-match-2 magenta-warmer) - (fg-completion-match-3 orange) - (bg-completion-match-0 unspecified) - (bg-completion-match-1 unspecified) - (bg-completion-match-2 unspecified) - (bg-completion-match-3 unspecified) - (bg-completion bg-dim) - (fg-search-current fg-main) - (bg-term-black bg-main) - (fg-term-black bg-main) - (bg-term-black-bright overlay0) - (fg-term-black-bright overlay0) - (bg-term-red red) - (fg-term-red red) - (bg-term-red-bright red-warmer) - (fg-term-red-bright red-warmer) - (bg-term-green green) - (fg-term-green green) - (bg-term-green-bright green-warmer) - (fg-term-green-bright green-warmer) - (bg-term-yellow yellow) - (fg-term-yellow yellow) - (bg-term-yellow-bright yellow-warmer) - (fg-term-yellow-bright yellow-warmer) - (bg-term-blue blue) - (fg-term-blue blue) - (bg-term-blue-bright blue-warmer) - (fg-term-blue-bright blue-warmer) - (bg-term-magenta magenta) - (fg-term-magenta magenta) - (bg-term-magenta-bright magenta-warmer) - (fg-term-magenta-bright magenta-warmer) - (bg-term-cyan cyan) - (fg-term-cyan cyan) - (bg-term-cyan-bright cyan-warmer) - (fg-term-cyan-bright cyan-warmer) - (bg-term-white fg-dim) - (fg-term-white fg-dim) - (bg-term-white-bright fg-main) - (fg-term-white-bright fg-main) - (rainbow-0 green) - (rainbow-1 cyan) - (rainbow-2 magenta) - (rainbow-3 blue) - (rainbow-4 orange) - (rainbow-5 red) - (rainbow-6 yellow) - (rainbow-7 fg-alt) - (rainbow-8 fg-dim) - (fg-heading-0 green) - (fg-heading-1 green) - (fg-heading-2 cyan) - (fg-heading-3 magenta) - (fg-heading-4 blue) - (fg-heading-5 orange) - (fg-heading-6 red) - (fg-heading-7 fg-alt) - (fg-heading-8 fg-dim) - (bg-heading-0 unspecified) - (bg-heading-1 bg-green-nuanced) - (bg-heading-2 unspecified) - (bg-heading-3 bg-magenta-nuanced) - (bg-heading-4 bg-blue-nuanced) - (bg-heading-5 unspecified) - (bg-heading-6 bg-red-nuanced) - (bg-heading-7 unspecified) - (bg-heading-8 unspecified) - (overline-heading-0 green) - (overline-heading-1 green) - (overline-heading-2 cyan) - (overline-heading-3 magenta) - (overline-heading-4 blue) - (overline-heading-5 orange) - (overline-heading-6 red) - (overline-heading-7 unspecified) - (overline-heading-8 unspecified)) - "Semantic color mappings for `evergarden'.") - -(defcustom evergarden-palette-overrides nil - "Overrides for `evergarden-palette'. - -Each element should have the form (NAME VALUE), where NAME is a palette -entry from `evergarden-palette' and VALUE is either another palette symbol -or a color string." - :group 'evergarden-theme - :package-version '(evergarden-theme . "0.1.0") - :type '(repeat (list symbol (choice symbol string)))) - -(defconst evergarden-palette - (modus-themes-generate-palette - evergarden-palette-partial - 'cool - nil - (append evergarden-palette-mappings-partial ef-themes-palette-common)) - "Full palette for `evergarden'.") - -(defconst evergarden-custom-faces - '(`(corfu-default ((,c :inherit modus-themes-fixed-pitch - :background ,bg-dim - :foreground ,fg-main))) - `(corfu-current ((,c :background ,bg-green-intense - :foreground ,fg-main - :extend t - :box (:line-width -1 :color ,green) - :weight semi-bold))) - `(corfu-border ((,c :background ,border - :foreground ,border))) - `(corfu-bar ((,c :background ,green))) - `(corfu-popupinfo ((,c :background ,bg-dim - :foreground ,fg-main)))) - "Additional face overrides for `evergarden'. - -Prefer palette entries and semantic mappings first. -Use direct face overrides only for targeted package cases where the -inherited mapping does not provide enough contrast.") - -(defun evergarden--ensure-modus-theme-metadata () - "Declare `evergarden' as a Modus-derived theme when reloading in-session. - -If an `evergarden' theme object already exists in the session, ensure it -still has the theme properties that `modus-themes-theme' expects." - (unless (plist-get (get evergarden-theme-name 'theme-properties) :modus-core-palette) - (modus-themes-declare - evergarden-theme-name - evergarden-theme-family - evergarden-theme-description - evergarden-theme-background-mode - 'evergarden-palette - nil - 'evergarden-palette-overrides) - (modus-themes-register evergarden-theme-name))) - -(evergarden--ensure-modus-theme-metadata) - -(modus-themes-theme - evergarden-theme-name - evergarden-theme-family - evergarden-theme-description - evergarden-theme-background-mode - 'evergarden-palette - nil - 'evergarden-palette-overrides - 'evergarden-custom-faces) - -;;;###autoload -(when load-file-name - (add-to-list 'custom-theme-load-path - (file-name-as-directory - (file-name-directory load-file-name)))) - -(provide 'evergarden-theme) - -;;; evergarden-theme.el ends here |
