diff options
Diffstat (limited to 'thcolor/_builtin/_css.py')
-rwxr-xr-x | thcolor/_builtin/_css.py | 102 |
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)) |