1 ;;; tango-dark-theme.el --- Tango-based custom theme for faces
3 ;; Copyright (C) 2010-2018 Free Software Foundation, Inc.
5 ;; Authors: Chong Yidong <cyd@stupidchicken>
6 ;; Jan Moringen <jan.moringen@uni-bielefeld.de>
8 ;; This file is part of GNU Emacs.
10 ;; GNU Emacs 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.
15 ;; GNU Emacs 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.
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
25 ;; The colors in this theme come from the Tango palette, which is in
26 ;; the public domain: http://tango.freedesktop.org/
31 "Face colors using the Tango palette (dark background).
32 Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
33 Semantic, and Ansi-Color faces are included.")
35 (let ((class '((class color
) (min-colors 89)))
36 ;; Tango palette colors.
37 (butter-1 "#fce94f") (butter-2 "#edd400") (butter-3 "#c4a000")
38 (orange-1 "#fcaf3e") (orange-2 "#f57900") (orange-3 "#ce5c00")
39 (choc-1 "#e9b96e") (choc-2 "#c17d11") (choc-3 "#8f5902")
40 (cham-1 "#8ae234") (cham-2 "#73d216") (cham-3 "#4e9a06")
41 (blue-1 "#729fcf") (blue-2 "#3465a4") (blue-3 "#204a87")
42 (plum-1 "#e090d7") (plum-2 "#75507b") (plum-3 "#5c3566")
43 (red-1 "#ef2929") (red-2 "#cc0000") (red-3 "#a40000")
44 (alum-1 "#eeeeec") (alum-2 "#d3d7cf") (alum-3 "#babdb6")
45 (alum-4 "#888a85") (alum-5 "#555753") (alum-6 "#2e3436")
46 ;; Not in Tango palette; used for better contrast.
47 (cham-0 "#b4fa70") (blue-0 "#8cc4ff") (plum-0 "#e9b2e3")
48 (red-0 "#ff4b4b") (alum-5.5
"#41423f") (alum-7 "#212526"))
50 (custom-theme-set-faces
52 ;; Ensure sufficient contrast on low-color terminals.
53 `(default ((((class color
) (min-colors 4096))
54 (:foreground
,alum-1
:background
,alum-6
))
55 (((class color
) (min-colors 256))
56 (:foreground
,alum-1
:background
"#222"))
58 (:foreground
,alum-1
:background
"black"))))
59 `(cursor ((,class
(:background
,butter-1
))))
61 `(fringe ((,class
(:background
,alum-7
))))
62 `(highlight ((,class
(:foreground
,alum-6
:background
,butter-2
))))
63 `(region ((,class
(:background
,alum-5
))))
64 `(secondary-selection ((,class
(:background
,blue-3
))))
65 `(isearch ((,class
(:foreground
,alum-1
:background
,orange-3
))))
66 `(lazy-highlight ((,class
(:background
,choc-3
))))
67 `(trailing-whitespace ((,class
(:background
,red-3
))))
70 (:box
(:line-width -
1 :style released-button
)
71 :background
,alum-2
:foreground
,alum-6
))))
72 `(mode-line-inactive ((,class
73 (:box
(:line-width -
1 :style released-button
)
74 :background
,alum-5
:foreground
,alum-1
))))
75 `(compilation-mode-line-fail ((,class
(:foreground
,red-3
))))
76 `(compilation-mode-line-run ((,class
(:foreground
,orange-3
))))
77 `(compilation-mode-line-exit ((,class
(:foreground
,cham-3
))))
78 ;; Escape and prompt faces
79 `(minibuffer-prompt ((,class
(:foreground
,cham-0
))))
80 `(escape-glyph ((,class
(:foreground
,butter-3
))))
81 `(homoglyph ((,class
(:foreground
,butter-3
))))
82 `(error ((,class
(:foreground
,red-0
))))
83 `(warning ((,class
(:foreground
,orange-1
))))
84 `(success ((,class
(:foreground
,cham-1
))))
86 `(font-lock-builtin-face ((,class
(:foreground
,plum-1
))))
87 `(font-lock-comment-face ((,class
(:foreground
,cham-2
))))
88 `(font-lock-constant-face ((,class
(:foreground
,plum-0
))))
89 `(font-lock-function-name-face ((,class
(:foreground
,butter-1
))))
90 `(font-lock-keyword-face ((,class
(:foreground
,cham-0
))))
91 `(font-lock-string-face ((,class
(:foreground
,choc-1
))))
92 `(font-lock-type-face ((,class
(:foreground
,blue-0
))))
93 `(font-lock-variable-name-face ((,class
(:foreground
,orange-1
))))
94 ;; Button and link faces
95 `(link ((,class
(:underline t
:foreground
,blue-1
))))
96 `(link-visited ((,class
(:underline t
:foreground
,blue-2
))))
98 `(gnus-group-news-1 ((,class
(:foreground
,plum-1
))))
99 `(gnus-group-news-1-low ((,class
(:foreground
,plum-2
))))
100 `(gnus-group-news-2 ((,class
(:foreground
,blue-1
))))
101 `(gnus-group-news-2-low ((,class
(:foreground
,blue-2
))))
102 `(gnus-group-news-3 ((,class
(:foreground
,cham-1
))))
103 `(gnus-group-news-3-low ((,class
(:foreground
,cham-2
))))
104 `(gnus-group-news-4 ((,class
(:foreground
,plum-0
))))
105 `(gnus-group-news-4-low ((,class
(:foreground
,choc-2
))))
106 `(gnus-group-news-5 ((,class
(:foreground
,orange-1
))))
107 `(gnus-group-news-5-low ((,class
(:foreground
,orange-2
))))
108 `(gnus-group-news-low ((,class
(:foreground
,butter-2
))))
109 `(gnus-group-mail-1 ((,class
(:foreground
,plum-1
))))
110 `(gnus-group-mail-1-low ((,class
(:foreground
,plum-2
))))
111 `(gnus-group-mail-2 ((,class
(:foreground
,blue-1
))))
112 `(gnus-group-mail-2-low ((,class
(:foreground
,blue-2
))))
113 `(gnus-group-mail-3 ((,class
(:foreground
,cham-1
))))
114 `(gnus-group-mail-3-low ((,class
(:foreground
,cham-2
))))
115 `(gnus-group-mail-low ((,class
(:foreground
,butter-2
))))
116 `(gnus-header-content ((,class
(:weight normal
:foreground
,butter-3
))))
117 `(gnus-header-from ((,class
(:foreground
,butter-2
))))
118 `(gnus-header-subject ((,class
(:foreground
,cham-1
))))
119 `(gnus-header-name ((,class
(:foreground
,blue-1
))))
120 `(gnus-header-newsgroups ((,class
(:foreground
,choc-2
))))
122 `(message-header-name ((,class
(:foreground
,blue-1
))))
123 `(message-header-cc ((,class
(:foreground
,butter-3
))))
124 `(message-header-other ((,class
(:foreground
,choc-2
))))
125 `(message-header-subject ((,class
(:foreground
,cham-1
))))
126 `(message-header-to ((,class
(:foreground
,butter-2
))))
127 `(message-cited-text ((,class
(:foreground
,cham-1
))))
128 `(message-separator ((,class
(:foreground
,plum-1
))))
130 `(smerge-refined-change ((,class
(:background
,blue-3
))))
132 `(ediff-current-diff-A ((,class
(:background
,alum-5
))))
133 `(ediff-fine-diff-A ((,class
(:background
,blue-3
))))
134 `(ediff-even-diff-A ((,class
(:background
,alum-5.5
))))
135 `(ediff-odd-diff-A ((,class
(:background
,alum-5.5
))))
136 `(ediff-current-diff-B ((,class
(:background
,alum-5
))))
137 `(ediff-fine-diff-B ((,class
(:background
,choc-3
))))
138 `(ediff-even-diff-B ((,class
(:background
,alum-5.5
))))
139 `(ediff-odd-diff-B ((,class
(:background
,alum-5.5
))))
141 `(flyspell-duplicate ((,class
(:underline
,orange-1
))))
142 `(flyspell-incorrect ((,class
(:underline
,red-1
))))
144 `(realgud-overlay-arrow1 ((,class
(:foreground
"green"))))
145 `(realgud-overlay-arrow2 ((,class
(:foreground
,orange-1
))))
146 `(realgud-overlay-arrow3 ((,class
(:foreground
,plum-0
))))
147 `(realgud-bp-disabled-face ((,class
(:foreground
,blue-3
))))
148 `(realgud-bp-line-enabled-face ((,class
(:underline
"red"))))
149 `(realgud-bp-line-disabled-face ((,class
(:underline
,blue-3
))))
150 `(realgud-file-name ((,class
:foreground
,blue-1
)))
151 `(realgud-line-number ((,class
:foreground
,plum-0
)))
152 `(realgud-backtrace-number ((,class
:foreground
,plum-0
:weight bold
)))
154 `(semantic-decoration-on-includes ((,class
(:underline
,alum-4
))))
155 `(semantic-decoration-on-private-members-face
156 ((,class
(:background
,plum-3
))))
157 `(semantic-decoration-on-protected-members-face
158 ((,class
(:background
,choc-3
))))
159 `(semantic-decoration-on-unknown-includes
160 ((,class
(:background
,red-3
))))
161 `(semantic-decoration-on-unparsed-includes
162 ((,class
(:background
,alum-5.5
))))
163 `(semantic-tag-boundary-face ((,class
(:overline
,blue-1
))))
164 `(semantic-unmatched-syntax-face ((,class
(:underline
,red-1
)))))
166 (custom-theme-set-variables
168 `(ansi-color-names-vector [,alum-7
,red-0
,cham-0
,butter-1
169 ,blue-1
,plum-1
,blue-0
,alum-1
])))
171 (provide-theme 'tango-dark
)
174 ;; no-byte-compile: t
177 ;;; tango-dark-theme.el ends here