branch: externals/ef-themes
commit 44e387f8e4fa9f9f2127f097b1b3054818a4dd78
Author: Protesilaos Stavrou <i...@protesilaos.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    Add ef-dream and ef-reverie themes
---
 contrast-ratios.org | 136 ++++++++++++++++++++
 ef-dream-theme.el   | 348 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 ef-reverie-theme.el | 348 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 ef-themes.el        |   2 +
 4 files changed, 834 insertions(+)

diff --git a/contrast-ratios.org b/contrast-ratios.org
index 93b75258ac..76fa6d7116 100644
--- a/contrast-ratios.org
+++ b/contrast-ratios.org
@@ -637,6 +637,74 @@ a tone.  Blue is okay.
 | #d3d3e0 |    10071 |     1.37 |
 #+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f
 
+* ef-dream
+:PROPERTIES:
+:CUSTOM_ID: h:8a8a4518-9eca-4ece-8bc4-25fbc5530f62
+:END:
+
+** Base colours
+:PROPERTIES:
+:CUSTOM_ID: h:d25270b3-c82b-41d3-8cea-9a1e01e9af92
+:END:
+
+Most of these are not actually used. We just define the entire palette
+to make it work with the overall design of the project.
+
+| Name           |         | #232025 | #322f34 | #3b393e | #2a272c |
+|----------------+---------+---------+---------+---------+---------|
+| fg-main        | #efd5c5 |   11.49 |    9.42 |    8.15 |   10.52 |
+| fg-dim         | #8f8886 |    4.62 |    3.79 |    3.28 |    4.23 |
+| fg-alt         | #b0a0cf |    6.73 |    5.51 |    4.77 |    6.16 |
+| red            | #ff6f6f |    5.94 |    4.87 |    4.21 |    5.44 |
+| red-warmer     | #ff7a5f |    6.29 |    5.15 |    4.46 |    5.76 |
+| red-cooler     | #e47980 |    5.63 |    4.61 |    3.99 |    5.15 |
+| red-faint      | #f3a0a0 |    7.93 |    6.50 |    5.62 |    7.26 |
+| green          | #51b04f |    5.88 |    4.82 |    4.17 |    5.38 |
+| green-warmer   | #7fce5f |    8.35 |    6.85 |    5.92 |    7.65 |
+| green-cooler   | #3fc489 |    7.26 |    5.95 |    5.14 |    6.64 |
+| green-faint    | #a9c99f |    8.85 |    7.25 |    6.27 |    8.10 |
+| yellow         | #c0b24f |    7.45 |    6.11 |    5.28 |    6.82 |
+| yellow-warmer  | #d09950 |    6.40 |    5.25 |    4.54 |    5.86 |
+| yellow-cooler  | #deb07a |    8.12 |    6.66 |    5.76 |    7.44 |
+| yellow-faint   | #caa89f |    7.37 |    6.04 |    5.22 |    6.75 |
+| blue           | #57b0ff |    6.94 |    5.69 |    4.92 |    6.36 |
+| blue-warmer    | #80aadf |    6.69 |    5.49 |    4.74 |    6.13 |
+| blue-cooler    | #12b4ff |    6.90 |    5.65 |    4.89 |    6.31 |
+| blue-faint     | #9ac3ff |    8.91 |    7.30 |    6.31 |    8.16 |
+| magenta        | #ffaacf |    9.12 |    7.48 |    6.47 |    8.35 |
+| magenta-warmer | #f498c0 |    7.74 |    6.34 |    5.49 |    7.09 |
+| magenta-cooler | #d0b0ff |    8.69 |    7.12 |    6.16 |    7.96 |
+| magenta-faint  | #e3b0c0 |    8.61 |    7.06 |    6.10 |    7.89 |
+| cyan           | #6fb3c0 |    6.81 |    5.58 |    4.83 |    6.24 |
+| cyan-warmer    | #8fcfd0 |    9.20 |    7.54 |    6.52 |    8.42 |
+| cyan-cooler    | #65c5a8 |    7.74 |    6.35 |    5.49 |    7.09 |
+| cyan-faint     | #99bfcf |    8.21 |    6.73 |    5.82 |    7.51 |
+#+TBLFM: $3='(Λ $2 @1$3);%.2f :: $4='(Λ $2 @1$4);%.2f :: $5='(Λ $2 @1$5);%.2f 
:: $6='(Λ $2 @1$6);%.2f
+
+** Special colours against the modeline
+:PROPERTIES:
+:CUSTOM_ID: h:0e9741d6-fb23-4a64-8716-30d7e6c36d5b
+:END:
+
+| Name             |         | #675072 |
+|------------------+---------+---------|
+| modeline-err     | #ffbfbf |    4.54 |
+| modeline-warning | #dfd443 |    4.60 |
+| modeline-info    | #7fefff |    5.29 |
+#+TBLFM: $3='(Λ $2 @1$3);%.2f
+
+** Distance and contrast between main backgrounds
+:PROPERTIES:
+:CUSTOM_ID: h:16e950e0-2433-4858-8ebb-29deaa6bfb1e
+:END:
+
+# bg-main / bg-dim, bg-main / bg-alt
+| #232025 | distance | contrast |
+|---------+----------+----------|
+| #322f34 |     2040 |     1.22 |
+| #3b393e |     5561 |     1.41 |
+#+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f
+
 * ef-duo-dark
 :PROPERTIES:
 :CUSTOM_ID: h:d9fc786a-79e2-4cf7-bc71-64d9cf7de79d
@@ -1425,6 +1493,74 @@ work with the overall design of the project.
 | #242e39 |    10245 |     1.42 |
 #+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f
 
+* ef-reverie
+:PROPERTIES:
+:CUSTOM_ID: h:eea07b9c-81ea-4158-b7d6-79dcc8217b8b
+:END:
+
+** Base colours
+:PROPERTIES:
+:CUSTOM_ID: h:f6fc19ec-672b-4b0d-9d6a-a7fd7d49cfd5
+:END:
+
+Most of these are not actually used. We just define the entire palette
+to make it work with the overall design of the project.
+
+| Name           |         | #f3eddf | #e6d3d0 | #d7c6c5 | #f1e4da |
+|----------------+---------+---------+---------+---------+---------|
+| fg-main        | #4f204f |   10.89 |    8.83 |    7.73 |   10.20 |
+| fg-dim         | #6f6877 |    4.59 |    3.72 |    3.26 |    4.30 |
+| fg-alt         | #55447f |    7.14 |    5.79 |    5.07 |    6.69 |
+| red            | #ba2d2f |    5.13 |    4.16 |    3.65 |    4.81 |
+| red-warmer     | #b21f00 |    5.82 |    4.72 |    4.14 |    5.45 |
+| red-cooler     | #a4384f |    5.52 |    4.48 |    3.92 |    5.17 |
+| red-faint      | #a04650 |    5.16 |    4.19 |    3.66 |    4.83 |
+| green          | #007a0a |    4.75 |    3.85 |    3.37 |    4.45 |
+| green-warmer   | #5a7400 |    4.57 |    3.71 |    3.25 |    4.28 |
+| green-cooler   | #008250 |    4.18 |    3.39 |    2.96 |    3.91 |
+| green-faint    | #426340 |    5.82 |    4.72 |    4.13 |    5.45 |
+| yellow         | #88602f |    4.78 |    3.88 |    3.40 |    4.48 |
+| yellow-warmer  | #a05005 |    4.94 |    4.00 |    3.50 |    4.62 |
+| yellow-cooler  | #906045 |    4.56 |    3.70 |    3.24 |    4.27 |
+| yellow-faint   | #7a5c50 |    5.18 |    4.20 |    3.68 |    4.85 |
+| blue           | #375cc6 |    5.13 |    4.16 |    3.64 |    4.80 |
+| blue-warmer    | #5059c0 |    5.09 |    4.13 |    3.62 |    4.77 |
+| blue-cooler    | #265fbf |    5.18 |    4.20 |    3.68 |    4.85 |
+| blue-faint     | #4a659f |    4.92 |    3.99 |    3.50 |    4.61 |
+| magenta        | #9f4e74 |    4.71 |    3.82 |    3.35 |    4.42 |
+| magenta-warmer | #a73080 |    5.33 |    4.32 |    3.78 |    4.99 |
+| magenta-cooler | #7755b4 |    4.81 |    3.90 |    3.41 |    4.50 |
+| magenta-faint  | #97508f |    4.66 |    3.78 |    3.31 |    4.37 |
+| cyan           | #3060af |    5.26 |    4.27 |    3.74 |    4.93 |
+| cyan-warmer    | #4f60a0 |    5.12 |    4.15 |    3.64 |    4.80 |
+| cyan-cooler    | #0b6e8a |    4.98 |    4.04 |    3.54 |    4.67 |
+| cyan-faint     | #456b82 |    4.89 |    3.97 |    3.47 |    4.58 |
+#+TBLFM: $3='(Λ $2 @1$3);%.2f :: $4='(Λ $2 @1$4);%.2f :: $5='(Λ $2 @1$5);%.2f 
:: $6='(Λ $2 @1$6);%.2f
+
+** Special colours against the modeline
+:PROPERTIES:
+:CUSTOM_ID: h:f5386e8f-5d42-4d3f-a05e-55d0436895f2
+:END:
+
+| Name             |         | #d1b0df |
+|------------------+---------+---------|
+| modeline-err     | #900000 |    5.03 |
+| modeline-warning | #66008f |    5.60 |
+| modeline-info    | #1f409f |    4.79 |
+#+TBLFM: $3='(Λ $2 @1$3);%.2f
+
+** Distance and contrast between main backgrounds
+:PROPERTIES:
+:CUSTOM_ID: h:f1a09072-3df5-49f5-a91f-ad43dba6471e
+:END:
+
+# bg-main / bg-dim, bg-main / bg-alt
+| #f3eddf | distance | contrast |
+|---------+----------+----------|
+| #e6d3d0 |     3693 |     1.23 |
+| #d7c6c5 |     9853 |     1.41 |
+#+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f
+
 * ef-rosa
 :PROPERTIES:
 :CUSTOM_ID: h:cc74fbff-d0da-4fef-a83a-8e92d27738b9
diff --git a/ef-dream-theme.el b/ef-dream-theme.el
new file mode 100644
index 0000000000..8b9e55376f
--- /dev/null
+++ b/ef-dream-theme.el
@@ -0,0 +1,348 @@
+;;; ef-dream-theme.el --- Legible dark theme with gold and nuanced colors -*- 
lexical-binding:t -*-
+
+;; Copyright (C) 2022-2024  Free Software Foundation, Inc.
+
+;; Author: Protesilaos Stavrou <i...@protesilaos.com>
+;; Maintainer: Protesilaos Stavrou <i...@protesilaos.com>
+;; URL: https://github.com/protesilaos/ef-themes
+;; Keywords: faces, theme, accessibility
+
+;; This file is NOT part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; The `ef-themes' are a collection of light and dark themes for GNU
+;; Emacs whose goal is to provide colorful ("pretty") yet legible
+;; options for users who want something with a bit more flair than the
+;; `modus-themes' (also designed by me).
+
+;;; Code:
+
+
+
+(eval-and-compile
+  (require 'ef-themes)
+
+;;;###theme-autoload
+  (deftheme ef-dream
+    "Legible dark theme with gold and nuanced colors."
+    :background-mode 'dark
+    :kind 'color-scheme
+    :family 'ef)
+
+  (defconst ef-dream-palette
+    '(
+;;; Basic values
+
+      (bg-main     "#232025")
+      (fg-main     "#efd5c5")
+      (bg-dim      "#322f34")
+      (fg-dim      "#8f8886")
+      (bg-alt      "#3b393e")
+      (fg-alt      "#b0a0cf")
+
+      (bg-active   "#5b595e")
+      (bg-inactive "#2a272c")
+
+;;; Basic hues for foreground values
+
+      (red             "#ff6f6f")
+      (red-warmer      "#ff7a5f")
+      (red-cooler      "#e47980")
+      (red-faint       "#f3a0a0")
+      (green           "#51b04f")
+      (green-warmer    "#7fce5f")
+      (green-cooler    "#3fc489")
+      (green-faint     "#a9c99f")
+      (yellow          "#c0b24f")
+      (yellow-warmer   "#d09950")
+      (yellow-cooler   "#deb07a")
+      (yellow-faint    "#caa89f")
+      (blue            "#57b0ff")
+      (blue-warmer     "#80aadf")
+      (blue-cooler     "#12b4ff")
+      (blue-faint      "#9ac3ff")
+      (magenta         "#ffaacf")
+      (magenta-warmer  "#f498c0")
+      (magenta-cooler  "#d0b0ff")
+      (magenta-faint   "#e3b0c0")
+      (cyan            "#6fb3c0")
+      (cyan-warmer     "#8fcfd0")
+      (cyan-cooler     "#65c5a8")
+      (cyan-faint      "#99bfcf")
+
+;;; Basic hues for background values
+
+      (bg-red-intense     "#bd1f30")
+      (bg-green-intense   "#107840")
+      (bg-yellow-intense  "#847020")
+      (bg-blue-intense    "#2f5f9f")
+      (bg-magenta-intense "#b05fcf")
+      (bg-cyan-intense    "#0280b9")
+
+      (bg-red-subtle      "#6a102a")
+      (bg-green-subtle    "#00522a")
+      (bg-yellow-subtle   "#5a4000")
+      (bg-blue-subtle     "#243788")
+      (bg-magenta-subtle  "#422e6b")
+      (bg-cyan-subtle     "#005065")
+
+;;; Diffs
+
+      (bg-added          "#304a4f")
+      (bg-added-faint    "#16383f")
+      (bg-added-refine   "#336f6f")
+      (fg-added          "#a0d0f0")
+
+      (bg-changed        "#51512f")
+      (bg-changed-faint  "#40332f")
+      (bg-changed-refine "#64651f")
+      (fg-changed        "#dada90")
+
+      (bg-removed        "#5a3142")
+      (bg-removed-faint  "#4a2034")
+      (bg-removed-refine "#772a4b")
+      (fg-removed        "#f0bfcf")
+
+;;; Graphs
+
+      (bg-graph-red-0     "#b52c2c")
+      (bg-graph-red-1     "#702020")
+      (bg-graph-green-0   "#0fed00")
+      (bg-graph-green-1   "#007800")
+      (bg-graph-yellow-0  "#f1e00a")
+      (bg-graph-yellow-1  "#b08940")
+      (bg-graph-blue-0    "#2fafef")
+      (bg-graph-blue-1    "#1f2f8f")
+      (bg-graph-magenta-0 "#bf94fe")
+      (bg-graph-magenta-1 "#5f509f")
+      (bg-graph-cyan-0    "#47dfea")
+      (bg-graph-cyan-1    "#00808f")
+
+;;; Special hues
+
+      (bg-mode-line       "#675072")
+      (fg-mode-line       "#fedeff")
+      (bg-completion      "#724a5f")
+      (bg-hover           "#957856")
+      (bg-hover-secondary "#665f7a")
+      (bg-hl-line         "#412f4f")
+      (bg-paren           "#885566")
+      (bg-err             "#501a2d") ; check with err
+      (bg-warning         "#4e3930") ; check with warning
+      (bg-info            "#0f3f4f") ; check with info
+
+      (border        "#635850")
+      (cursor        "#f3c09a")
+      (fg-intense    "#ffffff")
+
+      (modeline-err     "#ffbfbf")
+      (modeline-warning "#dfd443")
+      (modeline-info    "#7fefff")
+
+      (underline-err     "#c04f9f")
+      (underline-warning "#c0b000")
+      (underline-info    "#229fb2")
+
+      (bg-char-0 "#0050af")
+      (bg-char-1 "#7f1f7f")
+      (bg-char-2 "#6f6600")
+
+;;; Mappings
+
+;;;; General mappings
+
+      (bg-fringe unspecified)
+      (fg-fringe unspecified)
+
+      (err magenta-warmer)
+      (warning yellow-warmer)
+      (info cyan)
+
+      (link yellow-cooler)
+      (link-alt cyan-warmer)
+      (name cyan-warmer)
+      (keybind cyan)
+      (identifier yellow-cooler)
+      (prompt magenta)
+
+      (bg-region "#544a50")
+      (fg-region unspecified)
+
+;;;; Code mappings
+
+      (builtin magenta-faint)
+      (comment fg-dim)
+      (constant blue-warmer)
+      (fnname cyan-warmer)
+      (keyword yellow-cooler)
+      (preprocessor cyan-cooler)
+      (docstring yellow-faint)
+      (string red-faint)
+      (type green-faint)
+      (variable magenta)
+      (rx-escape cyan-cooler) ; compare with `string'
+      (rx-construct red-cooler)
+
+;;;; Accent mappings
+
+      (accent-0 yellow-cooler)
+      (accent-1 red-cooler)
+      (accent-2 magenta-warmer)
+      (accent-3 blue-warmer)
+
+;;;; Date mappings
+
+      (date-common magenta-faint)
+      (date-deadline red-cooler)
+      (date-event fg-alt)
+      (date-holiday red-warmer)
+      (date-now fg-main)
+      (date-range fg-alt)
+      (date-scheduled yellow-cooler)
+      (date-weekday magenta)
+      (date-weekend blue-faint)
+
+;;;; Prose mappings
+
+      (prose-code blue-warmer)
+      (prose-done cyan-warmer)
+      (prose-macro green-cooler)
+      (prose-metadata fg-dim)
+      (prose-metadata-value fg-alt)
+      (prose-table fg-alt)
+      (prose-table-formula info)
+      (prose-tag yellow-faint)
+      (prose-todo yellow-warmer)
+      (prose-verbatim magenta-warmer)
+
+;;;; Mail mappings
+
+      (mail-cite-0 yellow-cooler)
+      (mail-cite-1 red-cooler)
+      (mail-cite-2 cyan-faint)
+      (mail-cite-3 green-faint)
+      (mail-part red-faint)
+      (mail-recipient cyan-faint)
+      (mail-subject magenta-warmer)
+      (mail-other magenta-faint)
+
+;;;; Search mappings
+
+      (bg-search-current bg-yellow-intense)
+      (bg-search-lazy bg-blue-intense)
+      (bg-search-replace bg-red-intense)
+
+      (bg-search-rx-group-0 bg-magenta-intense)
+      (bg-search-rx-group-1 bg-green-intense)
+      (bg-search-rx-group-2 bg-red-subtle)
+      (bg-search-rx-group-3 bg-cyan-subtle)
+
+;;;; Space mappings
+
+      (bg-space unspecified)
+      (fg-space border)
+      (bg-space-err bg-yellow-intense)
+
+;;;; Tab mappings
+
+      (bg-tab-bar      bg-alt)
+      (bg-tab-current  bg-main)
+      (bg-tab-other    bg-active)
+
+;;;; Terminal mappings
+
+      (bg-term-black           "black")
+      (fg-term-black           "black")
+      (bg-term-black-bright    "gray35")
+      (fg-term-black-bright    "gray35")
+
+      (bg-term-red             red)
+      (fg-term-red             red)
+      (bg-term-red-bright      red-warmer)
+      (fg-term-red-bright      red-warmer)
+
+      (bg-term-green           green-warmer)
+      (fg-term-green           green-warmer)
+      (bg-term-green-bright    green-cooler)
+      (fg-term-green-bright    green-cooler)
+
+      (bg-term-yellow          yellow)
+      (fg-term-yellow          yellow)
+      (bg-term-yellow-bright   yellow-warmer)
+      (fg-term-yellow-bright   yellow-warmer)
+
+      (bg-term-blue            blue-warmer)
+      (fg-term-blue            blue-warmer)
+      (bg-term-blue-bright     blue-cooler)
+      (fg-term-blue-bright     blue-cooler)
+
+      (bg-term-magenta         magenta)
+      (fg-term-magenta         magenta)
+      (bg-term-magenta-bright  magenta-cooler)
+      (fg-term-magenta-bright  magenta-cooler)
+
+      (bg-term-cyan            cyan)
+      (fg-term-cyan            cyan)
+      (bg-term-cyan-bright     cyan-cooler)
+      (fg-term-cyan-bright     cyan-cooler)
+
+      (bg-term-white           "gray65")
+      (fg-term-white           "gray65")
+      (bg-term-white-bright    "white")
+      (fg-term-white-bright    "white")
+
+;;;; Rainbow mappings
+
+      (rainbow-0 yellow-cooler)
+      (rainbow-1 magenta)
+      (rainbow-2 blue-warmer)
+      (rainbow-3 red-cooler)
+      (rainbow-4 magenta-cooler)
+      (rainbow-5 green-cooler)
+      (rainbow-6 cyan)
+      (rainbow-7 yellow)
+      (rainbow-8 red-faint))
+    "The `ef-dream' palette.
+Color values have the form (COLOR-NAME HEX-VALUE) with the former
+as a symbol and the latter as a string.
+
+Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
+with both as symbols.  The latter is a color that already exists
+in the palette and is associated with a HEX-VALUE.")
+
+  (defcustom ef-dream-palette-overrides nil
+    "Overrides for `ef-dream-palette'.
+
+Mirror the elements of the aforementioned palette, overriding
+their value.
+
+For overrides that are shared across all of the Ef themes,
+refer to `ef-themes-common-palette-overrides'.
+
+To preview the palette entries, use `ef-themes-preview-colors' or
+`ef-themes-preview-colors-current' (read the documentation for
+further details)."
+  :group 'ef-themes
+  :package-version '(ef-themes . "1.0.0")
+  :type '(repeat (list symbol (choice symbol string)))
+  :link '(info-link "(ef-themes) Palette overrides"))
+
+  (ef-themes-theme ef-dream ef-dream-palette ef-dream-palette-overrides)
+
+  (provide-theme 'ef-dream))
+
+;;; ef-dream-theme.el ends here
diff --git a/ef-reverie-theme.el b/ef-reverie-theme.el
new file mode 100644
index 0000000000..a033ccdd6b
--- /dev/null
+++ b/ef-reverie-theme.el
@@ -0,0 +1,348 @@
+;;; ef-reverie-theme.el --- Legible light theme with gold and nuanced colors 
-*- lexical-binding:t -*-
+
+;; Copyright (C) 2022-2024  Free Software Foundation, Inc.
+
+;; Author: Protesilaos Stavrou <i...@protesilaos.com>
+;; Maintainer: Protesilaos Stavrou <i...@protesilaos.com>
+;; URL: https://github.com/protesilaos/ef-themes
+;; Keywords: faces, theme, accessibility
+
+;; This file is NOT part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+;;
+;; The `ef-themes' are a collection of light and dark themes for GNU
+;; Emacs whose goal is to provide colorful ("pretty") yet legible
+;; options for users who want something with a bit more flair than the
+;; `modus-themes' (also designed by me).
+
+;;; Code:
+
+
+
+(eval-and-compile
+  (require 'ef-themes)
+
+;;;###theme-autoload
+  (deftheme ef-reverie
+    "Legible light theme with gold and nuanced colors."
+    :background-mode 'light
+    :kind 'color-scheme
+    :family 'ef)
+
+  (defconst ef-reverie-palette
+    '(
+;;; Basic values
+
+      (bg-main     "#f3eddf")
+      (fg-main     "#4f204f")
+      (bg-dim      "#e6d3d0")
+      (fg-dim      "#6f6877")
+      (bg-alt      "#d7c6c5")
+      (fg-alt      "#55447f")
+
+      (bg-active   "#b7a6a5")
+      (bg-inactive "#f1e4da")
+
+;;; Basic hues for foreground values
+
+      (red             "#ba2d2f")
+      (red-warmer      "#b21f00")
+      (red-cooler      "#a4384f")
+      (red-faint       "#a04650")
+      (green           "#007a0a")
+      (green-warmer    "#5a7400")
+      (green-cooler    "#008250")
+      (green-faint     "#426340")
+      (yellow          "#88602f")
+      (yellow-warmer   "#a05005")
+      (yellow-cooler   "#906045")
+      (yellow-faint    "#7a5c50")
+      (blue            "#375cc6")
+      (blue-warmer     "#5059c0")
+      (blue-cooler     "#265fbf")
+      (blue-faint      "#4a659f")
+      (magenta         "#9f4e74")
+      (magenta-warmer  "#a73080")
+      (magenta-cooler  "#7755b4")
+      (magenta-faint   "#97508f")
+      (cyan            "#3060af")
+      (cyan-warmer     "#4f60a0")
+      (cyan-cooler     "#0b6e8a")
+      (cyan-faint      "#456b82")
+
+;;; Basic hues for background values
+
+      (bg-red-intense     "#ff8f88")
+      (bg-green-intense   "#96df80")
+      (bg-yellow-intense  "#efbf00")
+      (bg-blue-intense    "#cfceff")
+      (bg-magenta-intense "#df9fff")
+      (bg-cyan-intense    "#88cfd0")
+
+      (bg-red-subtle      "#ffc6bf")
+      (bg-green-subtle    "#c4f2af")
+      (bg-yellow-subtle   "#f0f07f")
+      (bg-blue-subtle     "#ccdfff")
+      (bg-magenta-subtle  "#fad3ff")
+      (bg-cyan-subtle     "#bfefff")
+
+;;; Diffs
+
+      (bg-added          "#b7ecd0")
+      (bg-added-faint    "#cef3d2")
+      (bg-added-refine   "#a0d0c0")
+      (fg-added          "#0f443f")
+
+      (bg-changed        "#f5e690")
+      (bg-changed-faint  "#f5edaf")
+      (bg-changed-refine "#edd082")
+      (fg-changed        "#553d00")
+
+      (bg-removed        "#f8c3bf")
+      (bg-removed-faint  "#fed8d0")
+      (bg-removed-refine "#f0a0b9")
+      (fg-removed        "#801530")
+
+;;; Graphs
+
+      (bg-graph-red-0     "#ef7969")
+      (bg-graph-red-1     "#ffaab4")
+      (bg-graph-green-0   "#45c050")
+      (bg-graph-green-1   "#75ef30")
+      (bg-graph-yellow-0  "#ffcf00")
+      (bg-graph-yellow-1  "#f9ff00")
+      (bg-graph-blue-0    "#7f90ff")
+      (bg-graph-blue-1    "#a6c0ff")
+      (bg-graph-magenta-0 "#e07fff")
+      (bg-graph-magenta-1 "#fad0ff")
+      (bg-graph-cyan-0    "#70d3f0")
+      (bg-graph-cyan-1    "#afefff")
+
+;;; Special hues
+
+      (bg-mode-line       "#d1b0df")
+      (fg-mode-line       "#523044")
+      (bg-completion      "#efc7d8")
+      (bg-hover           "#ddc97f")
+      (bg-hover-secondary "#d4d4da")
+      (bg-hl-line         "#e7d9e0")
+      (bg-paren           "#bf9fbf")
+      (bg-err             "#ffc4d4") ; check with err
+      (bg-warning         "#f0e0a4") ; check with warning
+      (bg-info            "#dddef0") ; check with info
+
+      (border        "#c5afb6")
+      (cursor        "#a06052")
+      (fg-intense    "#000000")
+
+      (modeline-err     "#900000")
+      (modeline-warning "#66008f")
+      (modeline-info    "#1f409f")
+
+      (underline-err     "#c00f4f")
+      (underline-warning "#bf5f00")
+      (underline-info    "#028082")
+
+      (bg-char-0 "#7feaff")
+      (bg-char-1 "#f0a0f0")
+      (bg-char-2 "#d0e000")
+
+;;; Mappings
+
+;;;; General mappings
+
+      (bg-fringe unspecified)
+      (fg-fringe unspecified)
+
+      (err magenta-warmer)
+      (warning yellow-warmer)
+      (info cyan)
+
+      (link yellow-cooler)
+      (link-alt cyan-warmer)
+      (name cyan-warmer)
+      (keybind cyan)
+      (identifier yellow-cooler)
+      (prompt magenta)
+
+      (bg-region "#e0d0ba")
+      (fg-region unspecified)
+
+;;;; Code mappings
+
+      (builtin magenta-faint)
+      (comment fg-dim)
+      (constant blue-warmer)
+      (fnname cyan-warmer)
+      (keyword yellow-cooler)
+      (preprocessor cyan-cooler)
+      (docstring yellow-faint)
+      (string red-faint)
+      (type green-faint)
+      (variable magenta)
+      (rx-escape cyan-cooler) ; compare with `string'
+      (rx-construct red-cooler)
+
+;;;; Accent mappings
+
+      (accent-0 yellow)
+      (accent-1 red-cooler)
+      (accent-2 magenta-warmer)
+      (accent-3 blue-warmer)
+
+;;;; Date mappings
+
+      (date-common magenta-faint)
+      (date-deadline red-cooler)
+      (date-event fg-alt)
+      (date-holiday red-warmer)
+      (date-now fg-main)
+      (date-range fg-alt)
+      (date-scheduled yellow-cooler)
+      (date-weekday magenta)
+      (date-weekend blue-faint)
+
+;;;; Prose mappings
+
+      (prose-code blue-warmer)
+      (prose-done cyan-warmer)
+      (prose-macro green-cooler)
+      (prose-metadata fg-dim)
+      (prose-metadata-value fg-alt)
+      (prose-table fg-alt)
+      (prose-table-formula info)
+      (prose-tag yellow-faint)
+      (prose-todo yellow-warmer)
+      (prose-verbatim magenta-warmer)
+
+;;;; Mail mappings
+
+      (mail-cite-0 yellow-cooler)
+      (mail-cite-1 red-cooler)
+      (mail-cite-2 cyan-faint)
+      (mail-cite-3 green-faint)
+      (mail-part red-faint)
+      (mail-recipient cyan-faint)
+      (mail-subject magenta-warmer)
+      (mail-other magenta-faint)
+
+;;;; Search mappings
+
+      (bg-search-current bg-yellow-intense)
+      (bg-search-lazy bg-blue-intense)
+      (bg-search-replace bg-red-intense)
+
+      (bg-search-rx-group-0 bg-magenta-intense)
+      (bg-search-rx-group-1 bg-green-intense)
+      (bg-search-rx-group-2 bg-red-subtle)
+      (bg-search-rx-group-3 bg-cyan-subtle)
+
+;;;; Space mappings
+
+      (bg-space unspecified)
+      (fg-space border)
+      (bg-space-err bg-yellow-intense)
+
+;;;; Tab mappings
+
+      (bg-tab-bar      bg-alt)
+      (bg-tab-current  bg-main)
+      (bg-tab-other    bg-active)
+
+;;;; Terminal mappings
+
+      (bg-term-black           "black")
+      (fg-term-black           "black")
+      (bg-term-black-bright    "gray35")
+      (fg-term-black-bright    "gray35")
+
+      (bg-term-red             red)
+      (fg-term-red             red)
+      (bg-term-red-bright      red-warmer)
+      (fg-term-red-bright      red-warmer)
+
+      (bg-term-green           green-warmer)
+      (fg-term-green           green-warmer)
+      (bg-term-green-bright    green-cooler)
+      (fg-term-green-bright    green-cooler)
+
+      (bg-term-yellow          yellow)
+      (fg-term-yellow          yellow)
+      (bg-term-yellow-bright   yellow-warmer)
+      (fg-term-yellow-bright   yellow-warmer)
+
+      (bg-term-blue            blue-warmer)
+      (fg-term-blue            blue-warmer)
+      (bg-term-blue-bright     blue-cooler)
+      (fg-term-blue-bright     blue-cooler)
+
+      (bg-term-magenta         magenta)
+      (fg-term-magenta         magenta)
+      (bg-term-magenta-bright  magenta-cooler)
+      (fg-term-magenta-bright  magenta-cooler)
+
+      (bg-term-cyan            cyan)
+      (fg-term-cyan            cyan)
+      (bg-term-cyan-bright     cyan-cooler)
+      (fg-term-cyan-bright     cyan-cooler)
+
+      (bg-term-white           "gray65")
+      (fg-term-white           "gray65")
+      (bg-term-white-bright    "white")
+      (fg-term-white-bright    "white")
+
+;;;; Rainbow mappings
+
+      (rainbow-0 yellow-cooler)
+      (rainbow-1 magenta)
+      (rainbow-2 blue-warmer)
+      (rainbow-3 red-cooler)
+      (rainbow-4 magenta-cooler)
+      (rainbow-5 green-cooler)
+      (rainbow-6 cyan)
+      (rainbow-7 yellow)
+      (rainbow-8 red-faint))
+    "The `ef-reverie' palette.
+Color values have the form (COLOR-NAME HEX-VALUE) with the former
+as a symbol and the latter as a string.
+
+Semantic color mappings have the form (MAPPING-NAME COLOR-NAME)
+with both as symbols.  The latter is a color that already exists
+in the palette and is associated with a HEX-VALUE.")
+
+  (defcustom ef-reverie-palette-overrides nil
+    "Overrides for `ef-reverie-palette'.
+
+Mirror the elements of the aforementioned palette, overriding
+their value.
+
+For overrides that are shared across all of the Ef themes,
+refer to `ef-themes-common-palette-overrides'.
+
+To preview the palette entries, use `ef-themes-preview-colors' or
+`ef-themes-preview-colors-current' (read the documentation for
+further details)."
+    :group 'ef-themes
+    :package-version '(ef-themes . "1.0.0")
+    :type '(repeat (list symbol (choice symbol string)))
+    :link '(info-link "(ef-themes) Palette overrides"))
+
+  (ef-themes-theme ef-reverie ef-reverie-palette ef-reverie-palette-overrides)
+
+  (provide-theme 'ef-reverie))
+
+;;; ef-reverie-theme.el ends here
diff --git a/ef-themes.el b/ef-themes.el
index 59f8262279..33575e1d0e 100644
--- a/ef-themes.el
+++ b/ef-themes.el
@@ -69,6 +69,7 @@
     ef-light
     ef-maris-light
     ef-melissa-light
+    ef-reverie
     ef-spring
     ef-summer
     ef-trio-light
@@ -81,6 +82,7 @@
     ef-cherie
     ef-dark
     ef-deuteranopia-dark
+    ef-dream
     ef-duo-dark
     ef-elea-dark
     ef-maris-dark

Reply via email to