tvl-depot/configs/shared/emacs/.emacs.d/elpa/doom-themes-20180720.438/doom-themes-common.el

1378 lines
66 KiB
EmacsLisp
Raw Normal View History

;;; doom-themes-common.el -*- lexical-binding: t; -*-
(defvar doom-themes-common-faces
'(;; --- custom faces -----------------------
(doom-modeline-error
:background (doom-darken red 0.25)
:foreground base0
:distant-foreground base0)
;; --- base faces -------------------------
(bold :weight 'bold :foreground (unless bold base8))
(italic :slant 'italic)
(bold-italic :inherit '(bold italic))
(default :background bg :foreground fg)
(fringe :inherit 'default :foreground base4)
(region :background region :foreground nil :distant-foreground (doom-darken fg 0.2))
(highlight :background highlight :foreground base0 :distant-foreground base8)
(cursor :background highlight)
(shadow :foreground base5)
(minibuffer-prompt :foreground highlight)
(tooltip :background base3 :foreground fg)
(secondary-selection :background grey)
(lazy-highlight :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold)
(match :foreground green :background base0 :weight 'bold)
(trailing-whitespace :background red)
(nobreak-space :inherit 'default :underline nil)
(vertical-border :background vertical-bar :foreground vertical-bar)
(link :foreground highlight :underline t :weight 'bold)
(error :foreground error)
(warning :foreground warning)
(success :foreground success)
(font-lock-builtin-face :foreground builtin)
(font-lock-comment-face :foreground comments)
(font-lock-comment-delimiter-face :inherit 'font-lock-comment-face)
(font-lock-doc-face :inherit 'font-lock-comment-face :foreground doc-comments)
(font-lock-constant-face :foreground constants)
(font-lock-function-name-face :foreground functions)
(font-lock-keyword-face :foreground keywords)
(font-lock-string-face :foreground strings)
(font-lock-type-face :foreground type)
(font-lock-variable-name-face :foreground variables)
(font-lock-warning-face :inherit 'warning)
(font-lock-negation-char-face :inherit 'bold :foreground operators)
(font-lock-preprocessor-face :inherit 'bold :foreground operators)
(font-lock-preprocessor-char-face :inherit 'bold :foreground operators)
(font-lock-regexp-grouping-backslash :inherit 'bold :foreground operators)
(font-lock-regexp-grouping-construct :inherit 'bold :foreground operators)
;; mode-line / header-line
(mode-line :background bg :foreground fg :distant-foreground bg)
(mode-line-inactive :background bg-alt :foreground fg-alt :distant-foreground bg-alt)
(mode-line-emphasis :foreground highlight :distant-foreground bg)
(mode-line-highlight :inherit 'highlight :distant-foreground bg)
(mode-line-buffer-id :weight 'bold)
(header-line :inherit 'mode-line :distant-foreground bg)
;; 1. Line number faces must explicitly disable its text style attributes
;; because nearby faces may "bleed" into the line numbers otherwise.
;; 2. All other line number plugin faces should &inherit from these.
(line-number
:inherit 'default
:foreground base5 :distant-foreground nil
:weight 'normal :italic nil :underline nil :strike-through nil)
(line-number-current-line
:inherit '(hl-line default)
:foreground fg :distant-foreground nil
:weight 'normal :italic nil :underline nil :strike-through nil)
;; --- built-in plugin faces --------------
;; cperl
(cperl-array-face :weight 'bold :inherit 'font-lock-variable-name-face)
(cperl-hash-face :weight 'bold :slant 'italic :inherit 'font-lock-variable-name-face)
(cperl-nonoverridable-face :inherit 'font-lock-builtin-face)
;; compilation
(compilation-column-number :inherit 'font-lock-comment-face)
(compilation-line-number :foreground highlight)
(compilation-error :inherit 'error :weight 'bold)
(compilation-warning :inherit 'warning :slant 'italic)
(compilation-info :inherit 'success)
(compilation-mode-line-exit :inherit 'compilation-info)
(compilation-mode-line-fail :inherit 'compilation-error)
;; custom
(custom-button :foreground blue :background bg :box '(:line-width 1 :style none))
(custom-button-unraised :foreground violet :background bg :box '(:line-width 1 :style none))
(custom-button-pressed-unraised :foreground bg :background violet :box '(:line-width 1 :style none))
(custom-button-pressed :foreground bg :background blue :box '(:line-width 1 :style none))
(custom-button-mouse :foreground bg :background blue :box '(:line-width 1 :style none))
(custom-variable-button :foreground green :underline t)
(custom-saved :foreground green :background (doom-blend green bg 0.2) :bold bold)
(custom-comment :foreground fg :background region)
(custom-comment-tag :foreground grey)
(custom-modified :foreground blue :background (doom-blend blue bg 0.2))
(custom-variable-tag :foreground magenta)
(custom-visibility :foreground blue :underline nil)
(custom-group-subtitle :foreground red)
(custom-group-tag :foreground violet)
(custom-group-tag-1 :foreground blue)
(custom-set :foreground yellow :background bg)
(custom-themed :foreground yellow :background bg)
(custom-invalid :foreground red :background (doom-blend red bg 0.2))
(custom-variable-obsolete :foreground grey :background bg)
(custom-state :foreground green :background (doom-blend green bg 0.2))
(custom-changed :foreground blue :background bg)
;; dired
(dired-directory :foreground builtin)
(dired-ignored :foreground comments)
(dired-flagged :foreground red)
(dired-header :foreground blue :weight 'bold)
(dired-mark :foreground orange :weight 'bold)
(dired-marked :foreground magenta :weight 'bold)
(dired-perm-write :foreground fg :underline t)
(dired-symlink :foreground cyan :weight 'bold)
(dired-warning :foreground warning)
;; ediff
(ediff-fine-diff-A :background (doom-blend selection bg 0.7) :weight 'bold)
(ediff-fine-diff-B :inherit 'ediff-fine-diff-A)
(ediff-fine-diff-C :inherit 'ediff-fine-diff-A)
(ediff-current-diff-A :background (doom-blend selection bg 0.3))
(ediff-current-diff-B :inherit 'ediff-current-diff-A)
(ediff-current-diff-C :inherit 'ediff-current-diff-A)
(ediff-even-diff-A :inherit 'hl-line)
(ediff-even-diff-B :inherit 'ediff-even-diff-A)
(ediff-even-diff-C :inherit 'ediff-even-diff-A)
(ediff-odd-diff-A :inherit 'ediff-even-diff-A)
(ediff-odd-diff-B :inherit 'ediff-odd-diff-A)
(ediff-odd-diff-C :inherit 'ediff-odd-diff-A)
;; elfeed
(elfeed-log-debug-level-face :foreground comments)
(elfeed-log-error-level-face :inherit 'error)
(elfeed-log-info-level-face :inherit 'success)
(elfeed-log-warn-level-face :inherit 'warning)
(elfeed-search-date-face :foreground violet)
(elfeed-search-feed-face :foreground blue)
(elfeed-search-tag-face :foreground comments)
(elfeed-search-title-face :foreground comments)
(elfeed-search-filter-face :foreground violet)
(elfeed-search-unread-count-face :foreground yellow)
(elfeed-search-unread-title-face :foreground fg :weight 'bold)
;; eshell
(eshell-prompt :foreground highlight :weight 'bold)
(eshell-ls-archive :foreground magenta)
(eshell-ls-backup :foreground yellow)
(eshell-ls-clutter :foreground red)
(eshell-ls-directory :foreground blue)
(eshell-ls-executable :foreground green)
(eshell-ls-missing :foreground red)
(eshell-ls-product :foreground orange)
(eshell-ls-readonly :foreground orange)
(eshell-ls-special :foreground violet)
(eshell-ls-symlink :foreground cyan)
(eshell-ls-unreadable :foreground base5)
;; flx-ido
(flx-highlight-face :weight 'bold :foreground yellow :underline nil)
;; hl-line
(hl-line :background bg-alt)
;; ido
(ido-first-match :foreground orange)
(ido-indicator :foreground red :background bg)
(ido-only-match :foreground green)
(ido-subdir :foreground violet)
(ido-virtual :foreground comments)
;; isearch
(isearch :background highlight :foreground base0 :weight 'bold)
;; linum
((linum &inherit line-number))
;; message
(message-header-name :foreground green)
(message-header-subject :foreground highlight :weight 'bold)
(message-header-to :foreground highlight :weight 'bold)
(message-header-cc :inherit 'message-header-to :foreground (doom-darken highlight 0.15))
(message-header-other :foreground violet)
(message-header-newsgroups :foreground yellow)
(message-header-xheader :foreground doc-comments)
(message-separator :foreground comments)
(message-mml :foreground comments :slant 'italic)
(message-cited-text :foreground magenta)
;; term
(term :foreground fg)
(term-bold :weight 'bold)
(term-color-black :background base0 :foreground base0)
(term-color-red :background red :foreground red)
(term-color-green :background green :foreground green)
(term-color-yellow :background yellow :foreground yellow)
(term-color-blue :background blue :foreground blue)
(term-color-magenta :background magenta :foreground magenta)
(term-color-cyan :background cyan :foreground cyan)
(term-color-white :background base8 :foreground base8)
;; window-divider
(window-divider :inherit 'vertical-border)
(window-divider-first-pixel :inherit 'window-divider)
(window-divider-last-pixel :inherit 'window-divider)
;; --- plugin faces -----------------------
;; all-the-icons
(all-the-icons-red :foreground red)
(all-the-icons-lred :foreground (doom-lighten red 0.3))
(all-the-icons-dred :foreground (doom-darken red 0.3))
(all-the-icons-green :foreground green)
(all-the-icons-lgreen :foreground (doom-lighten green 0.3))
(all-the-icons-dgreen :foreground (doom-darken green 0.3))
(all-the-icons-yellow :foreground yellow)
(all-the-icons-lyellow :foreground (doom-lighten yellow 0.3))
(all-the-icons-dyellow :foreground (doom-darken yellow 0.3))
(all-the-icons-blue :foreground blue)
(all-the-icons-blue-alt :foreground teal)
(all-the-icons-lblue :foreground (doom-lighten blue 0.3))
(all-the-icons-dblue :foreground dark-blue)
(all-the-icons-maroon :foreground magenta)
(all-the-icons-lmaroon :foreground (doom-lighten magenta 0.3))
(all-the-icons-dmaroon :foreground (doom-darken magenta 0.3))
(all-the-icons-purple :foreground violet)
(all-the-icons-lpurple :foreground (doom-lighten violet 0.3))
(all-the-icons-dpurple :foreground (doom-darken violet 0.3))
(all-the-icons-cyan :foreground cyan)
(all-the-icons-cyan-alt :foreground cyan)
(all-the-icons-lcyan :foreground (doom-lighten cyan 0.3))
(all-the-icons-dcyan :foreground dark-cyan)
(all-the-icons-pink :foreground (doom-lighten red 0.35))
(all-the-icons-lpink :foreground (doom-lighten red 0.55))
(all-the-icons-dpink :foreground red)
(all-the-icons-silver :foreground grey)
(all-the-icons-lsilver :foreground (doom-lighten grey 0.3))
(all-the-icons-dsilver :foreground (doom-darken grey 0.3))
;; avy
(avy-background-face :foreground comments)
(avy-lead-face :background highlight :foreground bg :distant-foreground fg :weight 'bold)
(avy-lead-face-0
(&all :inherit 'avy-lead-face)
(&dark :background (doom-lighten highlight 0.3))
(&light :background (doom-darken highlight 0.3)))
(avy-lead-face-1
(&all :inherit 'avy-lead-face)
(&dark :background (doom-lighten highlight 0.6))
(&light :background (doom-darken highlight 0.6)))
(avy-lead-face-2
(&all :inherit 'avy-lead-face)
(&dark :background (doom-lighten highlight 0.9))
(&light :background (doom-darken highlight 0.9)))
;; bookmark+
(bmkp-*-mark :foreground bg :background yellow)
(bmkp->-mark :foreground yellow)
(bmkp-D-mark :foreground bg :background red)
(bmkp-X-mark :foreground red)
(bmkp-a-mark :background red)
(bmkp-bad-bookmark :foreground bg :background yellow)
(bmkp-bookmark-file :foreground violet :background bg-alt)
(bmkp-bookmark-list :background bg-alt)
(bmkp-buffer :foreground blue)
(bmkp-desktop :foreground bg :background violet)
(bmkp-file-handler :background red)
(bmkp-function :foreground green)
(bmkp-gnus :foreground orange)
(bmkp-heading :foreground yellow)
(bmkp-info :foreground cyan)
(bmkp-light-autonamed :foreground bg-alt :background cyan)
(bmkp-light-autonamed-region :foreground bg-alt :background red)
(bmkp-light-fringe-autonamed :foreground bg-alt :background violet)
(bmkp-light-fringe-non-autonamed :foreground bg-alt :background green)
(bmkp-light-mark :foreground bg :background cyan)
(bmkp-light-non-autonamed :foreground bg :background violet)
(bmkp-light-non-autonamed-region :foreground bg :background red)
(bmkp-local-directory :foreground bg :background violet)
(bmkp-local-file-with-region :foreground yellow)
(bmkp-local-file-without-region :foreground comments)
(bmkp-man :foreground violet)
(bmkp-no-jump :foreground comments)
(bmkp-no-local :foreground yellow)
(bmkp-non-file :foreground green)
(bmkp-remote-file :foreground orange)
(bmkp-sequence :foreground blue)
(bmkp-su-or-sudo :foreground red)
(bmkp-t-mark :foreground violet)
(bmkp-url :foreground blue :underline t)
(bmkp-variable-list :foreground green)
;; calfw
(cfw:face-title :foreground blue :weight 'bold :height 2.0 :inherit 'variable-pitch)
(cfw:face-header :foreground (doom-blend blue bg 0.8) :weight 'bold)
(cfw:face-sunday :foreground (doom-blend red bg 0.8) :weight 'bold)
(cfw:face-saturday :foreground (doom-blend red bg 0.8) :weight 'bold)
(cfw:face-holiday :foreground nil :background bg-alt :weight 'bold)
(cfw:face-grid :foreground vertical-bar)
(cfw:face-periods :foreground yellow)
(cfw:face-toolbar :foreground nil :background nil)
(cfw:face-toolbar-button-off :foreground base6 :weight 'bold :inherit 'variable-pitch)
(cfw:face-toolbar-button-on :foreground blue :weight 'bold :inherit 'variable-pitch)
(cfw:face-default-content :foreground fg)
(cfw:face-day-title :foreground fg :weight 'bold)
(cfw:face-today-title :foreground bg :background blue :weight 'bold)
(cfw:face-default-day :weight 'bold)
(cfw:face-today :foreground nil :background nil :weight 'bold)
(cfw:face-annotation :foreground violet)
(cfw:face-disable :foreground grey)
(cfw:face-select :background region)
;; company
(company-tooltip :inherit 'tooltip)
(company-tooltip-common :foreground highlight :distant-foreground base0 :weight 'bold)
(company-tooltip-search :background highlight :foreground bg :distant-foreground fg :weight 'bold)
(company-tooltip-search-selection :background (doom-darken selection 0.25))
(company-tooltip-selection :background selection :weight 'bold)
(company-tooltip-mouse :background magenta :foreground bg :distant-foreground fg)
(company-tooltip-annotation :foreground violet :distant-foreground bg)
(company-scrollbar-bg :inherit 'tooltip)
(company-scrollbar-fg :background highlight)
(company-preview :foreground comments)
(company-preview-common :background base3 :foreground highlight)
(company-preview-search :inherit 'company-tooltip-search)
(company-template-field :inherit 'match)
;; company-box
(company-box-candidate :foreground fg)
;; circe
(circe-fool :foreground doc-comments)
(circe-highlight-nick-face :weight 'bold :foreground constants)
(circe-prompt-face :weight 'bold :foreground highlight)
(circe-server-face :foreground comments)
(circe-my-message-face :weight 'bold)
;; diff-hl
(diff-hl-change :foreground vc-modified)
(diff-hl-delete :foreground vc-deleted)
(diff-hl-insert :foreground vc-added)
;; diff-mode
(diff-added :inherit 'hl-line :foreground green)
(diff-changed :foreground violet)
(diff-context
(&dark :foreground (doom-darken fg 0.12))
(&light :foreground (doom-lighten fg 0.12)))
(diff-removed :foreground red :background base3)
(diff-header :foreground cyan :background nil)
(diff-file-header :foreground blue :background nil)
(diff-hunk-header :foreground violet)
(diff-refine-added :inherit 'diff-added :inverse-video t)
(diff-refine-changed :inherit 'diff-changed :inverse-video t)
(diff-refine-removed :inherit 'diff-removed :inverse-video t)
;; dired+
(diredp-file-name :foreground base8)
(diredp-dir-name :foreground base8 :weight 'bold)
(diredp-ignored-file-name :foreground base5)
(diredp-compressed-file-suffix :foreground base5)
(diredp-symlink :foreground violet)
(diredp-dir-heading :foreground blue :weight 'bold)
(diredp-file-suffix :foreground violet)
(diredp-read-priv :foreground magenta)
(diredp-write-priv :foreground green)
(diredp-exec-priv :foreground yellow)
(diredp-rare-priv :foreground red :weight 'bold)
(diredp-dir-priv :foreground blue :weight 'bold)
(diredp-no-priv :foreground base5)
(diredp-number :foreground magenta)
(diredp-date-time :foreground blue)
;; dired-k
(dired-k-directory :foreground blue)
;; dired-subtree
(dired-subtree-depth-1-face :background (doom-darken bg-alt 0.02))
(dired-subtree-depth-2-face :background (doom-darken bg-alt 0.04))
(dired-subtree-depth-3-face :background (doom-darken bg-alt 0.06))
(dired-subtree-depth-4-face :background (doom-darken bg-alt 0.08))
(dired-subtree-depth-5-face :background (doom-darken bg-alt 0.10))
(dired-subtree-depth-6-face :background (doom-darken bg-alt 0.12))
;; diredfl
(diredfl-autofile-name :foreground base4 :background bg-alt)
(diredfl-compressed-file-name :foreground yellow :background bg-alt)
(diredfl-compressed-file-suffix :foreground (doom-blend orange bg-alt 0.6) :background bg-alt)
(diredfl-date-time :foreground cyan :background bg-alt :weight 'light)
(diredfl-deletion :foreground red :background (doom-blend red bg-alt 0.2) :weight 'bold)
(diredfl-deletion-file-name :foreground red :background (doom-blend red bg-alt 0.2))
(diredfl-dir-heading :foreground blue :background bg-alt :weight 'bold)
(diredfl-dir-name :foreground blue :background bg-alt)
(diredfl-dir-priv :foreground blue :background bg-alt)
(diredfl-exec-priv :foreground green :background bg-alt)
(diredfl-executable-tag :foreground green :background bg-alt)
(diredfl-file-name :foreground fg :background bg-alt)
(diredfl-file-suffix :foreground (doom-blend fg bg-alt 0.6) :background bg-alt)
(diredfl-flag-mark :foreground yellow :background (doom-blend yellow bg-alt 0.2) :weight 'bold)
(diredfl-flag-mark-line :background (doom-blend yellow bg-alt 0.1))
(diredfl-ignored-file-name :foreground comments :background bg-alt)
(diredfl-link-priv :foreground violet :background bg-alt)
(diredfl-no-priv :foreground fg :background bg-alt)
(diredfl-number :foreground orange :background bg-alt)
(diredfl-other-priv :foreground magenta :background bg-alt)
(diredfl-rare-priv :foreground fg :background bg-alt)
(diredfl-read-priv :foreground yellow :background bg-alt)
(diredfl-symlink :foreground violet :background bg-alt)
(diredfl-tagged-autofile-name :foreground base5 :background bg-alt)
(diredfl-write-priv :foreground red :background bg-alt)
;; elscreen
(elscreen-tab-background-face :background bg)
(elscreen-tab-control-face :background bg :foreground bg)
(elscreen-tab-current-screen-face :background bg-alt :foreground fg)
(elscreen-tab-other-screen-face :background bg :foreground fg-alt)
;; erc
(erc-button :weight 'bold :underline t)
(erc-default-face :inherit 'default)
(erc-action-face :weight 'bold)
(erc-command-indicator-face :weight 'bold)
(erc-direct-msg-face :foreground magenta)
(erc-error-face :inherit 'error)
(erc-header-line :background (doom-darken bg-alt 0.15) :foreground highlight)
(erc-input-face :foreground green)
(erc-current-nick-face :foreground green :weight 'bold)
(erc-timestamp-face :foreground blue :weight 'bold)
(erc-nick-default-face :weight 'bold)
(erc-nick-msg-face :foreground magenta)
(erc-nick-prefix-face :inherit 'erc-nick-default-face)
(erc-my-nick-face :foreground green :weight 'bold)
(erc-my-nick-prefix-face :inherit 'erc-my-nick-face)
(erc-notice-face :foreground comments)
(erc-prompt-face :foreground highlight :weight 'bold)
;; evil
(evil-ex-info :foreground error :slant 'italic)
(evil-ex-substitute-matches :background base0 :foreground red :strike-through t :weight 'bold)
(evil-ex-substitute-replacement :background base0 :foreground green :weight 'bold)
(evil-search-highlight-persist-highlight-face :inherit 'lazy-highlight)
;; evil-mc
(evil-mc-cursor-default-face :background magenta :foreground base0 :inverse-video nil)
(evil-mc-region-face :inherit 'region)
(evil-mc-cursor-bar-face :height 1 :background magenta :foreground base0)
(evil-mc-cursor-hbar-face :underline `(:color ,highlight))
;; evil-snipe
(evil-snipe-first-match-face :foreground highlight :background dark-blue :weight 'bold)
(evil-snipe-matches-face :foreground highlight :underline t :weight 'bold)
;; evil-googles
(evil-goggles-default-face :inherit 'region)
;; flycheck
(flycheck-error :underline `(:style wave :color ,red))
(flycheck-warning :underline `(:style wave :color ,yellow))
(flycheck-info :underline `(:style wave :color ,green))
;; flycheck-posframe
(flycheck-posframe-face :inherit 'default)
(flycheck-posframe-background-face :background bg-alt)
(flycheck-posframe-error-face :inherit 'flycheck-posframe-face :foreground error)
(flycheck-posframe-info-face :inherit 'flycheck-posframe-face :foreground fg)
(flycheck-posframe-warning-face :inherit 'flycheck-posframe-face :foreground warning)
;; flymake
(flymake-error :underline `(:style wave :color ,red))
(flymake-note :underline `(:style wave :color ,green))
(flymake-warning :underline `(:style wave :color ,orange))
;; flyspell
(flyspell-incorrect :underline `(:style wave :color ,error) :inherit 'unspecified)
;; git-commit
(git-commit-summary :foreground strings)
(git-commit-overlong-summary :inherit 'error :background base0 :slant 'italic :weight 'bold)
(git-commit-nonempty-second-line :inherit 'git-commit-overlong-summary)
(git-commit-note :foreground cyan :slant 'italic)
(git-commit-pseudo-header :foreground doc-comments :slant 'italic)
(git-commit-known-pseudo-header :foreground doc-comments :weight 'bold :slant 'italic)
(git-commit-comment-branch-local :foreground magenta)
(git-commit-comment-branch-remote :foreground green)
(git-commit-comment-detached :foreground orange)
(git-commit-comment-heading :foreground keywords)
(git-commit-comment-file :foreground violet)
(git-commit-comment-action)
;; git-gutter
(git-gutter:modified :foreground vc-modified)
(git-gutter:added :foreground vc-added)
(git-gutter:deleted :foreground vc-deleted)
;; git-gutter+
(git-gutter+-modified :foreground vc-modified :background nil)
(git-gutter+-added :foreground vc-added :background nil)
(git-gutter+-deleted :foreground vc-deleted :background nil)
;; git-gutter-fringe
((git-gutter-fr:modified &inherit git-gutter:modified))
((git-gutter-fr:added &inherit git-gutter:added))
((git-gutter-fr:deleted &inherit git-gutter:deleted))
;; gnus
(gnus-group-mail-1 :weight 'bold :foreground fg)
(gnus-group-mail-2 :inherit 'gnus-group-mail-1)
(gnus-group-mail-3 :inherit 'gnus-group-mail-1)
(gnus-group-mail-1-empty :foreground base5)
(gnus-group-mail-2-empty :inherit 'gnus-group-mail-1-empty)
(gnus-group-mail-3-empty :inherit 'gnus-group-mail-1-empty)
(gnus-group-news-1 :inherit 'gnus-group-mail-1)
(gnus-group-news-2 :inherit 'gnus-group-news-1)
(gnus-group-news-3 :inherit 'gnus-group-news-1)
(gnus-group-news-4 :inherit 'gnus-group-news-1)
(gnus-group-news-5 :inherit 'gnus-group-news-1)
(gnus-group-news-6 :inherit 'gnus-group-news-1)
(gnus-group-news-1-empty :inherit 'gnus-group-mail-1-empty)
(gnus-group-news-2-empty :inherit 'gnus-groupnews-1-empty)
(gnus-group-news-3-empty :inherit 'gnus-groupnews-1-empty)
(gnus-group-news-4-empty :inherit 'gnus-groupnews-1-empty)
(gnus-group-news-5-empty :inherit 'gnus-groupnews-1-empty)
(gnus-group-news-6-empty :inherit 'gnus-groupnews-1-empty)
(gnus-group-mail-low :inherit 'gnus-group-mail-1 :weight 'normal)
(gnus-group-mail-low-empty :inherit 'gnus-group-mail-1-empty)
(gnus-group-news-low :inherit 'gnus-group-mail-1 :foreground base5)
(gnus-group-news-low-empty :inherit 'gnus-group-news-low :weight 'normal)
(gnus-header-content :inherit 'message-header-other)
(gnus-header-from :inherit 'message-header-other)
(gnus-header-name :inherit 'message-header-name)
(gnus-header-newsgroups :inherit 'message-header-other)
(gnus-header-subject :inherit 'message-header-subject)
(gnus-summary-cancelled :foreground red :strike-through t)
(gnus-summary-high-ancient :foreground (doom-lighten base5 0.2) :inherit 'italic)
(gnus-summary-high-read :foreground (doom-lighten fg 0.2))
(gnus-summary-high-ticked :foreground (doom-lighten magenta 0.2))
(gnus-summary-high-unread :foreground (doom-lighten green 0.2))
(gnus-summary-low-ancient :foreground (doom-darken base5 0.2) :inherit 'italic)
(gnus-summary-low-read :foreground (doom-darken fg 0.2))
(gnus-summary-low-ticked :foreground (doom-darken magenta 0.2))
(gnus-summary-low-unread :foreground (doom-darken green 0.2))
(gnus-summary-normal-ancient :foreground base5 :inherit 'italic)
(gnus-summary-normal-read :foreground fg)
(gnus-summary-normal-ticked :foreground magenta)
(gnus-summary-normal-unread :foreground green :inherit 'bold)
(gnus-summary-selected :foreground blue :weight 'bold)
(gnus-cite-1 :foreground violet)
(gnus-cite-2 :foreground violet)
(gnus-cite-3 :foreground violet)
(gnus-cite-4 :foreground green)
(gnus-cite-5 :foreground green)
(gnus-cite-6 :foreground green)
(gnus-cite-7 :foreground magenta)
(gnus-cite-8 :foreground magenta)
(gnus-cite-9 :foreground magenta)
(gnus-cite-10 :foreground yellow)
(gnus-cite-11 :foreground yellow)
(gnus-signature :foreground yellow)
(gnus-x-face :background base5 :foreground fg)
;; helm
(helm-selection
(&all :inherit 'bold :background selection)
(&dark :distant-foreground highlight)
(&light :distant-foreground base0))
(helm-match :foreground highlight :distant-foreground base8 :underline t)
(helm-source-header :background base2 :foreground base5)
(helm-swoop-target-line-face :foreground highlight :inverse-video t)
(helm-visible-mark :inherit '(bold highlight))
(helm-ff-file :foreground fg)
(helm-ff-prefix :foreground keywords)
(helm-ff-dotted-directory :foreground grey)
(helm-ff-directory :foreground variables)
(helm-ff-executable :foreground base8 :inherit 'italic)
(helm-grep-match :foreground highlight :distant-foreground red)
(helm-grep-file :foreground methods)
(helm-grep-lineno :foreground base5)
(helm-grep-finish :foreground green)
(helm-swoop-target-line-face :foreground highlight :inverse-video t)
(helm-swoop-target-line-block-face :foreground yellow)
(helm-swoop-target-word-face :foreground green :inherit 'bold)
(helm-swoop-target-number-face :foreground base5)
;; helpful
(helpful-heading :weight 'bold :height 1.2)
;; hideshow
(+doom-folded-face :inherit 'font-lock-comment-face
:weight 'light
:background (doom-darken bg 0.125))
;; highlight-indentation-mode
(highlight-indentation-face :inherit 'hl-line)
(highlight-indentation-current-column-face :background base1)
(highlight-indentation-guides-odd-face :inherit 'highlight-indentation-face)
(highlight-indentation-guides-even-face :inherit 'highlight-indentation-face)
;; highlight-quoted-mode
(highlight-quoted-symbol :foreground type)
(highlight-quoted-quote :foreground operators)
;; highlight-numbers-mode
(highlight-numbers-number :inherit 'bold :foreground numbers)
;; hlinum
(linum-highlight-face :foreground fg :distant-foreground nil :weight 'normal)
;; hl-todo
(hl-todo :foreground red :weight 'bold)
;; hydra
(hydra-face-red :foreground red :weight 'bold)
(hydra-face-blue :foreground blue :weight 'bold)
(hydra-face-amaranth :foreground magenta :weight 'bold)
(hydra-face-pink :foreground violet :weight 'bold)
(hydra-face-teal :foreground teal :weight 'bold)
;; iedit
(iedit-occurrence :foreground magenta :weight 'bold :inverse-video t)
(iedit-read-only-occurrence :inherit 'region)
;; imenu-list
;; (imenu-list-entry-face)
(imenu-list-entry-face-0 :foreground highlight)
(imenu-list-entry-subalist-face-0 :inherit 'imenu-list-entry-face-0 :weight 'bold)
(imenu-list-entry-face-1 :foreground green)
(imenu-list-entry-subalist-face-1 :inherit 'imenu-list-entry-face-1 :weight 'bold)
(imenu-list-entry-face-2 :foreground yellow)
(imenu-list-entry-subalist-face-2 :inherit 'imenu-list-entry-face-2 :weight 'bold)
;; indent-guide
((indent-guide-face &inherit highlight-indentation-face))
;; ivy
(ivy-current-match :background region :distant-foreground nil)
(ivy-minibuffer-match-face-1
:background nil
:foreground (doom-lighten grey 0.14)
:weight 'light)
(ivy-minibuffer-match-face-2
:inherit 'ivy-minibuffer-match-face-1
:foreground magenta :background base1 :weight 'semi-bold)
(ivy-minibuffer-match-face-3
:inherit 'ivy-minibuffer-match-face-2
:foreground green :weight 'semi-bold)
(ivy-minibuffer-match-face-4
:inherit 'ivy-minibuffer-match-face-2
:foreground yellow :weight 'semi-bold)
(ivy-minibuffer-match-highlight :foreground violet)
(ivy-highlight-face :foreground violet)
(ivy-confirm-face :foreground success)
(ivy-match-required-face :foreground error)
(ivy-virtual :inherit 'italic :foreground doc-comments)
(ivy-modified-buffer :inherit 'bold :foreground vc-modified)
;; ivy-posframe
(ivy-posframe :background (doom-darken bg-alt 0.2))
;; jabber
(jabber-activity-face :foreground red :weight 'bold)
(jabber-activity-personal-face :foreground blue :weight 'bold)
(jabber-chat-error :foreground red :weight 'bold)
(jabber-chat-prompt-foreign :foreground red :weight 'bold)
(jabber-chat-prompt-local :foreground blue :weight 'bold)
(jabber-chat-prompt-system :foreground green :weight 'bold)
(jabber-chat-text-foreign :foreground fg)
(jabber-chat-text-local :foreground fg)
(jabber-rare-time-face :foreground green)
(jabber-roster-user-away :foreground yellow)
(jabber-roster-user-chatty :foreground green :weight 'bold)
(jabber-roster-user-dnd :foreground red)
(jabber-roster-user-error :foreground red)
(jabber-roster-user-offline :foreground fg)
(jabber-roster-user-online :foreground green :weight 'bold)
(jabber-roster-user-xa :foreground cyan)
;; linum-relative
((linum-relative-current-face &inherit line-number-current-line))
;; lui
(lui-time-stamp-face :foreground violet)
(lui-highlight-face :foreground highlight)
(lui-button-face :foreground builtin :underline t)
;; multiple cursors
(mc/cursor-face :inherit 'cursor)
;; nav-flash
(nav-flash-face :background selection :foreground base8 :weight 'bold)
;; neotree
(neo-root-dir-face :foreground strings :background bg :box `(:line-width 4 :color ,bg))
(neo-file-link-face :foreground fg)
(neo-dir-link-face :foreground highlight)
(neo-expand-btn-face :foreground highlight)
(neo-vc-edited-face :foreground yellow)
(neo-vc-added-face :foreground green)
(neo-vc-removed-face :foreground red :strike-through t)
(neo-vc-conflict-face :foreground magenta :weight 'bold)
(neo-vc-ignored-face :foreground comments)
(doom-neotree-dir-face :foreground highlight)
(doom-neotree-file-face :foreground base8)
(doom-neotree-hidden-file-face :foreground comments)
(doom-neotree-text-file-face :foreground fg)
(doom-neotree-data-file-face :foreground violet)
(doom-neotree-media-file-face :inherit 'doom-neotree-hidden-file-face)
;; nlinum
((nlinum-current-line &inherit line-number-current-line))
;; nlinum-hl
((nlinum-hl-face &inherit line-number-current-line))
;; nlinum-relative
((nlinum-relative-current-face &inherit line-number-current-line))
;; lsp
;; TODO Add light versions
(lsp-face-highlight-textual :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold)
(lsp-face-highlight-read :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold)
(lsp-face-highlight-write :background dark-blue :foreground base8 :distant-foreground base0 :weight 'bold)
(lsp-ui-peek-filename :inherit 'doom-modeline-buffer-file)
(lsp-ui-peek-header :foreground fg :background (doom-lighten bg 0.1) :bold bold)
(lsp-ui-peek-selection :foreground bg :background blue :bold bold)
(lsp-ui-peek-list :background (doom-darken bg 0.1))
(lsp-ui-peek-peek :background (doom-darken bg 0.1))
(lsp-ui-peek-highlight :inherit 'lsp-ui-peek-header :background region :foreground bg :box t)
(lsp-ui-peek-line-number :foreground success)
;; magit
(magit-bisect-bad :foreground red)
(magit-bisect-good :foreground green)
(magit-bisect-skip :foreground orange)
(magit-blame-date :foreground red)
(magit-blame-heading :foreground orange :background base3)
(magit-branch-current :foreground blue)
(magit-branch-local :foreground cyan)
(magit-branch-remote :foreground green)
(magit-cherry-equivalent :foreground violet)
(magit-cherry-unmatched :foreground cyan)
(magit-diff-added :foreground (doom-darken green 0.2) :background (doom-blend green bg 0.1))
(magit-diff-added-highlight :foreground green :background (doom-blend green bg 0.2) :weight 'bold)
(magit-diff-base :foreground (doom-darken orange 0.2) :background (doom-blend orange bg 0.1))
(magit-diff-base-highlight :foreground orange :background (doom-blend orange bg 0.2) :weight 'bold)
(magit-diff-context :foreground (doom-darken fg 0.4) :background bg)
(magit-diff-context-highlight :foreground fg :background bg-alt)
(magit-diff-file-heading :foreground fg :weight 'bold)
(magit-diff-file-heading-selection :foreground magenta :background dark-blue :weight 'bold)
(magit-diff-hunk-heading :foreground bg :background (doom-blend violet bg 0.3))
(magit-diff-hunk-heading-highlight :foreground bg :background violet :weight 'bold)
(magit-diff-removed :foreground (doom-darken red 0.2) :background (doom-blend red base3 0.1))
(magit-diff-removed-highlight :foreground red :background (doom-blend red base3 0.2) :weight 'bold)
(magit-diff-lines-heading :foreground yellow :background red)
(magit-diffstat-added :foreground green)
(magit-diffstat-removed :foreground red)
(magit-dimmed :foreground comments)
(magit-hash :foreground comments)
(magit-header-line :background dark-blue :foreground base8 :weight 'bold
:box `(:line-width 3 :color ,dark-blue))
(magit-log-author :foreground orange)
(magit-log-date :foreground blue)
(magit-log-graph :foreground comments)
(magit-process-ng :inherit 'error)
(magit-process-ok :inherit 'success)
(magit-reflog-amend :foreground magenta)
(magit-reflog-checkout :foreground blue)
(magit-reflog-cherry-pick :foreground green)
(magit-reflog-commit :foreground green)
(magit-reflog-merge :foreground green)
(magit-reflog-other :foreground cyan)
(magit-reflog-rebase :foreground magenta)
(magit-reflog-remote :foreground cyan)
(magit-reflog-reset :inherit 'error)
(magit-refname :foreground comments)
(magit-section-heading :foreground blue :weight 'bold)
(magit-section-heading-selection :foreground orange :weight 'bold)
(magit-section-highlight :inherit 'hl-line)
(magit-sequence-drop :foreground red)
(magit-sequence-head :foreground blue)
(magit-sequence-part :foreground orange)
(magit-sequence-stop :foreground green)
(magit-signature-bad :inherit 'error)
(magit-signature-error :inherit 'error)
(magit-signature-expired :foreground orange)
(magit-signature-good :inherit 'success)
(magit-signature-revoked :foreground magenta)
(magit-signature-untrusted :foreground yellow)
(magit-tag :foreground yellow)
(magit-filename :foreground violet)
(magit-section-secondary-heading :foreground violet :weight 'bold)
;; mic-paren
(paren-face-match :foreground red :background base0 :weight 'ultra-bold)
(paren-face-mismatch :foreground base0 :background red :weight 'ultra-bold)
(paren-face-no-match :inherit 'paren-face-mismatch :weight 'ultra-bold)
;; parenface
(paren-face :foreground comments)
;; perspective
(persp-selected-face :foreground blue :weight 'bold)
;; persp-mode
(persp-face-lighter-buffer-not-in-persp :foreground warning :slant 'italic)
(persp-face-lighter-nil-persp :foreground comments)
;; popup
(popup-face :inherit 'tooltip)
(popup-tip-face :inherit 'popup-face :foreground violet :background base0)
(popup-selection-face :background selection)
;; rainbow-delimiters
(rainbow-delimiters-depth-1-face :foreground blue)
(rainbow-delimiters-depth-2-face :foreground magenta)
(rainbow-delimiters-depth-3-face :foreground green)
(rainbow-delimiters-depth-4-face :foreground orange)
(rainbow-delimiters-depth-5-face :foreground violet)
(rainbow-delimiters-depth-6-face :foreground yellow)
(rainbow-delimiters-depth-7-face :foreground teal)
(rainbow-delimiters-unmatched-face :foreground red :weight 'bold :inverse-video t)
(rainbow-delimiters-mismatched-face :inherit 'rainbow-delimiters-unmatched-face)
;; re-builder
(reb-match-0 :foreground orange :inverse-video t)
(reb-match-1 :foreground magenta :inverse-video t)
(reb-match-2 :foreground green :inverse-video t)
(reb-match-3 :foreground yellow :inverse-video t)
;; show-paren
((show-paren-match &inherit paren-face-match))
((show-paren-mismatch &inherit paren-face-mismatch))
;; smartparens
(sp-pair-overlay-face :background region)
;; smartparens
((sp-show-pair-match-face &inherit show-paren-match))
((sp-show-pair-mismatch-face &inherit show-paren-mismatch))
;; smerge-tool
(smerge-lower :background (doom-blend green bg 0.2))
(smerge-upper :background (doom-blend red base3 0.2))
(smerge-base :background (doom-blend blue bg 0.2))
(smerge-markers :background comments :foreground bg :distant-foreground fg :weight 'bold)
;; Emacs <25 compatibility
((smerge-mine &inherit smerge-upper))
((smerge-other &inherit smerge-lower))
;; solaire-mode
(solaire-default-face :inherit 'default :background bg-alt)
(solaire-hl-line-face :inherit 'hl-line :background bg)
(solaire-org-hide-face :foreground bg-alt)
;; stripe-buffer
(stripe-highlight
(&light :background base5)
(&dark :background base3))
;; swiper
(swiper-line-face :background blue :foreground base0)
(swiper-match-face-1 :inherit 'unspecified :background base0 :foreground base5)
(swiper-match-face-2 :inherit 'unspecified :background orange :foreground base0 :weight 'bold)
(swiper-match-face-3 :inherit 'unspecified :background magenta :foreground base0 :weight 'bold)
(swiper-match-face-4 :inherit 'unspecified :background green :foreground base0 :weight 'bold)
;; tabbar
(tabbar-default :foreground bg :background bg :height 1.0)
(tabbar-highlight :foreground fg :background selection :distant-foreground bg)
(tabbar-button :foreground fg :background bg)
(tabbar-button-highlight :inherit 'tabbar-button :inverse-video t)
(tabbar-modified :inherit 'tabbar-default :foreground red :weight 'bold)
(tabbar-unselected :inherit 'tabbar-default :foreground base5)
(tabbar-unselected-modified :inherit 'tabbar-modified)
(tabbar-selected
:inherit 'tabbar-default :weight 'bold
:foreground fg :background bg-alt)
(tabbar-selected-modified :inherit 'tabbar-selected :foreground green)
;; tldr
(tldr-command-itself :foreground bg :background green :weight 'semi-bold)
(tldr-title :foreground yellow :bold t :height 1.4)
(tldr-description :foreground fg :weight 'semi-bold)
(tldr-introduction :foreground (doom-blend blue bg 0.8) :weight 'semi-bold)
(tldr-code-block :foreground green :background region :weight 'semi-bold)
(tldr-command-argument :foreground fg :background region )
;; treemacs
(treemacs-root-face :inherit 'font-lock-string-face :weight 'bold :height 1.2)
(treemacs-file-face :foreground fg)
(treemacs-directory-face :foreground fg)
(treemacs-tags-face :foreground highlight)
(treemacs-git-modified-face :foreground violet)
(treemacs-git-added-face :foreground green)
(treemacs-git-conflict-face :foreground red)
(treemacs-git-untracked-face :inherit 'font-lock-doc-face)
;; twittering-mode
(twitter-divider ; custom face in Doom Emacs
(&light :underline '(:color (doom-lighten vertical-bar 0.2)))
(&dark :underline '(:color (doom-darken vertical-bar 0.2))))
;; undo-tree
(undo-tree-visualizer-default-face :foreground base5)
(undo-tree-visualizer-current-face :foreground green :weight 'bold)
(undo-tree-visualizer-unmodified-face :foreground base5)
(undo-tree-visualizer-active-branch-face :foreground blue)
(undo-tree-visualizer-register-face :foreground yellow)
;; vimish-fold
(vimish-fold-overlay :inherit 'font-lock-comment-face :background base0 :weight 'light)
(vimish-fold-fringe :foreground magenta)
;; volatile-highlights
(vhl/default-face :background grey)
;; wgrep
(wgrep-face :weight 'bold :foreground green :background base5)
(wgrep-delete-face :foreground base3 :background red)
(wgrep-done-face :foreground blue)
(wgrep-file-face :foreground comments)
(wgrep-reject-face :foreground red :weight 'bold)
;; which-func
(which-func :foreground blue)
;; which-key
(which-key-key-face :foreground green)
(which-key-group-description-face :foreground violet)
(which-key-command-description-face :foreground blue)
(which-key-local-map-description-face :foreground magenta)
;; whitespace
(whitespace-empty :background base3)
(whitespace-space :foreground base4)
(whitespace-tab :foreground base4 :background (unless indent-tabs-mode base3))
(whitespace-newline :foreground base4)
(whitespace-indentation :foreground red :background yellow)
(whitespace-trailing :inherit 'trailing-whitespace)
(whitespace-line :background base0 :foreground red :weight 'bold)
;; workgroups2
(wg-current-workgroup-face :foreground base0 :background highlight)
(wg-other-workgroup-face :foreground base5)
(wg-divider-face :foreground grey)
(wg-brace-face :foreground highlight)
;; yasnippet
(yas-field-highlight-face :inherit 'match)
;; --- major-mode faces -------------------
;; auctex (latex-mode)
(font-latex-bold-face :inherit 'bold)
(font-latex-italic-face :inherit 'italic)
(font-latex-math-face :foreground blue)
(font-latex-sectioning-0-face :foreground blue :weight 'ultra-bold :height 1.4)
(font-latex-sectioning-1-face :foreground magenta :weight 'semi-bold :height 1.2)
(font-latex-sectioning-2-face :foreground violet :weight 'semi-bold)
(font-latex-sectioning-3-face :foreground (doom-lighten blue 0.3) :weight 'semi-bold)
(font-latex-sectioning-4-face :foreground (doom-lighten magenta 0.3) :weight 'semi-bold)
(font-latex-sectioning-5-face :foreground (doom-lighten violet 0.3) :weight 'semi-bold)
(font-latex-script-char-face :foreground dark-blue)
(font-latex-string-face :inherit 'font-lock-string-face)
(font-latex-warning-face :inherit 'font-lock-warning-face)
(font-latex-verbatim-face :inherit 'fixed-pitch :foreground violet :slant 'italic)
;; elixir-mode
(elixir-atom-face (&light :foreground dark-blue)
(&dark :foreground cyan))
(elixir-attribute-face :foreground violet)
;; enh-ruby-mode
(enh-ruby-op-face :foreground operators)
(enh-ruby-string-delimiter-face :inherit 'font-lock-string-face)
(enh-ruby-heredoc-delimiter-face :inherit 'font-lock-string-face)
(enh-ruby-regexp-face :foreground constants)
(enh-ruby-regexp-delimiter-face :inherit 'enh-ruby-regexp-face)
(erm-syn-errline :underline `(:style wave :color ,error))
(erm-syn-warnline :underline `(:style wave :color ,warning))
;; jdee-mode
(jdee-font-lock-number-face :foreground numbers)
(jdee-font-lock-operator-face :foreground operators)
(jdee-font-lock-constant-face :inherit 'font-lock-constant-face)
(jdee-font-lock-constructor-face :foreground methods)
(jdee-font-lock-public-face :inherit 'font-lock-keyword-face)
(jdee-font-lock-protected-face :inherit 'font-lock-keyword-face)
(jdee-font-lock-private-face :inherit 'font-lock-keyword-face)
(jdee-font-lock-modifier-face :inherit 'font-lock-type-face)
(jdee-font-lock-doc-tag-face :foreground violet)
(jdee-font-lock-italic-face :inherit 'italic)
(jdee-font-lock-bold-face :inherit 'bold)
(jdee-font-lock-link-face :foreground blue :italic nil :underline t)
;; js2-mode
(js2-function-param :foreground variables)
(js2-function-call :foreground functions)
(js2-object-property :foreground violet)
(js2-jsdoc-tag :foreground doc-comments)
;; ledger-mode
(ledger-font-posting-date-face :foreground blue)
(ledger-font-posting-amount-face :foreground yellow)
(ledger-font-posting-account-face :foreground base8)
(ledger-font-payee-cleared-face :foreground violet :weight 'bold :height 1.2)
(ledger-font-payee-uncleared-face :foreground base5 :weight 'bold :height 1.2)
(ledger-font-xact-highlight-face :background base0)
;; makefile-*-mode
(makefile-targets :foreground blue)
;; markdown-mode
(markdown-header-face :inherit 'bold :foreground highlight)
(markdown-header-delimiter-face :inherit 'markdown-header-face)
(markdown-metadata-key-face :foreground red)
(markdown-list-face :foreground red)
(markdown-link-face :inherit 'bold :foreground blue)
(markdown-url-face :foreground magenta :weight 'normal)
(markdown-italic-face :inherit 'italic :foreground violet)
(markdown-bold-face :inherit 'bold :foreground orange)
(markdown-markup-face :foreground operators)
(markdown-blockquote-face :inherit 'italic :foreground doc-comments)
(markdown-pre-face :foreground strings)
(markdown-code-face :background base3)
(markdown-inline-code-face :inherit '(markdown-code-face markdown-pre-face))
;; notmuch
;; (notmuch-crypto-decryption :foreground blue-l)
;; (notmuch-crypto-part-header :foreground yellow-l)
;; (notmuch-crypto-signature-bad :foreground red-l)
;; (notmuch-crypto-signature-good :foreground base1)
;; (notmuch-crypto-signature-good-key :foreground aqua-l)
;; (notmuch-crypto-signature-unknown :foreground yellow)
;; (notmuch-hello-logo-background :foreground fg)
(notmuch-message-summary-face :foreground grey :background nil)
(notmuch-search-count :foreground comments)
(notmuch-search-date :foreground numbers :weight 'bold)
(notmuch-search-flagged-face :foreground (doom-blend red base4 0.5))
(notmuch-search-matching-authors :foreground blue :weight 'bold)
(notmuch-search-non-matching-authors :foreground blue)
(notmuch-search-subject :foreground fg)
(notmuch-search-unread-face :foreground base8)
(notmuch-tag-added :foreground green :weight 'normal)
(notmuch-tag-deleted :foreground red :weight 'normal)
(notmuch-tag-face :foreground yellow :weight 'normal)
(notmuch-tag-flagged :foreground yellow :weight 'normal)
(notmuch-tag-unread :foreground yellow :weight 'normal)
(notmuch-tree-match-author-face :foreground blue :weight 'bold)
(notmuch-tree-match-date-face :foreground numbers :weight 'bold)
(notmuch-tree-match-face :foreground fg)
(notmuch-tree-match-subject-face :foreground fg)
(notmuch-tree-match-tag-face :foreground yellow)
(notmuch-tree-match-tree-face :foreground comments)
(notmuch-tree-no-match-author-face :foreground blue)
(notmuch-tree-no-match-date-face :foreground numbers)
(notmuch-tree-no-match-face :foreground base5)
(notmuch-tree-no-match-subject-face :foreground base5)
(notmuch-tree-no-match-tag-face :foreground yellow)
(notmuch-tree-no-match-tree-face :foreground yellow)
(notmuch-wash-cited-text :foreground base4)
(notmuch-wash-toggle-button :foreground fg)
;; outline
(outline-1 :inherit 'org-level-1)
(outline-2 :inherit 'org-level-2)
(outline-3 :inherit 'org-level-3)
(outline-4 :inherit 'org-level-4)
(outline-5 :inherit 'org-level-5)
(outline-6 :inherit 'org-level-6)
(outline-7 :inherit 'org-level-7)
(outline-8 :inherit 'org-level-8)
;; org-mode
(org-archived :foreground doc-comments)
(org-block :background base3)
(org-block-background :background base3)
(org-block-begin-line :foreground comments :background base3)
(org-block-end-line :inherit 'org-block-begin-line)
(org-checkbox :inherit 'org-todo)
(org-checkbox-statistics-done :inherit 'org-done)
(org-checkbox-statistics-todo :inherit 'org-todo)
(org-code :foreground orange)
(org-date :foreground yellow)
(org-default :inherit 'variable-pitch)
(org-document-info :foreground builtin)
(org-document-title :foreground builtin :weight 'bold)
(org-done :inherit 'org-headline-done :bold 'inherit)
(org-ellipsis :underline nil :background nil :foreground grey)
(org-footnote :foreground orange)
(org-formula :foreground cyan)
(org-headline-done :foreground base5)
(org-hide :foreground bg)
(org-level-1 :foreground blue :background base3 :weight 'ultra-bold :height 1.25)
(org-level-2 :foreground magenta :weight 'semi-bold)
(org-level-3 :foreground violet :weight 'semi-bold)
(org-level-4 :foreground (doom-lighten blue 0.25) :weight 'semi-bold)
(org-level-5 :foreground (doom-lighten magenta 0.25) :weight 'semi-bold)
(org-level-6 :foreground (doom-lighten blue 0.5) :weight 'semi-bold)
(org-level-7 :foreground (doom-lighten magenta 0.5) :weight 'semi-bold)
(org-level-8 :foreground (doom-lighten blue 0.8) :weight 'semi-bold)
(org-list-dt :foreground highlight)
(org-meta-line :foreground doc-comments)
(org-priority :foreground red)
(org-property-value :foreground doc-comments)
(org-quote :background base3 :slant 'italic)
(org-special-keyword :foreground doc-comments)
(org-table :foreground violet)
(org-tag :foreground doc-comments :weight 'normal)
(org-ref-cite-face :foreground yellow :weight 'light :underline t)
(org-todo :foreground highlight :bold 'inherit)
(org-verbatim :foreground green)
(org-warning :foreground warning)
;; org-agenda
(org-agenda-done :inherit 'org-done)
(org-agenda-dimmed-todo-face :foreground comments)
(org-agenda-date :foreground violet :weight 'ultra-bold)
(org-agenda-date-today :foreground (doom-lighten violet 0.4) :weight 'ultra-bold)
(org-agenda-date-weekend :foreground (doom-darken violet 0.4) :weight 'ultra-bold)
(org-agenda-structure :foreground fg :weight 'ultra-bold)
(org-agenda-clocking :background (doom-blend blue bg 0.2))
(org-upcoming-deadline :foreground (doom-blend fg bg 0.8))
(org-upcoming-distant-deadline :foreground (doom-blend fg bg 0.5))
(org-scheduled :foreground fg)
(org-scheduled-today :foreground base7)
(org-scheduled-previously :foreground base8)
(org-time-grid :foreground comments)
(org-sexp-date :foreground fg)
;; org-habit
(org-habit-clear-face :weight 'bold :background bg-alt :foreground bg-alt)
(org-habit-clear-future-face :weight 'bold :background bg-alt :foreground bg-alt)
(org-habit-ready-face :weight 'bold :background (doom-blend blue bg-alt 0.5) :foreground (doom-blend blue bg-alt 0.5))
(org-habit-ready-future-face :weight 'bold :background (doom-blend blue bg-alt 0.5) :foreground (doom-blend blue bg-alt 0.5))
(org-habit-alert-face :weight 'bold :background (doom-blend yellow bg-alt 0.5) :foreground (doom-blend yellow bg-alt 0.5))
(org-habit-alert-future-face :weight 'bold :background (doom-blend yellow bg-alt 0.5) :foreground (doom-blend yellow bg-alt 0.5))
(org-habit-overdue-face :weight 'bold :background (doom-blend red bg-alt 0.5) :foreground (doom-blend red bg-alt 0.5))
(org-habit-overdue-future-face :weight 'bold :background (doom-blend red bg-alt 0.5) :foreground (doom-blend red bg-alt 0.5))
;; rpm-spec-mode
(rpm-spec-macro-face :foreground yellow)
(rpm-spec-var-face :foreground violet)
(rpm-spec-tag-face :foreground blue)
(rpm-spec-obsolete-tag-face :foreground red)
(rpm-spec-package-face :foreground orange)
(rpm-spec-dir-face :foreground green)
(rpm-spec-doc-face :foreground orange)
(rpm-spec-ghost-face :foreground comments)
(rpm-spec-section-face :foreground magenta)
;; typescript-mode
(typescript-jsdoc-tag :foreground doc-comments)
(typescript-jsdoc-type :foreground (doom-darken doc-comments 0.15))
(typescript-jsdoc-value :foreground (doom-lighten doc-comments 0.15))
;; sh-mode
(sh-heredoc :inherit 'font-lock-string-face :weight 'normal)
(sh-quoted-exec :inherit 'font-lock-preprocessor-face)
;; web-mode
(web-mode-doctype-face :foreground comments)
(web-mode-html-tag-face :foreground methods)
(web-mode-html-tag-bracket-face :foreground methods)
(web-mode-html-attr-name-face :foreground type)
(web-mode-html-entity-face :foreground cyan :inherit 'italic)
(web-mode-block-control-face :foreground orange)
(web-mode-html-tag-bracket-face :foreground operators))
"TODO")
(defvar doom-themes-common-vars
'((ansi-color-names-vector
(vconcat (mapcar #'doom-color '(base0 red green yellow blue magenta cyan base8))))
(fci-rule-color (doom-color 'base5))
(jdee-db-spec-breakpoint-face-colors `(cons ,(doom-color 'base0) ,(doom-color 'grey)))
(jdee-db-requested-breakpoint-face-colors `(cons ,(doom-color 'base0) ,(doom-color 'green)))
(jdee-db-active-breakpoint-face-colors `(cons ,(doom-color 'base0) ,(doom-color 'highlight)))
(vc-annotate-color-map
`(list (cons 20 ,(doom-color 'green))
(cons 40 ,(doom-blend 'yellow 'green (/ 1.0 3)))
(cons 60 ,(doom-blend 'yellow 'green (/ 2.0 3)))
(cons 80 ,(doom-color 'yellow))
(cons 100 ,(doom-blend 'orange 'yellow (/ 1.0 3)))
(cons 120 ,(doom-blend 'orange 'yellow (/ 2.0 3)))
(cons 140 ,(doom-color 'orange))
(cons 160 ,(doom-blend 'magenta 'orange (/ 1.0 3)))
(cons 180 ,(doom-blend 'magenta 'orange (/ 2.0 3)))
(cons 200 ,(doom-color 'magenta))
(cons 220 ,(doom-blend 'red 'magenta (/ 1.0 3)))
(cons 240 ,(doom-blend 'red 'magenta (/ 2.0 3)))
(cons 260 ,(doom-color 'red))
(cons 280 ,(doom-blend 'grey 'red (/ 1.0 4)))
(cons 300 ,(doom-blend 'grey 'red (/ 2.0 4)))
(cons 320 ,(doom-blend 'grey 'red (/ 3.0 4)))
(cons 340 ,(doom-color 'base5))
(cons 360 ,(doom-color 'base5))))
(vc-annotate-very-old-color nil)
(vc-annotate-background (doom-color 'bg)))
"TODO")
;;
;; Library
;;
(defvar doom-themes--colors)
(defvar doom--min-colors '(257 256 16))
(defvar doom--quoted-p nil)
(defvar doom-themes--faces nil)
(defun doom-themes--colors-p (item)
(declare (pure t) (side-effect-free t))
(when item
(cond ((listp item)
(let ((car (car item)))
(cond ((memq car '(quote doom-color)) nil)
((memq car '(backquote \`))
(let ((doom--quoted-p t))
(doom-themes--colors-p (cdr item))))
((eq car '\,)
(let (doom--quoted-p)
(doom-themes--colors-p (cdr item))))
((or (doom-themes--colors-p car)
(doom-themes--colors-p (cdr-safe item)))))))
((and (symbolp item)
(not (keywordp item))
(not doom--quoted-p)
(not (equal (substring (symbol-name item) 0 1) "-"))
(assq item doom-themes--colors))))))
(defun doom-themes--apply-faces (new-faces &optional default-faces)
(declare (pure t) (side-effect-free t))
(let ((default-faces (or default-faces doom-themes-common-faces))
(faces (make-hash-table :test #'eq :size (+ (length default-faces) (length new-faces))))
(directives (make-hash-table :test #'eq)))
(dolist (spec (append (mapcar #'copy-sequence default-faces) new-faces))
(if (listp (car spec))
(cl-destructuring-bind (face action &optional arg) (car spec)
(unless (assq face new-faces)
(puthash face (list action arg (cdr spec))
directives)))
(puthash (car spec) (cdr spec) faces)))
(cl-loop for face being the hash-keys of directives
for (action target spec) = (gethash face directives)
unless (memq action '(&inherit &extend &override))
do (error "Invalid operation (%s) for '%s' face" action face)
if (eq (car spec) 'quote)
do (error "Can't extend literal face spec (for '%s')" face)
;; TODO Add &all/&light/&dark extension support
else if (memq (car spec) '(&all &light &dark))
do (error "Can't extend face with &all, &light or &dark specs (for '%s')" face)
else do
(puthash face
(let ((old-spec (gethash (or target face) faces))
(plist spec))
;; remove duplicates
(while (keywordp (car plist))
(setq old-spec (plist-put old-spec (car plist) (cadr plist))
plist (cddr plist)))
old-spec)
faces))
(let (results)
(maphash (lambda (face plist)
(when (keywordp (car plist))
;; TODO Clean up duplicates in &all/&light/&dark blocks
(dolist (prop (append (unless doom-themes-enable-bold '(:weight normal :bold nil))
(unless doom-themes-enable-italic '(:slant normal :italic nil))))
(when (and (plist-member plist prop)
(not (eq (plist-get plist prop) 'inherit)))
(plist-put plist prop
(if (memq prop '(:weight :slant))
(quote 'normal))))))
(push (cons face plist) results))
faces)
(nreverse results))))
(defun doom-themes--colorize (item type)
(declare (pure t) (side-effect-free t))
(when item
(let ((doom--quoted-p doom--quoted-p))
(cond ((listp item)
(cond ((memq (car item) '(quote doom-color))
item)
((eq (car item) 'doom-ref)
(doom-themes--colorize
(apply #'doom-ref (cdr item)) type))
((let* ((item (append item nil))
(car (car item))
(doom--quoted-p
(cond ((memq car '(backquote \`)) t)
((eq car '\,) nil)
(t doom--quoted-p))))
(cons car
(cl-loop
for i in (cdr item)
collect (doom-themes--colorize i type)))))))
((and (symbolp item)
(not (keywordp item))
(not doom--quoted-p)
(not (equal (substring (symbol-name item) 0 1) "-"))
(assq item doom-themes--colors))
`(doom-color ',item ',type))
(item)))))
(defun doom-themes--build-face (face)
(declare (pure t) (side-effect-free t))
`(list
',(car face)
,(let ((face-body (cdr face)))
(cond ((keywordp (car face-body))
(let ((real-attrs face-body)
defs)
(if (doom-themes--colors-p real-attrs)
(dolist (cl doom--min-colors `(list ,@(nreverse defs)))
(push `(list '((class color) (min-colors ,cl))
(list ,@(doom-themes--colorize real-attrs cl)))
defs))
`(list (list 't (list ,@real-attrs))))))
((memq (car-safe (car face-body)) '(quote backquote \`))
(car face-body))
((let (all-attrs defs)
(dolist (attrs face-body `(list ,@(nreverse defs)))
(cond ((eq (car attrs) '&all)
(setq all-attrs (append all-attrs (cdr attrs))))
((memq (car attrs) '(&dark &light))
(let ((bg (if (eq (car attrs) '&dark) 'dark 'light))
(real-attrs (append all-attrs (cdr attrs) '())))
(cond ((doom-themes--colors-p real-attrs)
(dolist (cl doom--min-colors)
(push `(list '((class color) (min-colors ,cl) (background ,bg))
(list ,@(doom-themes--colorize real-attrs cl)))
defs)))
((push `(list '((background ,bg)) (list ,@real-attrs))
defs)))))))))))))
;;
;; Public functions
;;
(defun doom-themes-prepare-facelist (custom-faces)
"Return an alist of face definitions for `custom-theme-set-faces'.
Faces in EXTRA-FACES override the default faces."
(declare (pure t) (side-effect-free t))
(setq doom-themes--faces (doom-themes--apply-faces custom-faces))
(mapcar #'doom-themes--build-face doom-themes--faces))
(defun doom-themes-prepare-varlist (vars)
"Return an alist of variable definitions for `custom-theme-set-variables'.
Variables in EXTRA-VARS override the default ones."
(declare (pure t) (side-effect-free t))
(cl-loop for (var val) in (append doom-themes-common-vars vars)
collect `(list ',var ,val)))
(provide 'doom-themes-common)
;;; doom-themes-common.el ends here