Merge from trunk.
[bpt/emacs.git] / etc / themes / tango-dark-theme.el
1 ;;; tango-dark-theme.el --- Tango-based custom theme for faces
2
3 ;; Copyright (C) 2010-2011 Free Software Foundation, Inc.
4
5 ;; Authors: Chong Yidong <cyd@stupidchicken>
6 ;; Jan Moringen <jan.moringen@uni-bielefeld.de>
7
8 ;; This file is part of GNU Emacs.
9
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.
14
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.
19
20 ;; You should have received a copy of the GNU General Public License
21 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
22
23 ;;; Commentary
24
25 ;; The colors in this theme come from the Tango palette, which is in
26 ;; the public domain: http://tango.freedesktop.org/
27
28 ;;; Code:
29
30 (deftheme tango-dark
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.")
34
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 "#ad7fa8") (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 "#e6a8df")
48 (red-0 "#ff4b4b") (alum-5.5 "#41423f") (alum-7 "#212526"))
49
50 (custom-theme-set-faces
51 'tango-dark
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"))
57 (,class
58 (:foreground ,alum-1 :background "black"))))
59 `(cursor ((,class (:foreground ,alum-6 :background ,butter-1))))
60 ;; Highlighting faces
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))))
68 ;; Mode line faces
69 `(mode-line ((,class
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 ;; Escape and prompt faces
76 `(minibuffer-prompt ((,class (:foreground ,cham-0))))
77 `(escape-glyph ((,class (:foreground ,butter-3))))
78 ;; Font lock faces
79 `(font-lock-builtin-face ((,class (:foreground ,plum-1))))
80 `(font-lock-comment-face ((,class (:foreground ,cham-2))))
81 `(font-lock-constant-face ((,class (:foreground ,plum-0))))
82 `(font-lock-function-name-face ((,class (:foreground ,butter-1))))
83 `(font-lock-keyword-face ((,class (:foreground ,cham-0))))
84 `(font-lock-string-face ((,class (:foreground ,choc-1))))
85 `(font-lock-type-face ((,class (:foreground ,blue-0))))
86 `(font-lock-variable-name-face ((,class (:foreground ,orange-1))))
87 `(font-lock-warning-face ((,class (:foreground ,red-0))))
88 ;; Button and link faces
89 `(link ((,class (:underline t :foreground ,blue-1))))
90 `(link-visited ((,class (:underline t :foreground ,blue-2))))
91 ;; Gnus faces
92 `(gnus-group-news-1 ((,class (:foreground ,plum-1))))
93 `(gnus-group-news-1-low ((,class (:foreground ,plum-2))))
94 `(gnus-group-news-2 ((,class (:foreground ,blue-1))))
95 `(gnus-group-news-2-low ((,class (:foreground ,blue-2))))
96 `(gnus-group-news-3 ((,class (:foreground ,cham-1))))
97 `(gnus-group-news-3-low ((,class (:foreground ,cham-2))))
98 `(gnus-group-news-4 ((,class (:foreground ,plum-0))))
99 `(gnus-group-news-4-low ((,class (:foreground ,choc-2))))
100 `(gnus-group-news-5 ((,class (:foreground ,orange-1))))
101 `(gnus-group-news-5-low ((,class (:foreground ,orange-2))))
102 `(gnus-group-news-low ((,class (:foreground ,butter-2))))
103 `(gnus-group-mail-1 ((,class (:foreground ,plum-1))))
104 `(gnus-group-mail-1-low ((,class (:foreground ,plum-2))))
105 `(gnus-group-mail-2 ((,class (:foreground ,blue-1))))
106 `(gnus-group-mail-2-low ((,class (:foreground ,blue-2))))
107 `(gnus-group-mail-3 ((,class (:foreground ,cham-1))))
108 `(gnus-group-mail-3-low ((,class (:foreground ,cham-2))))
109 `(gnus-group-mail-low ((,class (:foreground ,butter-2))))
110 `(gnus-header-content ((,class (:weight normal :foreground ,butter-3))))
111 `(gnus-header-from ((,class (:foreground ,butter-2))))
112 `(gnus-header-subject ((,class (:foreground ,cham-1))))
113 `(gnus-header-name ((,class (:foreground ,blue-1))))
114 `(gnus-header-newsgroups ((,class (:foreground ,choc-2))))
115 ;; Message faces
116 `(message-header-name ((,class (:foreground ,blue-1))))
117 `(message-header-cc ((,class (:foreground ,butter-3))))
118 `(message-header-other ((,class (:foreground ,choc-2))))
119 `(message-header-subject ((,class (:foreground ,cham-1))))
120 `(message-header-to ((,class (:foreground ,butter-2))))
121 `(message-cited-text ((,class (:foreground ,cham-1))))
122 `(message-separator ((,class (:foreground ,plum-1))))
123 ;; SMerge faces
124 `(smerge-refined-change ((,class (:background ,blue-3))))
125 ;; Ediff faces
126 `(ediff-current-diff-A ((,class (:background ,alum-5))))
127 `(ediff-fine-diff-A ((,class (:background ,blue-3))))
128 `(ediff-even-diff-A ((,class (:background ,alum-5.5))))
129 `(ediff-odd-diff-A ((,class (:background ,alum-5.5))))
130 `(ediff-current-diff-B ((,class (:background ,alum-5))))
131 `(ediff-fine-diff-B ((,class (:background ,choc-3))))
132 `(ediff-even-diff-B ((,class (:background ,alum-5.5))))
133 `(ediff-odd-diff-B ((,class (:background ,alum-5.5))))
134 ;; Flyspell faces
135 `(flyspell-duplicate ((,class (:underline ,orange-1))))
136 `(flyspell-incorrect ((,class (:underline ,red-1))))
137 ;; Semantic faces
138 `(semantic-decoration-on-includes ((,class (:underline ,alum-4))))
139 `(semantic-decoration-on-private-members-face
140 ((,class (:background ,plum-3))))
141 `(semantic-decoration-on-protected-members-face
142 ((,class (:background ,choc-3))))
143 `(semantic-decoration-on-unknown-includes
144 ((,class (:background ,red-3))))
145 `(semantic-decoration-on-unparsed-includes
146 ((,class (:background ,alum-5.5))))
147 `(semantic-tag-boundary-face ((,class (:overline ,blue-1))))
148 `(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))))
149
150 (custom-theme-set-variables
151 'tango-dark
152 `(ansi-color-names-vector [,alum-7 ,red-0 ,cham-0 ,butter-1
153 ,blue-1 ,plum-1 ,blue-0 ,alum-1])))
154
155 (provide-theme 'tango-dark)
156
157 ;; Local Variables:
158 ;; no-byte-compile: t
159 ;; End:
160
161 ;;; tango-dark-theme.el ends here