From fc778cff7bb8bd1b4105fa77c54b3bb63bcc963e Mon Sep 17 00:00:00 2001 From: Protesilaos Stavrou Date: Fri, 19 Aug 2022 09:42:54 +0300 Subject: ef-deuteranopia-light: add new theme for red-green color deficiency --- contrast-ratios.org | 36 +++++++++ ef-deuteranopia-light-theme.el | 168 +++++++++++++++++++++++++++++++++++++++++ ef-themes.el | 3 +- 3 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 ef-deuteranopia-light-theme.el diff --git a/contrast-ratios.org b/contrast-ratios.org index c8be68f..a94cce0 100644 --- a/contrast-ratios.org +++ b/contrast-ratios.org @@ -177,6 +177,42 @@ C1 and C2 are color values written in hexadecimal RGB." | cyan-faint | #8aa0df | 7.69 | 7.05 | 5.85 | 7.51 | #+TBLFM: $3='(Λ $2 @1$3);%.2f :: $4='(Λ $2 @1$4);%.2f :: $5='(Λ $2 @1$5);%.2f :: $6='(Λ $2 @1$6);%.2f +* ef-deuteranopia-light +:PROPERTIES: +:CUSTOM_ID: h:64efdb85-f6fc-418b-96fc-156409e0258d +:END: + +| Name | | #f5f5ff | #ebebf4 | #d3d3e0 | #f2f2f9 | +|----------------+---------+---------+---------+---------+---------| +| fg-main | #1a1a2f | 15.73 | 14.38 | 11.49 | 15.29 | +| fg-dim | #70627f | 5.18 | 4.74 | 3.78 | 5.04 | +| fg-alt | #6f6336 | 5.52 | 5.04 | 4.03 | 5.36 | +| red | #d3303a | 4.56 | 4.17 | 3.33 | 4.43 | +| red-warmer | #e00033 | 4.60 | 4.20 | 3.36 | 4.47 | +| red-cooler | #d50f7f | 4.61 | 4.22 | 3.37 | 4.48 | +| red-faint | #c24552 | 4.54 | 4.15 | 3.32 | 4.42 | +| green | #217a3c | 4.95 | 4.53 | 3.62 | 4.81 | +| green-warmer | #4a7d00 | 4.59 | 4.19 | 3.35 | 4.46 | +| green-cooler | #008058 | 4.58 | 4.19 | 3.35 | 4.46 | +| green-faint | #61756c | 4.54 | 4.15 | 3.32 | 4.41 | +| yellow | #805d00 | 5.57 | 5.09 | 4.07 | 5.41 | +| yellow-warmer | #965000 | 5.63 | 5.15 | 4.11 | 5.47 | +| yellow-cooler | #765040 | 6.48 | 5.92 | 4.73 | 6.30 | +| yellow-faint | #776d6a | 4.64 | 4.24 | 3.39 | 4.51 | +| blue | #375cd8 | 5.26 | 4.81 | 3.84 | 5.11 | +| blue-warmer | #4250ef | 5.35 | 4.89 | 3.91 | 5.20 | +| blue-cooler | #065fff | 4.74 | 4.33 | 3.46 | 4.61 | +| blue-faint | #6060d0 | 4.75 | 4.34 | 3.47 | 4.62 | +| magenta | #ba35af | 4.60 | 4.20 | 3.36 | 4.47 | +| magenta-warmer | #cf25aa | 4.31 | 3.94 | 3.15 | 4.19 | +| magenta-cooler | #6052cf | 5.38 | 4.92 | 3.93 | 5.23 | +| magenta-faint | #bf3580 | 4.80 | 4.39 | 3.51 | 4.67 | +| cyan | #1f6fbf | 4.75 | 4.34 | 3.47 | 4.61 | +| cyan-warmer | #3f6faf | 4.72 | 4.32 | 3.45 | 4.59 | +| cyan-cooler | #1f77bb | 4.39 | 4.01 | 3.21 | 4.27 | +| cyan-faint | #506fa0 | 4.70 | 4.30 | 3.44 | 4.57 | +#+TBLFM: $3='(Λ $2 @1$3);%.2f :: $4='(Λ $2 @1$4);%.2f :: $5='(Λ $2 @1$5);%.2f :: $6='(Λ $2 @1$6);%.2f + * ef-light :PROPERTIES: :CUSTOM_ID: h:02d01731-b9ab-4653-9e71-ab1592c64734 diff --git a/ef-deuteranopia-light-theme.el b/ef-deuteranopia-light-theme.el new file mode 100644 index 0000000..c14c243 --- /dev/null +++ b/ef-deuteranopia-light-theme.el @@ -0,0 +1,168 @@ +;;; ef-deuteranopia-light-theme.el --- Legible light theme, optimized for red-green color deficiency -*- lexical-binding:t -*- + +;; Copyright (C) 2022 Free Software Foundation, Inc. + +;; Author: Protesilaos Stavrou +;; 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 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 . + +;;; 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) + + ;; Most of the colors here, like the red and green hues, are defined + ;; simply to preserve compatibility with the rest of the project. We + ;; don't actually rely on them for anything critical. + (deftheme ef-deuteranopia-light "Legible light theme, optimized for red-green color deficiency.") + + (defconst ef-deuteranopia-light-palette + '(;; Basic tones + (bg-main "#f5f5ff") + (fg-main "#1a1a2f") + (bg-dim "#ebebf4") + (fg-dim "#70627f") + (bg-alt "#d3d3e0") + (fg-alt "#6f6336") + + (bg-active "#c3c3d0") + (bg-inactive "#f2f2f9") + + ;; Basic hues for foreground values + (red "#d3303a") + (red-warmer "#e00033") + (red-cooler "#d50f7f") + (red-faint "#c24552") + (green "#217a3c") + (green-warmer "#4a7d00") + (green-cooler "#008058") + (green-faint "#61756c") + (yellow "#805d00") + (yellow-warmer "#965000") + (yellow-cooler "#765040") + (yellow-faint "#776d6a") + (blue "#375cd8") + (blue-warmer "#4250ef") + (blue-cooler "#065fff") + (blue-faint "#6060d0") + (magenta "#ba35af") + (magenta-warmer "#cf25aa") + (magenta-cooler "#6052cf") + (magenta-faint "#bf3580") + (cyan "#1f6fbf") + (cyan-warmer "#3f6faf") + (cyan-cooler "#1f77bb") + (cyan-faint "#506fa0") + + ;; Basic hues for background values + (bg-red "#ff8f88") + (bg-green "#8adf80") + (bg-yellow "#fac200") + (bg-blue "#cbcfff") + (bg-magenta "#ff9fef") + (bg-cyan "#88c8ff") + + ;; Diffs + (bg-added "#d4d4ff") + (bg-added-faint "#e4e4ff") + (bg-added-refine "#c0c0ef") + + (bg-changed "#eec8df") + (bg-changed-faint "#f0dde5") + (bg-changed-refine "#e0b0d0") + + (bg-removed "#f9e89f") + (bg-removed-faint "#efe6cf") + (bg-removed-refine "#f0da88") + + ;; Special hues + (bg-mode-line "#99c7ff") (fg-mode-line "#0a0a1f") + (bg-accent "#eecc33") (fg-accent "#000000") + (bg-completion "#f0dacf") + (bg-hover "#eebb20") + (bg-hover-alt "#afafff") + (bg-hl-line "#f3e0d5") + (bg-region "#d5d5ff") + (bg-paren "#8fc0cf") + (bg-err "#f0e0aa") ; check with err + (bg-info "#d0dfff") ; check with info + + (border "#bbbbef") + (cursor "#0000bb") + (fg-intense "#000000") + + ;; Mappings + (err yellow-warmer) + (warning yellow) + (info blue-cooler) + + (link blue) + (link-alt yellow-cooler) + (date yellow-cooler) + (name blue-warmer) + (keybind yellow-warmer) + + (builtin cyan) + (comment yellow-faint) + (constant yellow-cooler) + (fnname blue-cooler) + (keyword blue-warmer) + (preprocessor green-cooler) + (docstring cyan-faint) + (string yellow-warmer) + (type yellow) + (variable cyan-cooler) + + (accent-0 blue-cooler) + (accent-1 yellow-warmer) + (accent-2 cyan) + (accent-3 yellow-cooler) + + (mail-0 blue-warmer) + (mail-1 yellow-cooler) + (mail-2 cyan-cooler) + (mail-3 yellow) + (mail-4 cyan) + + (rainbow-0 blue) + (rainbow-1 yellow) + (rainbow-2 blue-warmer) + (rainbow-3 yellow-cooler) + (rainbow-4 blue-cooler) + (rainbow-5 yellow-warmer) + (rainbow-6 blue-faint) + (rainbow-7 yellow-faint) + (rainbow-8 cyan)) + "The `ef-deuteranopia-light' palette.") + + (ef-themes-theme ef-deuteranopia-light ef-deuteranopia-light-palette) + + (provide-theme 'ef-deuteranopia-light)) + +;;; ef-deuteranopia-light-theme.el ends here diff --git a/ef-themes.el b/ef-themes.el index 58c12c5..ac18f4c 100644 --- a/ef-themes.el +++ b/ef-themes.el @@ -48,7 +48,8 @@ ;;; Commands and their helper functions -(defconst ef-themes-light-themes '(ef-day ef-light ef-spring ef-summer) +(defconst ef-themes-light-themes '( ef-day ef-light ef-spring ef-summer + ef-deuteranopia-light) "List of symbols with the light Ef themes.") (defconst ef-themes-dark-themes '( ef-autumn ef-dark ef-night ef-winter -- cgit v1.0