unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Adding some convenience functions to color.el
@ 2023-06-08 23:57 Yilkal Argaw
  2023-06-09  6:22 ` Philip Kaludercic
  2023-06-09  6:55 ` Eli Zaretskii
  0 siblings, 2 replies; 5+ messages in thread
From: Yilkal Argaw @ 2023-06-08 23:57 UTC (permalink / raw)
  To: Emacs Devel

[-- Attachment #1: Type: text/plain, Size: 1217 bytes --]

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


With Regards
Yilkal Argaw

[-- Attachment #2: Type: text/html, Size: 1441 bytes --]

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-06-09  7:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-08 23:57 Adding some convenience functions to color.el Yilkal Argaw
2023-06-09  6:22 ` Philip Kaludercic
2023-06-09  6:55 ` Eli Zaretskii
2023-06-09  7:26   ` Yilkal Argaw
2023-06-09  7:34     ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).