aboutsummaryrefslogtreecommitdiff
path: root/thcolor/_builtin/_css.py
diff options
context:
space:
mode:
Diffstat (limited to 'thcolor/_builtin/_css.py')
-rwxr-xr-xthcolor/_builtin/_css.py102
1 files changed, 42 insertions, 60 deletions
diff --git a/thcolor/_builtin/_css.py b/thcolor/_builtin/_css.py
index 4981adc..a875907 100755
--- a/thcolor/_builtin/_css.py
+++ b/thcolor/_builtin/_css.py
@@ -283,13 +283,53 @@ class CSS4Reference(CSS3Reference):
h, s, l, alpha = hsla
hi, si, li = hsl_indexes
- raise NotImplementedError
+ try:
+ h = h.to_hue()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(hi, str(e))
+
+ try:
+ s = s.to_factor()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(si, str(e))
+
+ try:
+ l = l.to_factor()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(li, str(e))
+
+ try:
+ alpha = alpha.to_factor()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(3, str(e))
+
+ return _Reference.color(_Color(_Color.Type.HSL, h, s, l, alpha))
def _hwb(self, hwba, hwb_indexes):
h, w, b, alpha = hwba
hi, wi, bi = hwb_indexes
- raise NotImplementedError
+ try:
+ h = h.to_hue()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(hi, str(e))
+
+ try:
+ w = w.to_factor()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(wi, str(e))
+
+ try:
+ b = b.to_factor()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(bi, str(e))
+
+ try:
+ alpha = alpha.to_factor()
+ except ValueError as e:
+ raise _InvalidArgumentValueError(3, str(e))
+
+ return _Reference.color(_Color(_Color.Type.HWB, h, w, b, alpha))
# ---
# Functions.
@@ -305,56 +345,6 @@ class CSS4Reference(CSS3Reference):
alpha: number | percentage = number(1.0)):
return self._rgb((r, g, b, alpha), (0, 1, 2))
- def rbg(self, r: number | percentage,
- b: number | percentage = number(0), g: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (0, 2, 1))
-
- def rbga(self, r: number | percentage,
- b: number | percentage = number(0), g: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (0, 2, 1))
-
- def brg(self, b: number | percentage,
- r: number | percentage = number(0), g: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (1, 2, 0))
-
- def brga(self, b: number | percentage,
- r: number | percentage = number(0), g: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (1, 2, 0))
-
- def bgr(self, b: number | percentage,
- g: number | percentage = number(0), r: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (2, 1, 0))
-
- def bgra(self, b: number | percentage,
- g: number | percentage = number(0), r: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (2, 1, 0))
-
- def gbr(self, g: number | percentage,
- b: number | percentage = number(0), r: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (2, 0, 1))
-
- def gbra(self, g: number | percentage,
- b: number | percentage = number(0), r: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (2, 0, 1))
-
- def grb(self, g: number | percentage,
- r: number | percentage = number(0), b: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (1, 0, 2))
-
- def grba(self, g: number | percentage,
- r: number | percentage = number(0), b: number | percentage = number(0),
- alpha: number | percentage = number(1.0)):
- return self._rgb((r, g, b, alpha), (1, 0, 2))
-
def hsl(self, h: number | angle, s: number | percentage,
l: number | percentage, alpha: number | percentage = number(1.0)):
return self._hsl((h, s, l, alpha), (0, 1, 2))
@@ -363,14 +353,6 @@ class CSS4Reference(CSS3Reference):
l: number | percentage, alpha: number | percentage = number(1.0)):
return self._hsl((h, s, l, alpha), (0, 1, 2))
- def hls(self, h: number | angle, l: number | percentage,
- s: number | percentage, alpha: number | percentage = number(1.0)):
- return self._hsl((h, s, l, alpha), (0, 2, 1))
-
- def hlsa(self, h: number | angle, l: number | percentage,
- s: number | percentage, alpha: number | percentage = number(1.0)):
- return self._hsl((h, s, l, alpha), (0, 2, 1))
-
def hwb(self, h: number | angle, w: number | percentage,
b: number | percentage, alpha: number | percentage = number(1.0)):
return self._hwb((h, w, b, alpha), (0, 1, 2))