;;; 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)