IC
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
;;; themes/MTF4-extended-theme.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; MTF4-extended-theme.el
|
||||
;; A brighter, high-contrast light theme based on MTF4 with extended color palette
|
||||
|
||||
(deftheme MTF4-extended
|
||||
"A brighter, high-contrast light theme with extended color palette based on MTF4.")
|
||||
|
||||
(let (
|
||||
;; Core colors - Bright high-contrast palette
|
||||
(bg-primary "#FFFFFF")
|
||||
(bg-secondary "#F8F9FA")
|
||||
(bg-tertiary "#F0F0F0")
|
||||
(bg-highlight "#E0E0FF")
|
||||
(bg-region "#C0C0FF")
|
||||
|
||||
(fg-primary "#202020")
|
||||
(fg-secondary "#444444")
|
||||
(fg-tertiary "#666666")
|
||||
(fg-comment "#8D8D84")
|
||||
|
||||
;; Syntax colors - Bright and distinct
|
||||
(syntax-magenta "#EF89DF")
|
||||
(syntax-blue "#508AE0")
|
||||
(syntax-purple "#6434A3")
|
||||
(syntax-green "#88D26E")
|
||||
(syntax-teal "#008080")
|
||||
(syntax-red "#FF6B6B")
|
||||
(syntax-orange "#FFB347")
|
||||
(syntax-cyan "#89DAFF")
|
||||
|
||||
;; UI colors
|
||||
(ui-cursor "#6434A3") ; Purple cursor for visibility
|
||||
(ui-fringe "#F8F9FA") ; Subtle fringe
|
||||
(ui-mode-line "#508AE0") ; Bright blue mode line
|
||||
(ui-mode-line-inactive "#C0C0C0")
|
||||
(ui-search "#C0FFC0") ; Bright green search
|
||||
(ui-search-fail "#FFC0C0") ; Bright red for failed search
|
||||
)
|
||||
|
||||
(custom-theme-set-faces
|
||||
'MTF4-extended
|
||||
|
||||
;; Basic faces - High contrast foundation
|
||||
`(default ((t (:background ,bg-primary :foreground ,fg-primary))))
|
||||
`(cursor ((t (:background ,ui-cursor))))
|
||||
`(fringe ((t (:background ,ui-fringe))))
|
||||
`(hl-line ((t (:background ,bg-highlight))))
|
||||
`(highlight ((t (:background ,bg-highlight))))
|
||||
`(region ((t (:background ,bg-region :foreground ,fg-primary))))
|
||||
`(secondary-selection ((t (:background ,syntax-cyan :foreground ,fg-primary))))
|
||||
`(lazy-highlight ((t (:background ,ui-search :foreground ,fg-primary))))
|
||||
|
||||
;; Mode line - Bright and clear
|
||||
`(mode-line ((t (:foreground "white" :background ,ui-mode-line :box nil))))
|
||||
`(mode-line-inactive ((t (:foreground ,fg-primary :background ,ui-mode-line-inactive :box nil))))
|
||||
`(mode-line-buffer-id ((t (:foreground "white" :weight bold))))
|
||||
`(mode-line-emphasis ((t (:foreground "white" :weight bold))))
|
||||
`(mode-line-highlight ((t (:foreground "white"))))
|
||||
|
||||
;; Syntax highlighting - Bright, distinct colors
|
||||
`(font-lock-builtin-face ((t (:foreground ,syntax-purple))))
|
||||
`(font-lock-comment-face ((t (:foreground ,fg-comment :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((t (:foreground ,fg-comment))))
|
||||
`(font-lock-constant-face ((t (:foreground ,syntax-magenta))))
|
||||
`(font-lock-doc-face ((t (:foreground ,syntax-green))))
|
||||
`(font-lock-function-name-face ((t (:foreground ,syntax-blue))))
|
||||
`(font-lock-keyword-face ((t (:foreground ,syntax-purple :weight bold))))
|
||||
`(font-lock-string-face ((t (:foreground ,syntax-teal))))
|
||||
`(font-lock-type-face ((t (:foreground ,syntax-green))))
|
||||
`(font-lock-variable-name-face ((t (:foreground ,syntax-orange))))
|
||||
`(font-lock-preprocessor-face ((t (:foreground ,syntax-purple))))
|
||||
`(font-lock-warning-face ((t (:foreground ,syntax-red :weight bold))))
|
||||
`(font-lock-error-face ((t (:foreground ,syntax-red :weight bold))))
|
||||
|
||||
;; Search and matching
|
||||
`(isearch ((t (:background ,ui-search :foreground ,fg-primary))))
|
||||
`(isearch-fail ((t (:background ,ui-search-fail :foreground ,fg-primary))))
|
||||
`(match ((t (:background ,syntax-green :foreground ,bg-primary))))
|
||||
|
||||
;; Minibuffer
|
||||
`(minibuffer-prompt ((t (:foreground ,syntax-blue :weight bold))))
|
||||
|
||||
;; Line numbers
|
||||
`(line-number ((t (:foreground ,fg-comment :background ,bg-secondary))))
|
||||
`(line-number-current-line ((t (:foreground ,syntax-blue :background ,bg-tertiary :weight bold))))
|
||||
|
||||
;; Diff
|
||||
`(diff-added ((t (:background "#E0FFE0" :foreground ,syntax-green))))
|
||||
`(diff-removed ((t (:background "#FFE0E0" :foreground ,syntax-red))))
|
||||
`(diff-changed ((t (:background "#FFFFE0" :foreground ,syntax-orange))))
|
||||
|
||||
;; Whitespace
|
||||
`(whitespace-line ((t (:foreground ,syntax-red :background "#FFFF88"))))
|
||||
`(whitespace-tab ((t (:foreground "#E0E0E0" :background "white"))))
|
||||
`(whitespace-hspace ((t (:foreground "#E0E0E0"))))
|
||||
|
||||
;; Links
|
||||
`(link ((t (:foreground ,syntax-blue :underline t))))
|
||||
`(link-visited ((t (:foreground ,syntax-purple :underline t))))
|
||||
|
||||
;; Org-mode
|
||||
`(org-level-1 ((t (:foreground ,syntax-purple :weight bold :height 1.2))))
|
||||
`(org-level-2 ((t (:foreground ,syntax-blue :weight bold))))
|
||||
`(org-level-3 ((t (:foreground ,syntax-magenta :weight bold))))
|
||||
`(org-done ((t (:foreground ,syntax-green :weight bold))))
|
||||
`(org-todo ((t (:foreground ,syntax-red :weight bold))))
|
||||
`(org-date ((t (:foreground ,syntax-teal))))
|
||||
`(org-block ((t (:background ,bg-secondary :foreground ,fg-primary))))
|
||||
`(org-code ((t (:foreground ,syntax-orange))))
|
||||
|
||||
;; Terminal compatibility
|
||||
`(term-color-black ((t (:foreground ,fg-primary :background ,fg-primary))))
|
||||
`(term-color-red ((t (:foreground ,syntax-red :background ,syntax-red))))
|
||||
`(term-color-green ((t (:foreground ,syntax-green :background ,syntax-green))))
|
||||
`(term-color-yellow ((t (:foreground ,syntax-orange :background ,syntax-orange))))
|
||||
`(term-color-blue ((t (:foreground ,syntax-blue :background ,syntax-blue))))
|
||||
`(term-color-magenta ((t (:foreground ,syntax-magenta :background ,syntax-magenta))))
|
||||
`(term-color-cyan ((t (:foreground ,syntax-teal :background ,syntax-teal))))
|
||||
`(term-color-white ((t (:foreground ,bg-primary :background ,bg-primary))))
|
||||
|
||||
;; Company (autocompletion)
|
||||
`(company-tooltip ((t (:background ,bg-secondary :foreground ,fg-primary))))
|
||||
`(company-tooltip-selection ((t (:background ,syntax-blue :foreground "white"))))
|
||||
`(company-tooltip-common ((t (:foreground ,syntax-purple))))
|
||||
`(company-scrollbar-bg ((t (:background ,bg-tertiary))))
|
||||
`(company-scrollbar-fg ((t (:background ,fg-comment))))
|
||||
|
||||
;; Ivy/Helm
|
||||
`(ivy-current-match ((t (:background ,syntax-blue :foreground "white"))))
|
||||
`(ivy-minibuffer-match-face-1 ((t (:foreground ,fg-tertiary))))
|
||||
`(ivy-minibuffer-match-face-2 ((t (:foreground ,syntax-purple :weight bold))))
|
||||
`(ivy-minibuffer-match-face-3 ((t (:foreground ,syntax-magenta))))
|
||||
`(ivy-minibuffer-match-face-4 ((t (:foreground ,syntax-green))))
|
||||
|
||||
;; Dired
|
||||
`(dired-directory ((t (:foreground ,syntax-blue :weight bold))))
|
||||
`(dired-flagged ((t (:foreground ,syntax-red))))
|
||||
`(dired-symlink ((t (:foreground ,syntax-magenta))))
|
||||
))
|
||||
|
||||
(provide-theme 'MTF4-extended)
|
||||
@@ -0,0 +1,142 @@
|
||||
;;; themes/MTF4-extended-theme.el -*- lexical-binding: t; -*-
|
||||
|
||||
;; MTF4-extended-theme.el
|
||||
;; A brighter, high-contrast light theme based on MTF4 with extended color palette
|
||||
|
||||
(deftheme MTF4-extended
|
||||
"A brighter, high-contrast light theme with extended color palette based on MTF4.")
|
||||
|
||||
(let (
|
||||
;; Core colors - Bright high-contrast palette
|
||||
(bg-primary "#FFFFFF")
|
||||
(bg-secondary "#F8F9FA")
|
||||
(bg-tertiary "#F0F0F0")
|
||||
(bg-highlight "#E0E0FF")
|
||||
(bg-region "#C0C0FF")
|
||||
|
||||
(fg-primary "#202020")
|
||||
(fg-secondary "#444444")
|
||||
(fg-tertiary "#666666")
|
||||
(fg-comment "#8D8D84")
|
||||
|
||||
;; Syntax colors - Bright and distinct
|
||||
(syntax-magenta "#EF89DF")
|
||||
(syntax-blue "#508AE0")
|
||||
(syntax-purple "#6434A3")
|
||||
(syntax-green "#88D26E")
|
||||
(syntax-teal "#008080")
|
||||
(syntax-red "#FF6B6B")
|
||||
(syntax-orange "#FFB347")
|
||||
(syntax-cyan "#89DAFF")
|
||||
|
||||
;; UI colors
|
||||
(ui-cursor "#6434A3") ; Purple cursor for visibility
|
||||
(ui-fringe "#F8F9FA") ; Subtle fringe
|
||||
(ui-mode-line "#508AE0") ; Bright blue mode line
|
||||
(ui-mode-line-inactive "#C0C0C0")
|
||||
(ui-search "#C0FFC0") ; Bright green search
|
||||
(ui-search-fail "#FFC0C0") ; Bright red for failed search
|
||||
)
|
||||
|
||||
(custom-theme-set-faces
|
||||
'MTF4-extended
|
||||
|
||||
;; Basic faces - High contrast foundation
|
||||
`(default ((t (:background ,bg-primary :foreground ,fg-primary))))
|
||||
`(cursor ((t (:background ,ui-cursor))))
|
||||
`(fringe ((t (:background ,ui-fringe))))
|
||||
`(hl-line ((t (:background ,bg-highlight))))
|
||||
`(highlight ((t (:background ,bg-highlight))))
|
||||
`(region ((t (:background ,bg-region :foreground ,fg-primary))))
|
||||
`(secondary-selection ((t (:background ,syntax-cyan :foreground ,fg-primary))))
|
||||
`(lazy-highlight ((t (:background ,ui-search :foreground ,fg-primary))))
|
||||
|
||||
;; Mode line - Bright and clear
|
||||
`(mode-line ((t (:foreground "white" :background ,ui-mode-line :box nil))))
|
||||
`(mode-line-inactive ((t (:foreground ,fg-primary :background ,ui-mode-line-inactive :box nil))))
|
||||
`(mode-line-buffer-id ((t (:foreground "white" :weight bold))))
|
||||
`(mode-line-emphasis ((t (:foreground "white" :weight bold))))
|
||||
`(mode-line-highlight ((t (:foreground "white"))))
|
||||
|
||||
;; Syntax highlighting - Bright, distinct colors
|
||||
`(font-lock-builtin-face ((t (:foreground ,syntax-purple))))
|
||||
`(font-lock-comment-face ((t (:foreground ,fg-comment :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((t (:foreground ,fg-comment))))
|
||||
`(font-lock-constant-face ((t (:foreground ,syntax-magenta))))
|
||||
`(font-lock-doc-face ((t (:foreground ,syntax-green))))
|
||||
`(font-lock-function-name-face ((t (:foreground ,syntax-blue))))
|
||||
`(font-lock-keyword-face ((t (:foreground ,syntax-purple :weight bold))))
|
||||
`(font-lock-string-face ((t (:foreground ,syntax-teal))))
|
||||
`(font-lock-type-face ((t (:foreground ,syntax-green))))
|
||||
`(font-lock-variable-name-face ((t (:foreground ,syntax-orange))))
|
||||
`(font-lock-preprocessor-face ((t (:foreground ,syntax-purple))))
|
||||
`(font-lock-warning-face ((t (:foreground ,syntax-red :weight bold))))
|
||||
`(font-lock-error-face ((t (:foreground ,syntax-red :weight bold))))
|
||||
|
||||
;; Search and matching
|
||||
`(isearch ((t (:background ,ui-search :foreground ,fg-primary))))
|
||||
`(isearch-fail ((t (:background ,ui-search-fail :foreground ,fg-primary))))
|
||||
`(match ((t (:background ,syntax-green :foreground ,bg-primary))))
|
||||
|
||||
;; Minibuffer
|
||||
`(minibuffer-prompt ((t (:foreground ,syntax-blue :weight bold))))
|
||||
|
||||
;; Line numbers
|
||||
`(line-number ((t (:foreground ,fg-comment :background ,bg-secondary))))
|
||||
`(line-number-current-line ((t (:foreground ,syntax-blue :background ,bg-tertiary :weight bold))))
|
||||
|
||||
;; Diff
|
||||
`(diff-added ((t (:background "#E0FFE0" :foreground ,syntax-green))))
|
||||
`(diff-removed ((t (:background "#FFE0E0" :foreground ,syntax-red))))
|
||||
`(diff-changed ((t (:background "#FFFFE0" :foreground ,syntax-orange))))
|
||||
|
||||
;; Whitespace
|
||||
`(whitespace-line ((t (:foreground ,syntax-red :background "#FFFF88"))))
|
||||
`(whitespace-tab ((t (:foreground "#E0E0E0" :background "white"))))
|
||||
`(whitespace-hspace ((t (:foreground "#E0E0E0"))))
|
||||
|
||||
;; Links
|
||||
`(link ((t (:foreground ,syntax-blue :underline t))))
|
||||
`(link-visited ((t (:foreground ,syntax-purple :underline t))))
|
||||
|
||||
;; Org-mode
|
||||
`(org-level-1 ((t (:foreground ,syntax-purple :weight bold :height 1.2))))
|
||||
`(org-level-2 ((t (:foreground ,syntax-blue :weight bold))))
|
||||
`(org-level-3 ((t (:foreground ,syntax-magenta :weight bold))))
|
||||
`(org-done ((t (:foreground ,syntax-green :weight bold))))
|
||||
`(org-todo ((t (:foreground ,syntax-red :weight bold))))
|
||||
`(org-date ((t (:foreground ,syntax-teal))))
|
||||
`(org-block ((t (:background ,bg-secondary :foreground ,fg-primary))))
|
||||
`(org-code ((t (:foreground ,syntax-orange))))
|
||||
|
||||
;; Terminal compatibility
|
||||
`(term-color-black ((t (:foreground ,fg-primary :background ,fg-primary))))
|
||||
`(term-color-red ((t (:foreground ,syntax-red :background ,syntax-red))))
|
||||
`(term-color-green ((t (:foreground ,syntax-green :background ,syntax-green))))
|
||||
`(term-color-yellow ((t (:foreground ,syntax-orange :background ,syntax-orange))))
|
||||
`(term-color-blue ((t (:foreground ,syntax-blue :background ,syntax-blue))))
|
||||
`(term-color-magenta ((t (:foreground ,syntax-magenta :background ,syntax-magenta))))
|
||||
`(term-color-cyan ((t (:foreground ,syntax-teal :background ,syntax-teal))))
|
||||
`(term-color-white ((t (:foreground ,bg-primary :background ,bg-primary))))
|
||||
|
||||
;; Company (autocompletion)
|
||||
`(company-tooltip ((t (:background ,bg-secondary :foreground ,fg-primary))))
|
||||
`(company-tooltip-selection ((t (:background ,syntax-blue :foreground "white"))))
|
||||
`(company-tooltip-common ((t (:foreground ,syntax-purple))))
|
||||
`(company-scrollbar-bg ((t (:background ,bg-tertiary))))
|
||||
`(company-scrollbar-fg ((t (:background ,fg-comment))))
|
||||
|
||||
;; Ivy/Helm
|
||||
`(ivy-current-match ((t (:background ,syntax-blue :foreground "white"))))
|
||||
`(ivy-minibuffer-match-face-1 ((t (:foreground ,fg-tertiary))))
|
||||
`(ivy-minibuffer-match-face-2 ((t (:foreground ,syntax-purple :weight bold))))
|
||||
`(ivy-minibuffer-match-face-3 ((t (:foreground ,syntax-magenta))))
|
||||
`(ivy-minibuffer-match-face-4 ((t (:foreground ,syntax-green))))
|
||||
|
||||
;; Dired
|
||||
`(dired-directory ((t (:foreground ,syntax-blue :weight bold))))
|
||||
`(dired-flagged ((t (:foreground ,syntax-red))))
|
||||
`(dired-symlink ((t (:foreground ,syntax-magenta))))
|
||||
))
|
||||
|
||||
(provide-theme 'MTF4-extended)
|
||||
@@ -0,0 +1,129 @@
|
||||
;;; 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)
|
||||
@@ -0,0 +1,222 @@
|
||||
;;; camm1-theme.el --- Theme
|
||||
|
||||
;; Copyright (C) 2026 , Lvy
|
||||
|
||||
;; Author: Lvy
|
||||
;; Version: 0.1
|
||||
;; Package-Requires: ((emacs "24.1"))
|
||||
;; Created with ThemeCreator, https://github.com/mswift42/themecreator.
|
||||
|
||||
;; This program is free software: you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;; This file is not part of Emacs.
|
||||
|
||||
;;; Commentary:
|
||||
;;; camm1 theme created by Lvy in 2026
|
||||
|
||||
;;; Code:
|
||||
|
||||
(deftheme camm1)
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
(fg1 "#111")
|
||||
(fg2 "#242424")
|
||||
(fg3 "#373737")
|
||||
(fg4 "#4a4a4a")
|
||||
(fg6 "#0d0d0d")
|
||||
(bg1 "#f9fbfb")
|
||||
(bg2 "#e5e7e7")
|
||||
(bg3 "#d1d3d3")
|
||||
(bg4 "#bdbfbf")
|
||||
(builtin "#eb4747")
|
||||
(keyword "#55b0f6")
|
||||
(const "#ffa200")
|
||||
(comment "#b2b6b8")
|
||||
(func "#40b7bf")
|
||||
(str "#abce1c")
|
||||
(type "#ae58e4")
|
||||
(var "#f04ceb")
|
||||
(selection "#005fdb")
|
||||
(warning "#C82829")
|
||||
(warning2 "#f48925")
|
||||
(unspec (when (>= emacs-major-version 29) 'unspecified)))
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(default ((,class (:background ,bg1 :foreground ,fg1))))
|
||||
;; syntax
|
||||
`(font-lock-builtin-face ((,class (:foreground ,builtin))))
|
||||
`(font-lock-comment-face ((,class (:foreground ,comment))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,const))))
|
||||
`(font-lock-reference-face ((,class (:foreground ,const))))
|
||||
`(font-lock-constant-face ((,class (:foreground ,const))))
|
||||
`(font-lock-doc-face ((,class (:foreground ,comment))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,func ))))
|
||||
`(font-lock-keyword-face ((,class (:bold ,class :foreground ,keyword))))
|
||||
`(font-lock-string-face ((,class (:foreground ,str))))
|
||||
`(font-lock-type-face ((,class (:foreground ,type ))))
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,var))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,warning :background ,bg2))))
|
||||
`(term-color-black ((,class (:foreground ,fg2 :background ,unspec))))
|
||||
;; `(region ((,class (:background ,fg1 :foreground ,bg1))))
|
||||
`(region ((,class (:background ,selection))))
|
||||
`(highlight ((,class (:foreground ,fg3 :background ,bg3))))
|
||||
`(hl-line ((,class (:background ,bg2))))
|
||||
`(fringe ((,class (:background ,bg2 :foreground ,fg4))))
|
||||
`(cursor ((,class (:background ,fg4))))
|
||||
`(isearch ((,class (:bold t :foreground ,warning :background ,bg3))))
|
||||
;;mode
|
||||
`(mode-line ((,class (:box (:line-width 1 :color nil) :bold t :foreground ,fg4 :background ,bg2))))
|
||||
`(mode-line-inactive ((,class (:box (:line-width 1 :color nil :style pressed-button) :foreground ,var :background ,bg1 :weight normal))))
|
||||
`(mode-line-buffer-id ((,class (:bold t :foreground ,func :background ,unspec))))
|
||||
`(mode-line-highlight ((,class (:foreground ,keyword :box nil :weight bold))))
|
||||
`(mode-line-emphasis ((,class (:foreground ,fg1))))
|
||||
`(vertical-border ((,class (:foreground ,fg3))))
|
||||
|
||||
`(minibuffer-prompt ((,class (:bold t :foreground ,keyword))))
|
||||
`(default-italic ((,class (:italic t))))
|
||||
`(link ((,class (:foreground ,const :underline t))))
|
||||
`(font-latex-bold-face ((,class (:foreground ,type))))
|
||||
`(font-latex-italic-face ((,class (:foreground ,var :italic t))))
|
||||
`(font-latex-string-face ((,class (:foreground ,str))))
|
||||
`(font-latex-match-reference-keywords ((,class (:foreground ,const))))
|
||||
`(font-latex-match-variable-keywords ((,class (:foreground ,var))))
|
||||
`(ido-only-match ((,class (:foreground ,warning))))
|
||||
`(org-sexp-date ((,class (:foreground ,fg4))))
|
||||
`(ido-first-match ((,class (:foreground ,keyword :bold t))))
|
||||
`(ivy-current-match ((,class (:foreground ,fg3 :inherit highlight :underline t))))
|
||||
`(gnus-header-content ((,class (:foreground ,keyword))))
|
||||
`(gnus-header-from ((,class (:foreground ,var))))
|
||||
`(gnus-header-name ((,class (:foreground ,type))))
|
||||
`(gnus-header-subject ((,class (:foreground ,func :bold t))))
|
||||
`(mu4e-view-url-number-face ((,class (:foreground ,type))))
|
||||
`(mu4e-cited-1-face ((,class (:foreground ,fg2))))
|
||||
`(mu4e-cited-7-face ((,class (:foreground ,fg3))))
|
||||
`(mu4e-header-marks-face ((,class (:foreground ,type))))
|
||||
`(ffap ((,class (:foreground ,fg4))))
|
||||
`(js2-private-function-call ((,class (:foreground ,const))))
|
||||
`(js2-jsdoc-html-tag-delimiter ((,class (:foreground ,str))))
|
||||
`(js2-jsdoc-html-tag-name ((,class (:foreground ,var))))
|
||||
`(js2-external-variable ((,class (:foreground ,type ))))
|
||||
`(js2-function-param ((,class (:foreground ,const))))
|
||||
`(js2-jsdoc-value ((,class (:foreground ,str))))
|
||||
`(js2-private-member ((,class (:foreground ,fg3))))
|
||||
`(js3-warning-face ((,class (:underline ,keyword))))
|
||||
`(js3-error-face ((,class (:underline ,warning))))
|
||||
`(js3-external-variable-face ((,class (:foreground ,var))))
|
||||
`(js3-function-param-face ((,class (:foreground ,fg2))))
|
||||
`(js3-jsdoc-tag-face ((,class (:foreground ,keyword))))
|
||||
`(js3-instance-member-face ((,class (:foreground ,const))))
|
||||
`(warning ((,class (:foreground ,warning))))
|
||||
`(ac-completion-face ((,class (:underline t :foreground ,keyword))))
|
||||
`(info-quoted-name ((,class (:foreground ,builtin))))
|
||||
`(info-string ((,class (:foreground ,str))))
|
||||
`(icompletep-determined ((,class :foreground ,builtin)))
|
||||
`(undo-tree-visualizer-current-face ((,class :foreground ,builtin)))
|
||||
`(undo-tree-visualizer-default-face ((,class :foreground ,fg2)))
|
||||
`(undo-tree-visualizer-unmodified-face ((,class :foreground ,var)))
|
||||
`(undo-tree-visualizer-register-face ((,class :foreground ,type)))
|
||||
`(slime-repl-inputed-output-face ((,class (:foreground ,type))))
|
||||
`(trailing-whitespace ((,class :foreground ,unspec :background ,warning)))
|
||||
`(rainbow-delimiters-depth-1-face ((,class :foreground ,fg1)))
|
||||
`(rainbow-delimiters-depth-2-face ((,class :foreground ,type)))
|
||||
`(rainbow-delimiters-depth-3-face ((,class :foreground ,var)))
|
||||
`(rainbow-delimiters-depth-4-face ((,class :foreground ,const)))
|
||||
`(rainbow-delimiters-depth-5-face ((,class :foreground ,keyword)))
|
||||
`(rainbow-delimiters-depth-6-face ((,class :foreground ,fg1)))
|
||||
`(rainbow-delimiters-depth-7-face ((,class :foreground ,type)))
|
||||
`(rainbow-delimiters-depth-8-face ((,class :foreground ,var)))
|
||||
`(magit-item-highlight ((,class :background ,bg3)))
|
||||
`(magit-section-heading ((,class (:foreground ,keyword :weight bold))))
|
||||
`(magit-hunk-heading ((,class (:background ,bg3))))
|
||||
`(magit-section-highlight ((,class (:background ,bg2))))
|
||||
`(magit-hunk-heading-highlight ((,class (:background ,bg3))))
|
||||
`(magit-diff-context-highlight ((,class (:background ,bg3 :foreground ,fg3))))
|
||||
`(magit-diffstat-added ((,class (:foreground ,type))))
|
||||
`(magit-diffstat-removed ((,class (:foreground ,var))))
|
||||
`(magit-process-ok ((,class (:foreground ,func :weight bold))))
|
||||
`(magit-process-ng ((,class (:foreground ,warning :weight bold))))
|
||||
`(magit-branch ((,class (:foreground ,const :weight bold))))
|
||||
`(magit-log-author ((,class (:foreground ,fg3))))
|
||||
`(magit-hash ((,class (:foreground ,fg2))))
|
||||
`(magit-diff-file-header ((,class (:foreground ,fg2 :background ,bg3))))
|
||||
`(lazy-highlight ((,class (:foreground ,fg2 :background ,bg3))))
|
||||
`(term ((,class (:foreground ,fg1 :background ,bg1))))
|
||||
`(term-color-black ((,class (:foreground ,bg3 :background ,bg3))))
|
||||
`(term-color-blue ((,class (:foreground ,func :background ,func))))
|
||||
`(term-color-red ((,class (:foreground ,keyword :background ,bg3))))
|
||||
`(term-color-green ((,class (:foreground ,type :background ,bg3))))
|
||||
`(term-color-yellow ((,class (:foreground ,var :background ,var))))
|
||||
`(term-color-magenta ((,class (:foreground ,builtin :background ,builtin))))
|
||||
`(term-color-cyan ((,class (:foreground ,str :background ,str))))
|
||||
`(term-color-white ((,class (:foreground ,fg2 :background ,fg2))))
|
||||
`(rainbow-delimiters-unmatched-face ((,class :foreground ,warning))))
|
||||
;; Legacy
|
||||
(if (< emacs-major-version 22)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(show-paren-match-face ((,class (:background ,warning))))) ;; obsoleted in 22.1, removed 2016
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(show-paren-match ((,class (:foreground ,bg1 :background ,str))))
|
||||
`(show-paren-mismatch ((,class (:foreground ,bg1 :background ,warning))))))
|
||||
;; emacs >= 26.1
|
||||
(when (>= emacs-major-version 26)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(line-number ((t (:inherit fringe))))
|
||||
`(line-number-current-line ((t (:inherit fringe :foreground ,fg6 :weight bold))))))
|
||||
|
||||
;; emacs >= 27.1
|
||||
(when (>= emacs-major-version 27)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(tab-line ((,class (:background ,bg2 :foreground ,fg4))))
|
||||
`(tab-line-tab ((,class (:inherit tab-line))))
|
||||
`(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4))))
|
||||
`(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1))))
|
||||
`(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2))))))
|
||||
(when (>= emacs-major-version 28)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(line-number ((t (:inherit fringe))))
|
||||
`(line-number-current-line ((t (:inherit fringe :foreground ,fg6 :weight bold))))))
|
||||
;; emacs >= 27.1
|
||||
(when (>= emacs-major-version 27)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(tab-line ((,class (:background ,bg2 :foreground ,fg4))))
|
||||
`(tab-line-tab ((,class (:inherit tab-line))))
|
||||
`(tab-line-tab-inactive ((,class (:background ,bg2 :foreground ,fg4))))
|
||||
`(tab-line-tab-current ((,class (:background ,bg1 :foreground ,fg1))))
|
||||
`(tab-line-highlight ((,class (:background ,bg1 :foreground ,fg2))))))
|
||||
(when (>= emacs-major-version 28)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(tab-line-tab-modified ((,class (:foreground ,warning2 :weight bold))))))
|
||||
(when (boundp 'font-lock-regexp-face)
|
||||
(custom-theme-set-faces
|
||||
'camm1
|
||||
`(font-lock-regexp-face ((,class (:inherit font-lock-string-face :underline t)))))))
|
||||
|
||||
;;;###autoload
|
||||
(when load-file-name
|
||||
(add-to-list 'custom-theme-load-path
|
||||
(file-name-as-directory (file-name-directory load-file-name))))
|
||||
|
||||
(provide-theme 'camm1)
|
||||
|
||||
;; Local Variables:
|
||||
;; no-byte-compile: t
|
||||
;; End:
|
||||
|
||||
;;; camm1-theme.el ends here
|
||||
@@ -0,0 +1,118 @@
|
||||
;;; camm2-theme.el --- A custom light theme based on provided colors -*- lexical-binding: t; -*-
|
||||
|
||||
(deftheme camm2
|
||||
"Custom light theme created from user-supplied colors.")
|
||||
|
||||
;; Helper to reference colors by name (makes the theme cleaner)
|
||||
(defun my-color (name)
|
||||
(cl-case name
|
||||
(fg1 "#111")
|
||||
(fg2 "#242424")
|
||||
(fg3 "#373737")
|
||||
(fg4 "#4a4a4a")
|
||||
(fg6 "#0d0d0d")
|
||||
(bg1 "#f9fbfb")
|
||||
(bg2 "#e5e7e7")
|
||||
(bg3 "#d1d3d3")
|
||||
(bg4 "#bdbfbf")
|
||||
(builtin "#40b7bf")
|
||||
(keyword "#55b0f6")
|
||||
(const "#ffa200")
|
||||
(comment "#b2b6b8")
|
||||
(func "#eb4747")
|
||||
(str "#a8dc19")
|
||||
(type "#ae58e4")
|
||||
(var "#f04ceb")
|
||||
(selection "#005fdb")
|
||||
(warning "#C82829")
|
||||
(warning2 "#f48925")))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'camm2
|
||||
|
||||
;; Basic faces
|
||||
`(default ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg1)))))
|
||||
`(cursor ((t (:background ,(my-color 'fg4)))))
|
||||
`(fringe ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg3)))))
|
||||
`(vertical-border ((t (:foreground ,(my-color 'bg3)))))
|
||||
`(linum ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg3))))) ; legacy
|
||||
`(line-number ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg3)))))
|
||||
`(line-number-current-line ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg1) :weight bold))))
|
||||
|
||||
;; Font lock faces (syntax highlighting)
|
||||
`(font-lock-builtin-face ((t (:foreground ,(my-color 'builtin)))))
|
||||
`(font-lock-keyword-face ((t (:foreground ,(my-color 'keyword)))))
|
||||
`(font-lock-constant-face ((t (:foreground ,(my-color 'const)))))
|
||||
`(font-lock-comment-face ((t (:foreground ,(my-color 'comment) :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((t (:foreground ,(my-color 'comment) :slant italic))))
|
||||
`(font-lock-function-name-face ((t (:foreground ,(my-color 'func)))))
|
||||
`(font-lock-string-face ((t (:foreground ,(my-color 'str)))))
|
||||
`(font-lock-type-face ((t (:foreground ,(my-color 'type)))))
|
||||
`(font-lock-variable-name-face ((t (:foreground ,(my-color 'var)))))
|
||||
`(font-lock-doc-face ((t (:foreground ,(my-color 'comment) :slant italic))))
|
||||
`(font-lock-preprocessor-face ((t (:foreground ,(my-color 'builtin)))))
|
||||
`(font-lock-warning-face ((t (:foreground ,(my-color 'warning) :weight bold))))
|
||||
|
||||
;; Region and selection
|
||||
`(region ((t (:background ,(my-color 'selection) :foreground ,(my-color 'bg1)))))
|
||||
`(secondary-selection ((t (:background ,(my-color 'bg3)))))
|
||||
|
||||
;; Mode line
|
||||
`(mode-line ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg1) :box (:line-width 1 :color ,(my-color 'bg4))))))
|
||||
`(mode-line-inactive ((t (:background ,(my-color 'bg1) :foreground ,(my-color 'fg3) :box (:line-width 1 :color ,(my-color 'bg3))))))
|
||||
|
||||
;; Minibuffer and prompts
|
||||
`(minibuffer-prompt ((t (:foreground ,(my-color 'keyword) :weight bold))))
|
||||
|
||||
;; Highlighting
|
||||
`(highlight ((t (:background ,(my-color 'bg3)))))
|
||||
`(hl-line ((t (:background ,(my-color 'bg2)))))
|
||||
`(isearch ((t (:background ,(my-color 'warning2) :foreground ,(my-color 'bg1)))))
|
||||
`(lazy-highlight ((t (:background ,(my-color 'bg4)))))
|
||||
|
||||
;; Matching parentheses
|
||||
`(show-paren-match ((t (:background ,(my-color 'bg3) :foreground ,(my-color 'fg1) :weight bold))))
|
||||
`(show-paren-mismatch ((t (:background ,(my-color 'warning) :foreground ,(my-color 'bg1)))))
|
||||
|
||||
;; Error / warning / success
|
||||
`(error ((t (:foreground ,(my-color 'warning) :weight bold))))
|
||||
`(warning ((t (:foreground ,(my-color 'warning2) :weight bold))))
|
||||
`(success ((t (:foreground ,(my-color 'str)))))
|
||||
|
||||
;; Button and link
|
||||
`(link ((t (:foreground ,(my-color 'keyword) :underline t))))
|
||||
`(link-visited ((t (:foreground ,(my-color 'type) :underline t))))
|
||||
|
||||
;; Tooltip
|
||||
`(tooltip ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg1) :box (:line-width 1 :color ,(my-color 'bg4))))))
|
||||
|
||||
;; Dired
|
||||
`(dired-directory ((t (:foreground ,(my-color 'keyword) :weight bold))))
|
||||
`(dired-symlink ((t (:foreground ,(my-color 'func)))))
|
||||
`(dired-ignored ((t (:foreground ,(my-color 'comment)))))
|
||||
|
||||
;; Custom faces used by Doom modules (modeline, dashboard, etc.)
|
||||
`(doom-modeline-bar ((t (:background ,(my-color 'keyword)))))
|
||||
`(doom-modeline-buffer-file ((t (:foreground ,(my-color 'func)))))
|
||||
`(doom-modeline-buffer-modified ((t (:foreground ,(my-color 'warning2)))))
|
||||
`(doom-modeline-project-dir ((t (:foreground ,(my-color 'type)))))
|
||||
|
||||
;; Company / autocomplete
|
||||
`(company-tooltip ((t (:background ,(my-color 'bg2) :foreground ,(my-color 'fg1)))))
|
||||
`(company-tooltip-selection ((t (:background ,(my-color 'selection) :foreground ,(my-color 'bg1)))))
|
||||
`(company-tooltip-common ((t (:foreground ,(my-color 'func)))))
|
||||
`(company-scrollbar-fg ((t (:background ,(my-color 'fg4)))))
|
||||
`(company-scrollbar-bg ((t (:background ,(my-color 'bg3)))))
|
||||
|
||||
;; Outline / Org headings (simple, can be extended)
|
||||
`(outline-1 ((t (:foreground ,(my-color 'type) :weight bold))))
|
||||
`(outline-2 ((t (:foreground ,(my-color 'func) :weight bold))))
|
||||
`(outline-3 ((t (:foreground ,(my-color 'keyword) :weight bold))))
|
||||
`(org-level-1 ((t (:inherit outline-1 :height 1.1))))
|
||||
`(org-level-2 ((t (:inherit outline-2 :height 1.05))))
|
||||
`(org-level-3 ((t (:inherit outline-3))))
|
||||
)
|
||||
|
||||
;; Provide the theme
|
||||
(provide-theme 'camm2)
|
||||
;;; camm2-theme.el ends here
|
||||
@@ -0,0 +1,223 @@
|
||||
;;; camm3-theme.el --- Custom theme based on user palette -*- lexical-binding: t; -*-
|
||||
|
||||
(deftheme camm3 "Custom theme with neutrals, syntax highlighting, and UI feedback.")
|
||||
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
;; Neutrals & surfaces
|
||||
(bg-base "#f9fbfb")
|
||||
(bg-panel "#f2f4f4")
|
||||
(bg-surface-2 "#e5e7e7")
|
||||
(bg-surface-3 "#d1d3d3")
|
||||
(border "#bdbfbf")
|
||||
(border-focus "#005fdb")
|
||||
|
||||
;; Text scale
|
||||
(text-primary "#0d0d0d")
|
||||
(text-secondary "#111111")
|
||||
(text-tertiary "#242424")
|
||||
(text-muted "#373737")
|
||||
(text-faint "#4a4a4a")
|
||||
(text-faint-2 "#5d5d5d")
|
||||
(text-inverse "#ffffff")
|
||||
|
||||
;; Syntax highlighting
|
||||
(code-comment "#b2b6b8")
|
||||
(code-builtin "#40b7bf")
|
||||
(code-keyword "#55b0f6")
|
||||
(code-constant "#ffa200")
|
||||
(code-function "#c42020")
|
||||
(code-string "#a8dc19")
|
||||
(code-type "#8a35b8")
|
||||
(code-variable "#f04ceb")
|
||||
(code-number "#f48925")
|
||||
(code-operator "#4a4a4a")
|
||||
|
||||
;; UI & feedback
|
||||
(ui-selection "#005fdb")
|
||||
(ui-selection-bg "#e6eeff")
|
||||
(ui-cursor "#005fdb")
|
||||
(ui-active-line "#f0f4ff")
|
||||
(status-error "#c82829")
|
||||
(status-warning "#f48925")
|
||||
(status-success "#22a653")
|
||||
(status-info "#3b82f6"))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'camm3
|
||||
;; Basic faces
|
||||
`(default ((,class (:background ,bg-base :foreground ,text-primary))))
|
||||
`(cursor ((,class (:background ,ui-cursor))))
|
||||
`(region ((,class (:background ,ui-selection-bg :foreground ,ui-selection))))
|
||||
`(fringe ((,class (:background ,bg-panel :foreground ,text-faint))))
|
||||
`(highlight ((,class (:background ,ui-active-line))))
|
||||
`(hl-line ((,class (:background ,ui-active-line))))
|
||||
`(vertical-border ((,class (:foreground ,border))))
|
||||
`(window-divider ((,class (:foreground ,border))))
|
||||
`(window-divider-first-pixel ((,class (:foreground ,border))))
|
||||
`(window-divider-last-pixel ((,class (:foreground ,border))))
|
||||
`(minibuffer-prompt ((,class (:foreground ,status-info :weight bold))))
|
||||
`(link ((,class (:foreground ,status-info :underline t))))
|
||||
`(link-visited ((,class (:foreground ,code-type :underline t))))
|
||||
`(shadow ((,class (:foreground ,text-faint))))
|
||||
`(success ((,class (:foreground ,status-success :weight bold))))
|
||||
`(warning ((,class (:foreground ,status-warning :weight bold))))
|
||||
`(error ((,class (:foreground ,status-error :weight bold))))
|
||||
|
||||
;; Mode line
|
||||
`(mode-line ((,class (:background ,bg-surface-2 :foreground ,text-primary
|
||||
:box (:line-width 1 :color ,border)))))
|
||||
`(mode-line-inactive ((,class (:background ,bg-panel :foreground ,text-faint
|
||||
:box (:line-width 1 :color ,border)))))
|
||||
`(mode-line-buffer-id ((,class (:weight bold :foreground ,ui-selection))))
|
||||
|
||||
;; Line numbers
|
||||
`(line-number ((,class (:background ,bg-base :foreground ,text-faint-2))))
|
||||
`(line-number-current-line ((,class (:background ,ui-active-line :foreground ,text-primary :weight bold))))
|
||||
|
||||
;; Font lock (syntax highlighting)
|
||||
`(font-lock-builtin-face ((,class (:foreground ,code-builtin))))
|
||||
`(font-lock-comment-face ((,class (:foreground ,code-comment :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:foreground ,code-comment :slant italic))))
|
||||
`(font-lock-constant-face ((,class (:foreground ,code-constant))))
|
||||
`(font-lock-doc-face ((,class (:foreground ,code-comment :slant italic))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,code-function))))
|
||||
`(font-lock-keyword-face ((,class (:foreground ,code-keyword))))
|
||||
`(font-lock-number-face ((,class (:foreground ,code-number))))
|
||||
`(font-lock-operator-face ((,class (:foreground ,code-operator))))
|
||||
`(font-lock-string-face ((,class (:foreground ,code-string))))
|
||||
`(font-lock-type-face ((,class (:foreground ,code-type))))
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,code-variable))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,status-warning :weight bold))))
|
||||
|
||||
;; Search & match
|
||||
`(isearch ((,class (:background ,ui-selection :foreground ,text-inverse))))
|
||||
`(isearch-fail ((,class (:background ,status-error :foreground ,text-inverse))))
|
||||
`(lazy-highlight ((,class (:background ,ui-selection-bg :foreground ,ui-selection :underline t))))
|
||||
`(match ((,class (:background ,ui-selection-bg :foreground ,ui-selection))))
|
||||
|
||||
;; Secondary selection (e.g., multiple-cursors)
|
||||
`(secondary-selection ((,class (:background ,bg-surface-3))))
|
||||
|
||||
;; Trailing whitespace
|
||||
`(trailing-whitespace ((,class (:background ,status-error :foreground ,text-inverse))))
|
||||
|
||||
;; Diff (vc-gutter, magit)
|
||||
`(diff-added ((,class (:foreground ,status-success))))
|
||||
`(diff-removed ((,class (:foreground ,status-error))))
|
||||
`(diff-refine-added ((,class (:background ,status-success :foreground ,text-inverse))))
|
||||
`(diff-refine-removed ((,class (:background ,status-error :foreground ,text-inverse))))
|
||||
`(diff-header ((,class (:background ,bg-panel :foreground ,text-tertiary))))
|
||||
`(diff-file-header ((,class (:background ,bg-surface-2 :foreground ,text-primary :weight bold))))
|
||||
|
||||
;; Org mode
|
||||
`(org-level-1 ((,class (:foreground ,ui-selection :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,code-function :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,code-type :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,code-variable :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,code-builtin :weight bold))))
|
||||
`(org-level-6 ((,class (:foreground ,code-constant :weight bold))))
|
||||
`(org-level-7 ((,class (:foreground ,code-keyword :weight bold))))
|
||||
`(org-level-8 ((,class (:foreground ,code-string :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,status-error :weight bold))))
|
||||
`(org-done ((,class (:foreground ,status-success :weight bold))))
|
||||
`(org-date ((,class (:foreground ,code-number :underline t))))
|
||||
`(org-link ((,class (:foreground ,status-info :underline t))))
|
||||
`(org-block ((,class (:background ,bg-surface-2 :extend t))))
|
||||
`(org-block-begin-line ((,class (:background ,bg-panel :foreground ,text-faint))))
|
||||
`(org-block-end-line ((,class (:background ,bg-panel :foreground ,text-faint))))
|
||||
|
||||
;; Doom modeline specific (if using doom-modeline)
|
||||
`(doom-modeline-bar ((,class (:background ,ui-selection))))
|
||||
`(doom-modeline-buffer-modified ((,class (:foreground ,status-warning))))
|
||||
`(doom-modeline-buffer-major-mode ((,class (:foreground ,code-type :weight bold))))
|
||||
`(doom-modeline-project-root-dir ((,class (:foreground ,code-builtin))))
|
||||
`(doom-modeline-evil-normal-state ((,class (:background ,ui-selection :foreground ,text-inverse))))
|
||||
`(doom-modeline-evil-insert-state ((,class (:background ,status-success :foreground ,text-inverse))))
|
||||
`(doom-modeline-evil-visual-state ((,class (:background ,code-variable :foreground ,text-inverse))))
|
||||
|
||||
;; Tree-sitter (if you use tree-sitter modes)
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,code-function))))
|
||||
`(tree-sitter-hl-face:function.builtin ((,class (:foreground ,code-builtin))))
|
||||
`(tree-sitter-hl-face:function ((,class (:foreground ,code-function))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,code-type))))
|
||||
`(tree-sitter-hl-face:constant ((,class (:foreground ,code-constant))))
|
||||
`(tree-sitter-hl-face:keyword ((,class (:foreground ,code-keyword))))
|
||||
`(tree-sitter-hl-face:string ((,class (:foreground ,code-string))))
|
||||
`(tree-sitter-hl-face:comment ((,class (:foreground ,code-comment :slant italic))))
|
||||
`(tree-sitter-hl-face:variable ((,class (:foreground ,code-variable))))
|
||||
`(tree-sitter-hl-face:number ((,class (:foreground ,code-number))))
|
||||
`(tree-sitter-hl-face:operator ((,class (:foreground ,code-operator))))
|
||||
`(tree-sitter-hl-face:property ((,class (:foreground ,text-secondary))))
|
||||
|
||||
;; Company / Corfu completion
|
||||
`(company-tooltip ((,class (:background ,bg-panel :foreground ,text-primary))))
|
||||
`(company-tooltip-selection ((,class (:background ,ui-selection-bg :foreground ,ui-selection))))
|
||||
`(company-tooltip-common ((,class (:foreground ,code-keyword))))
|
||||
`(company-tooltip-annotation ((,class (:foreground ,text-faint))))
|
||||
`(company-scrollbar-bg ((,class (:background ,bg-surface-3))))
|
||||
`(company-scrollbar-fg ((,class (:background ,border))))
|
||||
`(corfu-current ((,class (:background ,ui-selection-bg :foreground ,ui-selection))))
|
||||
|
||||
;; LSP / Flycheck
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,status-error)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,status-warning)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,status-info)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,ui-active-line :underline t))))
|
||||
`(lsp-face-highlight-read ((,class (:background ,ui-selection-bg :underline t))))
|
||||
`(lsp-face-highlight-write ((,class (:background ,ui-selection-bg :underline t))))
|
||||
|
||||
;; Whitespace mode
|
||||
`(whitespace-space ((,class (:foreground ,bg-surface-3))))
|
||||
`(whitespace-tab ((,class (:foreground ,bg-surface-3))))
|
||||
`(whitespace-newline ((,class (:foreground ,bg-surface-3))))
|
||||
`(whitespace-indentation ((,class (:foreground ,bg-surface-3))))
|
||||
`(whitespace-line ((,class (:background ,ui-active-line :foreground ,text-primary))))
|
||||
`(whitespace-empty ((,class (:background ,status-error :foreground ,text-inverse))))
|
||||
|
||||
;; Highlight indentation guides (indent-guides)
|
||||
`(highlight-indent-guides-character-face ((,class (:foreground ,border))))
|
||||
`(highlight-indent-guides-stack-character-face ((,class (:foreground ,bg-surface-3))))
|
||||
`(highlight-indent-guides-odd-face ((,class (:background ,bg-panel))))
|
||||
`(highlight-indent-guides-even-face ((,class (:background ,bg-base))))
|
||||
|
||||
;; IMenu / Outline
|
||||
`(imenu-list-entry-face-0 ((,class (:foreground ,code-keyword))))
|
||||
`(imenu-list-entry-face-1 ((,class (:foreground ,code-function))))
|
||||
`(imenu-list-entry-face-2 ((,class (:foreground ,code-type))))
|
||||
`(imenu-list-entry-face-3 ((,class (:foreground ,code-constant))))
|
||||
|
||||
;; Avy (jump hints)
|
||||
`(avy-lead-face ((,class (:background ,ui-selection :foreground ,text-inverse :weight bold))))
|
||||
`(avy-lead-face-0 ((,class (:background ,status-success :foreground ,text-inverse :weight bold))))
|
||||
`(avy-lead-face-1 ((,class (:background ,status-warning :foreground ,text-inverse :weight bold))))
|
||||
`(avy-lead-face-2 ((,class (:background ,code-variable :foreground ,text-inverse :weight bold))))
|
||||
`(avy-background-face ((,class (:background ,bg-panel :foreground ,text-faint))))
|
||||
|
||||
;; Denote (notes)
|
||||
`(denote-faces-link ((,class (:foreground ,status-info :underline t))))
|
||||
`(denote-faces-date ((,class (:foreground ,code-number))))
|
||||
`(denote-faces-keyword ((,class (:foreground ,code-keyword :weight bold))))
|
||||
`(denote-faces-title ((,class (:foreground ,text-primary :weight bold :height 1.2))))
|
||||
|
||||
;; Extra: markdown, json, etc.
|
||||
`(markdown-header-face-1 ((,class (:inherit org-level-1))))
|
||||
`(markdown-header-face-2 ((,class (:inherit org-level-2))))
|
||||
`(markdown-header-face-3 ((,class (:inherit org-level-3))))
|
||||
`(markdown-header-face-4 ((,class (:inherit org-level-4))))
|
||||
`(markdown-header-face-5 ((,class (:inherit org-level-5))))
|
||||
`(markdown-header-face-6 ((,class (:inherit org-level-6))))
|
||||
`(markdown-link-face ((,class (:inherit link))))
|
||||
`(markdown-url-face ((,class (:foreground ,code-number))))
|
||||
`(json-key-face ((,class (:foreground ,code-keyword))))
|
||||
`(json-number-face ((,class (:foreground ,code-number))))
|
||||
`(json-string-face ((,class (:foreground ,code-string))))
|
||||
`(json-boolean-face ((,class (:foreground ,code-constant))))
|
||||
`(json-null-face ((,class (:foreground ,code-constant))))
|
||||
|
||||
;; Custom faces used in user config (e.g., my-set-buffer-font buffer-face)
|
||||
`(buffer-face ((,class (:family "Noto Sans" :height 140))))))
|
||||
|
||||
;; Provide the theme
|
||||
(provide-theme 'camm3)
|
||||
|
||||
;;; camm3-theme.el ends here
|
||||
@@ -0,0 +1,152 @@
|
||||
;;; camm4-theme.el --- A light theme based on the camm4 palette -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
|
||||
(deftheme camm4
|
||||
"Light theme with a calm, readable palette.
|
||||
Core colours: blues (005FDB, 3B82F6, 007A8A, 40B7BF) and magenta (8A35B8, D33682).")
|
||||
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
;; Basic palette
|
||||
(camm4-bg "#fefcff")
|
||||
(camm4-fg "#101010")
|
||||
(camm4-cursor "#f04ceb")
|
||||
;; ANSI colours (index 01-16)
|
||||
(camm4-black "#E6EEFF") ; 01 – very light blueish grey
|
||||
(camm4-red "#C82829") ; 02
|
||||
(camm4-green "#419722") ; 03
|
||||
(camm4-yellow "#F48925") ; 04
|
||||
(camm4-blue "#005FDB") ; 05 – core blue
|
||||
(camm4-magenta "#EF89DF") ; 06 – core purple
|
||||
(camm4-cyan "#007A8A") ; 07 – core teal/blue
|
||||
(camm4-white "#4D4D4C") ; 08 – dark grey
|
||||
(camm4-brblack "#e2ecff") ; 09
|
||||
(camm4-brred "#E53935") ; 10
|
||||
(camm4-brgreen "#22A653") ; 11
|
||||
(camm4-bryellow "#FFA200") ; 12
|
||||
(camm4-brblue "#3B82F6") ; 13 – core bright blue
|
||||
(camm4-brmagenta "#D33682") ; 14 – core bright magenta
|
||||
(camm4-brcyan "#40B7BF") ; 15 – core bright teal
|
||||
(camm4-brwhite "#1D1F21")) ; 16 – near black
|
||||
|
||||
(custom-theme-set-faces
|
||||
'camm4
|
||||
;; Basic faces
|
||||
`(default ((,class (:background ,camm4-bg :foreground ,camm4-fg))))
|
||||
`(cursor ((,class (:background ,camm4-cursor))))
|
||||
`(fringe ((,class (:background ,camm4-bg :foreground ,camm4-white))))
|
||||
`(region ((,class (:background ,camm4-brblack :foreground ,camm4-fg))))
|
||||
`(highlight ((,class (:background ,camm4-brblack))))
|
||||
`(hl-line ((,class (:background ,camm4-brblack))))
|
||||
`(success ((,class (:foreground ,camm4-brgreen))))
|
||||
`(warning ((,class (:foreground ,camm4-bryellow))))
|
||||
`(error ((,class (:foreground ,camm4-brred :weight bold))))
|
||||
`(link ((,class (:foreground ,camm4-blue :underline t))))
|
||||
`(link-visited ((,class (:foreground ,camm4-magenta :underline t))))
|
||||
|
||||
;; Font lock (syntax highlighting)
|
||||
`(font-lock-builtin-face ((,class (:foreground ,camm4-cyan))))
|
||||
`(font-lock-comment-face ((,class (:foreground ,camm4-white :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:inherit font-lock-comment-face))))
|
||||
`(font-lock-constant-face ((,class (:foreground ,camm4-brblue))))
|
||||
`(font-lock-doc-face ((,class (:inherit font-lock-comment-face :foreground ,camm4-green))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,camm4-brmagenta :weight bold))))
|
||||
`(font-lock-keyword-face ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,camm4-red))))
|
||||
`(font-lock-preprocessor-face ((,class (:foreground ,camm4-cyan))))
|
||||
`(font-lock-regexp-grouping-backslash ((,class (:foreground ,camm4-yellow))))
|
||||
`(font-lock-regexp-grouping-construct ((,class (:foreground ,camm4-red))))
|
||||
`(font-lock-string-face ((,class (:foreground ,camm4-red :weight semi-light))))
|
||||
`(font-lock-type-face ((,class (:foreground ,camm4-brcyan :weight normal))))
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,camm4-magenta))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,camm4-brred :weight bold))))
|
||||
|
||||
;; Mode line
|
||||
`(mode-line ((,class (:background ,camm4-black :foreground ,camm4-fg :box (:line-width 1 :color ,camm4-white)))))
|
||||
`(mode-line-inactive ((,class (:background ,camm4-brblack :foreground ,camm4-white :box (:line-width 1 :color ,camm4-brblack)))))
|
||||
`(mode-line-buffer-id ((,class (:weight bold :foreground ,camm4-brblue))))
|
||||
`(mode-line-emphasis ((,class (:weight bold))))
|
||||
`(mode-line-highlight ((,class (:box (:line-width 1 :color ,camm4-brblue)))))
|
||||
|
||||
;; Minibuffer, completion, etc.
|
||||
`(minibuffer-prompt ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(completions-common-part ((,class (:foreground ,camm4-fg))))
|
||||
`(completions-first-difference ((,class (:foreground ,camm4-brred :weight bold))))
|
||||
|
||||
;; Search
|
||||
`(isearch ((,class (:background ,camm4-bryellow :foreground ,camm4-fg))))
|
||||
`(isearch-fail ((,class (:background ,camm4-red :foreground ,camm4-bg))))
|
||||
`(lazy-highlight ((,class (:background ,camm4-yellow :foreground ,camm4-fg :underline t))))
|
||||
|
||||
;; Line numbers
|
||||
`(line-number ((,class (:foreground ,camm4-white :background ,camm4-bg))))
|
||||
`(line-number-current-line ((,class (:foreground ,camm4-blue :weight bold :background ,camm4-brblack))))
|
||||
|
||||
;; Dired
|
||||
`(dired-header ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(dired-directory ((,class (:foreground ,camm4-brblue :weight bold))))
|
||||
`(dired-symlink ((,class (:foreground ,camm4-cyan :slant italic))))
|
||||
|
||||
;; Org mode
|
||||
`(org-level-1 ((,class (:foreground ,camm4-brblue :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,camm4-blue :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,camm4-cyan :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,camm4-magenta :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,camm4-brcyan :weight bold))))
|
||||
`(org-level-6 ((,class (:foreground ,camm4-brmagenta :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,camm4-brred :weight bold :box t))))
|
||||
`(org-done ((,class (:foreground ,camm4-brgreen :weight bold :box t))))
|
||||
`(org-date ((,class (:foreground ,camm4-brblue :underline t))))
|
||||
`(org-link ((,class (:foreground ,camm4-blue :underline t))))
|
||||
`(org-tag ((,class (:foreground ,camm4-white :weight normal))))
|
||||
|
||||
;; Markdown
|
||||
`(markdown-header-face-1 ((,class (:inherit org-level-1))))
|
||||
`(markdown-header-face-2 ((,class (:inherit org-level-2))))
|
||||
`(markdown-header-face-3 ((,class (:inherit org-level-3))))
|
||||
`(markdown-link-face ((,class (:inherit link))))
|
||||
`(markdown-url-face ((,class (:inherit link))))
|
||||
|
||||
;; Magit
|
||||
`(magit-branch-local ((,class (:foreground ,camm4-brblue :weight bold))))
|
||||
`(magit-branch-remote ((,class (:foreground ,camm4-cyan :weight bold))))
|
||||
`(magit-tag ((,class (:foreground ,camm4-bryellow :weight bold))))
|
||||
`(magit-hash ((,class (:foreground ,camm4-white))))
|
||||
`(magit-diff-added ((,class (:foreground ,camm4-brgreen))))
|
||||
`(magit-diff-removed ((,class (:foreground ,camm4-brred))))
|
||||
`(magit-diff-context ((,class (:foreground ,camm4-white))))
|
||||
`(magit-section-heading ((,class (:foreground ,camm4-blue :weight bold :background ,camm4-brblack))))
|
||||
`(magit-section-highlight ((,class (:background ,camm4-brblack))))
|
||||
|
||||
;; Tree‑sitter (if you use it)
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,camm4-brmagenta))))
|
||||
`(tree-sitter-hl-face:function.builtin ((,class (:foreground ,camm4-cyan))))
|
||||
`(tree-sitter-hl-face:variable.builtin ((,class (:foreground ,camm4-magenta))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,camm4-brcyan))))
|
||||
`(tree-sitter-hl-face:constant.builtin ((,class (:foreground ,camm4-brblue))))
|
||||
|
||||
;; LSP / Flycheck
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,camm4-brred)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,camm4-bryellow)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,camm4-brblue)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,camm4-brblack :underline t))))
|
||||
|
||||
;; Extra
|
||||
`(show-paren-match ((,class (:background ,camm4-brcyan :foreground ,camm4-bg :weight bold))))
|
||||
`(show-paren-mismatch ((,class (:background ,camm4-brred :foreground ,camm4-bg :weight bold))))
|
||||
`(match ((,class (:background ,camm4-yellow :foreground ,camm4-fg))))
|
||||
`(shadow ((,class (:foreground ,camm4-white))))
|
||||
`(secondary-selection ((,class (:background ,camm4-brblack))))
|
||||
`(trailing-whitespace ((,class (:background ,camm4-brred))))
|
||||
`(vertical-border ((,class (:foreground ,camm4-white))))
|
||||
`(widget-button ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(widget-field ((,class (:background ,camm4-brblack))))
|
||||
))
|
||||
|
||||
;;;###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))))
|
||||
|
||||
(provide-theme 'camm4)
|
||||
|
||||
;;; camm4-theme.el ends here
|
||||
@@ -0,0 +1,152 @@
|
||||
;;; camm4-theme.el --- A light theme based on the camm4 palette -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
|
||||
(deftheme camm4
|
||||
"Light theme with a calm, readable palette.
|
||||
Core colours: blues (005FDB, 3B82F6, 007A8A, 40B7BF) and magenta (8A35B8, D33682).")
|
||||
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
;; Basic palette
|
||||
(camm4-bg "#fefcff")
|
||||
(camm4-fg "#101010")
|
||||
(camm4-cursor "#f04ceb")
|
||||
;; ANSI colours (index 01-16)
|
||||
(camm4-black "#E6EEFF") ; 01 – very light blueish grey
|
||||
(camm4-red "#C82829") ; 02
|
||||
(camm4-green "#419722") ; 03
|
||||
(camm4-yellow "#F48925") ; 04
|
||||
(camm4-blue "#005FDB") ; 05 – core blue
|
||||
(camm4-magenta "#EF89DF") ; 06 – core purple
|
||||
(camm4-cyan "#007A8A") ; 07 – core teal/blue
|
||||
(camm4-white "#4D4D4C") ; 08 – dark grey
|
||||
(camm4-brblack "#e2ecff") ; 09
|
||||
(camm4-brred "#E53935") ; 10
|
||||
(camm4-brgreen "#22A653") ; 11
|
||||
(camm4-bryellow "#FFA200") ; 12
|
||||
(camm4-brblue "#3B82F6") ; 13 – core bright blue
|
||||
(camm4-brmagenta "#D33682") ; 14 – core bright magenta
|
||||
(camm4-brcyan "#40B7BF") ; 15 – core bright teal
|
||||
(camm4-brwhite "#1D1F21")) ; 16 – near black
|
||||
|
||||
(custom-theme-set-faces
|
||||
'camm4
|
||||
;; Basic faces
|
||||
`(default ((,class (:background ,camm4-bg :foreground ,camm4-fg))))
|
||||
`(cursor ((,class (:background ,camm4-cursor))))
|
||||
`(fringe ((,class (:background ,camm4-bg :foreground ,camm4-white))))
|
||||
`(region ((,class (:background ,camm4-brblack :foreground ,camm4-fg))))
|
||||
`(highlight ((,class (:background ,camm4-brblack))))
|
||||
`(hl-line ((,class (:background ,camm4-brblack))))
|
||||
`(success ((,class (:foreground ,camm4-brgreen))))
|
||||
`(warning ((,class (:foreground ,camm4-bryellow))))
|
||||
`(error ((,class (:foreground ,camm4-brred :weight bold))))
|
||||
`(link ((,class (:foreground ,camm4-blue :underline t))))
|
||||
`(link-visited ((,class (:foreground ,camm4-magenta :underline t))))
|
||||
|
||||
;; Font lock (syntax highlighting)
|
||||
`(font-lock-builtin-face ((,class (:foreground ,camm4-cyan))))
|
||||
`(font-lock-comment-face ((,class (:foreground ,camm4-white :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:inherit font-lock-comment-face))))
|
||||
`(font-lock-constant-face ((,class (:foreground ,camm4-brblue))))
|
||||
`(font-lock-doc-face ((,class (:inherit font-lock-comment-face :foreground ,camm4-green))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,camm4-brmagenta :weight bold))))
|
||||
`(font-lock-keyword-face ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,camm4-red))))
|
||||
`(font-lock-preprocessor-face ((,class (:foreground ,camm4-cyan))))
|
||||
`(font-lock-regexp-grouping-backslash ((,class (:foreground ,camm4-yellow))))
|
||||
`(font-lock-regexp-grouping-construct ((,class (:foreground ,camm4-red))))
|
||||
`(font-lock-string-face ((,class (:foreground ,camm4-red :weight semi-light))))
|
||||
`(font-lock-type-face ((,class (:foreground ,camm4-brcyan :weight normal))))
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,camm4-magenta))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,camm4-brred :weight bold))))
|
||||
|
||||
;; Mode line
|
||||
`(mode-line ((,class (:background ,camm4-black :foreground ,camm4-fg :box (:line-width 1 :color ,camm4-white)))))
|
||||
`(mode-line-inactive ((,class (:background ,camm4-brblack :foreground ,camm4-white :box (:line-width 1 :color ,camm4-brblack)))))
|
||||
`(mode-line-buffer-id ((,class (:weight bold :foreground ,camm4-brblue))))
|
||||
`(mode-line-emphasis ((,class (:weight bold))))
|
||||
`(mode-line-highlight ((,class (:box (:line-width 1 :color ,camm4-brblue)))))
|
||||
|
||||
;; Minibuffer, completion, etc.
|
||||
`(minibuffer-prompt ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(completions-common-part ((,class (:foreground ,camm4-fg))))
|
||||
`(completions-first-difference ((,class (:foreground ,camm4-brred :weight bold))))
|
||||
|
||||
;; Search
|
||||
`(isearch ((,class (:background ,camm4-bryellow :foreground ,camm4-fg))))
|
||||
`(isearch-fail ((,class (:background ,camm4-red :foreground ,camm4-bg))))
|
||||
`(lazy-highlight ((,class (:background ,camm4-yellow :foreground ,camm4-fg :underline t))))
|
||||
|
||||
;; Line numbers
|
||||
`(line-number ((,class (:foreground ,camm4-white :background ,camm4-bg))))
|
||||
`(line-number-current-line ((,class (:foreground ,camm4-blue :weight bold :background ,camm4-brblack))))
|
||||
|
||||
;; Dired
|
||||
`(dired-header ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(dired-directory ((,class (:foreground ,camm4-brblue :weight bold))))
|
||||
`(dired-symlink ((,class (:foreground ,camm4-cyan :slant italic))))
|
||||
|
||||
;; Org mode
|
||||
`(org-level-1 ((,class (:foreground ,camm4-brblue :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,camm4-blue :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,camm4-cyan :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,camm4-magenta :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,camm4-brcyan :weight bold))))
|
||||
`(org-level-6 ((,class (:foreground ,camm4-brmagenta :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,camm4-brred :weight bold :box t))))
|
||||
`(org-done ((,class (:foreground ,camm4-brgreen :weight bold :box t))))
|
||||
`(org-date ((,class (:foreground ,camm4-brblue :underline t))))
|
||||
`(org-link ((,class (:foreground ,camm4-blue :underline t))))
|
||||
`(org-tag ((,class (:foreground ,camm4-white :weight normal))))
|
||||
|
||||
;; Markdown
|
||||
`(markdown-header-face-1 ((,class (:inherit org-level-1))))
|
||||
`(markdown-header-face-2 ((,class (:inherit org-level-2))))
|
||||
`(markdown-header-face-3 ((,class (:inherit org-level-3))))
|
||||
`(markdown-link-face ((,class (:inherit link))))
|
||||
`(markdown-url-face ((,class (:inherit link))))
|
||||
|
||||
;; Magit
|
||||
`(magit-branch-local ((,class (:foreground ,camm4-brblue :weight bold))))
|
||||
`(magit-branch-remote ((,class (:foreground ,camm4-cyan :weight bold))))
|
||||
`(magit-tag ((,class (:foreground ,camm4-bryellow :weight bold))))
|
||||
`(magit-hash ((,class (:foreground ,camm4-white))))
|
||||
`(magit-diff-added ((,class (:foreground ,camm4-brgreen))))
|
||||
`(magit-diff-removed ((,class (:foreground ,camm4-brred))))
|
||||
`(magit-diff-context ((,class (:foreground ,camm4-white))))
|
||||
`(magit-section-heading ((,class (:foreground ,camm4-blue :weight bold :background ,camm4-brblack))))
|
||||
`(magit-section-highlight ((,class (:background ,camm4-brblack))))
|
||||
|
||||
;; Tree‑sitter (if you use it)
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,camm4-brmagenta))))
|
||||
`(tree-sitter-hl-face:function.builtin ((,class (:foreground ,camm4-cyan))))
|
||||
`(tree-sitter-hl-face:variable.builtin ((,class (:foreground ,camm4-magenta))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,camm4-brcyan))))
|
||||
`(tree-sitter-hl-face:constant.builtin ((,class (:foreground ,camm4-brblue))))
|
||||
|
||||
;; LSP / Flycheck
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,camm4-brred)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,camm4-bryellow)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,camm4-brblue)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,camm4-brblack :underline t))))
|
||||
|
||||
;; Extra
|
||||
`(show-paren-match ((,class (:background ,camm4-brcyan :foreground ,camm4-bg :weight bold))))
|
||||
`(show-paren-mismatch ((,class (:background ,camm4-brred :foreground ,camm4-bg :weight bold))))
|
||||
`(match ((,class (:background ,camm4-yellow :foreground ,camm4-fg))))
|
||||
`(shadow ((,class (:foreground ,camm4-white))))
|
||||
`(secondary-selection ((,class (:background ,camm4-brblack))))
|
||||
`(trailing-whitespace ((,class (:background ,camm4-brred))))
|
||||
`(vertical-border ((,class (:foreground ,camm4-white))))
|
||||
`(widget-button ((,class (:foreground ,camm4-blue :weight bold))))
|
||||
`(widget-field ((,class (:background ,camm4-brblack))))
|
||||
))
|
||||
|
||||
;;;###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))))
|
||||
|
||||
(provide-theme 'camm4)
|
||||
|
||||
;;; camm4-theme.el ends here
|
||||
@@ -0,0 +1,167 @@
|
||||
;;; cutar-theme.el --- A high-contrast dark theme with blue/pink accents -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
(deftheme cutar
|
||||
"High-contrast dark theme with blue/pink accents.
|
||||
Optimized for syntax highlighting and UI clarity based on the Custom Terminal palette.")
|
||||
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
|
||||
;; --- BASE UI ---
|
||||
(bg "#fefcff") ;; Default background
|
||||
(fg "#101010") ;; Default foreground
|
||||
(cursor "#fefcff") ;; Cursor bg (matches `bg`; visibility depends on `cursor-type`)
|
||||
(selection "#6ECFD5") ;; Region/selected text background
|
||||
(selection-fg "#101010") ;; Region/selected text foreground
|
||||
|
||||
;; --- ANSI NORMAL ---
|
||||
(dark_blue "#0094E7") ;; Fringe, minibuffer prompts, function names, line numbers, inactive tab borders
|
||||
(red "#C82829") ;; Errors, negation chars, failed search (`isearch-fail`)
|
||||
(medium_blue "#005FDB") ;; Keywords, active hyperlinks
|
||||
(orange "#DD7050") ;; Constants, lazy search highlights, debug indicators
|
||||
(magenta "#D536AD") ;; Strings, variables, UI dividers (`vertical-border`)
|
||||
(green "#419722") ;; Docstrings, comment delimiters, info/status indicators
|
||||
(cyan "#409FAF") ;; Types/Classes
|
||||
(purple "#8a35b8") ;; Built-ins, visited links
|
||||
|
||||
;; --- ANSI BRIGHT ---
|
||||
(light_blue "#82D3FF") ;; Inactive mode-line/tabs background (shares hex with `selection`)
|
||||
(light_red "#FC7070") ;; Warnings, builtin, regex constructs
|
||||
(accent_blue "#71A1F3") ;; (Currently unused in faces)
|
||||
(yellow "#FFB633") ;; Active search (`isearch`), regex backslashes, modified buffer status, warnings
|
||||
(accent_pink "#EF89DF") ;; Active mode-line/tabs, modeline accent bar
|
||||
(bright_green "#19BD56") ;; (Currently unused in faces)
|
||||
(bright_cyan "#9EDEEE") ;; hl-line hl-tab
|
||||
(light_purple "#B197FC")) ;; (Currently unused in faces)
|
||||
|
||||
(custom-theme-set-faces
|
||||
'cutar
|
||||
|
||||
;; --- CORE UI ---
|
||||
`(default ((,class (:background ,bg :foreground ,fg))))
|
||||
`(cursor ((,class (:background ,bg :foreground ,bg))))
|
||||
`(fringe ((,class (:background ,bg :foreground ,dark_blue))))
|
||||
`(region ((,class (:background ,selection :foreground ,selection-fg))))
|
||||
`(highlight ((,class (:background ,light_blue :foreground ,bg))))
|
||||
`(hl-line ((,class (:background ,bright_cyan :extend t)))) ;; Using dark_blue for line highlight dimness
|
||||
`(link ((,class (:foreground ,medium_blue :underline t))))
|
||||
`(link-visited ((,class (:foreground ,purple :underline t))))
|
||||
`(minibuffer-prompt ((,class (:foreground ,dark_blue :weight bold))))
|
||||
`(vertical-border ((,class (:foreground ,magenta)))) ;; "UI dividers"
|
||||
|
||||
;; --- SYNTAX HIGHLIGHTING (Font Lock) ---
|
||||
;; Comments: ansi_0 (Dark Blue)
|
||||
`(font-lock-comment-face ((,class (:foreground ,green :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:foreground ,bright_green :slant italic))))
|
||||
|
||||
;; Keywords: ansi_7 (Purple)
|
||||
`(font-lock-keyword-face ((,class (:foreground ,medium_blue :weight bold))))
|
||||
|
||||
;; Strings: ansi_4 (Magenta)
|
||||
`(font-lock-string-face ((,class (:foreground ,magenta))))
|
||||
`(font-lock-regexp-grouping-backslash ((,class (:foreground ,yellow))))
|
||||
`(font-lock-regexp-grouping-construct ((,class (:foreground ,light_red))))
|
||||
|
||||
;; Functions: Using Accent Pink (ansi_12) for better visibility as "Primary Accent"
|
||||
`(font-lock-function-name-face ((,class (:foreground ,dark_blue :weight bold))))
|
||||
|
||||
;; Variables: Default foreground or slightly dimmed
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,medium_blue))))
|
||||
|
||||
;; Types: ansi_6 (Cyan)
|
||||
`(font-lock-type-face ((,class (:foreground ,cyan))))
|
||||
|
||||
;; Constants: ansi_3 (Orange)
|
||||
`(font-lock-constant-face ((,class (:foreground ,orange))))
|
||||
`(font-lock-builtin-face ((,class (:foreground ,light_red)))) ;; Same as keywords usually
|
||||
|
||||
;; Doc & Warnings
|
||||
`(font-lock-doc-face ((,class (:inherit font-lock-comment-face :foreground ,green))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,light_red :weight bold))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,red))))
|
||||
|
||||
;; --- MODELINE (Tabs UI Mapping) ---
|
||||
;; Active Tab: Accent Pink
|
||||
`(mode-line ((,class (:background ,accent_pink :foreground ,bg))))
|
||||
;; Inactive Tab: Light Blue
|
||||
`(mode-line-inactive ((,class (:background ,light_blue :foreground ,fg :box (:line-width 1 :color ,accent_blue)))))
|
||||
`(mode-line-buffer-id ((,class (:weight bold))))
|
||||
`(mode-line-highlight ((,class (:box (:line-width 2 :color ,fg)))))
|
||||
|
||||
;; --- SEARCH & ISEARCH ---
|
||||
;; Search Matches: Yellow (ansi_11)
|
||||
`(isearch ((,class (:background ,yellow :foreground ,bg :weight bold))))
|
||||
`(isearch-fail ((,class (:background ,red :foreground ,fg))))
|
||||
`(lazy-highlight ((,class (:background ,orange :foreground ,bg))))
|
||||
|
||||
;; --- LINE NUMBERS ---
|
||||
`(line-number ((,class (:foreground ,light_blue :background ,fg))))
|
||||
`(line-number-current-line ((,class (:foreground ,bg :background ,accent_pink :weight bold))))
|
||||
|
||||
;; --- DIY (Doom Emacs Specifics) ---
|
||||
`(doom-modeline-bar ((,class (:background ,accent_pink :foreground ,fg))))
|
||||
`(doom-modeline-buffer-file ((,class (:foreground ,fg :weight bold))))
|
||||
`(doom-modeline-buffer-path ((,class (:foreground ,fg :weight bold))))
|
||||
`(doom-modeline-buffer-modified ((,class (:foreground ,yellow :weight bold))))
|
||||
`(doom-modeline-debug ((,class (:foreground ,orange))))
|
||||
`(doom-modeline-info ((,class (:foreground ,green))))
|
||||
`(doom-modeline-warning ((,class (:foreground ,yellow))))
|
||||
`(doom-modeline-error ((,class (:foreground ,red))))
|
||||
|
||||
;; --- ORG MODE ---
|
||||
`(org-level-1 ((,class (:foreground ,accent_pink :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,accent_blue :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,bright_green :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,bright_cyan :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,light_purple :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,light_red :weight bold :box t))))
|
||||
`(org-done ((,class (:foreground ,bright_green :weight bold :box t))))
|
||||
`(org-date ((,class (:foreground ,medium_blue))))
|
||||
`(org-link ((,class (:foreground ,light_purple :underline t)))) ;; "markdown links" -> light_purple
|
||||
`(org-code ((,class (:foreground ,orange :background ,bg))))
|
||||
`(org-block ((,class (:background ,bg :foreground ,fg :extend t))))
|
||||
`(org-block-begin-line ((,class (:foreground ,dark_blue :background ,bg :extend t))))
|
||||
|
||||
;; --- MAGIT / GIT ---
|
||||
`(magit-branch-local ((,class (:foreground ,cyan :weight bold))))
|
||||
`(magit-branch-remote ((,class (:foreground ,green :weight bold))))
|
||||
`(magit-hash ((,class (:foreground ,dark_blue))))
|
||||
`(magit-item-highlight ((,class (:background ,selection :foreground ,selection-fg))))
|
||||
`(magit-diff-added ((,class (:foreground ,bright_green :background unspecified))))
|
||||
`(magit-diff-removed ((,class (:foreground ,light_red :background unspecified))))
|
||||
`(magit-diff-context-highlight ((,class (:background ,dark_blue :foreground ,fg))))
|
||||
`(magit-section-heading ((,class (:foreground ,bright_cyan :weight bold :underline t))))
|
||||
|
||||
;; --- TREE-SITTER ---
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,accent_pink))))
|
||||
`(tree-sitter-hl-face:method.call ((,class (:foreground ,accent_pink))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,cyan))))
|
||||
`(tree-sitter-hl-face:property ((,class (:foreground ,light_blue))))
|
||||
`(tree-sitter-hl-face:parameter ((,class (:foreground ,orange))))
|
||||
`(tree-sitter-hl-face:escape ((,class (:foreground ,light_red))))
|
||||
|
||||
;; --- FLYCHECK / LSP ---
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,red)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,orange)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,medium_blue)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,selection :foreground ,selection-fg))))
|
||||
|
||||
;; --- DASHBOARD ---
|
||||
`(doom-dashboard-menu-desc ((,class (:foreground ,accent_blue))))
|
||||
`(doom-dashboard-banner ((,class (:foreground ,accent_pink))))
|
||||
|
||||
;; --- MISC ---
|
||||
`(show-paren-match ((,class (:background ,accent_blue :foreground ,bg :weight bold))))
|
||||
`(show-paren-mismatch ((,class (:background ,red :foreground ,fg :weight bold))))
|
||||
`(success ((,class (:foreground ,green))))
|
||||
`(error ((,class (:foreground ,red :weight bold))))
|
||||
`(warning ((,class (:foreground ,orange))))
|
||||
`(header-line ((,class (:background ,dark_blue :foreground ,fg))))))
|
||||
|
||||
;;;###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))))
|
||||
|
||||
(provide-theme 'cutar)
|
||||
|
||||
;;; cutar-theme.el ends here
|
||||
@@ -0,0 +1,167 @@
|
||||
;;; cutar-theme.el --- A high-contrast dark theme with blue/pink accents -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
(deftheme cutarv32
|
||||
"High-contrast dark theme with blue/pink accents.
|
||||
Optimized for syntax highlighting and UI clarity based on the Custom Terminal palette.")
|
||||
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
|
||||
;; --- BASE UI ---
|
||||
(bg "#f8f8ff") ;; Default background
|
||||
(fg "#000000") ;; Default foreground
|
||||
(cursor "#f8f8ff") ;; Cursor bg (matches `bg`; visibility depends on `cursor-type`)
|
||||
(selection "#f0b94a") ;; Region/selected text background
|
||||
;;(selection-fg "#000000") ;; Region/selected text foreground
|
||||
|
||||
;; --- ANSI NORMAL ---
|
||||
(dark_blue "#007cbf" ) ;; Fringe, minibuffer prompts, function names, line numbers, inactive tab borders
|
||||
(red "#cf3f29" ) ;; Errors, negation chars, failed search (`isearch-fail`)
|
||||
(medium_blue "#2374de" ) ;; Keywords, active hyperlinks
|
||||
(orange "#c76e2a" ) ;; Constants, lazy search highlights, debug indicators
|
||||
(magenta "#b05197" ) ;; Strings, variables, UI dividers (`vertical-border`)
|
||||
(green "#429e66" ) ;; Docstrings, comment delimiters, info/status indicators
|
||||
(cyan "#129cc9" ) ;; Types/Classes
|
||||
(purple "#a64dd6" ) ;; Built-ins, visited links
|
||||
|
||||
;; --- ANSI BRIGHT ---
|
||||
(light_blue "#7cc9f2") ;; Inactive mode-line/tabs background (shares hex with `selection`)
|
||||
(light_red "#f07b69") ;; Warnings, builtin, regex constructs
|
||||
(accent_blue "#6f9ff2") ;; (Currently unused in faces)
|
||||
(yellow "#f0b94a") ;; Active search (`isearch`), regex backslashes, modified buffer status, warnings
|
||||
(accent_pink "#EF89DF") ;; Active mode-line/tabs, modeline accent bar
|
||||
(bright_green "#2cd45c") ;; (Currently unused in faces)
|
||||
(bright_cyan "#17dbe6") ;; hl-line hl-tab
|
||||
(light_purple "#c8a0f2")) ;; (Currently unused in faces)
|
||||
|
||||
(custom-theme-set-faces
|
||||
'cutarv32
|
||||
|
||||
;; --- CORE UI ---
|
||||
`(default ((,class (:background ,bg :foreground ,fg))))
|
||||
`(cursor ((,class (:background ,bg :foreground ,bg))))
|
||||
`(fringe ((,class (:background ,bg :foreground ,dark_blue))))
|
||||
`(region ((,class (:background ,selection))))
|
||||
`(highlight ((,class (:background ,light_blue :foreground ,bg))))
|
||||
`(hl-line ((,class (:background ,light_purple :extend t)))) ;; Using dark_blue for line highlight dimness
|
||||
`(link ((,class (:foreground ,medium_blue :underline t))))
|
||||
`(link-visited ((,class (:foreground ,purple :underline t))))
|
||||
`(minibuffer-prompt ((,class (:foreground ,dark_blue :weight bold))))
|
||||
`(vertical-border ((,class (:foreground ,magenta)))) ;; "UI dividers"
|
||||
|
||||
;; --- SYNTAX HIGHLIGHTING (Font Lock) ---
|
||||
;; Comments: ansi_0 (Dark Blue)
|
||||
`(font-lock-comment-face ((,class (:foreground ,green :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:foreground ,bright_green :slant italic))))
|
||||
|
||||
;; Keywords: ansi_7 (Purple)
|
||||
`(font-lock-keyword-face ((,class (:foreground ,medium_blue :weight bold))))
|
||||
|
||||
;; Strings: ansi_4 (Magenta)
|
||||
`(font-lock-string-face ((,class (:foreground ,magenta))))
|
||||
`(font-lock-regexp-grouping-backslash ((,class (:foreground ,yellow))))
|
||||
`(font-lock-regexp-grouping-construct ((,class (:foreground ,light_red))))
|
||||
|
||||
;; Functions: Using Accent Pink (ansi_12) for better visibility as "Primary Accent"
|
||||
`(font-lock-function-name-face ((,class (:foreground ,dark_blue :weight bold))))
|
||||
|
||||
;; Variables: Default foreground or slightly dimmed
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,medium_blue))))
|
||||
|
||||
;; Types: ansi_6 (Cyan)
|
||||
`(font-lock-type-face ((,class (:foreground ,purple))))
|
||||
|
||||
;; Constants: ansi_3 (Orange)
|
||||
`(font-lock-constant-face ((,class (:foreground ,orange))))
|
||||
`(font-lock-builtin-face ((,class (:foreground ,light_red)))) ;; Same as keywords usually
|
||||
|
||||
;; Doc & Warnings
|
||||
`(font-lock-doc-face ((,class (:inherit font-lock-comment-face :foreground ,green))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,light_red :weight bold))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,red))))
|
||||
|
||||
;; --- MODELINE (Tabs UI Mapping) ---
|
||||
;; Active Tab: Accent Pink
|
||||
`(mode-line ((,class (:background ,accent_pink :foreground ,bg))))
|
||||
;; Inactive Tab: Light Blue
|
||||
`(mode-line-inactive ((,class (:background ,light_blue :foreground ,fg :box (:line-width 1 :color ,accent_blue)))))
|
||||
`(mode-line-buffer-id ((,class (:weight bold))))
|
||||
`(mode-line-highlight ((,class (:box (:line-width 2 :color ,fg)))))
|
||||
|
||||
;; --- SEARCH & ISEARCH ---
|
||||
;; Search Matches: Yellow (ansi_11)
|
||||
`(isearch ((,class (:background ,yellow :foreground ,bg :weight bold))))
|
||||
`(isearch-fail ((,class (:background ,red :foreground ,fg))))
|
||||
`(lazy-highlight ((,class (:background ,orange :foreground ,bg))))
|
||||
|
||||
;; --- LINE NUMBERS ---
|
||||
`(line-number ((,class (:foreground ,light_blue :background ,fg))))
|
||||
`(line-number-current-line ((,class (:foreground ,bg :background ,accent_pink :weight bold))))
|
||||
|
||||
;; --- DIY (Doom Emacs Specifics) ---
|
||||
`(doom-modeline-bar ((,class (:background ,accent_pink :foreground ,fg))))
|
||||
`(doom-modeline-buffer-file ((,class (:foreground ,fg :weight bold))))
|
||||
`(doom-modeline-buffer-path ((,class (:foreground ,fg :weight bold))))
|
||||
`(doom-modeline-buffer-modified ((,class (:foreground ,yellow :weight bold))))
|
||||
`(doom-modeline-debug ((,class (:foreground ,orange))))
|
||||
`(doom-modeline-info ((,class (:foreground ,green))))
|
||||
`(doom-modeline-warning ((,class (:foreground ,yellow))))
|
||||
`(doom-modeline-error ((,class (:foreground ,red))))
|
||||
|
||||
;; --- ORG MODE ---
|
||||
`(org-level-1 ((,class (:foreground ,accent_pink :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,accent_blue :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,bright_green :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,bright_cyan :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,light_purple :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,light_red :weight bold :box t))))
|
||||
`(org-done ((,class (:foreground ,bright_green :weight bold :box t))))
|
||||
`(org-date ((,class (:foreground ,medium_blue))))
|
||||
`(org-link ((,class (:foreground ,light_purple :underline t)))) ;; "markdown links" -> light_purple
|
||||
`(org-code ((,class (:foreground ,orange :background ,bg))))
|
||||
`(org-block ((,class (:background ,bg :foreground ,fg :extend t))))
|
||||
`(org-block-begin-line ((,class (:foreground ,dark_blue :background ,bg :extend t))))
|
||||
|
||||
;; --- MAGIT / GIT ---
|
||||
`(magit-branch-local ((,class (:foreground ,cyan :weight bold))))
|
||||
`(magit-branch-remote ((,class (:foreground ,green :weight bold))))
|
||||
`(magit-hash ((,class (:foreground ,dark_blue))))
|
||||
`(magit-item-highlight ((,class (:background ,selection))))
|
||||
`(magit-diff-added ((,class (:foreground ,bright_green :background unspecified))))
|
||||
`(magit-diff-removed ((,class (:foreground ,light_red :background unspecified))))
|
||||
`(magit-diff-context-highlight ((,class (:background ,dark_blue :foreground ,fg))))
|
||||
`(magit-section-heading ((,class (:foreground ,bright_cyan :weight bold :underline t))))
|
||||
|
||||
;; --- TREE-SITTER ---
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,accent_pink))))
|
||||
`(tree-sitter-hl-face:method.call ((,class (:foreground ,accent_pink))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,cyan))))
|
||||
`(tree-sitter-hl-face:property ((,class (:foreground ,light_blue))))
|
||||
`(tree-sitter-hl-face:parameter ((,class (:foreground ,orange))))
|
||||
`(tree-sitter-hl-face:escape ((,class (:foreground ,light_red))))
|
||||
|
||||
;; --- FLYCHECK / LSP ---
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,red)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,orange)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,medium_blue)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,selection))))
|
||||
|
||||
;; --- DASHBOARD ---
|
||||
`(doom-dashboard-menu-desc ((,class (:foreground ,accent_blue))))
|
||||
`(doom-dashboard-banner ((,class (:foreground ,accent_pink))))
|
||||
|
||||
;; --- MISC ---
|
||||
`(show-paren-match ((,class (:background ,accent_blue :foreground ,bg :weight bold))))
|
||||
`(show-paren-mismatch ((,class (:background ,red :foreground ,fg :weight bold))))
|
||||
`(success ((,class (:foreground ,green))))
|
||||
`(error ((,class (:foreground ,red :weight bold))))
|
||||
`(warning ((,class (:foreground ,orange))))
|
||||
`(header-line ((,class (:background ,dark_blue :foreground ,fg))))))
|
||||
|
||||
;;;###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))))
|
||||
|
||||
(provide-theme 'cutarv32)
|
||||
|
||||
;;; cutarv32-theme.el ends here
|
||||
@@ -0,0 +1,167 @@
|
||||
;;; cutarv32_dark-theme.el --- A high-contrast dark theme with blue/pink accents -*- lexical-binding: t; no-byte-compile: t; -*-
|
||||
(deftheme cutarv32_dark
|
||||
"High-contrast dark theme with blue/pink accents.
|
||||
Optimized for syntax highlighting and UI clarity based on the Custom Terminal palette.")
|
||||
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
|
||||
;; --- BASE UI ---
|
||||
(bg "#0d0d0d") ;; Default background
|
||||
(fg "#f8f8ff") ;; Default foreground
|
||||
(cursor "#f8f8ff") ;; Cursor bg (matches `bg`; visibility depends on `cursor-type`)
|
||||
(selection "#f0b94a") ;; Region/selected text background
|
||||
;;(selection-fg "#000000") ;; Region/selected text foreground
|
||||
|
||||
;; --- ANSI NORMAL ---
|
||||
(dark_blue "#007cbf" ) ;; Fringe, minibuffer prompts, function names, line numbers, inactive tab borders
|
||||
(red "#cf3f29" ) ;; Errors, negation chars, failed search (`isearch-fail`)
|
||||
(medium_blue "#2374de" ) ;; Keywords, active hyperlinks
|
||||
(orange "#c76e2a" ) ;; Constants, lazy search highlights, debug indicators
|
||||
(magenta "#b05197" ) ;; Strings, variables, UI dividers (`vertical-border`)
|
||||
(green "#429e66" ) ;; Docstrings, comment delimiters, info/status indicators
|
||||
(cyan "#129cc9" ) ;; Types/Classes
|
||||
(purple "#a64dd6" ) ;; Built-ins, visited links
|
||||
|
||||
;; --- ANSI BRIGHT ---
|
||||
(light_blue "#7cc9f2") ;; Inactive mode-line/tabs background (shares hex with `selection`)
|
||||
(light_red "#f07b69") ;; Warnings, builtin, regex constructs
|
||||
(accent_blue "#6f9ff2") ;; (Currently unused in faces)
|
||||
(yellow "#f0b94a") ;; Active search (`isearch`), regex backslashes, modified buffer status, warnings
|
||||
(accent_pink "#EF89DF") ;; Active mode-line/tabs, modeline accent bar
|
||||
(bright_green "#2cd45c") ;; (Currently unused in faces)
|
||||
(bright_cyan "#17dbe6") ;; hl-line hl-tab
|
||||
(light_purple "#c8a0f2")) ;; (Currently unused in faces)
|
||||
|
||||
(custom-theme-set-faces
|
||||
'cutarv32_dark
|
||||
|
||||
;; --- CORE UI ---
|
||||
`(default ((,class (:background ,bg :foreground ,fg))))
|
||||
`(cursor ((,class (:background ,bg :foreground ,bg))))
|
||||
`(fringe ((,class (:background ,bg :foreground ,dark_blue))))
|
||||
`(region ((,class (:background ,selection))))
|
||||
`(highlight ((,class (:background ,light_blue :foreground ,bg))))
|
||||
`(hl-line ((,class (:background ,light_purple :extend t)))) ;; Using dark_blue for line highlight dimness
|
||||
`(link ((,class (:foreground ,medium_blue :underline t))))
|
||||
`(link-visited ((,class (:foreground ,purple :underline t))))
|
||||
`(minibuffer-prompt ((,class (:foreground ,dark_blue :weight bold))))
|
||||
`(vertical-border ((,class (:foreground ,magenta)))) ;; "UI dividers"
|
||||
|
||||
;; --- SYNTAX HIGHLIGHTING (Font Lock) ---
|
||||
;; Comments: ansi_0 (Dark Blue)
|
||||
`(font-lock-comment-face ((,class (:foreground ,green :slant italic))))
|
||||
`(font-lock-comment-delimiter-face ((,class (:foreground ,bright_green :slant italic))))
|
||||
|
||||
;; Keywords: ansi_7 (Purple)
|
||||
`(font-lock-keyword-face ((,class (:foreground ,medium_blue :weight bold))))
|
||||
|
||||
;; Strings: ansi_4 (Magenta)
|
||||
`(font-lock-string-face ((,class (:foreground ,magenta))))
|
||||
`(font-lock-regexp-grouping-backslash ((,class (:foreground ,yellow))))
|
||||
`(font-lock-regexp-grouping-construct ((,class (:foreground ,light_red))))
|
||||
|
||||
;; Functions: Using Accent Pink (ansi_12) for better visibility as "Primary Accent"
|
||||
`(font-lock-function-name-face ((,class (:foreground ,dark_blue :weight bold))))
|
||||
|
||||
;; Variables: Default foreground or slightly dimmed
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,medium_blue))))
|
||||
|
||||
;; Types: ansi_6 (Cyan)
|
||||
`(font-lock-type-face ((,class (:foreground ,purple))))
|
||||
|
||||
;; Constants: ansi_3 (Orange)
|
||||
`(font-lock-constant-face ((,class (:foreground ,orange))))
|
||||
`(font-lock-builtin-face ((,class (:foreground ,light_red)))) ;; Same as keywords usually
|
||||
|
||||
;; Doc & Warnings
|
||||
`(font-lock-doc-face ((,class (:inherit font-lock-comment-face :foreground ,green))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,light_red :weight bold))))
|
||||
`(font-lock-negation-char-face ((,class (:foreground ,red))))
|
||||
|
||||
;; --- MODELINE (Tabs UI Mapping) ---
|
||||
;; Active Tab: Accent Pink
|
||||
`(mode-line ((,class (:background ,accent_pink :foreground ,bg))))
|
||||
;; Inactive Tab: Light Blue
|
||||
`(mode-line-inactive ((,class (:background ,light_blue :foreground ,fg :box (:line-width 1 :color ,accent_blue)))))
|
||||
`(mode-line-buffer-id ((,class (:weight bold))))
|
||||
`(mode-line-highlight ((,class (:box (:line-width 2 :color ,fg)))))
|
||||
|
||||
;; --- SEARCH & ISEARCH ---
|
||||
;; Search Matches: Yellow (ansi_11)
|
||||
`(isearch ((,class (:background ,yellow :foreground ,bg :weight bold))))
|
||||
`(isearch-fail ((,class (:background ,red :foreground ,fg))))
|
||||
`(lazy-highlight ((,class (:background ,orange :foreground ,bg))))
|
||||
|
||||
;; --- LINE NUMBERS ---
|
||||
`(line-number ((,class (:foreground ,light_blue :background ,fg))))
|
||||
`(line-number-current-line ((,class (:foreground ,bg :background ,accent_pink :weight bold))))
|
||||
|
||||
;; --- DIY (Doom Emacs Specifics) ---
|
||||
`(doom-modeline-bar ((,class (:background ,accent_pink :foreground ,fg))))
|
||||
`(doom-modeline-buffer-file ((,class (:foreground ,fg :weight bold))))
|
||||
`(doom-modeline-buffer-path ((,class (:foreground ,fg :weight bold))))
|
||||
`(doom-modeline-buffer-modified ((,class (:foreground ,yellow :weight bold))))
|
||||
`(doom-modeline-debug ((,class (:foreground ,orange))))
|
||||
`(doom-modeline-info ((,class (:foreground ,green))))
|
||||
`(doom-modeline-warning ((,class (:foreground ,yellow))))
|
||||
`(doom-modeline-error ((,class (:foreground ,red))))
|
||||
|
||||
;; --- ORG MODE ---
|
||||
`(org-level-1 ((,class (:foreground ,accent_pink :weight bold :height 1.2))))
|
||||
`(org-level-2 ((,class (:foreground ,accent_blue :weight bold :height 1.1))))
|
||||
`(org-level-3 ((,class (:foreground ,bright_green :weight bold))))
|
||||
`(org-level-4 ((,class (:foreground ,bright_cyan :weight bold))))
|
||||
`(org-level-5 ((,class (:foreground ,light_purple :weight bold))))
|
||||
`(org-todo ((,class (:foreground ,light_red :weight bold :box t))))
|
||||
`(org-done ((,class (:foreground ,bright_green :weight bold :box t))))
|
||||
`(org-date ((,class (:foreground ,medium_blue))))
|
||||
`(org-link ((,class (:foreground ,light_purple :underline t)))) ;; "markdown links" -> light_purple
|
||||
`(org-code ((,class (:foreground ,orange :background ,bg))))
|
||||
`(org-block ((,class (:background ,bg :foreground ,fg :extend t))))
|
||||
`(org-block-begin-line ((,class (:foreground ,dark_blue :background ,bg :extend t))))
|
||||
|
||||
;; --- MAGIT / GIT ---
|
||||
`(magit-branch-local ((,class (:foreground ,cyan :weight bold))))
|
||||
`(magit-branch-remote ((,class (:foreground ,green :weight bold))))
|
||||
`(magit-hash ((,class (:foreground ,dark_blue))))
|
||||
`(magit-item-highlight ((,class (:background ,selection))))
|
||||
`(magit-diff-added ((,class (:foreground ,bright_green :background unspecified))))
|
||||
`(magit-diff-removed ((,class (:foreground ,light_red :background unspecified))))
|
||||
`(magit-diff-context-highlight ((,class (:background ,dark_blue :foreground ,fg))))
|
||||
`(magit-section-heading ((,class (:foreground ,bright_cyan :weight bold :underline t))))
|
||||
|
||||
;; --- TREE-SITTER ---
|
||||
`(tree-sitter-hl-face:function.call ((,class (:foreground ,accent_pink))))
|
||||
`(tree-sitter-hl-face:method.call ((,class (:foreground ,accent_pink))))
|
||||
`(tree-sitter-hl-face:type ((,class (:foreground ,cyan))))
|
||||
`(tree-sitter-hl-face:property ((,class (:foreground ,light_blue))))
|
||||
`(tree-sitter-hl-face:parameter ((,class (:foreground ,orange))))
|
||||
`(tree-sitter-hl-face:escape ((,class (:foreground ,light_red))))
|
||||
|
||||
;; --- FLYCHECK / LSP ---
|
||||
`(flycheck-error ((,class (:underline (:style wave :color ,red)))))
|
||||
`(flycheck-warning ((,class (:underline (:style wave :color ,orange)))))
|
||||
`(flycheck-info ((,class (:underline (:style wave :color ,medium_blue)))))
|
||||
`(lsp-face-highlight-textual ((,class (:background ,selection))))
|
||||
|
||||
;; --- DASHBOARD ---
|
||||
`(doom-dashboard-menu-desc ((,class (:foreground ,accent_blue))))
|
||||
`(doom-dashboard-banner ((,class (:foreground ,accent_pink))))
|
||||
|
||||
;; --- MISC ---
|
||||
`(show-paren-match ((,class (:background ,accent_blue :foreground ,bg :weight bold))))
|
||||
`(show-paren-mismatch ((,class (:background ,red :foreground ,fg :weight bold))))
|
||||
`(success ((,class (:foreground ,green))))
|
||||
`(error ((,class (:foreground ,red :weight bold))))
|
||||
`(warning ((,class (:foreground ,orange))))
|
||||
`(header-line ((,class (:background ,dark_blue :foreground ,fg))))))
|
||||
|
||||
;;;###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))))
|
||||
|
||||
(provide-theme 'cutarv32_dark)
|
||||
|
||||
;;; cutarv32_dark-theme.el ends here
|
||||
Reference in New Issue
Block a user