diff options
author | Eevee (Lexy Munroe) <eevee.git@veekun.com> | 2016-06-08 18:07:07 -0700 |
---|---|---|
committer | Eevee (Lexy Munroe) <eevee.git@veekun.com> | 2016-06-08 18:07:07 -0700 |
commit | 6c3c4f0d3a14c6b53f1bfb64c1eb1a079345730d (patch) | |
tree | 7114e4cb1829874757e22d630794e51b1567c62f | |
parent | efcbde372e9d6ddfd429a463f31cf6f37fa22d9a (diff) | |
download | pyscss-6c3c4f0d3a14c6b53f1bfb64c1eb1a079345730d.tar.gz |
Leave invert(N) alone; it's a CSS filter. Fixes #331
-rw-r--r-- | scss/extension/core.py | 6 | ||||
-rw-r--r-- | scss/tests/extension/test_core.py | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/scss/extension/core.py b/scss/extension/core.py index 7b69315..966a830 100644 --- a/scss/extension/core.py +++ b/scss/extension/core.py @@ -378,6 +378,12 @@ def invert(color): """Returns the inverse (negative) of a color. The red, green, and blue values are inverted, while the opacity is left alone. """ + if isinstance(color, Number): + # invert(n) and invert(n%) are CSS3 filters and should be left + # intact + return String.unquoted("invert(%s)" % (color.render(),)) + + expect_type(color, Color) r, g, b, a = color.rgba return Color.from_rgb(1 - r, 1 - g, 1 - b, alpha=a) diff --git a/scss/tests/extension/test_core.py b/scss/tests/extension/test_core.py index 7151c76..4e83e99 100644 --- a/scss/tests/extension/test_core.py +++ b/scss/tests/extension/test_core.py @@ -152,6 +152,11 @@ def test_invert(): assert calc('invert(yellow)') == Color.from_rgb(0., 0., 1.) +def test_invert_css_filter(): + # invert(number) is a CSS filter and should be left alone + assert calc('invert(50%)') == String("invert(50%)") + + # ------------------------------------------------------------------------------ # Opacity functions |