Created
February 23, 2018 21:52
-
-
Save alistairstead/67796ce1fb537e24c83abf1c481c8ef8 to your computer and use it in GitHub Desktop.
material-theme
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; atom-material-theme.el --- A emacs theme base on | |
;; Copyright (C) 2017 Alistair Stead | |
;;; Commentary: | |
;; Theme based on atom editor | |
;;;; Optional packages that enhance the theme | |
;; * https://github.com/tom-tan/hlinum-mode | |
;;; Code | |
(deftheme atom-material "A material theme") | |
;;;; Colours | |
(let ( | |
(class '((class color) (min-colors 89))) | |
;;;;; material pallet | |
;;;;;; red | |
(material-red-50 "#ffebee") | |
(material-red-100 "#ffcdd2") | |
(material-red-200 "#ef9a9a") | |
(material-red-300 "#e57373") | |
(material-red-400 "#ef5350") | |
(material-red-500 "#f44336") | |
(material-red-600 "#e53935") | |
(material-red-700 "#d32f2f") | |
(material-red-800 "#c62828") | |
(material-red-900 "#b71c1c") | |
(material-red-A100 "#ff8a80") | |
(material-red-A200 "#ff5252") | |
(material-red-A400 "#ff1744") | |
(material-red-A700 "#d50000") | |
;;;;;; pink | |
(material-pink-50 "#fce4ec") | |
(material-pink-100 "#f8bbd0") | |
(material-pink-200 "#f48fb1") | |
(material-pink-300 "#f06292") | |
(material-pink-400 "#ec407a") | |
(material-pink-500 "#e91e63") | |
(material-pink-600 "#d81b60") | |
(material-pink-700 "#c2185b") | |
(material-pink-800 "#ad1457") | |
(material-pink-900 "#880e4f") | |
(material-pink-A100 "#ff80ab") | |
(material-pink-A200 "#ff4081") | |
(material-pink-A400 "#f50057") | |
(material-pink-A700 "#c51162") | |
;;;;;; purple | |
(material-purple-50 "#f3e5f5") | |
(material-purple-100 "#e1bee7") | |
(material-purple-200 "#ce93d8") | |
(material-purple-300 "#ba68c8") | |
(material-purple-400 "#ab47bc") | |
(material-purple-500 "#9c27b0") | |
(material-purple-600 "#8e24aa") | |
(material-purple-700 "#7b1fa2") | |
(material-purple-800 "#6a1b9a") | |
(material-purple-900 "#4a148c") | |
(material-purple-A100 "#ea80fc") | |
(material-purple-A200 "#e040fb") | |
(material-purple-A400 "#d500f9") | |
(material-purple-A700 "#aa00ff") | |
;;;;;; deep-purple | |
(material-deep-purple-50 "#ede7f6") | |
(material-deep-purple-100 "#d1c4e9") | |
(material-deep-purple-200 "#b39ddb") | |
(material-deep-purple-300 "#9575cd") | |
(material-deep-purple-400 "#7e57c2") | |
(material-deep-purple-500 "#673ab7") | |
(material-deep-purple-600 "#5e35b1") | |
(material-deep-purple-700 "#512da8") | |
(material-deep-purple-800 "#4527a0") | |
(material-deep-purple-900 "#311b92") | |
(material-deep-purple-A100 "#b388ff") | |
(material-deep-purple-A200 "#7c4dff") | |
(material-deep-purple-A400 "#651fff") | |
(material-deep-purple-A700 "#6200ea") | |
;;;;;; indigo | |
(material-indigo-50 "#e8eaf6") | |
(material-indigo-100 "#c5cae9") | |
(material-indigo-200 "#9fa8da") | |
(material-indigo-300 "#7986cb") | |
(material-indigo-400 "#5c6bc0") | |
(material-indigo-500 "#3f51b5") | |
(material-indigo-600 "#3949ab") | |
(material-indigo-700 "#303f9f") | |
(material-indigo-800 "#283593") | |
(material-indigo-900 "#1a237e") | |
(material-indigo-A100 "#8c9eff") | |
(material-indigo-A200 "#536dfe") | |
(material-indigo-A400 "#3d5afe") | |
(material-indigo-A700 "#304ffe") | |
;;;;;; blue | |
(material-blue-50 "#e3f2fd") | |
(material-blue-100 "#bbdefb") | |
(material-blue-200 "#90caf9") | |
(material-blue-300 "#64b5f6") | |
(material-blue-400 "#42a5f5") | |
(material-blue-500 "#2196f3") | |
(material-blue-600 "#1e88e5") | |
(material-blue-700 "#1976d2") | |
(material-blue-800 "#1565c0") | |
(material-blue-900 "#0d47a1") | |
(material-blue-A100 "#82b1ff") | |
(material-blue-A200 "#448aff") | |
(material-blue-A400 "#2979ff") | |
(material-blue-A700 "#2962ff") | |
;;;;;; light-blue | |
(material-light-blue-50 "#e1f5fe") | |
(material-light-blue-100 "#b3e5fc") | |
(material-light-blue-200 "#81d4fa") | |
(material-light-blue-300 "#4fc3f7") | |
(material-light-blue-400 "#29b6f6") | |
(material-light-blue-500 "#03a9f4") | |
(material-light-blue-600 "#039be5") | |
(material-light-blue-700 "#0288d1") | |
(material-light-blue-800 "#0277bd") | |
(material-light-blue-900 "#01579b") | |
(material-light-blue-A100 "#80d8ff") | |
(material-light-blue-A200 "#40c4ff") | |
(material-light-blue-A400 "#00b0ff") | |
(material-light-blue-A700 "#0091ea") | |
;;;;;; cyan | |
(material-cyan-50 "#e0f7fa") | |
(material-cyan-100 "#b2ebf2") | |
(material-cyan-200 "#80deea") | |
(material-cyan-300 "#4dd0e1") | |
(material-cyan-400 "#26c6da") | |
(material-cyan-500 "#00bcd4") | |
(material-cyan-600 "#00acc1") | |
(material-cyan-700 "#0097a7") | |
(material-cyan-800 "#00838f") | |
(material-cyan-900 "#006064") | |
(material-cyan-A100 "#84ffff") | |
(material-cyan-A200 "#18ffff") | |
(material-cyan-A400 "#00e5ff") | |
(material-cyan-A700 "#00b8d4") | |
;;;;;; teal | |
(material-teal-50 "#e0f2f1") | |
(material-teal-100 "#b2dfdb") | |
(material-teal-200 "#80cbc4") | |
(material-teal-300 "#4db6ac") | |
(material-teal-400 "#26a69a") | |
(material-teal-500 "#009688") | |
(material-teal-600 "#00897b") | |
(material-teal-700 "#00796b") | |
(material-teal-800 "#00695c") | |
(material-teal-900 "#004d40") | |
(material-teal-A100 "#a7ffeb") | |
(material-teal-A200 "#64ffda") | |
(material-teal-A400 "#1de9b6") | |
(material-teal-A700 "#00bfa5") | |
;;;;;; green | |
(material-green-50 "#e8f5e9") | |
(material-green-100 "#c8e6c9") | |
(material-green-200 "#a5d6a7") | |
(material-green-300 "#81c784") | |
(material-green-400 "#66bb6a") | |
(material-green-500 "#4caf50") | |
(material-green-600 "#43a047") | |
(material-green-700 "#388e3c") | |
(material-green-800 "#2e7d32") | |
(material-green-900 "#1b5e20") | |
(material-green-A100 "#b9f6ca") | |
(material-green-A200 "#69f0ae") | |
(material-green-A400 "#00e676") | |
(material-green-A700 "#00c853") | |
;;;;;; light-green | |
(material-light-green-50 "#f1f8e9") | |
(material-light-green-100 "#dcedc8") | |
(material-light-green-200 "#c5e1a5") | |
(material-light-green-300 "#aed581") | |
(material-light-green-400 "#9ccc65") | |
(material-light-green-500 "#8bc34a") | |
(material-light-green-600 "#7cb342") | |
(material-light-green-700 "#689f38") | |
(material-light-green-800 "#558b2f") | |
(material-light-green-900 "#33691e") | |
(material-light-green-A100 "#ccff90") | |
(material-light-green-A200 "#b2ff59") | |
(material-light-green-A400 "#76ff03") | |
(material-light-green-A700 "#64dd17") | |
;;;;;; lime | |
(material-lime-50 "#f9fbe7") | |
(material-lime-100 "#f0f4c3") | |
(material-lime-200 "#e6ee9c") | |
(material-lime-300 "#dce775") | |
(material-lime-400 "#d4e157") | |
(material-lime-500 "#cddc39") | |
(material-lime-600 "#c0ca33") | |
(material-lime-700 "#afb42b") | |
(material-lime-800 "#9e9d24") | |
(material-lime-900 "#827717") | |
(material-lime-A100 "#f4ff81") | |
(material-lime-A200 "#eeff41") | |
(material-lime-A400 "#c6ff00") | |
(material-lime-A700 "#aeea00") | |
;;;;;; yellow | |
(material-yellow-50 "#fffde7") | |
(material-yellow-100 "#fff9c4") | |
(material-yellow-200 "#fff59d") | |
(material-yellow-300 "#fff176") | |
(material-yellow-400 "#ffee58") | |
(material-yellow-500 "#ffeb3b") | |
(material-yellow-600 "#fdd835") | |
(material-yellow-700 "#fbc02d") | |
(material-yellow-800 "#f9a825") | |
(material-yellow-900 "#f57f17") | |
(material-yellow-A100 "#ffff8d") | |
(material-yellow-A200 "#ffff00") | |
(material-yellow-A400 "#ffea00") | |
(material-yellow-A700 "#ffd600") | |
;;;;;; amber | |
(material-amber-50 "#fff8e1") | |
(material-amber-100 "#ffecb3") | |
(material-amber-200 "#ffe082") | |
(material-amber-300 "#ffd54f") | |
(material-amber-400 "#ffca28") | |
(material-amber-500 "#ffc107") | |
(material-amber-600 "#ffb300") | |
(material-amber-700 "#ffa000") | |
(material-amber-800 "#ff8f00") | |
(material-amber-900 "#ff6f00") | |
(material-amber-A100 "#ffe57f") | |
(material-amber-A200 "#ffd740") | |
(material-amber-A400 "#ffc400") | |
(material-amber-A700 "#ffab00") | |
;;;;;; orange | |
(material-orange-50 "#fff3e0") | |
(material-orange-100 "#ffe0b2") | |
(material-orange-200 "#ffcc80") | |
(material-orange-300 "#ffb74d") | |
(material-orange-400 "#ffa726") | |
(material-orange-500 "#ff9800") | |
(material-orange-600 "#fb8c00") | |
(material-orange-700 "#f57c00") | |
(material-orange-800 "#ef6c00") | |
(material-orange-900 "#e65100") | |
(material-orange-A100 "#ffd180") | |
(material-orange-A200 "#ffab40") | |
(material-orange-A400 "#ff9100") | |
(material-orange-A700 "#ff6d00") | |
;;;;;; deep-orange | |
(material-deep-orange-50 "#fbe9e7") | |
(material-deep-orange-100 "#ffccbc") | |
(material-deep-orange-200 "#ffab91") | |
(material-deep-orange-300 "#ff8a65") | |
(material-deep-orange-400 "#ff7043") | |
(material-deep-orange-500 "#ff5722") | |
(material-deep-orange-600 "#f4511e") | |
(material-deep-orange-700 "#e64a19") | |
(material-deep-orange-800 "#d84315") | |
(material-deep-orange-900 "#bf360c") | |
(material-deep-orange-A100 "#ff9e80") | |
(material-deep-orange-A200 "#ff6e40") | |
(material-deep-orange-A400 "#ff3d00") | |
(material-deep-orange-A700 "#dd2c00") | |
;;;;;; brown | |
(material-brown-50 "#efebe9") | |
(material-brown-100 "#d7ccc8") | |
(material-brown-200 "#bcaaa4") | |
(material-brown-300 "#a1887f") | |
(material-brown-400 "#8d6e63") | |
(material-brown-500 "#795548") | |
(material-brown-600 "#6d4c41") | |
(material-brown-700 "#5d4037") | |
(material-brown-800 "#4e342e") | |
(material-brown-900 "#3e2723") | |
;;;;;; grey | |
(material-grey-50 "#fafafa") | |
(material-grey-100 "#f5f5f5") | |
(material-grey-200 "#eeeeee") | |
(material-grey-300 "#e0e0e0") | |
(material-grey-400 "#bdbdbd") | |
(material-grey-500 "#9e9e9e") | |
(material-grey-600 "#757575") | |
(material-grey-700 "#616161") | |
(material-grey-800 "#424242") | |
(material-grey-900 "#212121") | |
;;;;;; blue-grey | |
(material-blue-grey-50 "#eceff1") | |
(material-blue-grey-100 "#cfd8dc") | |
(material-blue-grey-200 "#b0bec5") | |
(material-blue-grey-300 "#90a4ae") | |
(material-blue-grey-400 "#78909c") | |
(material-blue-grey-500 "#607d8b") | |
(material-blue-grey-600 "#546e7a") | |
(material-blue-grey-700 "#455a64") | |
(material-blue-grey-800 "#37474f") | |
(material-blue-grey-900 "#263238") | |
) | |
;;;; Theme faces | |
(custom-theme-set-faces | |
'atom-material | |
;;;;; Basic faces | |
`(button ((,class ( :inherit 'link )))) | |
`(cursor ((,class ( :background ,material-lime-A400 )))) | |
`(default ((,class ( :foreground ,material-grey-50 | |
:background ,material-blue-grey-900 | |
:weight normal | |
:slant normal | |
:underline nil | |
:overline nil | |
:strike-through nil | |
:box nil | |
:inverse-video nil | |
:stipple nil | |
:inherit nil)))) | |
`(escape-glyph ((,class ( :foreground ,material-orange-500 )))) | |
`(fixed-pitch ((t ( :family "Monospace" )))) | |
`(header-line ((,class (:foreground ,material-grey-50 | |
:background ,material-grey-900 )))) | |
`(highlight ((,class ( :background ,material-grey-900 )))) ;; line highlight | |
`(lazy-highlight ((t ( :background ,material-cyan-400 )))) | |
`(link ((t ( :foreground nil :underline t )))) | |
`(link-visited ((t ( :inherit 'link )))) | |
`(match ((t ( :inherit 'region )))) | |
`(minibuffer-prompt ((t ( :foreground ,material-yellow-400 :italic t )))) | |
`(next-error ((t ( :inherit 'region )))) | |
`(query-replace ((t ( :inherit 'isearch )))) | |
`(region ((t (:background ,material-blue-grey-700 )))) ;; section highlight | |
`(secondary-selection ((t ( :background ,material-light-green-400 )))) | |
`(shadow ((t (:foreground ,material-grey-900 )))) | |
`(tooltip ((t (:inherit variable-pitch :background ,material-teal-50 | |
:foreground ,material-teal-500 )))) | |
`(trailing-whitespace ((t ( :background ,material-blue-grey-800 | |
:foreground ,material-pink-A400 )))) | |
`(variable-pitch ((t ( :family "Sans Serif" )))) | |
`(error ((t ( :foreground ,material-red-500 )))) | |
`(warning ((t ( :foreground ,material-amber-600 )))) | |
`(success ((t ( :foreground ,material-lime-500 )))) | |
`(fringe ((t ( :background ,material-blue-grey-900 | |
:foreground ,material-grey-900 )))) | |
`(column-enforce-face ((,class ( :underline ( :color ,material-red-500 :style wave ))))) | |
`(sp-show-pair-match-face ((,class ( :foreground ,material-lime-A400 :weight bold )))) | |
;;;;; ahs | |
`(ahs-face ((,class ( :inherit 'region )))) | |
`(ahs-plugin-whole-buffer-face ((,class ( :background ,material-lime-A400 )))) | |
;;;;; isearch | |
`(isearch ((,class ( :inherit 'region )))) | |
`(isearch-fail ((,class ( :background ,material-red-500 | |
:forgraound ,material-grey-50)))) | |
;;;;; neotree | |
`(neo-dir-link-face ((,class ( :foreground ,material-blue-grey-300 )))) | |
`(neo-file-link-face ((,class ( :foreground ,material-blue-grey-300 )))) | |
`(neo-expand-btn-face ((,class ( :foreground ,material-grey-700 )))) | |
`(neo-root-dir-face ((,class ( :foreground ,material-grey-700 )))) | |
;;;;; dired | |
`(dired-directory ((,class ( :foreground ,material-blue-grey-300 )))) | |
`(dired-flagged ((,class ( :foreground ,material-red-500 )))) | |
`(dired-header ((,class ( :foreground ,material-grey-700 )))) | |
`(dired-ignored ((,class ( :inherit 'shadow )))) | |
`(dired-mark ((,class ( :foreground ,material-blue-grey-300 )))) | |
`(dired-marked ((,class ( :foreground ,material-purple-500 )))) | |
`(dired-perm-write ((,class ( :foreground ,material-blue-grey-300 | |
:underline t )))) | |
`(dired-symlink ((,class ( :foreground ,material-cyan-500 )))) | |
`(dired-warning ((,class ( :foreground ,material-amber-600 )))) | |
;;;;; mode-line | |
`(mode-line ((t ( :foreground ,material-blue-grey-300 | |
:background ,material-blue-grey-900 )))) | |
`(powerline-active1 ((t ( :inherit 'mode-line :background ,material-blue-grey-900 )))) | |
`(powerline-active2 ((t ( :inherit 'mode-line :background ,material-blue-grey-900 )))) | |
`(mode-line-inactive ((t ( :inherit 'mode-line )))) | |
`(powerline-inactive1 ((t ( :inherit 'mode-line :background ,material-blue-grey-900 )))) | |
`(powerline-inactive2 ((t ( :inherit 'mode-line :background ,material-blue-grey-900 )))) | |
`(mode-line-highlight ((t ( :inherit 'mode-line :foreground ,material-orange-500 )))) | |
`(mode-line-buffer-id ((t ( :inherit 'mode-line :foreground ,material-orange-500 :weight bold )))) | |
`(mode-line-emphasis ((t ( :inherit 'mode-line :foreground ,material-orange-500 :weight bold )))) | |
;;;;; Spaceline | |
`(spaceline-highlight-face ((t ( :foreground ,material-orange-500 | |
:background nil )))) | |
`(spaceline-evil-normal ((t ( :foreground ,material-blue-grey-300 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-evil-insert ((t ( :foreground ,material-lime-500 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-evil-visual ((t ( :foreground ,material-teal-600 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-evil-emacs ((t ( :foreground ,material-blue-grey-300 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-evil-motion ((t ( :foreground ,material-teal-600 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-evil-replace ((t ( :foreground ,material-teal-600 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-read-only ((t ( :foreground ,material-orange-500 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-unmodified ((t ( :foreground ,material-blue-grey-300 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
`(spaceline-modified ((t ( :foreground ,material-pink-500 | |
:background ,material-blue-grey-900 | |
:inherit 'mode-line )))) | |
;;;;; Spacemacs | |
`(spacemacs-normal-face ((t ( :inherit 'spaceline-evil-normal )))) | |
`(spacemacs-insert-face ((t ( :inherit 'spaceline-evil-insert )))) | |
`(spacemacs-visual-face ((t ( :inherit 'spaceline-evil-visual )))) | |
;;;;; Windows | |
`(vertical-border ((,class ( :background ,material-grey-900 | |
:foreground ,material-grey-900 )))) | |
;;;;; Line Numbers | |
`(linum ((,class (:foreground ,material-grey-700 | |
:background ,material-blue-grey-900 )))) | |
;;;;; highlight-numbers | |
`(highlight-numbers-number ((,class ( :foreground ,material-deep-orange-A200 )))) | |
;;;;; hlinum (https://github.com/tom-tan/hlinum-mode) | |
`(linum-highlight-face ((,class ( :inherit 'highlight | |
:foreground ,material-light-blue-800 )))) | |
;;;;; auto-complete | |
`(ac-completion-face ((,class (:background ,material-blue-grey-900 | |
:foreground ,material-grey-50 )))) | |
;;;;; company | |
`(company-echo-common ((,class ( :background ,material-blue-grey-900 | |
:foreground ,material-grey-500 )))) | |
`(company-preview ((,class ( :background ,material-blue-grey-900 | |
:foreground ,material-grey-500)))) | |
`(company-preview-common ((,class ( :background ,material-blue-grey-900 | |
:foreground ,material-grey-500 )))) | |
`(company-preview-search ((,class ( :inherit match)))) | |
`(company-scrollbar-bg ((,class ( :background ,material-grey-900 )))) | |
`(company-scrollbar-fg ((,class (:background ,material-grey-800)))) | |
`(company-template-field ((,class ( :inherit region)))) | |
`(company-tooltip ((,class ( :background ,material-blue-grey-900 | |
:foreground ,material-grey-500 )))) | |
`(company-tooltip-selection ((,class ( :background ,material-teal-600 | |
:foreground ,material-grey-100 )))) | |
`(company-tooltip-annotation ((,class ( :foreground ,material-light-green-400 | |
:background ,material-teal-800 | |
:weight extra-bold )))) | |
`(company-tooltip-annotation-selection ((,class (:weight extra-bold | |
:foreground ,material-grey-50 | |
:background ,material-teal-600 )))) | |
`(company-tooltip-common ((,class ( :inherit 'company-tooltip-common )))) | |
`(company-tooltip-common-selection ((,class ( :inherit 'company-tooltip-selection )))) | |
`(company-tooltip-mouse ((,class ( :inherit highlight )))) | |
`(company-tooltip-search ((,class ( :inherit match :weight extra-bold )))) | |
;;;;; evil | |
`(evil-ex-substitute-matches ((,class ( :background ,material-red-900 | |
:foreground ,material-grey-50 )))) | |
`(evil-ex-substitute-replacement ((,class ( :background ,material-green-900 | |
:foreground ,material-grey-50 )))) | |
;;;;; git-gutter | |
`(git-gutter:modified ((,class ( :foreground ,material-purple-500 | |
:weight light )))) | |
`(git-gutter:added ((,class ( :foreground ,material-lime-500 | |
:weight light )))) | |
`(git-gutter:deleted ((,class ( :foreground ,material-red-500 | |
:weight light )))) | |
`(git-gutter:unchanged ((,class ( :background ,material-blue-grey-900 )))) | |
;;;;; git-gutter-fringe | |
`(git-gutter-fr:modified ((,class ( :foreground ,material-purple-500 | |
:weight light )))) | |
`(git-gutter-fr:added ((,class ( :foreground ,material-lime-500 | |
:weight light )))) | |
`(git-gutter-fr:deleted ((,class ( :foreground ,material-red-500 | |
:weight light )))) | |
;;;;; Font lock faces | |
`(font-lock-comment-face ((t ( :foreground ,material-grey-600 | |
:italic t )))) | |
`(font-lock-comment-delimiter-face ((t ( :foreground ,material-grey-700 )))) | |
`(font-lock-doc-face ((,class ( :foreground ,material-grey-400 )))) | |
`(font-lock-builtin-face ((t ( :foreground ,material-blue-700 )))) | |
`(font-lock-function-name-face ((t ( :foreground ,material-blue-300 )))) | |
`(font-lock-keyword-face ((t ( :foreground ,material-purple-400 )))) | |
`(font-lock-string-face ((t ( :foreground ,material-lime-400 )))) | |
`(font-lock-type-face ((t ( :foreground ,material-grey-50 )))) | |
`(font-lock-constant-face ((t (:foreground ,material-amber-500 )))) | |
`(font-lock-variable-name-face ((t ( :foreground ,material-lime-400 )))) | |
`(font-lock-warning-face ((t ( :foreground ,material-red-500 :bold t )))) | |
`(font-lock-negation-char-face ((,class ( :foreground ,material-blue-400 )))) | |
`(font-lock-preprocessor-face ((,class ( :foreground ,material-amber-500 )))) | |
`(font-lock-regexp-grouping-backslash (( ,class ( :foreground ,material-yellow-500 )))) | |
`(font-lock-regexp-grouping-construct (( ,class ( :foreground ,material-purple-500 )))) | |
;;;;; whitespace | |
`(whitespace-empty ((t ( :foreground ,material-blue-grey-700 )))) | |
`(whitespace-hspace ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-indentation ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-line ((t ( :inherit 'nil )))) | |
`(whitespace-newline ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-space ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-space-after-tab ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-space-before-tab ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-tab ((t ( :inherit 'whitespace-empty )))) | |
`(whitespace-trailing ((t ( :inherit 'trailing-whitespace )))) | |
;;;;; Flyspell | |
`(flyspell-incorrect ((t ( :forground ,material-red-500 )))) | |
;;;;; Flycheck | |
`(flycheck-error ((,class ( :underline (:style wave :color ,material-red-500))))) | |
`(flycheck-warning ((,class ( :underline (:style wave :color ,material-orange-500))))) | |
;;;;; Flymake | |
`(flymake-warnline ((,class (:underline (:style wave :color ,material-orange-500) :background ,material-blue-grey-900)))) | |
`(flymake-errline ((,class (:underline (:style wave :color ,material-red-500) :background ,material-blue-grey-900)))) | |
;;;;; Helm faces | |
`(helm-header ((,class ( :foreground ,material-grey-100 | |
:background ,material-teal-600 )))) | |
`(helm-source-header ((,class ( :foreground ,material-grey-100 | |
:background ,material-teal-600 )))) | |
`(helm-ff-directory ((,class ( :foreground ,material-grey-500 | |
:background ,material-blue-grey-900 )))) | |
`(helm-selection ((,class ( :inherit 'company-tooltip-selection )))) | |
`(helm-selection-line ((,class ( :inherit 'highlight )))) | |
;;;;; highlights | |
`(hi-green ((,class ( :foreground ,material-green-500 :background nil )))) | |
`(hi-yellow ((,class ( :foreground ,material-yellow-500 :background ,nil )))) | |
;;;;; highlight-indentation | |
`(highlight-indentation-face ((,class (:background ,material-blue-grey-900 )))) | |
;;;;; highlight-symbol | |
`(highlight-symbol-face ((,class ( :foreground ,material-lime-500 | |
:weight extra-bold )))) | |
;;;;; rainbow-delimiters | |
`(rainbow-delimiters-depth-1-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-2-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-3-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-4-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-5-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-6-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-7-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-depth-8-face ((,class ( :foreground ,material-light-blue-200 )))) | |
`(rainbow-delimiters-mismatched-face ((,class ( :foreground ,material-red-500 :overline t )))) | |
`(rainbow-delimiters-unmatched-face ((,class ( :foreground ,material-red-500 :overline t )))) | |
;;;;; Perspective faces | |
'(persp-selected-face ((t (:foreground "#eacc8c")))) | |
;;;;; Gnus | |
'(gnus-header-name ((t (:foreground "#909fab" )))) | |
'(gnus-header-content ((t (:foreground "#bdc3ce" )))) | |
'(gnus-header-subject ((t (:foreground "#eacc8c" )))) | |
'(widget-button ((t (:foreground "#909fab" )))) | |
'(gnus-summary-normal-read ((t (:foreground "#909fab")))) | |
;;;;; ido-mode | |
'(ido-first-match ((t (:foreground "violet" :weight bold)))) | |
'(ido-only-match ((t (:foreground "#ff982d" :weight bold)))) | |
'(ido-subdir ((t (:foreground "#8AE234")))) | |
'(ido-virtual ((t (:foreground "#7c7c7c")))) | |
;;;;; diff-hl (https://github.com/dgutov/diff-hl) | |
'(diff-hl-change ((t (:foreground "#E9C062" :background "#8b733a")))) | |
'(diff-hl-delete ((t (:foreground "#CC6666" :background "#7a3d3d")))) | |
'(diff-hl-insert ((t (:foreground "#A8FF60" :background "#547f30")))) | |
;;;;; dired-mode | |
`(dired-directory ((t ( :inherit (font-lock-keyword-face ))))) | |
`(dired-flagged ((t ( :inherit (diff-hl-delete ))))) | |
`(dired-symlink ((t ( :foreground ,material-pink-500 )))) | |
;;;;; guide-key (https://github.com/kai2nenobu/guide-key) | |
`(guide-key/highlight-command-face ((t ( :forground ,material-blue-500 )))) | |
`(guide-key/key-face ((t ( :foreground ,material-blue-500 )))) | |
`(guide-key/prefix-command-face ((t (:inherit 'font-lock-keyword-face)))) | |
;;;;; which-key | |
`(which-key-key-face ((,class ( :foreground ,material-blue-300 | |
:weight normal )))) | |
`(which-key-special-key-face ((,class ( :foreground ,material-teal-500 | |
:weight normal | |
:height 1.1)))) | |
`(which-key-command-description-face ((,class ( :foreground ,material-lime-500 )))) | |
`(which-key-group-description-face ((,class ( :foreground ,material-orange-500 )))) | |
`(which-key-separator-face ((,class ( :foreground ,material-blue-grey-300 )))) | |
;;;;; flx-ido (https://github.com/lewang/flx) | |
'(flx-highlight-face ((t (:inherit (link) :weight bold)))) | |
;;;;; markdown-mode (http://jblevins.org/projects/markdown-mode/) | |
;; Note: Atom Material Theme for Atom.io does not currently theme some things that markdown-mode does. For cases where | |
;; Atom.io does not provide theming, this theme will leave the theming done by markdown-mode as-is. Where both | |
;; Atom.io and markdown-mode provide theming, markdown-mode's theming will be changed to match that of Atom.io. | |
'(markdown-blockquote-face ((t :foreground "#555"))) | |
'(markdown-header-face ((t :foreground "#eee"))) | |
'(markdown-header-delimiter-face ((t (:inherit (markdown-header-face))))) | |
'(markdown-header-rule-face ((t (:inherit (font-lock-comment-face))))) | |
;;;;; Js2-mode (https://github.com/mooz/js2-mode) | |
'(js2-error ((t (:foreground "#c00")))) | |
'(js2-external-variable ((t (:inherit (font-lock-builtin-face))))) | |
'(js2-function-param ((t (:foreground "#C6C5FE")))) | |
'(js2-jsdoc-html-tag-delimiter ((t (:foreground "#96CBFE")))) | |
'(js2-jsdoc-html-tag-name ((t (:foreground "#96CBFE")))) | |
'(js2-jsdoc-tag ((t (:inherit (font-lock-doc-face):weight bold)))) | |
'(js2-jsdoc-type ((t (:inherit (font-lock-type-face))))) | |
'(js2-jsdoc-value ((t (:inherit (js2-function-param))))) | |
;;;;; realgud | |
`(realgud-overlay-arrow1 ((t (:foreground "#7fff00")))) | |
`(realgud-overlay-arrow2 ((t (:foreground "#5FAF44")))) | |
`(realgud-overlay-arrow3 ((t (:foreground "#116600")))) | |
;;;;; speedbar | |
'(speedbar-button-face ((t (:foreground "#AAAAAA")))) | |
'(speedbar-directory-face ((t (:inherit (font-lock-keyword-face))))) | |
'(speedbar-file-face ((t (:inherit (default))))) | |
'(speedbar-highlight-face ((t (:inherit (highlight))))) | |
'(speedbar-selected-face ((t (:background "#4182C4" :foreground "#FFFFFF")))) | |
'(speedbar-separator-face ((t (:background "grey11" :foreground "#C5C8C6" :overline "#7C7C7C")))) | |
'(speedbar-tag-face ((t (:inherit (font-lock-function-name-face))))) | |
;;;;; minimap (https://github.com/dengste/minimap) | |
'(minimap-active-region-background ((t (:inherit (highlight))))) | |
;;;;; org-mode | |
;; Org and outline header updates | |
;; (outline-1 :height 1.25 | |
;; :foreground "#C3A29E" | |
;; :weight ,(if is-linuxp 'normal 'ultra-bold) | |
;; :italic nil | |
;; :underline t) | |
;; (outline-2 :height 1.15 | |
;; :foreground "#8D6B94" | |
;; :weight ,(if is-linuxp 'normal 'ultra-bold) | |
;; :italic nil | |
;; :underline t) | |
;; (outline-3 :height 1.15 | |
;; :foreground "#8C5F66" | |
;; :weight ,(if is-linuxp 'normal 'ultra-bold) | |
;; :italic nil | |
;; :underline t) | |
;; (org-level-1 :height 1.25 | |
;; :inherit nil | |
;; :foreground "#C3A29E" | |
;; :weight ,(if is-linuxp 'normal 'ultra-bold) | |
;; :italic nil | |
;; :underline t) | |
;; (org-level-2 :height 1.15 | |
;; :inherit nil | |
;; :foreground "#8D6B94" | |
;; :weight ,(if is-linuxp 'normal 'ultra-bold) | |
;; :italic nil | |
;; :underline t) | |
;; (org-level-3 :height 1.15 | |
;; :inherit nil | |
;; :foreground "#8C5F66" | |
;; :weight ,(if is-linuxp 'normal 'ultra-bold) | |
;; :italic nil) | |
;;;;; elixir | |
`(elixir-attribute-face ((t ( :inherit 'font-lock-constant-face )))) | |
`(elixir-atom-face ((t ( :foreground ,material-lime-500 )))) | |
`(elixir-negation-face ((,class ( :foreground ,material-red-500)))) | |
`(elixir-ignored-var-face ((,class ( :foreground ,material-cyan-200 )))) | |
) | |
;;;; custom-theme-set-variables | |
(custom-theme-set-variables | |
'atom-material | |
;;;;; hi | |
`(hl-paren-colors '(,material-pink-500 | |
,material-purple-500 | |
,material-light-blue-500 | |
,material-yellow-500 | |
,material-deep-orange-500 | |
,material-teal-A400 | |
,material-indigo-A400 | |
,material-cyan-500 | |
)) | |
)) | |
(defvar atom-material-theme-force-faces-for-mode t | |
"If t, atom-material-theme will use Face Remapping to alter the theme faces | |
for the current buffer based on its mode in an attempt to mimick the Atom | |
Material Theme from Atom.io as best as possible. | |
The reason this is required is because some modes (html-mode, yaml-mode, ...) | |
do not provide the necessary faces to do theming without conflicting with other | |
modes. | |
Current modes, and their faces, impacted by this variable: | |
* html-mode: font-lock-variable-name-face | |
* markdown-mode: default | |
* yaml-mode: font-lock-variable-name-face | |
") | |
;; Many modes in Emacs do not define their own faces and instead use standard Emacs faces when it comes to theming. | |
;; That being said, to have a real "Atom Theme" for Emacs, we need to work around this so that these themes look | |
;; as much like "Atom Dark Theme" as possible. This means using per-buffer faces via "Face Remapping": | |
;; | |
;; http://www.gnu.org/software/emacs/manual/html_node/elisp/Face-Remapping.html | |
;; | |
;; Of course, this might be confusing to some when in one mode they see keywords highlighted in one face and in another | |
;; mode they see a different face. That being said, you can set the `atom-material-theme-force-faces-for-mode` variable to | |
;; `nil` to disable this feature. | |
(defun atom-material-theme-change-faces-for-mode () | |
(interactive) | |
(and (eq atom-material-theme-force-faces-for-mode t) | |
(cond | |
((member major-mode '(conf-mode conf-javaprop-mode html-mode yaml-mode)) | |
(face-remap-add-relative 'font-lock-variable-name-face '(:inherit (font-lock-keyword-face)))) | |
((eq major-mode 'java-mode) | |
(face-remap-add-relative 'font-lock-variable-name-face '(:inherit (js2-function-param)))) | |
((eq major-mode 'markdown-mode) | |
(face-remap-add-relative 'default '(:foreground "#999"))) | |
((member major-mode '(javascript-mode js2-mode)) | |
(face-remap-add-relative 'font-lock-doc-face '(:inherit (font-lock-comment-face))))))) | |
(add-hook 'after-change-major-mode-hook 'atom-material-theme-change-faces-for-mode) | |
;;;###autoload | |
(and load-file-name | |
(boundp 'custom-theme-load-path) | |
(add-to-list 'custom-theme-load-path | |
(file-name-as-directory | |
(file-name-directory load-file-name)))) | |
;; Automatically add this theme to the load path | |
(provide-theme 'atom-material) | |
;;; atom-material-theme.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment