From 589a48ba6c54c052c8bda43cbbf928c8637a887d Mon Sep 17 00:00:00 2001 From: Paul Provost Date: Wed, 26 Feb 2020 14:36:51 -0500 Subject: [PATCH] Working version with Color palette and faces palette --- petrol-theme.el | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/petrol-theme.el b/petrol-theme.el index 8326db4..60b5b3a 100644 --- a/petrol-theme.el +++ b/petrol-theme.el @@ -45,24 +45,39 @@ (deftheme petrol "Petrol light color theme.") -(let ((class '((class color) (min-colors 89))) +;;,-------------- +;;| Color Palette +;;`-------------- - ;;,----------------- - ;;| Generic colors. - ;;`----------------- +(defvar petrol-colors-alist + '( + ("petrol-fg" . "#454545") + ("petrol-bg" . "#f6f6ed") + ("petrol-blue" . "#006c96") + ("petrol-orange" . "#cc6d00") + ("petrol-purple" . "#6c4ca8") + ("petrol-red" . "#d0372d") + ) + "List of Petrol colors. +Each element has the form (NAME . HEX). +`+N' suffixes indicate a color is lighter. +`-N' suffixes indicate a color is darker.") - (petrol-blue "#006c96") - (petrol-orange "#cc6d00") - (petrol-purple "#6c4ca8") - (petrol-red "#d0372d") - - ;;,------------------ - ;;| Specific colors. - ;;`------------------ - (petrol-link '(:weight normal :foreground petrol-blue)) - (petrol-link-visited '(:weight normal :foreground petrol-purple)) +(defmacro petrol-with-color-variables (&rest body) + "`let' bind all colors defined in `petrol-colors-alist' around BODY. +Also bind `class' to ((class color) (min-colors 89))." + (declare (indent 0)) + `(let* ((class '((class color) (min-colors 89))) + ,@(mapcar (lambda (cons) + (list (intern (car cons)) (cdr cons))) + petrol-colors-alist + ) + (petrol-link `(:weight normal :foreground ,petrol-blue)) + (petrol-link-visited `(:weight normal :foreground ,petrol-purple)) + ) + ,@body)) - ) +(petrol-with-color-variables (custom-theme-set-faces 'petrol `(default ((,class (:background "#f6f6ed" :foreground "#454545")))) @@ -315,7 +330,7 @@ `(org-level-7 ((,class (:height 1.0 :weight bold :foreground "#008080")))) `(org-level-8 ((,class (:height 1.0 :weight bold :foreground "#6c7378")))) - `(org-link ((,class ,link))) + `(org-link ((,class ,petrol-link))) `(org-block ((,class (:background "#f2f2f2")))) `(org-block-background ((,class (:background "#f2f2f2"))))