130 lines
5.6 KiB
EmacsLisp
130 lines
5.6 KiB
EmacsLisp
;;; themes/MTX16.el -*- lexical-binding: t; -*-
|
|
|
|
;; my-extended-theme.el
|
|
;; A high-contrast Emacs theme based on the extended color palette
|
|
|
|
(deftheme MTX16 "A high-contrast theme with extended color palette")
|
|
|
|
(let (
|
|
;; Base colors - High contrast neutrals
|
|
(base00 "#eef0f0") ; Background
|
|
(base01 "#F8F9FA") ; Lighter background (status bars, line numbers)
|
|
(base02 "#F0F0F0") ; Selection background, current line
|
|
(base03 "#BBBBBB") ; Comments, invisible
|
|
(base04 "#8D8D84") ; Dark foreground (disabled)
|
|
(base05 "#666666") ; Default foreground (less important)
|
|
(base06 "#444444") ; Default foreground
|
|
(base07 "#333333") ; Strong foreground (important text)
|
|
(base08 "#FF6B6B") ; Red: errors, deleted
|
|
(base09 "#FFB347") ; Orange: warnings
|
|
(base0A "#88D26E") ; Green: success, strings
|
|
(base0B "#9EBD6E") ; Light green: strings alt
|
|
(base0C "#508AE0") ; Blue: functions, info
|
|
(base0D "#6434A3") ; Purple: keywords, variables
|
|
(base0E "#EF89DF") ; Magenta: constants, special
|
|
(base0F "#A080CA") ; Light purple: operators
|
|
|
|
;; Additional GUI-specific enhancements
|
|
(highlight "#CEF")
|
|
(region "#7DF")
|
|
(accent-strong "#508AE0")
|
|
(accent-subtle "#BEEFFF")
|
|
)
|
|
|
|
(custom-theme-set-faces
|
|
'MTX16
|
|
|
|
;; Basic faces
|
|
`(default ((t (:background ,base00 :foreground ,base07))))
|
|
`(cursor ((t (:background ,base07))))
|
|
`(fringe ((t (:background ,base01))))
|
|
`(highlight ((t (:background ,highlight))))
|
|
`(region ((t (:background ,region :foreground ,base07))))
|
|
`(secondary-selection ((t (:background ,accent-subtle))))
|
|
|
|
;; Mode line
|
|
`(mode-line ((t (:background ,base02 :foreground ,base07 :box nil))))
|
|
`(mode-line-inactive ((t (:background ,base01 :foreground ,base04 :box nil))))
|
|
`(mode-line-buffer-id ((t (:foreground ,base0D :weight bold))))
|
|
|
|
;; Font lock - syntax highlighting
|
|
`(font-lock-comment-face ((t (:foreground ,base03 :slant italic))))
|
|
`(font-lock-comment-delimiter-face ((t (:foreground ,base03))))
|
|
`(font-lock-doc-face ((t (:foreground ,base04))))
|
|
`(font-lock-string-face ((t (:foreground ,base0A))))
|
|
`(font-lock-constant-face ((t (:foreground ,base0E))))
|
|
`(font-lock-builtin-face ((t (:foreground ,base0F))))
|
|
`(font-lock-type-face ((t (:foreground ,base0D))))
|
|
`(font-lock-function-name-face ((t (:foreground ,base0C))))
|
|
`(font-lock-variable-name-face ((t (:foreground ,base06))))
|
|
`(font-lock-keyword-face ((t (:foreground ,base0D :weight bold))))
|
|
`(font-lock-preprocessor-face ((t (:foreground ,base0F))))
|
|
`(font-lock-warning-face ((t (:foreground ,base09 :weight bold))))
|
|
|
|
;; UI elements
|
|
`(minibuffer-prompt ((t (:foreground ,base0C :weight bold))))
|
|
`(link ((t (:foreground ,base0C :underline t))))
|
|
`(link-visited ((t (:foreground ,base0E :underline t))))
|
|
`(button ((t (:foreground ,base0C :underline t))))
|
|
`(header-line ((t (:background ,base01 :foreground ,base07))))
|
|
`(vertical-border ((t (:foreground ,base02))))
|
|
|
|
;; Search and matching
|
|
`(isearch ((t (:background ,base0E :foreground ,base00 :weight bold))))
|
|
`(isearch-fail ((t (:background ,base08))))
|
|
`(lazy-highlight ((t (:background ,accent-subtle :foreground ,base07))))
|
|
`(match ((t (:background ,base0A :foreground ,base00))))
|
|
|
|
;; Line numbers
|
|
`(line-number ((t (:foreground ,base03 :background ,base01))))
|
|
`(line-number-current-line ((t (:foreground ,base07 :background ,base02 :weight bold))))
|
|
|
|
;; Company (autocompletion)
|
|
`(company-tooltip ((t (:background ,base01 :foreground ,base07))))
|
|
`(company-tooltip-selection ((t (:background ,base0C :foreground ,base00))))
|
|
`(company-tooltip-common ((t (:foreground ,base0D))))
|
|
`(company-scrollbar-bg ((t (:background ,base02))))
|
|
`(company-scrollbar-fg ((t (:background ,base04))))
|
|
|
|
;; Org-mode
|
|
`(org-level-1 ((t (:foreground ,base0D :weight bold :height 1.2))))
|
|
`(org-level-2 ((t (:foreground ,base0C :weight bold))))
|
|
`(org-level-3 ((t (:foreground ,base0F :weight bold))))
|
|
`(org-done ((t (:foreground ,base0A :weight bold))))
|
|
`(org-todo ((t (:foreground ,base08 :weight bold))))
|
|
`(org-date ((t (:foreground ,base0E))))
|
|
`(org-special-keyword ((t (:foreground ,base03))))
|
|
`(org-block ((t (:background ,base01 :foreground ,base06))))
|
|
`(org-code ((t (:foreground ,base0B))))
|
|
|
|
;; Terminal specific adjustments
|
|
`(term-color-black ((t (:foreground ,base00 :background ,base00))))
|
|
`(term-color-red ((t (:foreground ,base08 :background ,base08))))
|
|
`(term-color-green ((t (:foreground ,base0A :background ,base0A))))
|
|
`(term-color-yellow ((t (:foreground ,base09 :background ,base09))))
|
|
`(term-color-blue ((t (:foreground ,base0C :background ,base0C))))
|
|
`(term-color-magenta ((t (:foreground ,base0E :background ,base0E))))
|
|
`(term-color-cyan ((t (:foreground ,base0B :background ,base0B))))
|
|
`(term-color-white ((t (:foreground ,base07 :background ,base07))))
|
|
|
|
;; Error and warning faces
|
|
`(error ((t (:foreground ,base08 :weight bold))))
|
|
`(warning ((t (:foreground ,base09 :weight bold))))
|
|
`(success ((t (:foreground ,base0A :weight bold))))
|
|
|
|
;; Dired
|
|
`(dired-directory ((t (:foreground ,base0C :weight bold))))
|
|
`(dired-flagged ((t (:foreground ,base08))))
|
|
`(dired-symlink ((t (:foreground ,base0E))))
|
|
|
|
;; Ivy/Helm (completion frameworks)
|
|
`(ivy-current-match ((t (:background ,base0C :foreground ,base00))))
|
|
`(ivy-minibuffer-match-face-1 ((t (:foreground ,base05))))
|
|
`(ivy-minibuffer-match-face-2 ((t (:foreground ,base0D :weight bold))))
|
|
`(ivy-minibuffer-match-face-3 ((t (:foreground ,base0E))))
|
|
`(ivy-minibuffer-match-face-4 ((t (:foreground ,base0A))))
|
|
))
|
|
|
|
;; Provide the theme
|
|
(provide-theme 'MTX16)
|