|
| 1 | +;;; doom-flate-theme.el --- inspired by VSCode's flate theme -*- lexical-binding: t; no-byte-compile: t; -*- |
| 2 | +;; |
| 3 | +;; Added: November 18, 2022 |
| 4 | +;; Author: Arsenic <https://github.com/Arsenic-ATG> |
| 5 | +;; Author: Arsenic <https://github.com/Arsenic-ATG> |
| 6 | +;; Source: https://github.com/hiukky/flate |
| 7 | +;; |
| 8 | +;;; Commentary: |
| 9 | +;;; Code: |
| 10 | + |
| 11 | +(require 'doom-themes) |
| 12 | + |
| 13 | + |
| 14 | +;; |
| 15 | +;;; Variables |
| 16 | + |
| 17 | +(defgroup doom-flate-theme nil |
| 18 | + "Options for the `doom-flate` theme." |
| 19 | + :group 'doom-themes) |
| 20 | + |
| 21 | +(defcustom doom-flate-brighter-comments nil |
| 22 | + "If non-nil, comments will be highlighted in more vivid colors." |
| 23 | + :group 'doom-flate-theme |
| 24 | + :type 'boolean) |
| 25 | + |
| 26 | +(defcustom doom-flate-comment-bg doom-flate-brighter-comments |
| 27 | + "If non-nil, comments will have a subtle, darker background. |
| 28 | +Enhancing their Legibility." |
| 29 | + :group 'doom-flate-theme |
| 30 | + :type 'boolean) |
| 31 | + |
| 32 | +(defcustom doom-flate-padded-modeline doom-themes-padded-modeline |
| 33 | + "If non-nil, adds a 4px padding to the mode-line. |
| 34 | +Can be an integer to determine the exact padding." |
| 35 | + :group 'doom-flate-theme |
| 36 | + :type '(choice integer boolean)) |
| 37 | + |
| 38 | + |
| 39 | +;; |
| 40 | +;;; Theme definition |
| 41 | + |
| 42 | +(def-doom-theme doom-flate |
| 43 | + |
| 44 | + "dark vibrant theme inspired by VSCode's flate theme" |
| 45 | + |
| 46 | + ;; Name gui 256 16 |
| 47 | + ((bg '("#0d1117" nil nil )) |
| 48 | + (bg-alt '("#040408" "color-232" "brightblack" )) |
| 49 | + (base0 '("#0F1019" "color-234" "black" )) |
| 50 | + (base1 '("#121212" "color-233" "brightblack" )) |
| 51 | + (base2 '("#1E1E33" "color-236" "brightblack" )) |
| 52 | + (base3 '("#464A56" "color-240" "brightblack" )) |
| 53 | + (base4 '("#585C6C" "color-60" "brightblack" )) |
| 54 | + (base5 '("#767676" "color-243" "brightblack" )) |
| 55 | + (base6 '("#959EA5" "color-109" "white" )) |
| 56 | + (base7 '("#B2B2B2" "color-249" "white" )) |
| 57 | + (base8 '("#D0D0D0" "color-252" "brightwhite" )) |
| 58 | + (fg '("#CEDBE5" "color-152" "brightwhite" )) |
| 59 | + (fg-alt '("#E5F4FF" "color-195" "brightwhite" )) |
| 60 | + |
| 61 | + (green '("#23d18c" "#A6E22E" "green" )) |
| 62 | + (beige '("#8f8d88")) |
| 63 | + (purple '("#a29bfe")) |
| 64 | + (blue '("#5677fc" "#268bd2" "brightblue" )) |
| 65 | + (dark-blue '("#727280" "#727280" "blue" )) |
| 66 | + (red '("#e84855" "#E74C3C" "red" )) |
| 67 | + (yellow '("#ffe066" "#E6DB74" "yellow" )) |
| 68 | + (grey '("#424b54" "#525254" "brightblack")) |
| 69 | + (orange '("#f0aa85" "#FD971F" "brightred" )) |
| 70 | + (pink '("#ff5d8f")) |
| 71 | + (magenta '("#F92660" "#F92660" "magenta")) |
| 72 | + (teal green) |
| 73 | + (violet '("#9C91E4" "#9C91E4" "brightmagenta")) |
| 74 | + (quince '("#f49e4c")) |
| 75 | + (spiced '("#eab464")) |
| 76 | + (squash '("#f38375")) |
| 77 | + (blush '("#e9dbdb")) |
| 78 | + (white '("#ffffff" "#FFFFFF" "brightwhite")) |
| 79 | + (black '("#000000" "black" "black" )) |
| 80 | + (cyan '("#00cecb" "#66D9EF" "brightcyan" )) |
| 81 | + (dark-cyan '("#8FA1B3" "#8FA1B3" "cyan")) |
| 82 | + |
| 83 | + ;; face categories |
| 84 | + (highlight cyan) |
| 85 | + (vertical-bar (doom-lighten bg 0.1)) |
| 86 | + (selection base5) |
| 87 | + (builtin orange) |
| 88 | + (comments (if doom-flate-brighter-comments quince base5)) |
| 89 | + (doc-comments (if doom-flate-brighter-comments (doom-lighten quince 0.1) (doom-lighten base5 0.25))) |
| 90 | + (constants quince) |
| 91 | + (functions green) |
| 92 | + (keywords violet) |
| 93 | + (methods green) |
| 94 | + (operators red) |
| 95 | + (type pink) |
| 96 | + (strings yellow) |
| 97 | + (variables yellow) |
| 98 | + (numbers quince) |
| 99 | + (region `(,(doom-lighten (car bg-alt) 0.15) ,@(doom-lighten (cdr base1) 0.35))) |
| 100 | + (error red) |
| 101 | + (warning yellow) |
| 102 | + (success green) |
| 103 | + (vc-modified cyan) |
| 104 | + (vc-added (doom-darken green 0.15)) |
| 105 | + (vc-deleted red) |
| 106 | + |
| 107 | + ;; custom categories |
| 108 | + (hidden `(,(car bg) "black" "black")) |
| 109 | + (-modeline-pad |
| 110 | + (when doom-flate-padded-modeline |
| 111 | + (if (integerp doom-flate-padded-modeline) doom-flate-padded-modeline 4))) |
| 112 | + |
| 113 | + (modeline-fg nil) |
| 114 | + (modeline-fg-alt base4) |
| 115 | + |
| 116 | + (modeline-bg base1) |
| 117 | + (modeline-bg-inactive (doom-darken base2 0.2)) |
| 118 | + |
| 119 | + (org-quote `(,(doom-lighten (car bg) 0.05) "#1f1f1f"))) |
| 120 | + |
| 121 | + |
| 122 | + ;;;; Base theme face overrides |
| 123 | + ((cursor :background pink) |
| 124 | + ((font-lock-comment-face &override) :slant 'italic) |
| 125 | + ((font-lock-type-face &override) :slant 'italic) |
| 126 | + (lazy-highlight :background quince :foreground base0 :distant-foreground base0 :bold bold) |
| 127 | + ((line-number &override) :foreground base5 :distant-foreground nil) |
| 128 | + ((line-number-current-line &override) :foreground cyan :distant-foreground nil) |
| 129 | + (mode-line |
| 130 | + :background modeline-bg :foreground modeline-fg |
| 131 | + :box (if -modeline-pad `(:line-width ,-modeline-pad :color modeline-bg))) |
| 132 | + (mode-line-inactive |
| 133 | + :background modeline-bg-inactive :foreground modeline-fg-alt |
| 134 | + :box (if -modeline-pad `(:line-width ,-modeline-pad :color modeline-bg-inactive))) |
| 135 | + |
| 136 | + ;;;; centaur-tabs |
| 137 | + (centaur-tabs-selected-modified :inherit 'centaur-tabs-selected |
| 138 | + :background bg |
| 139 | + :foreground yellow) |
| 140 | + (centaur-tabs-unselected-modified :inherit 'centaur-tabs-unselected |
| 141 | + :background bg-alt |
| 142 | + :foreground yellow) |
| 143 | + (centaur-tabs-active-bar-face :background yellow) |
| 144 | + (centaur-tabs-modified-marker-selected :inherit 'centaur-tabs-selected :foreground fg) |
| 145 | + (centaur-tabs-modified-marker-unselected :inherit 'centaur-tabs-unselected :foreground fg) |
| 146 | + ;;;; css-mode <built-in> / scss-mode |
| 147 | + (css-proprietary-property :foreground keywords) |
| 148 | + ;;;; doom-modeline |
| 149 | + (doom-modeline-bar :background yellow) |
| 150 | + (doom-modeline-buffer-file :inherit 'mode-line-buffer-id :weight 'bold) |
| 151 | + (doom-modeline-buffer-path :inherit 'bold :foreground green) |
| 152 | + (doom-modeline-buffer-project-root :foreground green :weight 'bold) |
| 153 | + (doom-modeline-buffer-modified :inherit 'bold :foreground orange) |
| 154 | + |
| 155 | + |
| 156 | + (isearch :foreground base0 :background green) |
| 157 | + ;;;; ediff <built-in> |
| 158 | + (ediff-fine-diff-A :background (doom-blend pink bg 0.3) :weight 'bold) |
| 159 | + ;;;; evil |
| 160 | + (evil-search-highlight-persist-highlight-face :background quince) |
| 161 | + ;;;; evil-snipe |
| 162 | + (evil-snipe-first-match-face :foreground base0 :background green) |
| 163 | + (evil-snipe-matches-face :foreground green :underline t) |
| 164 | + ;;;; flycheck |
| 165 | + (flycheck-error :underline `(:style wave :color ,red) :background base3) |
| 166 | + (flycheck-warning :underline `(:style wave :color ,yellow) :background base3) |
| 167 | + (flycheck-info :underline `(:style wave :color ,green) :background base3) |
| 168 | + ;;;; helm |
| 169 | + (helm-swoop-target-line-face :foreground pink :inverse-video t) |
| 170 | + ;;;; ivy |
| 171 | + (ivy-current-match :background base3) |
| 172 | + (ivy-minibuffer-match-face-1 :background base1 :foreground base4) |
| 173 | + ;;;; markdown-mode |
| 174 | + (markdown-blockquote-face :inherit 'italic :foreground dark-blue) |
| 175 | + (markdown-list-face :foreground pink) |
| 176 | + (markdown-pre-face :foreground cyan) |
| 177 | + (markdown-link-face :inherit 'bold :foreground blue) |
| 178 | + ((markdown-code-face &override) :background (doom-lighten base2 0.045)) |
| 179 | + ;;;; neotree |
| 180 | + (neo-dir-link-face :foreground cyan) |
| 181 | + (neo-expand-btn-face :foreground pink) |
| 182 | + ;;;; outline <built-in> |
| 183 | + ((outline-1 &override) :foreground pink) |
| 184 | + ((outline-2 &override) :foreground orange) |
| 185 | + ;;;; org <built-in> |
| 186 | + (org-ellipsis :foreground orange) |
| 187 | + (org-tag :foreground yellow :bold nil) |
| 188 | + ((org-quote &override) :inherit 'italic :foreground base7 :background org-quote) |
| 189 | + (org-todo :foreground yellow :bold 'inherit) |
| 190 | + (org-list-dt :foreground yellow) |
| 191 | + ;;;; rainbow-delimiters |
| 192 | + (rainbow-delimiters-depth-1-face :foreground yellow) |
| 193 | + (rainbow-delimiters-depth-2-face :foreground orange) |
| 194 | + (rainbow-delimiters-depth-3-face :foreground green) |
| 195 | + (rainbow-delimiters-depth-4-face :foreground cyan) |
| 196 | + (rainbow-delimiters-depth-5-face :foreground magenta) |
| 197 | + (rainbow-delimiters-depth-6-face :foreground orange) |
| 198 | + (rainbow-delimiters-depth-7-face :foreground green)) |
| 199 | + |
| 200 | + ;;;; Base theme variable overrides |
| 201 | + ;; () |
| 202 | + ) |
| 203 | + |
| 204 | +;;; doom-flate-theme.el ends here |
0 commit comments