Hi
Today I was messing around with some theme that made use of color.el and I noticed some functions that might be of use could be added to color.el to help with the conditionally assigning setting some colors based on lightness or darkness of some other color. I wondered if it might be useful to other users and if it might be worth adding it to color.el. I
diff --git a/lisp/color.el b/lisp/color.el
index f68cf5e6b17..3740c3d5a7c 100644
--- a/lisp/color.el
+++ b/lisp/color.el
@@ -119,6 +119,18 @@ inclusive."
(color-hue-to-rgb m1 m2 H)
(color-hue-to-rgb m1 m2 (mod (- H (/ 3.0)) 1))))))
+(defun color-name-to-hsl (color)
+ "Convert COLOR to HSL."
+ (apply #'color-rgb-to-hsl (color-name-to-rgb color)))
+
+(defun color-name-light-p (color)
+ "Return non-nil if COLOR is on the lighter side."
+ (when color (>= (caddr (color-name-to-hsl color) 0.5))))
+
+(defun color-name-dark-p (color)
+ "Return non-nil if COLOR is on the darker side."
+ (when color (not (color-name-light-p color))))
+
(defun color-complement-hex (color)
"Return the color that is the complement of COLOR, in hexadecimal format."
(apply 'color-rgb-to-hex (color-complement color)))