-._protesilaos-s-_standard_.../standard-dark-theme.el

225 lines
6.6 KiB
EmacsLisp
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; standard-dark-theme.el --- Like the unthemed dark Emacs, but more consistent -*- lexical-binding:t -*-
;; Copyright (C) 2022 Free Software Foundation, Inc.
;; Author: Protesilaos Stavrou <info@protesilaos.com>
;; Maintainer: Standard-Themes Development <~protesilaos/standard-themes@lists.sr.ht>
;; URL: https://git.sr.ht/~protesilaos/standard-themes
;; Mailing-List: https://lists.sr.ht/~protesilaos/standard-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 <https://www.gnu.org/licenses/>.
;;; Commentary:
;;
;; The `standard-themes' are a pair of light and dark themes for GNU
;; Emacs. They emulate the out-of-the-box looks of Emacs (which
;; technically do NOT constitute a theme) while bringing to them
;; thematic consistency, customizability, and extensibility.
;;
;; Why call them "standard"? Obviously because: Standard Themes Are
;; Not Derivatives but the Affectionately Reimagined Default ... themes.
;;; Code:
(eval-and-compile
(require 'standard-themes)
(deftheme standard-dark
"Like the unthemed dark Emacs, but more consistent."
:background-mode 'dark
:kind 'color-scheme
:family 'standard)
(defconst standard-dark-palette
'(;; Basic tones
(bg-main "#000000")
(fg-main "#ffffff")
(bg-dim "#202020")
(fg-dim "#a6a6a6")
(bg-alt "#363636")
(fg-alt "#a0afef")
(bg-active "#606060")
(bg-inactive "#141414")
;; Basic hues for foreground values
(red "#ff6f60")
(red-warmer "#ff7f24")
(red-cooler "#ff778f")
(red-faint "#ee5c42")
(green "#44cc44")
(green-warmer "#7abd0f")
(green-cooler "#98fb98")
(green-faint "#61a06c")
(yellow "#eedd82")
(yellow-warmer "#fec43f")
(yellow-cooler "#ffa07a")
(yellow-faint "#dfb08f")
(blue "#87ceff")
(blue-warmer "#80aaff")
(blue-cooler "#02cfff")
(blue-faint "#b0c4de")
(magenta "#df8faf")
(magenta-warmer "#ff8fe7")
(magenta-cooler "#ce82ff")
(magenta-faint "#efafdf")
(cyan "#00ffff")
(cyan-warmer "#87cefa")
(cyan-cooler "#7fffd4")
(cyan-faint "#6acbcb")
;; Basic hues for background values
(bg-red "#cd2f30")
(bg-green "#408420")
(bg-yellow "#8f5040")
(bg-blue "#4648d0")
(bg-magenta "#a050cf")
(bg-cyan "#2270be")
;; Diffs
(bg-added "#00331f")
(bg-added-faint "#002410")
(bg-added-refine "#03492f")
(fg-added "#4fb04f")
(bg-changed "#323200")
(bg-changed-faint "#281a00")
(bg-changed-refine "#484800")
(fg-changed "#e0cf03")
(bg-removed "#4a1119")
(bg-removed-faint "#320a0f")
(bg-removed-refine "#751a1f")
(fg-removed "#ff5f5f")
;; Marks
(bg-mark-alt "#002f4a") (fg-mark-alt "#57cefa")
(bg-mark-del "#440d09") (fg-mark-del "#ff5f60")
(bg-mark-sel "#333000") (fg-mark-sel "#d0d082")
;; Graphs
(red-graph-0-bg "#b52c2c")
(red-graph-1-bg "#702020")
(green-graph-0-bg "#4fd100")
(green-graph-1-bg "#007800")
(yellow-graph-0-bg "#f1e00a")
(yellow-graph-1-bg "#b08600")
(blue-graph-0-bg "#2fafef")
(blue-graph-1-bg "#1f2f8f")
(magenta-graph-0-bg "#bf94fe")
(magenta-graph-1-bg "#5f509f")
(cyan-graph-0-bg "#47dfea")
(cyan-graph-1-bg "#00808f")
;; Special hues
(bg-mode-line "#505050") (bg-mode-line-inactive "#323232")
(bg-accent "#ffc200")
(bg-completion "#254b5f")
(bg-hover "#457b2f")
(bg-hover-alt "#00688b")
(bg-hl-line "#556b2f")
(bg-region "#0000cd")
(bg-paren "#4f94cd")
(bg-err "#3f0d09") ; check with err
(bg-warning "#362f00") ; check with warning
(bg-info "#002f12") ; check with info
(border "#606070")
(cursor "#ffffff")
(bg-tab "#333333")
(bg-tab-inactive "#4d4d4d")
(bg-tab-inactive-alt "#666666")
(modeline-err "#ff80af")
(modeline-warning "#dfcf33")
(modeline-info "#2fc82f")
(underline-err "#df2f2f")
(underline-warning "#c0b000")
(underline-info "#22b022")
;; Conditional hues
(bg-prompt "#483f73")
(bg-region-intense "#9f3047")
(bg-mode-line-accent "#173780")
;; Mappings
(err red)
(warning yellow-warmer)
(info green)
(link cyan)
(link-alt magenta-cooler)
(link-faint cyan-faint)
(link-alt-faint magenta-faint)
(date cyan-warmer)
(name cyan-cooler)
(keybind blue-cooler)
(prompt blue)
(builtin blue-faint)
(comment red-warmer)
(constant cyan-cooler)
(fnname cyan-warmer)
(keyword cyan)
(preprocessor blue-faint)
(docstring yellow-cooler)
(string yellow-cooler)
(type green-cooler)
(variable yellow)
(rx-escape green) ; compare with `string'
(rx-construct fg-main)
(accent-0 blue-warmer)
(accent-1 red-cooler)
(accent-2 green)
(accent-3 magenta-cooler)
(mail-0 red-cooler)
(mail-1 magenta-warmer)
(mail-2 green)
(mail-3 cyan-cooler)
(mail-4 blue-warmer)
(mail-recipient blue)
(mail-subject magenta-cooler)
(mail-other cyan)
(rainbow-0 "#afeeee")
(rainbow-1 cyan-warmer)
(rainbow-2 yellow)
(rainbow-3 cyan)
(rainbow-4 red-warmer)
(rainbow-5 green-cooler)
(rainbow-6 cyan-cooler)
(rainbow-7 blue-faint)
(rainbow-8 yellow-cooler)
(prose-code cyan-cooler)
(prose-macro green-warmer)
(prose-verbatim magenta-warmer))
"The `standard-dark' palette.")
(standard-themes-theme standard-dark standard-dark-palette)
(provide-theme 'standard-dark))
;;; standard-dark-theme.el ends here