├── LICENSE ├── Screenshots ├── screenshot_helm.png └── screenshot_search.png ├── README.md └── tango-plus-theme.el /LICENSE: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Screenshots/screenshot_helm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmalsburg/tango-plus-theme/HEAD/Screenshots/screenshot_helm.png -------------------------------------------------------------------------------- /Screenshots/screenshot_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tmalsburg/tango-plus-theme/HEAD/Screenshots/screenshot_search.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![MELPA](https://melpa.org/packages/tango-plus-theme-badge.svg)](https://melpa.org/#/tango-plus-theme) 2 | 3 | Tango Plus Theme 4 | ================ 5 | 6 | Color theme for Emacs loosely based on the tango palette. Like all 7 | themes, this is a work in progress. The basis for this theme was the 8 | tango theme included in Emacs 24. Over time colors where added to 9 | increase contrast and support was added for evil, org mode, mu4e, 10 | helm, epresent, markdown, and other modes. 11 | 12 | ## Installation 13 | 14 | Put the file `tango-plus-theme.el` in a directory included in your 15 | load-path. Add the following line to your start-up file (typically 16 | init.el): 17 | 18 | (load-theme 'tango-plus t) 19 | 20 | Alternatively, you can install from 21 | [MELPA](http://melpa.milkbox.net/#/tango-plus-theme). 22 | 23 | (package-install 'tango-plus-theme) 24 | 25 | ## Screenshots 26 | 27 | Note that the colors look more vivid in the screenshots than they are 28 | in Emacs, perhaps that's due to the compression, not sure. 29 | 30 | ![A search in Evil](Screenshots/screenshot_search.png) 31 | ![A Helm session](Screenshots/screenshot_helm.png) 32 | 33 | ## Design principles 34 | 35 | The goal of the theme is to support visual perception and to 36 | facilitate comprehension of code and text. The goal is not primarily 37 | to look cool. 38 | 39 | **Principle 1:** Use colors sparingly. Give the user subtle hints and 40 | avoid disrupting the reading flow. For example, coloring LaTeX macros 41 | in red would distract from the text and is therefore considered bad. 42 | 43 | **Principle 2:** Use colors as semantic annotation: The meaning of a 44 | color should be largely self-explanatory and consistent across modes. 45 | For instance, red background is used for errors (flyspell) and stuff 46 | that was (ediff) or is going to be deleted (search & replace in evil). 47 | Green background is for matches (isearch) or inserted material 48 | (ediff). Selections are marked in yellow – think text marker. All 49 | neutral types of highlights use a light grey for the background 50 | (sentence-highlight-mode, hl-line-mode, show-paren-match). Foreground 51 | colors: Blue is used for keywords (electric sparks). Newly defined 52 | stuff like functions and variables are red (hot from the forge). 53 | String and other constants are brown like burned bricks. Comments are 54 | grey. 55 | -------------------------------------------------------------------------------- /tango-plus-theme.el: -------------------------------------------------------------------------------- 1 | ;;; tango-plus-theme.el --- A color theme based on the tango palette -*- lexical-binding: nil; -*- 2 | 3 | ;; Copyright (C) 2013 Titus von der Malsburg 4 | 5 | ;; Author: Titus von der Malsburg 6 | ;; Maintainer: Titus von der Malsburg 7 | ;; URL: https://github.com/tmalsburg/tango-plus-theme 8 | ;; Version: 2.0.0 9 | 10 | ;; This program is free software; you can redistribute it and/or modify 11 | ;; it under the terms of the GNU General Public License as published by 12 | ;; the Free Software Foundation, either version 3 of the License, or 13 | ;; (at your option) any later version. 14 | 15 | ;; This program is distributed in the hope that it will be useful, 16 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | ;; GNU General Public License for more details. 19 | 20 | ;; You should have received a copy of the GNU General Public License 21 | ;; along with this program. If not, see . 22 | 23 | ;;; Commentary: 24 | 25 | ;; Color theme for Emacs loosely based on the tango palette. The 26 | ;; basis for this theme was the tango theme part of Emacs 24 but 27 | ;; recent versions deviate considerably. Some colors where added to 28 | ;; increase contrast. Also, support was added for evil, org mode, 29 | ;; mu4e, helm, epresent, and markdown-mode among others. 30 | ;; 31 | ;; For details and screenshots visit the project page on Github: 32 | ;; 33 | ;; https://github.com/tmalsburg/tango-plus-theme 34 | ;; 35 | ;; To use this theme put the following in your startup file: 36 | ;; 37 | ;; (load-theme 'tango-plus t) 38 | ;; 39 | 40 | ;;; Install: 41 | 42 | ;; Put this file on your Emacs-Lisp load path and add the following in 43 | ;; your Emacs startup file: 44 | ;; 45 | ;; (load-theme 'tango-plus t) 46 | 47 | ;;; Code: 48 | 49 | (deftheme tango-plus 50 | "Face colors using the Tango palette (light background). 51 | Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell, 52 | Semantic, and Ansi-Color faces are included.") 53 | 54 | (defface tango-plus-quotation 55 | '((t :inherit default)) 56 | "Face for quotes." 57 | :group 'basic-faces) 58 | 59 | (defface tango-plus-deemphasized 60 | '((t :inherit default)) 61 | "Face for visually deemphasized text." 62 | :group 'basic-faces) 63 | 64 | (let ((class '((class color) (min-colors 89))) 65 | ;; Tango palette colors. 66 | (butter-1 "#fce94f") (butter-2 "#edd400") (butter-3 "#c4a000") 67 | (orange-1 "#fcaf3e") (orange-2 "#f57900") (orange-3 "#ce5c00") 68 | (choc-1 "#e9b96e") (choc-2 "#c17d11") (choc-3 "#8f5902") 69 | (cham-1 "#8ae234") (cham-2 "#73d216") (cham-3 "#4e9a06") 70 | (blue-1 "#729fcf") (blue-2 "#3465a4") (blue-3 "#204a87") 71 | (plum-1 "#ad7fa8") (plum-2 "#75507b") (plum-3 "#5c3566") 72 | (red-1 "#ef2929") (red-2 "#cc0000") (red-3 "#a40000") 73 | (alum-1 "#eeeeec") (alum-2 "#d3d7cf") (alum-3 "#babdb6") 74 | (alum-4 "#888a85") (alum-5 "#5f615c") (alum-6 "#2e3436") 75 | ;; Not in Tango palette; used for better contrast. 76 | (white "#ffffff") (black "#000000") (plum-0 "#edc4e2") 77 | (red-0 "#ffe6e6") (red-4 "#ff2d2d")(cham-0 "#e6ffc2") 78 | (cham-4 "#346604") (blue-0 "#8cc4ff") (orange-4 "#b35000")) 79 | 80 | (custom-theme-set-faces 81 | 'tango-plus 82 | ;; Base faces from which other faces inherit: 83 | 84 | ;; Faces defined in faces.el: 85 | `(default ((,class (:foreground ,black)))) 86 | ;; Skipping bold, italic, bold-italic, underline, fixed-pitch, 87 | ;; variable-pitch, shadow. 88 | `(link ((,class (:underline t 89 | :foreground ,blue-3)))) 90 | `(link-visited ((,class (:underline t 91 | :foreground ,blue-2)))) 92 | `(highlight ((,class (:background ,alum-1)))) 93 | `(region ((,class (:background ,butter-1)))) 94 | `(secondary-selection ((,class (:background ,butter-2)))) 95 | `(trailing-whitespace ((,class (:background ,red-1)))) 96 | `(escape-glyph ((,class (:foreground ,red-3)))) 97 | ;; Skipping `nobreak-space'. 98 | `(mode-line ((,class (:background ,alum-5 99 | :foreground ,alum-1)))) 100 | `(mode-line-inactive ((,class (:background ,alum-4 101 | :foreground ,alum-3)))) 102 | ;; What `mode-line-highlight' and `mode-line-emphasis' used for? 103 | `(mode-line-buffer-id ((,class (:weight bold)))) 104 | `(header-line ((,class (:background ,alum-2)))) 105 | `(vertical-border ((,class (:foreground ,alum-3)))) 106 | ;; Skipping `window-divider', `window-divider-first-pixel' and 107 | ;; `window-divider-last-pixel'. 108 | `(minibuffer-prompt ((,class (:weight bold 109 | :foreground ,blue-3)))) 110 | `(fringe ((,class (:foreground ,alum-2 111 | :background ,white)))) 112 | ;; Skipping `scroll-bar', `border'. 113 | ;; Skipping `mouse', `tool-bar', `menu'. 114 | ;; FIXME `help-argument-name' 115 | ;; Skipping `glyphless-char'. 116 | `(error ((,class (:foreground ,red-3 :weight bold)))) 117 | `(warning ((,class (:foreground ,red-3)))) 118 | `(success ((,class (:foreground ,cham-3)))) 119 | `(show-paren-match ((,class (:inherit highlight)))) 120 | `(show-paren-mismatch ((,class (:inherit trailing-whitespace)))) 121 | `(sh-quoted-exec ((,class (:foreground, black)))) 122 | `(sh-heredoc ((,class (:foreground, black)))) 123 | 124 | ;; Tango-plus faces: 125 | `(tango-plus-deemphasized ((,class (:foreground ,alum-4)))) 126 | `(tango-plus-quotation ((,class (:foreground ,alum-5 127 | :slant italic)))) 128 | 129 | 130 | ;; Bookmark.el: 131 | `(bookmark-face ((,class (:background ,cham-0)))) 132 | ;; Faces in isearch.el: 133 | `(isearch ((,class (:foreground ,white 134 | :background ,cham-1)))) 135 | ;; FIXME isearch-fail 136 | `(lazy-highlight ((,class (:background ,cham-0)))) 137 | 138 | ;; Font lock faces. Other faces are defined in based on them to 139 | ;; the extend possible. 140 | `(font-lock-comment-face ((,class (:inherit tango-plus-deemphasized 141 | :slant italic)))) 142 | `(font-lock-comment-delimiter-face 143 | ((,class (:inherit tango-plus-deemphasized 144 | :slant italic)))) 145 | `(font-lock-string-face ((,class (:foreground ,choc-3 146 | :slant italic)))) 147 | `(font-lock-doc-face ((,class (:inherit tango-plus-deemphasized)))) 148 | `(font-lock-keyword-face ((,class (:foreground ,blue-3 149 | :weight light)))) 150 | `(font-lock-builtin-face ((,class (:foreground ,plum-2)))) 151 | `(font-lock-function-name-face ((,class (:foreground ,red-3)))) 152 | `(font-lock-variable-name-face ((,class (:foreground ,red-3)))) 153 | `(font-lock-type-face ((,class (:foreground ,red-3)))) 154 | `(font-lock-constant-face ((,class (:foreground ,choc-3 155 | :slant italic)))) 156 | `(font-lock-warning-face ((,class (:foreground ,red-3)))) 157 | `(font-lock-negation-char-face ((,class (:foreground ,red-3)))) 158 | `(font-lock-preprocessor-face ((,class (:inherit tango-plus-deemphasized)))) 159 | 160 | ;; Application-specific face which inherit from the base faces if possible: 161 | 162 | ;; Highlighting faces 163 | `(sentence-highlight-face ((,class (:inherit highlight)))) 164 | `(evil-ex-substitute-matches ((,class (:background ,red-0 165 | :strike-through ,red-1)))) 166 | `(evil-ex-substitute-replacement ((,class (:inherit lazy-highlight)))) 167 | `(evil-visual-mark-face ((,class (:inherit default :foreground ,white :background ,blue-2)))) 168 | 169 | ;; Gnus faces 170 | `(gnus-group-news-1 ((,class (:weight bold 171 | :foreground ,plum-3)))) 172 | `(gnus-group-news-1-low ((,class (:foreground ,plum-3)))) 173 | `(gnus-group-news-2 ((,class (:weight bold 174 | :foreground ,blue-3)))) 175 | `(gnus-group-news-2-low ((,class (:foreground ,blue-3)))) 176 | `(gnus-group-news-3 ((,class (:weight bold :foreground ,red-3)))) 177 | `(gnus-group-news-3-low ((,class (:foreground ,red-3)))) 178 | `(gnus-group-news-4 ((,class (:weight bold 179 | :foreground ,"#7a4c02")))) 180 | `(gnus-group-news-4-low ((,class (:foreground ,"#7a4c02")))) 181 | `(gnus-group-news-5 ((,class (:weight bold 182 | :foreground ,orange-3)))) 183 | `(gnus-group-news-5-low ((,class (:foreground ,orange-3)))) 184 | `(gnus-group-news-low ((,class (:foreground ,alum-4)))) 185 | `(gnus-group-mail-1 ((,class (:weight bold 186 | :foreground ,plum-3)))) 187 | `(gnus-group-mail-1-low ((,class (:foreground ,plum-3)))) 188 | `(gnus-group-mail-2 ((,class (:weight bold 189 | :foreground ,blue-3)))) 190 | `(gnus-group-mail-2-low ((,class (:foreground ,blue-3)))) 191 | `(gnus-group-mail-3 ((,class (:weight bold 192 | :foreground ,cham-3)))) 193 | `(gnus-group-mail-3-low ((,class (:foreground ,cham-3)))) 194 | `(gnus-group-mail-low ((,class (:foreground ,alum-4)))) 195 | `(gnus-header-content ((,class (:inherit default)))) 196 | `(gnus-header-from ((,class (:inherit default :weight bold)))) 197 | `(gnus-header-subject ((,class (:inherit font-lock-keyword-face :weight bold)))) 198 | `(gnus-header-name ((,class (:inherit font-lock-builtin-face)))) 199 | `(gnus-header-newsgroups ((,class (:foreground ,alum-4)))) 200 | `(gnus-cite-attribution ((,class (:inherit tango-plus-deemphasized :slant italic)))) 201 | `(gnus-cite-1 ((,class (:inherit tango-plus-deemphasized)))) 202 | `(gnus-cite-2 ((,class (:inherit tango-plus-deemphasized)))) 203 | `(gnus-cite-3 ((,class (:inherit tango-plus-deemphasized)))) 204 | `(gnus-cite-4 ((,class (:inherit tango-plus-deemphasized)))) 205 | `(gnus-cite-5 ((,class (:inherit tango-plus-deemphasized)))) 206 | `(gnus-cite-6 ((,class (:inherit tango-plus-deemphasized)))) 207 | `(gnus-cite-7 ((,class (:inherit tango-plus-deemphasized)))) 208 | `(gnus-cite-8 ((,class (:inherit tango-plus-deemphasized)))) 209 | `(gnus-cite-9 ((,class (:inherit tango-plus-deemphasized)))) 210 | `(gnus-cite-10 ((,class (:inherit tango-plus-deemphasized)))) 211 | `(gnus-cite-11 ((,class (:inherit tango-plus-deemphasized)))) 212 | `(gnus-signature ((,class (:inherit tango-plus-deemphasized :slant italic)))) 213 | 214 | ;; Message faces 215 | `(message-header-name ((,class (:inherit font-lock-builtin-face)))) 216 | `(message-header-other ((,class (:inherit default)))) 217 | `(message-header-xheader ((,class (:inherit message-header-name)))) 218 | `(message-header-newsgroups ((,class (:inherit message-header-name)))) 219 | `(message-header-to ((,class (:inherit default :weight bold)))) 220 | `(message-header-cc ((,class (:inherit default)))) 221 | `(message-mml ((,class (:inherit tango-plus-deemphasized)))) 222 | `(message-header-subject ((,class (:inherit default)))) 223 | `(message-cited-text ((,class (:inherit tango-plus-deemphasized)))) 224 | `(message-separator ((,class (:inherit tango-plus-deemphasized)))) 225 | `(message-cited-text-1 ((,class (:inherit font-lock-comment-face)))) 226 | `(message-cited-text-2 ((,class (:inherit font-lock-comment-face)))) 227 | `(message-cited-text-3 ((,class (:inherit font-lock-comment-face)))) 228 | `(message-cited-text-4 ((,class (:inherit font-lock-comment-face)))) 229 | 230 | ;; SMerge 231 | `(smerge-refined-change ((,class (:background ,plum-1)))) 232 | 233 | ;; Ediff 234 | `(ediff-current-diff-A ((,class (:background ,red-0)))) 235 | `(ediff-fine-diff-A ((,class (:background ,red-1)))) 236 | `(ediff-current-diff-B ((,class (:background ,cham-0)))) 237 | `(ediff-fine-diff-B ((,class (:background ,cham-1)))) 238 | `(ediff-even-diff-A ((,class (:inherit highlight)))) 239 | `(ediff-even-diff-B ((,class (:inherit highlight)))) 240 | `(ediff-odd-diff-A ((,class (:inherit highlight)))) 241 | `(ediff-odd-diff-B ((,class (:inherit highlight)))) 242 | 243 | ;; Flyspell 244 | `(flyspell-incorrect ((,class (:underline (:color ,red-1 :style wave) 245 | :background ,red-0)))) 246 | `(flyspell-duplicate ((,class (:inherit flyspell-incorrect)))) 247 | ;; Wcheck 248 | `(wcheck-default-face ((,class (:inherit flyspell-incorrect)))) 249 | 250 | ;; Outline: 251 | `(outline-1 ((,class (:inherit font-lock-keyword-face)))) 252 | `(outline-2 ((,class (:inherit font-lock-keyword-face)))) 253 | `(outline-3 ((,class (:inherit font-lock-keyword-face)))) 254 | `(outline-4 ((,class (:inherit font-lock-keyword-face)))) 255 | `(outline-5 ((,class (:inherit font-lock-keyword-face)))) 256 | `(outline-6 ((,class (:inherit font-lock-keyword-face)))) 257 | `(outline-7 ((,class (:inherit font-lock-keyword-face)))) 258 | `(outline-8 ((,class (:inherit font-lock-keyword-face)))) 259 | 260 | ;; Org mode: 261 | `(org-quote ((,class (:inherit tango-plus-quotation)))) 262 | `(org-verbatim ((,class (:inherit tango-plus-quotation)))) 263 | `(org-level-1 ((,class (:inherit font-lock-keyword-face 264 | :height 1.3 :weight bold)))) 265 | `(org-level-2 ((,class (:inherit font-lock-keyword-face :weight bold)))) 266 | `(org-level-3 ((,class (:inherit font-lock-keyword-face)))) 267 | `(org-level-4 ((,class (:inherit font-lock-keyword-face)))) 268 | `(org-level-5 ((,class (:inherit font-lock-keyword-face)))) 269 | `(org-level-6 ((,class (:inherit font-lock-keyword-face)))) 270 | `(org-level-7 ((,class (:inherit font-lock-keyword-face)))) 271 | `(org-level-8 ((,class (:inherit font-lock-keyword-face)))) 272 | `(org-document-title ((,class (:inherit font-lock-keyword-face :height 1.5 :weight bold)))) 273 | `(org-document-info ((,class (:inherit font-lock-keyword-face)))) 274 | `(org-document-info-keyword ((,class (:inherit font-lock-builtin-face)))) 275 | `(org-meta-line ((,class (:inherit font-lock-builtin-face)))) 276 | `(org-todo ((,class (:foreground ,red-2 :weight bold)))) 277 | `(org-done ((,class (:foreground ,cham-3)))) 278 | `(org-headline-done ((,class (:inherit font-lock-keyword-face)))) 279 | `(org-table ((,class (:inherit font-lock-keyword-face)))) 280 | `(org-drawer ((,class (:inherit font-lock-keyword-face)))) 281 | `(org-special-keyword ((,class (:inherit font-lock-keyword-face)))) 282 | `(org-date ((,class (:inherit font-lock-builtin-face)))) 283 | `(org-footnote ((,class (:foreground ,alum-5)))) 284 | `(org-block-begin-line ((,class (:foreground ,alum-4 :background ,alum-1)))) 285 | `(org-block ((,class (:background ,alum-1)))) 286 | `(org-block-end-line ((,class (:foreground ,alum-4 :background ,alum-1)))) 287 | `(org-hide ((,class (:foreground ,white)))) 288 | `(org-agenda-date ((,class (:foreground ,black)))) 289 | `(org-agenda-date-today ((,class (:inherit org-agenda-date)))) 290 | `(org-agenda-date-weekend ((,class (:inherit org-agenda-date :foreground ,alum-6 :underline t)))) 291 | `(org-sexp-date ((,class (:inherit org-date)))) 292 | `(org-time-grid ((,class (:foreground ,alum-4)))) 293 | `(org-dispatcher-highlight ((,class (:inherit lazy-highlight)))) 294 | `(org-agenda-structure ((,class (:inherit helm-source-header)))) 295 | 296 | ;; Moinmoin 297 | `(moinmoin-h1 ((,class (:inherit org-level-1)))) 298 | `(moinmoin-h2 ((,class (:inherit org-level-2)))) 299 | `(moinmoin-h3 ((,class (:inherit org-level-3)))) 300 | `(moinmoin-h4 ((,class (:inherit org-level-4)))) 301 | `(moinmoin-h5 ((,class (:inherit org-level-5)))) 302 | `(moinmoin-ss ((,class (:inherit org-level-5)))) 303 | `(moinmoin-smiley ((,class (:inherit font-lock-keyword-face)))) 304 | `(moinmoin-macro-name ((,class (:inherit font-lock-keyword-face)))) 305 | `(moinmoin-wiki-link ((,class (:inherit font-lock-keyword-face)))) 306 | `(moinmoin-pi ((,class (:inherit font-lock-comment-face)))) 307 | `(moinmoin-comment ((,class (:inherit font-lock-comment-face)))) 308 | `(moinmoin-item ((,class (:inherit default)))) 309 | `(moinmoin-url ((,class (:inherit org-link)))) 310 | `(moinmoin-url-title ((,class (:inherit org-link)))) 311 | `(moinmoin-tt ((,class (:inherit org-code)))) 312 | `(moinmoin-rule ((,class (:inherit font-lock-keyword-face)))) 313 | `(moinmoin-blockquote-indent ((,class (:inherit default)))) 314 | 315 | ;; Mu4e 316 | `(mu4e-title-face ((,class (:weight bold)))) 317 | `(mu4e-unread-face ((,class (:foreground ,blue-3 318 | :weight bold)))) 319 | `(mu4e-moved-face ((,class (:inherit tango-plus-deemphasized)))) 320 | `(mu4e-thrashed-face ((,class (:inherit tango-plus-deemphasized 321 | :strike-through t)))) 322 | `(mu4e-draft-face ((,class (:inherit font-lock-string-face)))) 323 | `(mu4e-flagged-face ((,class (:foreground ,red-3 :weight bold)))) 324 | `(mu4e-replied-face ((,class (:inherit tango-plus-deemphasized)))) 325 | `(mu4e-forward-face ((,class (:inherit tango-plus-deemphasized)))) 326 | `(mu4e-header-face ((,class (:inherit default)))) 327 | `(mu4e-header-title-face ((,class (:inherit default)))) 328 | `(mu4e-header-highlight-face ((,class (:inherit highlight)))) 329 | `(mu4e-header-marks-face ((,class (:inherit tango-plus-deemphasized)))) 330 | `(mu4e-header-key-face ((,class (:inherit font-lock-builtin-face)))) 331 | `(mu4e-header-value-face ((,class (:inherit default)))) 332 | `(mu4e-special-header-value-face ((,class (:inherit default)))) 333 | `(mu4e-contact-face ((,class (:inherit default :weight bold)))) 334 | `(mu4e-highlight-face ((,class (:inherit default :bold t)))) 335 | `(mu4e-modeline-face ((,class ()))) 336 | `(mu4e-compose-separator-face ((,class (:inherit tango-plus-deemphasized)))) 337 | `(mu4e-cited-1-face ((,class (:inherit font-lock-comment-face)))) 338 | `(mu4e-cited-2-face ((,class (:inherit font-lock-comment-face)))) 339 | `(mu4e-cited-3-face ((,class (:inherit font-lock-comment-face)))) 340 | `(mu4e-cited-4-face ((,class (:inherit font-lock-comment-face)))) 341 | `(mu4e-cited-5-face ((,class (:inherit font-lock-comment-face)))) 342 | `(mu4e-cited-6-face ((,class (:inherit font-lock-comment-face)))) 343 | `(mu4e-cited-7-face ((,class (:inherit font-lock-comment-face)))) 344 | 345 | ;; Magit et al: 346 | `(diff-context ((,class (:inherit highlight)))) 347 | `(diff-refine-removed ((,class (:inherit magit-diff-removed :underline t)))) 348 | `(diff-refine-added ((,class (:inherit magit-diff-added :underline t)))) 349 | `(magit-diff-hunk-header ((,class (:inherit header-line)))) 350 | `(magit-diff-file-header ((,class (:inherit header-line)))) 351 | `(git-commit-summary-face ((,class (:inherit default)))) 352 | `(git-gutter:added ((,class (:foreground ,cham-3)))) 353 | `(git-gutter:deleted ((,class (:foreground ,red-3)))) 354 | `(git-gutter:modified ((,class (:foreground ,plum-2)))) 355 | 356 | ;; Helm 357 | `(helm-source-header ((,class (:inherit default :weight bold 358 | :height 1.3)))) 359 | `(helm-selection ((,class (:inherit highlight)))) 360 | `(helm-match ((,class (:inherit lazy-highlight)))) 361 | `(helm-match-item ((,class (:inherit lazy-highlight)))) 362 | `(helm-grep-match ((,class (:inherit lazy-highlight)))) 363 | `(helm-grep-file ((,class (:inherit default)))) 364 | `(helm-grep-lineno ((,class (:inherit tango-plus-deemphasized)))) 365 | `(helm-grep-cmd-line ((,class (:inherit warning)))) 366 | `(helm-action ((,class ()))) 367 | `(helm-candidate-number ((,class (:inherit mode-line)))) 368 | `(helm-swoop-target-word-face ((,class (:inherit lazy-highlight)))) 369 | `(helm-swoop-target-line-face ((,class (:inherit highlight)))) 370 | `(helm-swoop-target-line-block-face 371 | ((,class (:inherit highlight)))) 372 | 373 | ;; Markdown mode 374 | `(markdown-italic-face ((,class (:slant italic)))) 375 | `(markdown-bold-face ((,class (:weight bold)))) 376 | `(markdown-header-rule-face ((,class (:inherit font-lock-keyword-face :weight bold)))) 377 | `(markdown-header-delimiter-face ((,class (:inherit font-lock-keyword-face)))) 378 | `(markdown-header-face ((,class (:inherit font-lock-keyword-face)))) 379 | `(markdown-header-face-1 ((,class (:inherit markdown-header-face 380 | :weight bold)))) 381 | `(markdown-header-face ((,class (:inherit font-lock-keyword-face)))) 382 | `(markdown-inline-code-face ((,class (:slant italic)))) 383 | `(markdown-list-face ((,class (:weight bold)))) 384 | `(markdown-blockquote-face ((,class (:inherit tango-plus-quotation)))) 385 | `(markdown-pre-face ((,class (:inherit tango-plus-quotation)))) 386 | `(markdown-language-keyword-face ((,class (:inherit font-lock-keyword-face)))) 387 | `(markdown-link-face ((,class (:inherit font-lock-keyword-face)))) 388 | `(markdown-missing-link-face ((,class (:inherit font-lock-keyword-face)))) 389 | `(markdown-reference-face ((,class (:inherit font-lock-keyword-face)))) 390 | `(markdown-footnote-face ((,class (:inherit font-lock-keyword-face)))) 391 | `(markdown-url-face ((,class (:inherit font-lock-keyword-face)))) 392 | `(markdown-link-title-face ((,class (:inherit font-lock-keyword-face)))) 393 | `(markdown-link-break-face ((,class (:inherit font-lock-keyword-face)))) 394 | `(markdown-comment-face ((,class (:inherit tango-plus-deemphasized)))) 395 | `(markdown-math-face ((,class (:inherit font-lock-keyword-face)))) 396 | 397 | ;; Semantic faces 398 | ;; FIXME This section. When and where are these faces used? 399 | `(semantic-decoration-on-includes 400 | ((,class (:underline ,cham-4)))) 401 | `(semantic-decoration-on-private-members-face 402 | ((,class (:background ,alum-2)))) 403 | `(semantic-decoration-on-protected-members-face 404 | ((,class (:background ,alum-2)))) 405 | `(semantic-decoration-on-unknown-includes 406 | ((,class (:background ,choc-3)))) 407 | `(semantic-decoration-on-unparsed-includes 408 | ((,class (:underline ,orange-3)))) 409 | `(semantic-tag-boundary-face ((,class (:overline ,blue-1)))) 410 | `(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))) 411 | 412 | ;; Epresent: 413 | `(epresent-title-face ((,class (:weight bold :height 360)))) 414 | `(epresent-heading-face ((,class (:weight bold :height 270 415 | :underline nil )))) 416 | `(epresent-subheading-face ((,class (:weight bold :height 240)))) 417 | `(epresent-author-face ((,class (:height 1.6)))) 418 | `(epresent-bullet-face ((,class (:weight bold)))) 419 | `(epresent-hidden-face ((,class (:invisible t)))) 420 | 421 | ;; writegood-mode: 422 | `(writegood-weasels-face ((,class (:underline (:color ,red-1 :style wave))))) 423 | `(writegood-passive-voice-face ((,class (:inherit writegood-weasels-face)))) 424 | `(writegood-duplicates-face ((,class (:inherit flyspell-duplicate)))) 425 | 426 | ;; anzu-mode: 427 | `(anzu-mode-line ((,class (:inherit mode-line)))) 428 | 429 | ;; doom-modeline 430 | `(doom-modeline-info ((,class (:weight bold 431 | :foreground ,cham-2)))) 432 | `(doom-modeline-warning ((,class (:weight bold 433 | :foreground ,butter-1)))) 434 | `(doom-modeline-urgent ((,class (:weight bold 435 | :foreground ,red-4)))) 436 | `(doom-modeline-project-dir ((,class (:weight bold 437 | :foreground ,butter-3)))) 438 | `(doom-modeline-evil-normal-state ((,class (:weight bold 439 | :foreground ,cham-1)))) 440 | `(doom-modeline-evil-insert-state ((,class (:weight bold 441 | :foreground ,blue-0)))) 442 | `(doom-modeline-evil-visual-state ((,class (:weight bold 443 | :foreground ,butter-1)))) 444 | `(doom-modeline-buffer-modified ((,class (:inherit doom-modeline-urgent)))) 445 | 446 | ;; dired 447 | `(diredp-display-msg ((,class (:foreground ,blue-0)))) 448 | `(diredp-compressed-file-suffix ((,class (:foreground ,butter-1)))) 449 | `(diredp-date-time ((,class (:foreground ,choc-3)))) 450 | `(diredp-deletion ((,class (:foreground ,butter-1)))) 451 | `(diredp-deletion-file-name ((,class (:foreground ,red-1)))) 452 | `(diredp-dir-heading ((,class (:foreground ,blue-3 :background ,alum-2)))) 453 | `(diredp-dir-priv ((,class (:foreground ,blue-3)))) 454 | `(diredp-exec-priv ((,class (:foreground ,red-1)))) 455 | `(diredp-executable-tag ((,class (:foreground ,cham-1)))) 456 | `(diredp-file-name ((,class (:foreground ,black)))) 457 | `(diredp-file-suffix ((,class (:foreground ,red-2)))) 458 | `(diredp-flag-mark ((,class (:foreground ,butter-1)))) 459 | `(diredp-flag-mark-line ((,class (:foreground ,orange-1)))) 460 | `(diredp-ignored-file-name ((,class (:foreground ,alum-6)))) 461 | `(diredp-link-priv ((,class (:foreground ,butter-1)))) 462 | `(diredp-mode-line-flagged ((,class (:foreground ,butter-1)))) 463 | `(diredp-mode-line-marked ((,class (:foreground ,orange-1)))) 464 | `(diredp-no-priv ((,class (:foreground ,white)))) 465 | `(diredp-number ((,class (:foreground ,red-0)))) 466 | `(diredp-other-priv ((,class (:foreground ,butter-1)))) 467 | `(diredp-rare-priv ((,class (:foreground ,red-3)))) 468 | `(diredp-read-priv ((,class (:foreground ,butter-3)))) 469 | `(diredp-symlink ((,class (:foreground ,butter-1)))) 470 | `(diredp-write-priv ((,class (:foreground ,plum-1)))) 471 | 472 | ;; diredfl 473 | `(diredfl-compressed-file-name ((,class (:foreground ,alum-1 :weight bold)))) 474 | `(diredfl-compressed-file-suffix ((,class (:inherit diredfl-compressed-file-name)))) 475 | `(diredfl-dir-name ((,class (:foreground ,alum-6 :weight bold)))) 476 | `(diredfl-date-time ((,class (:foreground ,choc-3)))) 477 | `(diredfl-deletion ((,class (:foreground ,butter-1)))) 478 | `(diredfl-deletion-file-name ((,class (:foreground ,red-3)))) 479 | `(diredfl-dir-heading ((,class (:foreground ,black :background ,alum-2)))) 480 | `(diredfl-dir-priv ((,class (:foreground ,black :weight bold)))) 481 | `(diredfl-exec-priv ((,class (:foreground ,blue-3)))) 482 | `(diredfl-executable-tag ((,class (:foreground ,blue-3)))) 483 | `(diredfl-file-name ((,class (:foreground ,black)))) 484 | `(diredfl-file-suffix ((,class (:inherit 'diredfl-file-name)))) 485 | `(diredfl-flag-mark ((,class (:foreground ,butter-1)))) 486 | `(diredfl-flag-mark-line ((,class (:foreground ,orange-1)))) 487 | ;;`(diredfl-ignored-file-name ((,class (:foreground ,alum-2)))) 488 | `(diredfl-link-priv ((,class (:foreground ,butter-1)))) 489 | `(diredfl-no-priv ((,class (:foreground ,white)))) 490 | `(diredfl-number ((,class (:foreground ,red-3)))) ;;n files in folder and size 491 | `(diredfl-other-priv ((,class (:foreground ,butter-1)))) 492 | `(diredfl-rare-priv ((,class (:foreground ,blue-3)))) 493 | `(diredfl-read-priv ((,class (:foreground ,black)))) 494 | `(diredfl-symlink ((,class (:foreground ,plum-3)))) 495 | `(diredfl-write-priv ((,class (:foreground ,black)))) 496 | 497 | ;; dired-async 498 | `(dired-async-failures ((,class (:foreground ,red-3 :weight bold)))) 499 | `(dired-async-message ((,class (:foreground ,butter-1 :weight bold)))) 500 | `(dired-async-mode-message ((,class (:foreground ,butter-1)))) 501 | 502 | ;;eshell 503 | `(eshell-prompt ((,class (:foreground ,blue-3)))) 504 | `(eshell-ls-directory ((,class (:weight bold :foreground ,black)))) 505 | `(eshell-ls-symlink ((,class (:weight bold :foreground ,butter-3)))) 506 | `(eshell-ls-executable ((,class (:foreground ,choc-3)))) 507 | `(eshell-ls-special ((,class (:foreground ,plum-3)))) 508 | 509 | ;;vterm 510 | `(vterm-color-black ((,class (:foreground ,black)))) 511 | `(vterm-color-red ((,class (:foreground ,red-3)))) 512 | `(vterm-color-blue ((,class (:foreground ,blue-3)))) 513 | `(vterm-color-green ((,class (:foreground ,cham-3)))) 514 | `(vterm-color-yellow ((,class (:foreground ,butter-3)))) 515 | `(vterm-color-magenta ((,class (:foreground ,plum-3)))) 516 | `(vterm-color-cyan ((,class (:foreground ,blue-1)))) 517 | ) 518 | 519 | (custom-theme-set-variables 520 | 'tango-plus 521 | `(ansi-color-names-vector [,alum-6 ,red-3 ,cham-3 ,butter-3 522 | ,blue-3 ,plum-3 ,blue-1 ,alum-1]))) 523 | 524 | ;;;###autoload 525 | (when (and (boundp 'custom-theme-load-path) load-file-name) 526 | (add-to-list 'custom-theme-load-path 527 | (file-name-as-directory (file-name-directory load-file-name)))) 528 | 529 | (provide-theme 'tango-plus) 530 | 531 | ;; Local Variables: 532 | ;; no-byte-compile: t 533 | ;; End: 534 | 535 | ;;; tango-plus-theme.el ends here 536 | --------------------------------------------------------------------------------