diff options
| author | Protesilaos Stavrou <info@protesilaos.com> | 2024-01-06 09:10:43 +0200 |
|---|---|---|
| committer | Protesilaos Stavrou <info@protesilaos.com> | 2024-01-06 09:10:49 +0200 |
| commit | 7de30d69f30b4618906cd0b7e67ff7add24288e9 (patch) | |
| tree | 5be29ebe10ab0c3cb5d375a6d6340eaccac7192f | |
| parent | 34e5cd31321d69de6974f58499a9145ab27aee4d (diff) | |
Add ef-rosa theme
Read the announcement (includes pictures):
<https://protesilaos.com/codelog/2024-01-06-emacs-ef-rosa/>.
| -rw-r--r-- | contrast-ratios.org | 65 | ||||
| -rw-r--r-- | ef-rosa-theme.el | 295 | ||||
| -rw-r--r-- | ef-themes.el | 1 |
3 files changed, 361 insertions, 0 deletions
diff --git a/contrast-ratios.org b/contrast-ratios.org index fafd568..9298283 100644 --- a/contrast-ratios.org +++ b/contrast-ratios.org @@ -1425,6 +1425,71 @@ work with the overall design of the project. | #242e39 | 10245 | 1.42 | #+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f +* ef-rosa +:PROPERTIES: +:CUSTOM_ID: h:cc74fbff-d0da-4fef-a83a-8e92d27738b9 +:END: + +** Base colours +:PROPERTIES: +:CUSTOM_ID: h:2e0d0312-3984-48d8-9adc-1d132c1ab651 +:END: + +| Name | | #322023 | #432e32 | #4a3842 | #362129 | +|----------------+---------+---------+---------+---------+---------| +| fg-main | #e4d3e1 | 10.76 | 8.78 | 7.60 | 10.45 | +| fg-dim | #9d9d9d | 5.67 | 4.62 | 4.00 | 5.51 | +| fg-alt | #96c4af | 7.91 | 6.45 | 5.59 | 7.69 | +| red | #ff707f | 5.76 | 4.70 | 4.07 | 5.60 | +| red-warmer | #ff7f5f | 6.19 | 5.05 | 4.37 | 6.01 | +| red-cooler | #f0888f | 6.31 | 5.15 | 4.46 | 6.13 | +| red-faint | #e89f84 | 7.12 | 5.80 | 5.02 | 6.91 | +| green | #55cb56 | 7.36 | 6.01 | 5.20 | 7.16 | +| green-warmer | #8ad05a | 8.23 | 6.71 | 5.81 | 8.00 | +| green-cooler | #49d081 | 7.77 | 6.34 | 5.49 | 7.55 | +| green-faint | #9aba8b | 7.15 | 5.83 | 5.05 | 6.95 | +| yellow | #e4c53f | 9.04 | 7.38 | 6.38 | 8.79 | +| yellow-warmer | #f2a85f | 7.71 | 6.29 | 5.45 | 7.50 | +| yellow-cooler | #eec26f | 9.21 | 7.51 | 6.50 | 8.95 | +| yellow-faint | #d8c09f | 8.75 | 7.14 | 6.18 | 8.50 | +| blue | #57aff6 | 6.49 | 5.29 | 4.58 | 6.31 | +| blue-warmer | #78b2ff | 7.03 | 5.74 | 4.97 | 6.83 | +| blue-cooler | #62cff7 | 8.63 | 7.04 | 6.09 | 8.38 | +| blue-faint | #9fbfdf | 8.04 | 6.56 | 5.68 | 7.82 | +| magenta | #ffb2d6 | 9.21 | 7.51 | 6.51 | 8.95 | +| magenta-warmer | #f28fdf | 7.15 | 5.83 | 5.05 | 6.95 | +| magenta-cooler | #cfb1ff | 8.33 | 6.80 | 5.88 | 8.10 | +| magenta-faint | #c59fdf | 6.88 | 5.61 | 4.86 | 6.68 | +| cyan | #5fc0dc | 7.36 | 6.00 | 5.20 | 7.15 | +| cyan-warmer | #7fc5df | 8.02 | 6.54 | 5.66 | 7.79 | +| cyan-cooler | #80dfbf | 9.68 | 7.89 | 6.83 | 9.40 | +| cyan-faint | #99bfcf | 7.84 | 6.39 | 5.53 | 7.61 | +#+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:a6964d93-4f16-42bc-a40e-ddddea858fe0 +:END: + +| Name | | #814558 | +|------------------+---------+---------| +| modeline-err | #ffb4ff | 4.52 | +| modeline-warning | #dfdf43 | 5.05 | +| modeline-info | #7fefff | 5.36 | +#+TBLFM: $3='(Λ $2 @1$3);%.2f + +** Distance and contrast between main backgrounds +:PROPERTIES: +:CUSTOM_ID: h:af14156e-2999-467d-8d56-97cceacaca46 +:END: + +# bg-main / bg-dim, bg-main / bg-alt +| #322023 | distance | contrast | +|---------+----------+----------| +| #432e32 | 2067 | 1.23 | +| #4a3842 | 6294 | 1.42 | +#+TBLFM: $2='(Δ $1 @1$1) :: $3='(Λ $1 @1$1);%.2f + * ef-spring :PROPERTIES: :CUSTOM_ID: h:f8eea1d3-359a-4ab6-9c5c-c54ebe896b43 diff --git a/ef-rosa-theme.el b/ef-rosa-theme.el new file mode 100644 index 0000000..275c625 --- /dev/null +++ b/ef-rosa-theme.el @@ -0,0 +1,295 @@ +;;; ef-rosa-theme.el --- Legible dark theme with magenta and green colors -*- lexical-binding:t -*- + +;; Copyright (C) 2022-2023 Free Software Foundation, Inc. + +;; Author: Protesilaos Stavrou <info@protesilaos.com> +;; Maintainer: Ef-Themes Development <~protesilaos/ef-themes@lists.sr.ht> +;; URL: https://git.sr.ht/~protesilaos/ef-themes +;; Mailing-List: https://lists.sr.ht/~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-rosa + "Legible dark theme with magenta and green colors." + :background-mode 'light + :kind 'color-scheme + :family 'ef) + + (defconst ef-rosa-palette + '( +;;; Basic values + + (bg-main "#322023") + (fg-main "#e4d3e1") + (bg-dim "#432e32") + (fg-dim "#9d9d9d") + (bg-alt "#4a3842") + (fg-alt "#96c4af") + + (bg-active "#6a5862") + (bg-inactive "#362129") + +;;; Basic hues for foreground values + + (red "#ff707f") + (red-warmer "#ff7f5f") + (red-cooler "#f0888f") + (red-faint "#e89f84") + (green "#55cb56") + (green-warmer "#8ad05a") + (green-cooler "#49d081") + (green-faint "#9aba8b") + (yellow "#e4c53f") + (yellow-warmer "#f2a85f") + (yellow-cooler "#eec26f") + (yellow-faint "#d8c09f") + (blue "#57aff6") + (blue-warmer "#78b2ff") + (blue-cooler "#62cff7") + (blue-faint "#9fbfdf") + (magenta "#ffb2d6") + (magenta-warmer "#f28fdf") + (magenta-cooler "#cfb1ff") + (magenta-faint "#c59fdf") + (cyan "#5fc0dc") + (cyan-warmer "#7fc5df") + (cyan-cooler "#80dfbf") + (cyan-faint "#99bfcf") + +;;; Basic hues for background values + + (bg-red-intense "#bd1f30") + (bg-green-intense "#20a420") + (bg-yellow-intense "#847020") + (bg-blue-intense "#2f5f9f") + (bg-magenta-intense "#b05fcf") + (bg-cyan-intense "#028099") + + (bg-red-subtle "#70202a") + (bg-green-subtle "#105d1a") + (bg-yellow-subtle "#625000") + (bg-blue-subtle "#143f84") + (bg-magenta-subtle "#55407a") + (bg-cyan-subtle "#30546f") + +;;; Diffs + + (bg-added "#2f4735") + (bg-added-faint "#2a382f") + (bg-added-refine "#1d6044") + (fg-added "#a0e0a0") + + (bg-changed "#51512f") + (bg-changed-faint "#40332f") + (bg-changed-refine "#61621f") + (fg-changed "#dada90") + + (bg-removed "#5f252f") + (bg-removed-faint "#4a242a") + (bg-removed-refine "#792d35") + (fg-removed "#ffbfbf") + +;;; 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 "#814558") + (fg-mode-line "#e8e5e7") + (bg-completion "#6e425f") + (bg-hover "#3f6a50") + (bg-hover-secondary "#6a4f5f") + (bg-hl-line "#42352f") + (bg-paren "#7c454f") + (bg-err "#551a05") ; check with err + (bg-warning "#4f3f10") ; check with warning + (bg-info "#0f4310") ; check with info + + (border "#6f5f58") + (cursor "#ef607a") + (fg-intense "#ffffff") + + (modeline-err "#ffb4ff") + (modeline-warning "#dfdf43") + (modeline-info "#7fefff") + + (underline-err "#df4f2f") + (underline-warning "#d4c000") + (underline-info "#22b022") + + (bg-char-0 "#0050af") + (bg-char-1 "#7f1f7f") + (bg-char-2 "#6f6600") + +;;; Mappings + +;;;; General mappings + + (fringe unspecified) + + (err red-warmer) + (warning yellow-warmer) + (info green) + + (link green) + (link-alt magenta-cooler) + (name magenta-warmer) + (keybind magenta-warmer) + (identifier green-faint) + (prompt cyan-cooler) + + (bg-region "#45524a") + (fg-region unspecified) + +;;;; Code mappings + + (builtin magenta-cooler) + (comment fg-dim) + (constant green-cooler) + (fnname magenta-warmer) + (keyword magenta) + (preprocessor red-cooler) + (docstring yellow-faint) + (string green-warmer) + (type cyan-warmer) + (variable cyan-cooler) + (rx-escape red-cooler) ; compare with `string' + (rx-construct blue-cooler) + +;;;; Accent mappings + + (accent-0 green-warmer) + (accent-1 magenta-warmer) + (accent-2 yellow-warmer) + (accent-3 green-cooler) + +;;;; Date mappings + + (date-common magenta-cooler) + (date-deadline magenta) + (date-event fg-alt) + (date-holiday green) + (date-now fg-main) + (date-range fg-alt) + (date-scheduled yellow-cooler) + (date-weekday magenta-cooler) + (date-weekend red-cooler) + +;;;; Prose mappings + + (prose-code magenta-warmer) + (prose-done green-cooler) + (prose-macro red-cooler) + (prose-metadata fg-dim) + (prose-metadata-value fg-alt) + (prose-table fg-alt) + (prose-table-formula info) + (prose-tag yellow-faint) + (prose-todo red-warmer) + (prose-verbatim cyan-cooler) + +;;;; Mail mappings + + (mail-cite-0 green-cooler) + (mail-cite-1 cyan-cooler) + (mail-cite-2 red-cooler) + (mail-cite-3 yellow-warmer) + (mail-part magenta-cooler) + (mail-recipient magenta) + (mail-subject green-warmer) + (mail-other magenta-warmer) + +;;;; 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) + +;;;; Rainbow mappings + + (rainbow-0 magenta-warmer) + (rainbow-1 green-warmer) + (rainbow-2 magenta) + (rainbow-3 yellow-cooler) + (rainbow-4 magenta-cooler) + (rainbow-5 red-cooler) + (rainbow-6 green) + (rainbow-7 yellow-warmer) + (rainbow-8 cyan-cooler)) + "The `ef-rosa' 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-rosa-palette-overrides nil + "Overrides for `ef-rosa-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-rosa ef-rosa-palette ef-rosa-palette-overrides) + + (provide-theme 'ef-rosa)) + +;;; ef-rosa-theme.el ends here diff --git a/ef-themes.el b/ef-themes.el index f31b4d6..71e9a92 100644 --- a/ef-themes.el +++ b/ef-themes.el @@ -87,6 +87,7 @@ ef-maris-dark ef-melissa-dark ef-night + ef-rosa ef-symbiosis ef-trio-dark ef-tritanopia-dark |
