Goal:
Generate compilable elm-css code from valid css. In cases that elm-css does not have support for something:
- fall back to using custom functions like
selector
orproperty
when able - skip entirely (like at-rules) and warn
Things to support:
-
property names
- single arity (color, display, etc.)
- multiple arities (padding, flex, etc.)
- can take lists as args (font-family, etc.)
- displayFlex
-
values
- lengths (px, in, etc)
- angles (deg, rad, etc)
- transforms (rotate, scale, etc. )
- color values (rgb, hsl, elm-css Css.Colors)
- length calculations (|+|, |/|, etc) http://www.w3schools.com/cssref/func_calc.asp
- integers and floats
- TextAlign
- VerticalAlign
- feature tags https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings
- LengthOrNumber
- values with arity 0
-
selectors
- class
- id
- html elements
- combinators https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_selectors
- attribute selectors https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
- universal selectors https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors
- pseudo classes https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes
-
media queries
-
important
-
code comments
-
at-rules (only @keyframes) not currently supported by elm-css
-
use other postcss plugins
-
use other postcss parsers
-
validation for property and their param types