emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/colorful-mode d91ccbde21 1/2: Add CSS OkLab and OkLch s


From: ELPA Syncer
Subject: [elpa] externals/colorful-mode d91ccbde21 1/2: Add CSS OkLab and OkLch support.
Date: Mon, 3 Mar 2025 18:57:57 -0500 (EST)

branch: externals/colorful-mode
commit d91ccbde211b711cc6e6cb17108a07ac3d390f19
Author: Elías Gabriel Pérez <eg642616@gmail.com>
Commit: Elías Gabriel Pérez <eg642616@gmail.com>

    Add CSS OkLab and OkLch support.
    
    * README.org: Update README.
    
    * colorful-mode.el (colorful-extra-color-keyword-functions):
    Add OkLab and OkLch functions in docstring
    
    (colorful--percentage-to-absolute): Clarify docstring.
    
    (colorful--rgb-to-hex): Remove string to number convertion.
    
    (colorful--oklab-to-hex, colorful--oklch-to-hex): New function.
    Since `color-oklab-to-srgb' is only available in 30.1,
    Here we port the code only for older emacs versions (28.1>=).
    
    (colorful--converter, colorful--colorize-match, colorful--colorize):
    Add OkLab and OkLch coloring.
    
    (colorful-rgb-font-lock-keywords, colorful-hsl-font-lock-keywords):
    BugFix.
    
    (colorful-oklab-oklch-font-lock-keywords)
    (colorful-add-oklab-oklch-colors): New keywords.
    
    * test/css.css: Add new tests
---
 README.org       |  12 ++-
 colorful-mode.el | 245 ++++++++++++++++++++++++++++++++++++++++---------------
 test/css.css     |  54 ++++++++++--
 3 files changed, 233 insertions(+), 78 deletions(-)

diff --git a/README.org b/README.org
index e80aa61a56..5496666d72 100644
--- a/README.org
+++ b/README.org
@@ -29,9 +29,13 @@ in real time and in a user friendly way based/inspired on 
🌈[[https://elpa.gnu
 - Supports:
   - Hexadecimal (#RRGGBB, #RGB, #RRGGBBAA, #RGBA).
   - Color names (Emacs, HTML, CSS).
-  - CSS rgb/rgba, hsl/hsla and user-defined colors variables:
-    - @define_color
-    - var()
+  - CSS
+    - rgb/rgba
+    - hsl/hsla
+    - oklab/oklch
+    - user-defined colors variables:
+      - @define_color
+      - var()
   - LaTex colors (gray, rbg, RGB, HTML)
 - Convert current color at point or in region to other formats
   such as hexadecimal or color names *(only available for some colors)*
@@ -80,6 +84,7 @@ THIS MAY INTERFERE WITH COLORFUL PREFIX, YOU CAN DISABLE THIS 
SETTING
      (colorful-add-css-variables-colors
       colorful-add-rgb-colors
       colorful-add-hsl-colors
+      colorful-add-oklab-oklch-colors
       colorful-add-color-names))
     (latex-mode . colorful-add-latex-colors))
   List of functions to add extra color keywords to colorful-color-keywords.
@@ -157,6 +162,7 @@ highlighting:
 - =colorful-add-color-names=: Add color names.
 - =colorful-add-css-variables-colors=: Add CSS user-defined color variables.
 - =colorful-add-rgb-colors=: Add CSS RGB colors.
+- =colorful-add-oklab-oklch-colors=: Add CSS OkLab and OkLch colors.
 - =colorful-add-hsl-colors=: Add CSS HSL colors.
 - =colorful-add-latex-colors=: Add LaTex rgb/RGB/HTML/Grey colors.
 
diff --git a/colorful-mode.el b/colorful-mode.el
index 8c6637d139..e75f378a6a 100644
--- a/colorful-mode.el
+++ b/colorful-mode.el
@@ -316,6 +316,7 @@ Each entry should have the form (COLOR-NAME . 
HEXADECIMAL-COLOR)."
      (colorful-add-css-variables-colors
       colorful-add-rgb-colors
       colorful-add-hsl-colors
+      colorful-add-oklab-oklch-colors
       colorful-add-color-names))
     (latex-mode . colorful-add-latex-colors))
   "List of functions to add extra color keywords to `colorful-color-keywords'.
@@ -337,6 +338,7 @@ Available functions are:
  - `colorful-add-css-variables-colors'
  - `colorful-add-rgb-colors'
  - `colorful-add-hsl-colors'
+ - `colorful-add-oklab-oklch-colors'
  - `colorful-add-latex-colors'"
   :type '(repeat
           (choice (cons (choice :tag "Mode(s)" symbol (repeat symbol))
@@ -398,8 +400,9 @@ mode is derived from `prog-mode'."
 ;;;;; Base Conversion functions
 
 (defun colorful--percentage-to-absolute (percentage)
-  "Convert PERCENTAGE to a absolute number.
-If PERCENTAGE is absolute, return PERCENTAGE.
+  "Return PERCENTAGE to a absolute number.
+PERCENTAGE must be a string.
+If PERCENTAGE is absolute, return PERCENTAGE as number.
 This will convert \"80 %\" to 204, \"100 %\" to 255 but \"123\" to \"123\".
 If PERCENTAGE is above 100%, it's converted to 100."
   (if (seq-contains-p percentage ?%)
@@ -428,9 +431,9 @@ If ALPHA is non-nil then use `#RRGGBBAA' format"
 
 (defun colorful--rgb-to-hex (r g b)
   "Return CSS R G B as hexadecimal format."
-  (if-let* ((r (/ (string-to-number r) 255.0))
-            (g (/ (string-to-number g) 255.0))
-            (b (/ (string-to-number b) 255.0)))
+  (if-let* ((r (/ r 255.0))
+            (g (/ g 255.0))
+            (b (/ b 255.0)))
       (color-rgb-to-hex r g b)))
 
 (defun colorful--hsl-to-hex (h s l)
@@ -440,6 +443,33 @@ If ALPHA is non-nil then use `#RRGGBBAA' format"
             (l (/ (string-to-number l) 100.0)))
       (apply #'color-rgb-to-hex (color-hsl-to-rgb h s l))))
 
+(defun colorful--oklab-to-hex (l a b)
+  "Convert OKLab color (L, A, B) to HEX format.
+L, A and B must be floats divided by 100."
+  (if-let* (((functionp 'color-oklab-to-srgb))
+            (rgb (mapcar #'color-clamp (color-oklab-to-srgb l a b))))
+      (apply #'color-rgb-to-hex rgb)
+    (let* ((ll (expt (+ (* 1.0 l) (* 0.39633779 a) (* 0.21580376 b)) 3))
+           (mm (expt (+ (* 1.00000001 l) (* -0.10556134 a) (* -0.06385417 b)) 
3))
+           (ss (expt (+ (* 1.00000005 l) (* -0.08948418 a) (* -1.29148554 b)) 
3))
+           (x (+ (* ll 1.22701385) (* mm -0.55779998) (* ss 0.28125615)))
+           (y (+ (* ll -0.04058018) (* mm 1.11225687) (* ss -0.07167668)))
+           (z (+ (* ll -0.07638128) (* mm -0.42148198) (* ss 1.58616322)))
+           (srgb (color-xyz-to-srgb x y z))
+           (rgb (mapcar #'color-clamp srgb)))
+      (apply #'color-rgb-to-hex rgb))))
+;; (colorful--oklab-to-hex 0.5574 0.14 0) 55.74% 0.14 0 => #b31a4af270af
+
+(defun colorful--oklch-to-hex (l c h)
+  "Convert OKLCH color (L, C, H) to HEX format.
+L, A and must be floats divided by 100.
+H must be a float not divided."
+  (let* ((h-rad (* h (/ float-pi 180.0)))
+         (a (* c (cos h-rad)))
+         (b (* c (sin h-rad))))
+    (colorful--oklab-to-hex l a b)))
+;; (colorful--oklch-to-hex 0.5574 0.1406 360) 55.74% 0.1406 360 => 
#b31a4af270af
+
 (defun colorful--hex-to-name (hex)
   "Return HEX as color name."
   (catch 'name
@@ -590,7 +620,7 @@ CHOICE is used for get kind of color."
          (end (overlay-end ov))
          (kind (overlay-get ov 'colorful--overlay-kind))
          (color-value (overlay-get ov 'colorful--overlay-color))
-         (alpha-value (overlay-get ov 'colorful--overlay-alpha)))
+         (_alpha-value (overlay-get ov 'colorful--overlay-alpha)))
 
     (pcase choice ; Check and convert color to any of the options:
       ('hex ; COLOR to HEX
@@ -602,10 +632,10 @@ CHOICE is used for get kind of color."
           (list (colorful--shorten-hex color-value) beg end))
          ;; Is COLOR a CSS rgb?
          ('css-rgb
-          (list (colorful--shorten-hex color-value alpha-value) beg end))
+          (list (colorful--shorten-hex color-value) beg end))
          ;; Is COLOR a HSL?
          ('css-hsl
-          (list (colorful--shorten-hex color-value alpha-value) beg end))))
+          (list (colorful--shorten-hex color-value) beg end))))
       ('name ; COLOR to NAME
        (pcase kind
          ('color-name
@@ -623,7 +653,7 @@ CHOICE is used for get kind of color."
           (if-let* ((rep (colorful--hex-to-name color-value)))
               (list rep beg end))))))))
 
-(defun colorful--colorize-match (color beg end kind &optional alpha-value)
+(defun colorful--colorize-match (color beg end kind &optional _alpha-value)
   "Overlay match with a face from BEG to END.
 The background uses COLOR color value.  The foreground is obtained
 from `readable-foreground-color'."
@@ -646,11 +676,9 @@ from `readable-foreground-color'."
                    color))
 
     ;; Set alpha value (if exists) as tag
-    (when alpha-value
-      (if (seq-contains-p alpha-value ?%)
-          (setq alpha-value (/ (string-to-number alpha-value) 100.0))
-        (setq alpha-value (string-to-number alpha-value)))
-      (overlay-put ov 'colorful--overlay-alpha alpha-value))
+    ;; (when alpha-value
+    ;;   (setq alpha-value (/ (string-to-number alpha-value) 100.0))
+    ;;   (overlay-put ov 'colorful--overlay-alpha alpha-value))
 
     ;; Enable auto deletion.
     (overlay-put ov 'evaporate t)
@@ -716,7 +744,12 @@ REGEXP must have a group that contains the color value."
     (let* ((match-1 (match-string-no-properties 1))
            (match-2 (match-string-no-properties 2))
            (match-3 (match-string-no-properties 3))
-           (match-alpha (match-string-no-properties 4))
+           ;; NOTE: There are no plans to support alpha coloring
+           ;; at the moment due to the problems it may cause with
+           ;; emacs background color.
+           ;; However, the code is ready in case there is motivation
+           ;; to do it.  If so, uncomment this:
+           ;; (match-alpha (match-string-no-properties 4))
            (beg (match-beginning match))
            (end (match-end match)))
       (pcase kind
@@ -724,19 +757,35 @@ REGEXP must have a group that contains the color value."
          (setq color (colorful--name-to-hex color)))
 
         ('css-rgb
-         (setq color (colorful--rgb-to-hex match-1 match-2 match-3))) ; r g b
+         (setq color (colorful--rgb-to-hex (colorful--percentage-to-absolute 
match-1) ; r
+                                           (colorful--percentage-to-absolute 
match-2) ; g
+                                           (colorful--percentage-to-absolute 
match-3)))) ; b
 
         ((and 'css-hsl
               (guard (<= (string-to-number match-1) 360))) ; Ensure Hue is not 
greater than 360.
          (setq color (colorful--hsl-to-hex match-1 match-2 match-3))) ; h s l
 
+        ('css-oklab
+         (setq color (colorful--oklab-to-hex (/ (string-to-number match-1) 
100.0) ; l
+                                             (string-to-number match-2) ; a
+                                             (string-to-number match-3)))) ; b
+
+        ('css-oklch
+         (setq color (colorful--oklch-to-hex (/ (string-to-number match-1) 
100.0) ; l
+                                             (string-to-number match-2) ; c
+                                             (float (string-to-number 
match-3))))) ; h
+
         ('latex-rgb
          (setq color
                (if (string-prefix-p "{R" color)  ; Check if it's RGB (shorted 
as "{R")
-                   (colorful--rgb-to-hex match-1 match-2 match-3) ; r g b
-                 (color-rgb-to-hex (string-to-number match-1) ; r
-                                   (string-to-number match-2) ; g
-                                   (string-to-number match-3)))))  ; b
+                   (colorful--rgb-to-hex
+                    (string-to-number match-1) ; r
+                    (string-to-number match-2) ; g
+                    (string-to-number match-3)) ; b
+                 (color-rgb-to-hex
+                  (string-to-number match-1) ; r
+                  (string-to-number match-2) ; g
+                  (string-to-number match-3)))))  ; b
 
         ('latex-HTML
          (setq color (concat "#" (match-string-no-properties 1))))
@@ -769,15 +818,15 @@ REGEXP must have a group that contains the color value."
                       (one-or-more space)
                       (literal match-2)
                       (one-or-more space)
-                      (group (opt "#") (one-or-more (any "0-9A-Za-z")))))))
+                      (group (opt "#") (one-or-more alphanumeric))))))
           ((string= match-1 "var")
            (colorful--get-css-variable-color
              (rx (seq (literal match-2) ":" (zero-or-more space)
-                      (group (opt "#") (one-or-more (any "0-9A-Za-z"))))))))))
+                      (group (opt "#") (one-or-more alphanumeric)))))))))
 
       ;; Ensure that string is a valid color and that string is non-nil
       (if (and color (color-defined-p color))
-          (colorful--colorize-match color beg end kind match-alpha))))
+          (colorful--colorize-match color beg end kind))))
 
   ;; The return value is not ignored, so be mindful what we return.
   nil)
@@ -787,17 +836,17 @@ REGEXP must have a group that contains the color value."
 
 
 ;;;; Extra coloring definitions
-
+;;; Hex
 (defvar colorful-hex-font-lock-keywords
-  `((,(rx (seq (or bol (not (any "&")))
-               (group (or "#" "0x") (repeat 1 14 (any "0-9A-Fa-f")))
+  `((,(rx (seq (or bol (not "&"))
+               (group (or "#" "0x") (repeat 1 14 hex))
                word-boundary))
      (1 (colorful--colorize 'hex 1)))
 
     (,(rx (seq (any "Rr") (any "Gg") (any "Bb") (opt (any "Ii")) ":"
-               (repeat 1 4 (any "0-9A-Fa-f")) "/"
-               (repeat 1 4 (any "0-9A-Fa-f")) "/"
-               (repeat 1 4 (any "0-9A-Fa-f"))))
+               (repeat 1 4 hex) "/"
+               (repeat 1 4 hex) "/"
+               (repeat 1 4 hex)))
      (0 (colorful--colorize 'hex)))
 
     (,(rx (seq (or (seq (any "Cc") (any "Ii") (any "Ee")
@@ -813,19 +862,19 @@ REGEXP must have a group that contains the color value."
                (one-or-more (any digit "."))
                (opt (any "Ee")
                     (opt (any "+-"))
-                    (one-or-more (any digit)))
+                    (one-or-more digit))
                "/"
                (opt (any "+-"))
                (one-or-more (any digit "."))
                (opt (any "Ee")
                     (opt (any "+-"))
-                    (one-or-more (any digit)))
+                    (one-or-more digit))
                "/"
                (opt (any "+-"))
                (one-or-more (any digit "."))
                (opt (any "Ee")
                     (opt (any "+-"))
-                    (one-or-more (any digit)))))
+                    (one-or-more digit))))
      (0 (colorful--colorize 'hex))))
   "Font-lock keywords to colorize.")
 
@@ -835,11 +884,13 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
   (dolist (colors colorful-hex-font-lock-keywords)
     (cl-pushnew colors colorful-color-keywords)))
 
+;;; Color names
+
 (defvar colorful-color-name-font-lock-keywords
   `((,(regexp-opt (append
                    (defined-colors)
                    (mapcar #'car colorful-html-colors-alist))
-                  'words)
+                  'symbols)
      (0 (colorful--colorize 'color-name))))
   "Font-lock keywords to add color names.")
 
@@ -851,11 +902,13 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
   (dolist (colors colorful-color-name-font-lock-keywords)
     (cl-pushnew colors colorful-color-keywords)))
 
+;;; CSS user defined colors
+
 (defvar colorful-css-variables-keywords
-  `((,(rx (group "@") (group (one-or-more (any "A-Za-z_"))))
+  `((,(rx (group "@") (group (one-or-more (any alphabetic "_"))))
      (0 (colorful--colorize 'css-color-variable)))
     (,(rx (group "var") "(" (zero-or-more space)
-          (group (one-or-more (any "A-Za-z" "-")))
+          (group (one-or-more (any alphanumeric "-")))
           (zero-or-more space) ")")
      (0 (colorful--colorize 'css-color-variable)))))
 
@@ -865,26 +918,29 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
   (dolist (colors colorful-css-variables-keywords)
     (cl-pushnew colors colorful-color-keywords)))
 
+;;; CSS rgb(a)
+
 (defvar colorful-rgb-font-lock-keywords
   `((,(rx (seq "rgb" (opt "a") "(" (zero-or-more " ")
-               (group (repeat 1 3 (any digit))
-                      (opt "." (any digit)
-                           (zero-or-more " ") "%"))
-               (zero-or-more " ") (opt ",") (zero-or-more " ")
-               (group (repeat 1 3 (any digit))
-                      (opt "." (any digit)
-                           (zero-or-more " ") "%"))
-               (zero-or-more " ") (opt ",") (zero-or-more " ")
-               (group (repeat 1 3 (any digit))
-                      (opt "." (any digit)
-                           (zero-or-more " ") "%"))
-               (opt
-                (zero-or-more " ") (opt (or "/" ",")) (zero-or-more " ")
-                (group (or (seq (zero-or-one (any digit)) (opt ".")
-                                (any digit))
-                           (any digit))
-                       (opt (or "%" (zero-or-more " ")))))
-               (zero-or-more " ") ")"))
+               (group (repeat 1 3 digit)
+                      (opt "." (>= 1 digit))
+                      (opt "%"))
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (repeat 1 3 digit)
+                      (opt "." (>= 1 digit))
+                      (opt "%"))
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (repeat 1 3 digit)
+                      (opt "." (>= 1 digit))
+                      (opt "%"))
+               (zero-or-more " ")
+               (opt (or "/" ",") (zero-or-more " ")
+                    (group (or (seq (zero-or-one digit)
+                                    (opt ".")
+                                    digit)
+                               digit)
+                           (opt (or "%" (zero-or-more " ")))))
+               ")"))
      (0 (colorful--colorize 'css-rgb))))
   "Font-lock keywords for add RGB colors.")
 
@@ -894,20 +950,74 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
   (dolist (colors colorful-rgb-font-lock-keywords)
     (cl-pushnew colors colorful-color-keywords)))
 
+;;; CSS oklab and oklch
+
+(defvar colorful-oklab-oklch-font-lock-keywords
+  `((,(rx (seq "oklab(" (zero-or-more " ")
+               (group (repeat 1 3 digit)
+                      (opt "." (>= 1 (any digit)))
+                      "%")
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (opt "-")
+                      digit
+                      (opt "." (>= 1 digit)))
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (opt "-")
+                      digit
+                      (opt "." (>= 1 digit)))
+               (zero-or-more " ")
+               (opt (or "/" ",") (zero-or-more " ")
+                    (group (or (seq (zero-or-one digit)
+                                    (opt ".")
+                                    digit)
+                               digit)
+                           (opt (or "%" (zero-or-more " ")))))
+               ")"))
+     (0 (colorful--colorize 'css-oklab)))
+    (,(rx (seq "oklch" "(" (zero-or-more " ")
+               (group (repeat 1 3 digit)
+                      (opt "." (>= 1 digit))
+                      "%")
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group digit
+                      (opt "." (>= 1 digit)))
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (repeat 1 3 digit)
+                      (opt "." (>= 1 digit)))
+               (zero-or-more " ")
+               (opt (or "/" ",") (zero-or-more " ")
+                    (group (or (seq (zero-or-one digit)
+                                    (opt ".")
+                                    digit)
+                               digit)
+                           (opt (or "%" (zero-or-more " ")))))
+               ")"))
+     (0 (colorful--colorize 'css-oklch))))
+  "Font-lock keywords for add OKLAB and OKLCH colors.")
+
+(defun colorful-add-oklab-oklch-colors ()
+  "Add CSS OkLab and OkLch colors to `colorful-color-keywords'.
+This is intended to be used with `colorful-extra-color-keyword-functions'."
+  (dolist (colors colorful-oklab-oklch-font-lock-keywords)
+    (cl-pushnew colors colorful-color-keywords)))
+
+;;; CSS hsl(a)
+
 (defvar colorful-hsl-font-lock-keywords
   `((,(rx (seq "hsl" (opt "a") "(" (zero-or-more " ")
-               (group (repeat 1 3 (any digit)) (opt "deg"))
-               (zero-or-more " ") (opt ",") (zero-or-more " ")
-               (group (repeat 1 3 (any digit)) (opt "%"))
-               (zero-or-more " ") (opt ",") (zero-or-more " ")
-               (group (repeat 1 3 (any digit)) (opt "%"))
-               (opt
-                (zero-or-more " ") (opt (or "/" ",")) (zero-or-more " ")
-                (group (or (seq (zero-or-one (any digit)) (opt ".")
-                                (any digit))
-                           (any digit))
-                       (opt (or "%" (zero-or-more " ")))))
-               (zero-or-more " ") ")"))
+               (group (repeat 1 3 digit) (opt "deg"))
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (repeat 1 3 digit) (opt "%"))
+               (zero-or-more " ") (opt "," (zero-or-more " "))
+               (group (repeat 1 3 digit) (opt "%"))
+               (zero-or-more " ")
+               (opt (or "/" ",") (zero-or-more " ")
+                    (group (or (seq (zero-or-one digit)
+                                    (opt ".")
+                                    digit)
+                               digit)
+                           (opt (or "%" (zero-or-more " ")))))
+               ")"))
      (0 (colorful--colorize 'css-hsl))))
   "Font-lock keywords for add HSL colors.")
 
@@ -917,13 +1027,15 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
   (dolist (colors colorful-hsl-font-lock-keywords)
     (cl-pushnew colors colorful-color-keywords)))
 
+;;; All (almost) LaTeX colors
+
 (defvar colorful-latex-keywords
   `((,(rx (seq "{" (or "rgb" "RGB") "}{" (zero-or-more " ")
                (group (one-or-more (any digit "."))) (zero-or-more " ") "," 
(zero-or-more " ")
                (group (one-or-more (any digit "."))) (zero-or-more " ") "," 
(zero-or-more " ")
                (group (one-or-more (any digit "."))) (zero-or-more " ") "}"))
      (0 (colorful--colorize 'latex-rgb)))
-    (,(rx (seq "{HTML}{" (group (= 6 (any "0-9A-Fa-f"))) "}"))
+    (,(rx (seq "{HTML}{" (group (= 6 hex)) "}"))
      (0 (colorful--colorize 'latex-HTML)))
     (,(rx (seq "{gray}{" (group (one-or-more (any digit "."))) "}"))
      (0 (colorful--colorize 'latex-gray))))
@@ -942,7 +1054,6 @@ This is intended to be used with 
`colorful-extra-color-keyword-functions'."
 (defun colorful--turn-on ()
   "Helper function for turn on `colorful-mode'."
   ;; Run functions from list for add keywords to `colorful-color-keywords'.
-  ;; TODO: Use cl-loop instead this weird dolist.
   (dolist (fn colorful-extra-color-keyword-functions)
     (cond
      ((and (listp fn)
diff --git a/test/css.css b/test/css.css
index e04d9ebebc..7770046576 100644
--- a/test/css.css
+++ b/test/css.css
@@ -2,8 +2,17 @@
  * Color test for colorful-mode
  */
 
---color: #ffff00; /* yellow */
+/*****************************************************************************/
+/*                        user defined color variables                       */
+/*****************************************************************************/
+
+--red-100: #FF4500;
+--invalid-background-color: var(--red-100);
 
+--function-color-1: oklch(89.32% 0.12 248.9); /* #b5e1ff */
+--function-color-2: var(--function-color-1); /* #b5e1ff */
+
+--color: #ffff00; /* yellow */
 
 @define_color  base_color  #ff0000; /* red */
 @define_color  highlight_color  blue;
@@ -18,21 +27,50 @@ vars
     background: @highlight_color; /* must be blue */
 }
 
+/*****************************************************************************/
+/*                           oklab and oklch colors                          */
+/*****************************************************************************/
+
+oklch(89.32% 0.12 248.9); /* #b5e1ff */
+oklab(89.32% -0.04 -0.11); /* #b5e1ff */
+
+oklch(64.56% 0.2146 0 / 20%); /* #ed4188 */
+oklab(64.56% 0.21 0 / 20%); /* #ed4188 */
+
+/*****************************************************************************/
+/*                          rgb and hsl (with alpha)                         */
+/*****************************************************************************/
 
 rgb(245, 224, 220)   hsl(360, 47%, 63%)
 rgb(232,100,0)       hsl(23deg, 55, 67)
 
-rgb(300,100,0) hsl(361, 47%, 63%) /* <-- These both shouldn't be highlighted. 
*/
+rgb(300,100,0) /* <-- These both shouldn't be highlighted. */
+hsl(361, 47%, 63%) /* <-- */
+
+rgb(242 205 205)
+
+rgb(100 0 0)
+rgb(100% 0 0)
+rgb(100.52% 0.52 0.52)
+
+rgb(232,100,0 / 0.5)
+rgb(232,100,0 / 50%)
 
-rgb(242 205 205)     hsl(23 55% 67%)
+rgba(203, 166, 247, 0.3)
+rgba(243,139,168,0.3)
+rgba(250 , 179 , 135 , 0.3)
 
-rgb(232,100,0 / 0.5)       hsl(23deg, 55, 67 / 0.5)
+hsl(23 55% 67%)
+hsl(23deg, 55, 67 / 50%)
+hsl(23deg, 55, 67 / 0.5)
 
-rgb(232,100,0 / 50%)       hsl(23deg, 55, 67 / 50%)
+hsla(39, 77%, 74%, 0.8)
+hsla(94,33%,65%,0.8)
+hsla(287, 24%, 66%, 0.8)
 
-rgba(203, 166, 247, 0.3)                hsla(39, 77%, 74%, 0.8)
-rgba(243,139,168,0.3)                   hsla(94,33%,65%,0.8)
-rgba(250 ,    179 ,    135 ,    0.3)    hsla(287, 24%, 66%, 0.8)
+/*****************************************************************************/
+/*                      color names and color variables                      */
+/*****************************************************************************/
 
 .color_names
 {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]