diff options
author | Eevee (Alex Munroe) <eevee.git@veekun.com> | 2013-08-01 15:53:53 -0700 |
---|---|---|
committer | Eevee (Alex Munroe) <eevee.git@veekun.com> | 2013-08-01 15:53:53 -0700 |
commit | a21cf8048875b30290263cd2165943a275249678 (patch) | |
tree | 91efbc959ea325e347612028addb1e3e77d7c527 | |
parent | 7780a04e2ce19381b1e001f3c082ac9b42a0f60b (diff) | |
download | pyscss-a21cf8048875b30290263cd2165943a275249678.tar.gz |
Better support for `transparent`, including on output.
-rw-r--r-- | scss/cssdefs.py | 281 | ||||
-rw-r--r-- | scss/expression.py | 2 | ||||
-rw-r--r-- | scss/types.py | 18 |
3 files changed, 152 insertions, 149 deletions
diff --git a/scss/cssdefs.py b/scss/cssdefs.py index 19af7bf..602cb66 100644 --- a/scss/cssdefs.py +++ b/scss/cssdefs.py @@ -6,146 +6,147 @@ import re # See: http://www.w3.org/TR/css3-color/#svg-color COLOR_NAMES = { - 'aliceblue': (240, 248, 255), - 'antiquewhite': (250, 235, 215), - 'aqua': (0, 255, 255), - 'aquamarine': (127, 255, 212), - 'azure': (240, 255, 255), - 'beige': (245, 245, 220), - 'bisque': (255, 228, 196), - 'black': (0, 0, 0), - 'blanchedalmond': (255, 235, 205), - 'blue': (0, 0, 255), - 'blueviolet': (138, 43, 226), - 'brown': (165, 42, 42), - 'burlywood': (222, 184, 135), - 'cadetblue': (95, 158, 160), - 'chartreuse': (127, 255, 0), - 'chocolate': (210, 105, 30), - 'coral': (255, 127, 80), - 'cornflowerblue': (100, 149, 237), - 'cornsilk': (255, 248, 220), - 'crimson': (220, 20, 60), - 'cyan': (0, 255, 255), - 'darkblue': (0, 0, 139), - 'darkcyan': (0, 139, 139), - 'darkgoldenrod': (184, 134, 11), - 'darkgray': (169, 169, 169), - 'darkgreen': (0, 100, 0), - 'darkkhaki': (189, 183, 107), - 'darkmagenta': (139, 0, 139), - 'darkolivegreen': (85, 107, 47), - 'darkorange': (255, 140, 0), - 'darkorchid': (153, 50, 204), - 'darkred': (139, 0, 0), - 'darksalmon': (233, 150, 122), - 'darkseagreen': (143, 188, 143), - 'darkslateblue': (72, 61, 139), - 'darkslategray': (47, 79, 79), - 'darkturquoise': (0, 206, 209), - 'darkviolet': (148, 0, 211), - 'deeppink': (255, 20, 147), - 'deepskyblue': (0, 191, 255), - 'dimgray': (105, 105, 105), - 'dodgerblue': (30, 144, 255), - 'firebrick': (178, 34, 34), - 'floralwhite': (255, 250, 240), - 'forestgreen': (34, 139, 34), - 'fuchsia': (255, 0, 255), - 'gainsboro': (220, 220, 220), - 'ghostwhite': (248, 248, 255), - 'gold': (255, 215, 0), - 'goldenrod': (218, 165, 32), - 'gray': (128, 128, 128), - 'green': (0, 128, 0), - 'greenyellow': (173, 255, 47), - 'honeydew': (240, 255, 240), - 'hotpink': (255, 105, 180), - 'indianred': (205, 92, 92), - 'indigo': (75, 0, 130), - 'ivory': (255, 255, 240), - 'khaki': (240, 230, 140), - 'lavender': (230, 230, 250), - 'lavenderblush': (255, 240, 245), - 'lawngreen': (124, 252, 0), - 'lemonchiffon': (255, 250, 205), - 'lightblue': (173, 216, 230), - 'lightcoral': (240, 128, 128), - 'lightcyan': (224, 255, 255), - 'lightgoldenrodyellow': (250, 250, 210), - 'lightgreen': (144, 238, 144), - 'lightgrey': (211, 211, 211), - 'lightpink': (255, 182, 193), - 'lightsalmon': (255, 160, 122), - 'lightseagreen': (32, 178, 170), - 'lightskyblue': (135, 206, 250), - 'lightslategray': (119, 136, 153), - 'lightsteelblue': (176, 196, 222), - 'lightyellow': (255, 255, 224), - 'lime': (0, 255, 0), - 'limegreen': (50, 205, 50), - 'linen': (250, 240, 230), - 'magenta': (255, 0, 255), - 'maroon': (128, 0, 0), - 'mediumaquamarine': (102, 205, 170), - 'mediumblue': (0, 0, 205), - 'mediumorchid': (186, 85, 211), - 'mediumpurple': (147, 112, 219), - 'mediumseagreen': (60, 179, 113), - 'mediumslateblue': (123, 104, 238), - 'mediumspringgreen': (0, 250, 154), - 'mediumturquoise': (72, 209, 204), - 'mediumvioletred': (199, 21, 133), - 'midnightblue': (25, 25, 112), - 'mintcream': (245, 255, 250), - 'mistyrose': (255, 228, 225), - 'moccasin': (255, 228, 181), - 'navajowhite': (255, 222, 173), - 'navy': (0, 0, 128), - 'oldlace': (253, 245, 230), - 'olive': (128, 128, 0), - 'olivedrab': (107, 142, 35), - 'orange': (255, 165, 0), - 'orangered': (255, 69, 0), - 'orchid': (218, 112, 214), - 'palegoldenrod': (238, 232, 170), - 'palegreen': (152, 251, 152), - 'paleturquoise': (175, 238, 238), - 'palevioletred': (219, 112, 147), - 'papayawhip': (255, 239, 213), - 'peachpuff': (255, 218, 185), - 'peru': (205, 133, 63), - 'pink': (255, 192, 203), - 'plum': (221, 160, 221), - 'powderblue': (176, 224, 230), - 'purple': (128, 0, 128), - 'red': (255, 0, 0), - 'rosybrown': (188, 143, 143), - 'royalblue': (65, 105, 225), - 'saddlebrown': (139, 69, 19), - 'salmon': (250, 128, 114), - 'sandybrown': (244, 164, 96), - 'seagreen': (46, 139, 87), - 'seashell': (255, 245, 238), - 'sienna': (160, 82, 45), - 'silver': (192, 192, 192), - 'skyblue': (135, 206, 235), - 'slateblue': (106, 90, 205), - 'slategray': (112, 128, 144), - 'snow': (255, 250, 250), - 'springgreen': (0, 255, 127), - 'steelblue': (70, 130, 180), - 'tan': (210, 180, 140), - 'teal': (0, 128, 128), - 'thistle': (216, 191, 216), - 'tomato': (255, 99, 71), - 'turquoise': (64, 224, 208), - 'violet': (238, 130, 238), - 'wheat': (245, 222, 179), - 'white': (255, 255, 255), - 'whitesmoke': (245, 245, 245), - 'yellow': (255, 255, 0), - 'yellowgreen': (154, 205, 50) + 'aliceblue': (240, 248, 255, 1), + 'antiquewhite': (250, 235, 215, 1), + 'aqua': (0, 255, 255, 1), + 'aquamarine': (127, 255, 212, 1), + 'azure': (240, 255, 255, 1), + 'beige': (245, 245, 220, 1), + 'bisque': (255, 228, 196, 1), + 'black': (0, 0, 0, 1), + 'blanchedalmond': (255, 235, 205, 1), + 'blue': (0, 0, 255, 1), + 'blueviolet': (138, 43, 226, 1), + 'brown': (165, 42, 42, 1), + 'burlywood': (222, 184, 135, 1), + 'cadetblue': (95, 158, 160, 1), + 'chartreuse': (127, 255, 0, 1), + 'chocolate': (210, 105, 30, 1), + 'coral': (255, 127, 80, 1), + 'cornflowerblue': (100, 149, 237, 1), + 'cornsilk': (255, 248, 220, 1), + 'crimson': (220, 20, 60, 1), + 'cyan': (0, 255, 255, 1), + 'darkblue': (0, 0, 139, 1), + 'darkcyan': (0, 139, 139, 1), + 'darkgoldenrod': (184, 134, 11, 1), + 'darkgray': (169, 169, 169, 1), + 'darkgreen': (0, 100, 0, 1), + 'darkkhaki': (189, 183, 107, 1), + 'darkmagenta': (139, 0, 139, 1), + 'darkolivegreen': (85, 107, 47, 1), + 'darkorange': (255, 140, 0, 1), + 'darkorchid': (153, 50, 204, 1), + 'darkred': (139, 0, 0, 1), + 'darksalmon': (233, 150, 122, 1), + 'darkseagreen': (143, 188, 143, 1), + 'darkslateblue': (72, 61, 139, 1), + 'darkslategray': (47, 79, 79, 1), + 'darkturquoise': (0, 206, 209, 1), + 'darkviolet': (148, 0, 211, 1), + 'deeppink': (255, 20, 147, 1), + 'deepskyblue': (0, 191, 255, 1), + 'dimgray': (105, 105, 105, 1), + 'dodgerblue': (30, 144, 255, 1), + 'firebrick': (178, 34, 34, 1), + 'floralwhite': (255, 250, 240, 1), + 'forestgreen': (34, 139, 34, 1), + 'fuchsia': (255, 0, 255, 1), + 'gainsboro': (220, 220, 220, 1), + 'ghostwhite': (248, 248, 255, 1), + 'gold': (255, 215, 0, 1), + 'goldenrod': (218, 165, 32, 1), + 'gray': (128, 128, 128, 1), + 'green': (0, 128, 0, 1), + 'greenyellow': (173, 255, 47, 1), + 'honeydew': (240, 255, 240, 1), + 'hotpink': (255, 105, 180, 1), + 'indianred': (205, 92, 92, 1), + 'indigo': (75, 0, 130, 1), + 'ivory': (255, 255, 240, 1), + 'khaki': (240, 230, 140, 1), + 'lavender': (230, 230, 250, 1), + 'lavenderblush': (255, 240, 245, 1), + 'lawngreen': (124, 252, 0, 1), + 'lemonchiffon': (255, 250, 205, 1), + 'lightblue': (173, 216, 230, 1), + 'lightcoral': (240, 128, 128, 1), + 'lightcyan': (224, 255, 255, 1), + 'lightgoldenrodyellow': (250, 250, 210, 1), + 'lightgreen': (144, 238, 144, 1), + 'lightgrey': (211, 211, 211, 1), + 'lightpink': (255, 182, 193, 1), + 'lightsalmon': (255, 160, 122, 1), + 'lightseagreen': (32, 178, 170, 1), + 'lightskyblue': (135, 206, 250, 1), + 'lightslategray': (119, 136, 153, 1), + 'lightsteelblue': (176, 196, 222, 1), + 'lightyellow': (255, 255, 224, 1), + 'lime': (0, 255, 0, 1), + 'limegreen': (50, 205, 50, 1), + 'linen': (250, 240, 230, 1), + 'magenta': (255, 0, 255, 1), + 'maroon': (128, 0, 0, 1), + 'mediumaquamarine': (102, 205, 170, 1), + 'mediumblue': (0, 0, 205, 1), + 'mediumorchid': (186, 85, 211, 1), + 'mediumpurple': (147, 112, 219, 1), + 'mediumseagreen': (60, 179, 113, 1), + 'mediumslateblue': (123, 104, 238, 1), + 'mediumspringgreen': (0, 250, 154, 1), + 'mediumturquoise': (72, 209, 204, 1), + 'mediumvioletred': (199, 21, 133, 1), + 'midnightblue': (25, 25, 112, 1), + 'mintcream': (245, 255, 250, 1), + 'mistyrose': (255, 228, 225, 1), + 'moccasin': (255, 228, 181, 1), + 'navajowhite': (255, 222, 173, 1), + 'navy': (0, 0, 128, 1), + 'oldlace': (253, 245, 230, 1), + 'olive': (128, 128, 0, 1), + 'olivedrab': (107, 142, 35, 1), + 'orange': (255, 165, 0, 1), + 'orangered': (255, 69, 0, 1), + 'orchid': (218, 112, 214, 1), + 'palegoldenrod': (238, 232, 170, 1), + 'palegreen': (152, 251, 152, 1), + 'paleturquoise': (175, 238, 238, 1), + 'palevioletred': (219, 112, 147, 1), + 'papayawhip': (255, 239, 213, 1), + 'peachpuff': (255, 218, 185, 1), + 'peru': (205, 133, 63, 1), + 'pink': (255, 192, 203, 1), + 'plum': (221, 160, 221, 1), + 'powderblue': (176, 224, 230, 1), + 'purple': (128, 0, 128, 1), + 'red': (255, 0, 0, 1), + 'rosybrown': (188, 143, 143, 1), + 'royalblue': (65, 105, 225, 1), + 'saddlebrown': (139, 69, 19, 1), + 'salmon': (250, 128, 114, 1), + 'sandybrown': (244, 164, 96, 1), + 'seagreen': (46, 139, 87, 1), + 'seashell': (255, 245, 238, 1), + 'sienna': (160, 82, 45, 1), + 'silver': (192, 192, 192, 1), + 'skyblue': (135, 206, 235, 1), + 'slateblue': (106, 90, 205, 1), + 'slategray': (112, 128, 144, 1), + 'snow': (255, 250, 250, 1), + 'springgreen': (0, 255, 127, 1), + 'steelblue': (70, 130, 180, 1), + 'tan': (210, 180, 140, 1), + 'teal': (0, 128, 128, 1), + 'thistle': (216, 191, 216, 1), + 'tomato': (255, 99, 71, 1), + 'transparent': (0, 0, 0, 0), + 'turquoise': (64, 224, 208, 1), + 'violet': (238, 130, 238, 1), + 'wheat': (245, 222, 179, 1), + 'white': (255, 255, 255, 1), + 'whitesmoke': (245, 245, 245, 1), + 'yellow': (255, 255, 0, 1), + 'yellowgreen': (154, 205, 50, 1), } COLOR_LOOKUP = dict((v, k) for (k, v) in COLOR_NAMES.items()) diff --git a/scss/expression.py b/scss/expression.py index 5af719b..65eb4b3 100644 --- a/scss/expression.py +++ b/scss/expression.py @@ -333,8 +333,6 @@ class ArgspecLiteral(Expression): def parse_bareword(word): if word in COLOR_NAMES: return ColorValue.from_name(word) - elif word == 'transparent': - return ColorValue.from_rgb(0, 0, 0, 0) elif word in ('null', 'undefined'): return Null() elif word == 'true': diff --git a/scss/types.py b/scss/types.py index 54cea4e..853d719 100644 --- a/scss/types.py +++ b/scss/types.py @@ -577,10 +577,13 @@ class ColorValue(Value): self = cls.__new__(cls) # TODO self.tokens = ParserValue(name) - r, g, b = COLOR_NAMES[name] + r, g, b, a = COLOR_NAMES[name] - self.value = r, g, b, 1.0 - self.types = {'rgb': 1} + self.value = r, g, b, a + if a == 1.0: + self.types = {'rgb': 1} + else: + self.types = {'rgba': 1} return self @@ -670,11 +673,12 @@ class ColorValue(Value): r, g, b, a = self.value r, g, b = int(round(r)), int(round(g)), int(round(b)) - if a == 1: - # Try color name - if (r, g, b) in COLOR_LOOKUP: - candidates.append(COLOR_LOOKUP[r, g, b]) + # Try color name + key = r, g, b, a + if key in COLOR_LOOKUP: + candidates.append(COLOR_LOOKUP[key]) + if a == 1: # Hex is always shorter than function notation if all(ch % 17 == 0 for ch in (r, g, b)): candidates.append("#%1x%1x%1x" % (r // 17, g // 17, b // 17)) |