summaryrefslogtreecommitdiff
path: root/scss/cssdefs.py
diff options
context:
space:
mode:
authorEevee <eevee.git@veekun.com>2013-02-13 17:03:11 -0800
committerEevee <eevee.git@veekun.com>2013-02-13 17:03:11 -0800
commit3af791f558502728b7428ad508e69b48e22eeb1e (patch)
tree8428d500b21690d3305dc77c3685f15bba8587b6 /scss/cssdefs.py
parentcb326827f79a31e22b72defd67ab184714740790 (diff)
downloadpyscss-3af791f558502728b7428ad508e69b48e22eeb1e.tar.gz
Break out expression parsing and resolution.
Diffstat (limited to 'scss/cssdefs.py')
-rw-r--r--scss/cssdefs.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/scss/cssdefs.py b/scss/cssdefs.py
index 3da1fe2..85cc4c9 100644
--- a/scss/cssdefs.py
+++ b/scss/cssdefs.py
@@ -1,3 +1,6 @@
+import re
+
+
# color literals
_colors = {
'aliceblue': '#f0f8ff',
@@ -213,3 +216,43 @@ __elements_of_type = {
'html5-inline': dict(enumerate(sorted(__elements_of_type_html5_inline.replace(' ', '').split(',')))),
'html5': dict(enumerate(sorted(__elements_of_type_html5.replace(' ', '').split(',')))),
}
+
+
+# Known function names
+FUNCTIONS_CSS2 = 'attr counter counters url rgb rect'
+## CSS3
+FUNCTIONS_UNITS = 'calc min max cycle' # http://www.w3.org/TR/css3-values/
+FUNCTIONS_COLORS = 'rgba hsl hsla' # http://www.w3.org/TR/css3-color/
+FUNCTIONS_FONTS = 'local format' # http://www.w3.org/TR/css3-fonts/
+# http://www.w3.org/TR/css3-images
+FUNCTIONS_IMAGES = 'image element linear-gradient radial-gradient '\
+ 'repeating-linear-gradient repeating-radial-gradient'
+# http://www.w3.org/TR/css3-2d-transforms/
+FUNCTIONS_2D = 'matrix translate translateX translateY scale '\
+ 'scale scaleX scaleY rotate skew skewX skewY'
+# http://www.w3.org/TR/css3-3d-transforms/
+FUNCTIONS_3D = 'matrix3d translate3d translateZ scale3d scaleZ rotate3d '\
+ 'rotateX rotateY rotateZ perspective'
+# http://www.w3.org/TR/css3-transitions/
+FUNCTIONS_TRANSITIONS = 'cubic-bezier'
+# http://www.w3.org/TR/css3-animations/
+FUNCTIONS_ANIMATIONS = '' # has 'from' and 'to' block selectors, but no new function
+FUNCTIONS_FILTER = 'grayscale blur sepia saturate opacity brightness contrast hue-rotate invert'
+FUNCTIONS_OTHERS = 'from to color-stop mask'
+VENDORS = '-[^-]+-.+'
+
+_css_functions_re = re.compile(r'^(%s)$' % (
+ '|'.join(' '.join([
+ FUNCTIONS_CSS2,
+ FUNCTIONS_UNITS,
+ FUNCTIONS_COLORS,
+ FUNCTIONS_FONTS,
+ FUNCTIONS_IMAGES,
+ FUNCTIONS_2D,
+ FUNCTIONS_3D,
+ FUNCTIONS_TRANSITIONS,
+ FUNCTIONS_ANIMATIONS,
+ FUNCTIONS_FILTER,
+ FUNCTIONS_OTHERS,
+ VENDORS,
+ ]).split())))