Skip to content

Instantly share code, notes, and snippets.

@alistairstead
Created February 23, 2018 21:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alistairstead/67796ce1fb537e24c83abf1c481c8ef8 to your computer and use it in GitHub Desktop.
Save alistairstead/67796ce1fb537e24c83abf1c481c8ef8 to your computer and use it in GitHub Desktop.
material-theme
;;; 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