[%info]
CSS Level 3
Reference: http://www.w3.org/Style/CSS/current-work
TODO: Add CSS Flexible Box Layout Module

[%groups]
animate=Animation
box=Box and Borders
colors=Colors and Backgrounds
text=Font and Text
generate=Generated Content
layout=Layout
list=Lists
page=Page
speech=Speech
table=Tables
ui=User Interface
other=Other

[%properties]
alignment-adjust
alignment-baseline
animation
animation-delay
animation-direction
animation-duration
animation-iteration-count
animation-name
animation-play-state
animation-timing-function
appearance
azimuth
backface-visibility
background
background-attachment
background-clip
background-color
background-image
background-origin
background-position
background-repeat
background-size
baseline-shift
bleed
bookmark-label
bookmark-level
bookmark-state
bookmark-target
border
border-bottom
border-bottom-color
border-bottom-left-radius
border-bottom-right-radius
border-bottom-style
border-bottom-width
border-collapse
border-color
border-image
border-image-outset
border-image-repeat
border-image-slice
border-image-source
border-image-width
border-left
border-left-color
border-left-style
border-left-width
border-radius
border-right
border-right-color
border-right-style
border-right-width
border-spacing
border-style
border-top
border-top-color
border-top-left-radius
border-top-right-radius
border-top-style
border-top-width
border-width
bottom
box-decoration-break
box-sizing
box-shadow
break-after
break-before
break-inside
caption-side
clear
clip
color
columns
column-count
column-fill
column-gap
column-rule
column-rule-color
column-rule-style
column-rule-width
column-span
column-width
content
counter-increment
counter-reset
crop
cue
cue-after
cue-before
cursor
direction
display
dominant-baseline
drop-initial-after-adjust
drop-initial-after-align
drop-initial-before-adjust
drop-initial-before-align
drop-initial-size
drop-initial-value
elevation
empty-cells
float
float-offset
font
font-family
font-size
font-size-adjust
font-stretch
font-style
font-variant
font-weight
grid-columns
grid-rows
hanging-punctuation
height
hyphens
icon
image-resolution
inline-box-align
left
letter-spacing
line-box-contain
line-break
line-grid
line-grid-mode
line-grid-progression
line-height
line-stacking
line-stacking-ruby
line-stacking-shift
line-stacking-strategy
list-style
list-style-image
list-style-position
list-style-type
marquee-direction
marquee-loop
marquee-play-count
marquee-speed
marquee-style
margin
margin-bottom
margin-left
margin-right
margin-top
mark
mark-before
mark-after
marks
max-height
max-width
min-height
min-width
move-to
nav-down
nav-index
nav-left
nav-right
nav-up
opacity
orphans
outline
outline-color
outline-offset
outline-style
outline-width
overflow
overflow-style
overflow-x
overflow-y
padding
padding-bottom
padding-left
padding-right
padding-top
page-break-after
page-break-before
page-break-inside
page-policy
pause
pause-before
pause-after
perspective
perspective-origin
phonemes
pitch
pitch-range
play-during
position
prototype-insert
prototype-insert-policy
prototype-insert-position
punctuation-trim
quotes
resize
rest
rest-before
rest-after
richness
right
rotation
rotation-point
ruby-align
ruby-overhang
ruby-position
ruby-span
size
speak
speak-as
string-set
tab-size
table-layout
target
target-name
target-new
target-position
text-align
text-align-last
text-decoration
text-decoration-color
text-decoration-line
text-decoration-style
text-emphasis
text-emphasis-color
text-emphasis-style
text-emphasis-position
text-indent
text-overflow
text-shadow
text-justify
text-transform
text-underline-position
top
transition
transition-delay
transition-duration
transition-property
transition-timing-function
transform
transform-origin
transform-style
unicode-bidi
vertical-align
visibility
voice-balance
voice-duration
voice-family
voice-pitch
voice-rate
voice-range
voice-stress
voice-volume
white-space
widows
width
word-break
word-spacing
word-wrap
writing-mode
z-index

[%units]
<length>=px|em|ex|rem|vw|vh|vm|ch|pt|in|pc|mm|cm|vmin|vmax
<angle>=deg|grad|rad|turn
<time>=ms|s
<frequency>=Hz|kHz
<resolution>=dpi|dpcm|dppx
<semitones>=st
<decibel>=dB

[%types]
<border-style>=none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset
<border-width>=<length>|thin|medium|thick
<absolute-size>=xx-small|x-small|small|medium|large|x-large|xx-large
<relative-size>=larger|smaller
<generic-family>=serif|sans-serif|cursive|fantasy|monospace

[alignment-adjust]
group=other
value=auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical|<percentage>|<length>

[alignment-baseline]
group=other
value=baseline|use-script|before-edge|text-before-edge|after-edge|text-after-edge|central|middle|ideographic|alphabetic|hanging|mathematical

[animation]
group=animate
value=<mixed>
sub1=animation-name,none|<ident>
sub2=animation-duration,<time>
sub3=animation-timing-function,ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|step-start|step-stop|steps()
sub4=animation-delay,<time>
sub5=animation-iteration-count,infinite|<number>
sub6=animation-direction,normal|alternate

[animation-delay]
group=animate
value=<time>

[animation-direction]
group=animate
value=normal|alternate

[animation-duration]
group=animate
value=<time>

[animation-iteration-count]
group=animate
value=infinite|<number>

[animation-name]
group=animate
value=none|<ident>

[animation-play-state]
group=animate
value=running|paused

[animation-timing-function]
group=animate
value=ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|step-start|step-stop|steps()

[appearance]
group=other
value=normal|icon|window|desktop|workspace|document|tooltip|dialog|button|push-button|hyperlink|radio-button|checkbox|menu-item|tab|me|u|menubar|pull-down-menu|pop-up-menu|list-menu|radio-group|checkbox-group|outline-tree|range|field|combo-box|signature|password

[azimuth]
group=speech
value=<angle>|left-side|far-left|left|center-left|center|center-right|right|far-right|right-side|behind|leftwards|rightwards

[backface-visibility]
group=other
value=visible|hidden

[background]
group=colors
value=<mixed>|<color>|transparent
sub1=background-color,<color>|transparent
sub2=background-image,<imageurl>|none
sub3=background-repeat,repeat|repeat-x|repeat-y|no-repeat
sub4=background-attachment,scroll|fixed
sub5=background-position,<percentage>|<length>|top|center|bottom|left|right

[background-attachment]
group=colors
value=scroll|fixed|inherit

[background-clip]
group=colors
value=border-box|padding-box|no-clip|inherit

[background-color]
group=colors
value=<color>|transparent|inherit

[background-image]
group=colors
value=<imageurl>|<gradient>|none|inherit

[background-origin]
group=colors
value=border-box|padding-box|content-box|inherit

[background-position]
group=colors
value=<percentage>|<length>|top|center|bottom|left|right|inherit

[background-repeat]
group=colors
value=repeat|repeat-x|repeat-y|no-repeat|inherit

[background-size]
group=colors
value=<length>|<percentage>|auto|cover|contain|inherit

[baseline-shift]
group=other
value=baseline|sub|super|<percentage>|<length>

[bleed]
group=page
value=<length>|inherit

[bookmark-label]
group=generate
value=content()|<string>|inherit

[bookmark-level]
group=generate
value=none|<number>|inherit

[bookmark-state]
group=generate
value=open|closed|inherit

[bookmark-target]
group=generate
value=none|<url>|inherit

[border]
group=box
value=<mixed>|<border-style>|inherit
sub1=width,<border-width>
sub2=style,<border-style>
sub3=color,<color>|transparent

[border-bottom]
group=box
value=<mixed>|<border-style>|inherit
sub1=width,<border-width>
sub2=style,<border-style>
sub3=color,<color>|transparent

[border-bottom-color]
group=box
value=<color>|transparent|inherit

[border-bottom-left-radius]
group=box
value=<mixed>|<length>|<percentage>|inherit
sub1=value1,<length>|<percentage>
sub2=value2,<length>|<percentage>

[border-bottom-right-radius]
group=box
value=<mixed>|<length>|<percentage>|inherit
sub1=value1,<length>|<percentage>
sub2=value2,<length>|<percentage>

[border-bottom-style]
group=box
value=<border-style>|inherit

[border-bottom-width]
group=box
value=<border-width>|inherit

[border-collapse]
group=table
value=collapse|separate

[border-color]
group=box
value=<mixed>|<color>|transparent|inherit
sub1=border-top-color,<color>|transparent
sub2=border-right-color,<color>|transparent
sub3=border-bottom-color,<color>|transparent
sub4=border-left-color,<color>|transparent

[border-image]
group=box
value=none|<imageurl>|<number>|<percentage>|stretch|repeat|round|inherit

[border-image-outset]
group=box
value=<length>|<number>|inherit

[border-image-repeat]
group=box
value=stretch|repeat|round|space|inherit

[border-image-source]
group=box
value=<imageurl>|none|inherit

[border-image-slice]
group=box
value=<number>|<percentage>|fill|inherit

[border-image-width]
group=box
value=<length>|<percentage>|<number>|auto|inherit

[border-left]
group=box
value=<mixed>|<border-style>|inherit
sub1=width,<border-width>
sub2=style,<border-style>
sub3=color,<color>|transparent

[border-left-color]
group=box
value=<color>|transparent|inherit

[border-left-style]
group=box
value=<border-style>|inherit

[border-left-width]
group=box
value=<border-width>|inherit

[border-radius]
group=box
value=<mixed>|<length>|<percentage>|inherit
sub1=border-top-left-radius,<length>|<percentage>
sub2=border-top-right-radius,<length>|<percentage>
sub3=border-bottom-right-radius,<length>|<percentage>
sub4=border-bottom-left-radius,<length>|<percentage>

[border-right]
group=box
value=<mixed>|<border-style>|inherit
sub1=width,<border-width>
sub2=style,<border-style>
sub3=color,<color>|transparent

[border-right-color]
group=box
value=<color>|transparent|inherit

[border-right-style]
group=box
value=<border-style>|inherit

[border-right-width]
group=box
value=<border-width>|inherit

[border-spacing]
group=table
value=<length>

[border-style]
group=box
value=<mixed>|<border-style>|inherit
sub1=border-top-style,<border-style>
sub2=border-right-style,<border-style>
sub3=border-bottom-style,<border-style>
sub4=border-left-style,<border-style>

[border-top]
group=box
value=<mixed>|<border-style>|inherit
sub1=width,<border-width>
sub2=style,<border-style>
sub3=color,<color>|transparent

[border-top-color]
group=box
value=<color>|inherit

[border-top-left-radius]
group=box
value=<mixed>|<length>|<percentage>|inherit
sub1=value1,<length>|<percentage>
sub2=value2,<length>|<percentage>

[border-top-right-radius]
group=box
value=<mixed>|<length>|<percentage>|inherit
sub1=value1,<length>|<percentage>
sub2=value2,<length>|<percentage>

[border-top-style]
group=box
value=<border-style>|inherit

[border-top-width]
group=box
value=<border-width>|inherit

[border-width]
group=box
value=<mixed>|<border-width>|inherit
sub1=border-top-width,<border-width>
sub2=border-right-width,<border-width>
sub3=border-bottom-width,<border-width>
sub4=border-left-width,<border-width>

[bottom]
group=layout
value=<percentage>|<length>|auto

[box-decoration-break]
group=box
value=slice|clone|inherit

[box-sizing]
group=box
value=content-box|padding-box|border-box|inherit

[box-shadow]
group=colors
value=<box-shadow>|<mixed>|none|inherit
sub1=horizontal-offset,<length>
sub2=vertical-offset,<length>
sub3=blur-radius,<length>
sub4=spread-distance,<length>
sub5=color,<color>
sub6=inset,inset

[caption-side]
group=table
value=top|bottom

[clear]
group=layout
value=none|left|right|both

[clip]
group=layout
value=auto|inherit

[color]
group=colors
value=<color>

[column-count]
group=other
value=<number>|auto

[column-fill]
group=other
value=auto|balance

[column-gap]
group=other
value=<length>|normal

[column-rule]
group=other
value=<mixed>
sub1=column-rule-width,<column-rule-width>
sub2=column-rule-style,<border-style>
sub3=column-rule-color,<color>|transparent

[column-rule-color]
group=other
value=<color>

[column-rule-style]
group=other
value=<border-style>

[column-rule-width]
group=other
value=<border-width>

[columns]
group=other
value=<mixed>
sub1=column-count,<number>|auto
sub2=column-width,<length>|auto

[column-span]
group=other
value=1|all

[column-width]
group=other
value=<length>|auto

[content]
group=generate
value=<url>|normal|none|inhibit|<string>

[counter-increment]
group=generate
value=<ident>|none

[counter-reset]
group=generate
value=<ident>|none

[crop]
group=generate
value=rect()|inset-rect()|auto

[cue]
group=speech
value=<mixed>|inherit
sub1=cue-before,<url>|<decibel>|none
sub2=cue-after,<url>|<decibel>|none

[cue-after]
group=speech
value=<url>|<decibel>|none|inherit

[cue-before]
group=speech
value=<url>|<decibel>|none|inherit

[cursor]
group=ui
value=<url>|auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll

[direction]
group=text
value=ltr|rtl

[display]
group=layout
value=inline|block|inline-block|list-item|run-in|compact|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|ruby|ruby-base|ruby-text|ruby-base-group|ruby-text-group|none|inherit

[dominant-baseline]
group=other
value=auto|use-script|no-change|reset-size|alphabetic|hanging|ideographic|mathematical|central|middle|text-after-edge|text-before-edge

[drop-initial-after-adjust]
group=other
value=central|middle|after-edge|text-after-edge|ideographic|alphabetic|mathematical|<percentage>|<length>

[drop-initial-after-align]
group=other
value=baseline|use-script|before-edge|text-before-edge|after-edge|text-after-edge|central|middle|ideographic|alphabetic|hanging|mathematical

[drop-initial-before-adjust]
group=other
value=before-edge|text-before-edge|central|middle|hanging|mathematical|<percentage>|<length>

[drop-initial-before-align]
group=other
value=<mixed>
sub1=caps-height,caps-height
sub2=alignment-baseline,baseline|use-script|before-edge|text-before-edge|after-edge|text-after-edge|central|middle|ideographic|alphabetic|hanging|mathematical

[drop-initial-size]
group=other
value=auto|<line>|<length>|<percentage>

[drop-initial-value]
group=other
value=initial|<number>

[elevation]
group=speech
value=<angle>|below|level|above|higher|lower

[empty-cells]
group=table
value=show|hide

[fit]
group=page
value=fill|hidden|meet|slice

[fit-position]
group=page
value=<percentage>|<length>|top|center|bottom|left|right|auto

[float]
group=layout
value=left|right|none|inherit

[float-offset]
group=layout
value=<length>|inherit

[font]
group=text
value=<mixed>
sub1=font-style,normal|italic|oblique
sub2=font-variant,normal|small-caps
sub3=font-weight,normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900
sub4=font-size,<length>|<percentage>|<relative-size>|<absolute-size>
sub5=line-height,<percentage>|<length>|<number>|normal
sub6=font-family,<font>
sub7=system-specific,caption|icon|menu|message-box|small-caption|status-bar

[font-family]
group=text
value=<font>

[font-size]
group=text
value=<length>|<percentage>|<relative-size>|<absolute-size>

[font-size-adjust]
group=text
value=<number>|none

[font-stretch]
group=text
value=normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded

[font-style]
group=text
value=normal|italic|oblique

[font-variant]
group=text
value=normal|small-caps

[font-weight]
group=text
value=normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900

[grid-columns]
group=other
value=<length>|<percentage>|none

[grid-rows]
group=other
value=<length>|<percentage>|none

[hanging-punctuation]
group=text
value=none|first|force-end|allow-end

[height]
group=box
value=<percentage>|<length>|auto

[hyphens]
group=text
value=none|manual|auto

[icon]
group=ui
value=auto|<url>|inherit

[image-resolution]
group=other
value=<mixed>|<resolution>
sub1=resolution,<resolution>
sub2=snap,snap
sub3=from-image,from-image

[inline-box-align]
group=other
value=initial|last|<number>

[left]
group=layout
value=<percentage>|<length>|auto

[letter-spacing]
group=text
value=<length>|<percentage>|normal

[line-box-contain]
group=other
value=block|inline|font|text|replaced|inline-box|none|initial|inherit

[line-break]
group=text
value=auto|loose|normal|strict|inherit

[line-grid]
group=other
value=<mixed>
sub1=line-grid-mode,none|ideograph|all
sub2=line-grid-progression,text-height|line-height|<length>

[line-grid-mode]
group=other
value=none|ideograph|all

[line-grid-progression]
group=other
value=text-height|line-height|<length>

[line-height]
group=text
value=<percentage>|<length>|<number>|normal|none

[line-stacking]
group=other
value=<mixed>
sub1=line-stacking-strategy,inline-line-height|block-line-height|max-height|grid-height
sub2=line-stacking-ruby,exclude-ruby|include-ruby
sub3=line-stacking-shift,consider-shifts|disregard-shifts

[line-stacking-ruby]
group=other
value=exclude-ruby|include-ruby

[line-stacking-shift]
group=other
value=consider-shifts|disregard-shifts

[line-stacking-strategy]
group=other
value=inline-line-height|block-line-height|max-height|grid-height

[list-style]
group=list
value=<mixed>
sub1=list-style-type,disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-alpha|lower-latin|upper-alpha|upper-latin|hebrew|armenian|georgian|cjk-ideographic|hiragana|katakana|hiragana-iroha|katakana-iroha|none
sub2=list-style-position,inside|outside
sub3=list-style-image,<imageurl>|none

[list-style-image]
group=list
value=<imageurl>|none

[list-style-position]
group=list
value=inside|outside

[list-style-type]
group=list
value=disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-alpha|lower-latin|upper-alpha|upper-latin|hebrew|armenian|georgian|cjk-ideographic|hiragana|katakana|hiragana-iroha|katakana-iroha|none

[marquee-direction]
group=other
value=forward|reverse

[marquee-loop]
group=other
value=<number>|infinite 

[marquee-play-count]
group=other
value=<number>|infinite

[marquee-speed]
group=other
value=slow|normal|fast

[marquee-style]
group=other
value=scroll|slide|alternate

[margin]
group=box
value=<mixed>|<percentage>|<length>|auto
sub1=margin-top,<percentage>|<length>|auto
sub2=margin-right,<percentage>|<length>|auto
sub3=margin-bottom,<percentage>|<length>|auto
sub4=margin-left,<percentage>|<length>|auto

[margin-bottom]
group=box
value=<percentage>|<length>|auto

[margin-left]
group=box
value=<percentage>|<length>|auto

[margin-right]
group=box
value=<percentage>|<length>|auto

[margin-top]
group=box
value=<percentage>|<length>|auto

[mark]
group=speech
value=<mixed>
sub1=mark-before,<string>
sub2=mark-after,<string>

[mark-before]
group=speech
value=<string>

[mark-after]
group=speech
value=<string>

[marks]
group=page
value=crop|cross|none|inherit

[max-height]
group=box
value=<percentage>|<length>|none|inherit

[max-width]
group=box
value=<percentage>|<length>|none|inherit

[min-height]
group=box
value=<percentage>|<length>|none

[min-width]
group=box
value=<percentage>|<length>|none

[move-to]
group=generate
value=normal|here|<ident>

[nav-index]
group=ui
value=auto|<number>|inherit

[nav-up]
group=ui
value=auto|<string>|current|root|inherit

[nav-right]
group=ui
value=auto|<string>|current|root|inherit

[nav-down]
group=ui
value=auto|<string>|current|root|inherit

[nav-left]
group=ui
value=auto|<string>|current|root|inherit

[opacity]
group=colors
value=<number>|inherit

[orphans]
group=page
value=<number>

[outline]
group=ui
value=<mixed>|inherit
sub1=outline-color,<color>
sub2=outline-style,<border-style>
sub3=outline-width,<border-width>

[outline-color]
group=ui
value=<color>|invert|inherit

[outline-offset]
group=ui
value=<length>|inherit

[outline-style]
group=ui
value=<border-style>|inherit

[outline-width]
group=ui
value=<border-width>|inherit

[overflow]
group=layout
value=visible|hidden|scroll|auto|no-display|no-content|inherit

[overflow-style]
group=layout
value=auto|marquee-line|marquee-block|scrollbar|panner|move|marquee

[overflow-x]
group=layout
value=visible|hidden|scroll|auto|no-display|no-content

[overflow-y]
group=layout
value=visible|hidden|scroll|auto|no-display|no-content

[padding]
group=box
value=<mixed>|<percentage>|<length>
sub1=padding-top,<percentage>|<length>
sub2=padding-right,<percentage>|<length>
sub3=padding-bottom,<percentage>|<length>
sub4=padding-left,<percentage>|<length>

[padding-bottom]
group=box
value=<percentage>|<length>

[padding-left]
group=box
value=<percentage>|<length>

[padding-right]
group=box
value=<percentage>|<length>

[padding-top]
group=box
value=<percentage>|<length>

[page-break-after]
group=page
value=auto|always|avoid|left|right|inherit

[page-break-before]
group=page
value=auto|always|avoid|left|right|inherit

[page-break-inside]
group=page
value=auto|avoid|inherit

[break-after]
group=page
value=auto|always|avoid|left|right

[break-before]
group=page
value=auto|always|avoid|left|right

[break-inside]
group=page
value=auto|avoid

[page-policy]
group=page
value=start|first|last

[pause]
group=speech
value=<mixed>|inherit
sub1=pause-before,<time>|none|x-weak|weak|medium|strong|x-strong
sub2=pause-after,<time>|none|x-weak|weak|medium|strong|x-strong

[pause-before]
group=speech
value=<time>|none|x-weak|weak|medium|strong|x-strong|inherit

[pause-after]
group=speech
value=<time>|none|x-weak|weak|medium|strong|x-strong|inherit

[phonemes]
group=speech
value=<string>

[pitch]
group=speech
value=<frequency>|x-low|low|medium|high|x-high

[pitch-range]
group=speech
value=<number>

[play-during]
group=speech
value=<url>|mix|repeat|auto|none|inherit

[position]
group=layout
value=static|relative|absolute|fixed|inherit

[prototype-insert]
group=other
value=content()|none

[prototype-insert-policy]
group=other
value=normal|unique

[prototype-insert-position]
group=other
value=current|sorted

[punctuation-trim]
group=other
value=none|startend|allow-end|adjacent

[quotes]
group=generate
value=none

[perspective]
group=other
value=none|<number>

[perspective-origin]
group=other
value=<percentage>|<length>|left|center|right|top|bottom

[resize]
group=ui
value=none|both|horizontal|vertical|inherit

[rest]
group=speech
value=<mixed>|inherit
sub1=rest-before,<time>|none|x-weak|weak|medium|strong|x-strong
sub2=rest-after,<time>|none|x-weak|weak|medium|strong|x-strong

[rest-before]
group=speech
value=<time>|none|x-weak|weak|medium|strong|x-strong|inherit

[rest-after]
group=speech
value=<time>|none|x-weak|weak|medium|strong|x-strong|inherit

[richness]
group=speech
value=<number>

[rotation]
group=other
value=<angle>

[rotation-point]
group=other
value=<background-position>

[ruby-align]
group=other
value=auto|start|left|center|end|right|distribute-letter|distribute-space|line-edge

[ruby-overhang]
group=other
value=auto|start|end|none

[ruby-position]
group=other
value=before|after|right|inline

[ruby-span]
group=other
value=attr()|none

[right]
group=layout
value=<percentage>|<length>|auto

[size]
group=page
value=<length>|auto|portrait|landscape|A5|A4|A3|B5|B4|letter|legal|ledger

[speak]
group=speech
value=auto|none|normal

[speak-as]
group=speech
value=normal|spell-out|digits|literal-punctuation|no-punctuation 

[string-set]
group=generate
value=<mixed>|none
sub1=identifier,<ident>
sub2=counter,<string>|counter()|counters()|content(before)|content(after)|content(first-letter)|env()|inherit

[tab-size]
group=text
value=<number>|<length>|inherit

[table-layout]
group=table
value=auto|fixed

[target]
group=other
value=<mixed>
sub1=target-name,current|root|parent|new|modal|<string>
sub2=target-new,window|tab|none
sub3=target-position,above|behind|front|back

[target-name]
group=other
value=current|root|parent|new|modal|<string>

[target-new]
group=other
value=window|tab|none

[target-position]
group=other
value=above|behind|front|back

[text-align]
group=text
value=left|right|center|justify|start|end|start end|match-parent

[text-align-last]
group=text
value=start|end|center|left|right|justify

[text-decoration]
group=text
value=<mixed>|blink|inherit
sub1=text-decoration-line,none|underline|overline|line-through|cancel-underline|cancel-overline|cancel-line-through|cancel-all
sub2=text-decoration-color,<color>
sub3=text-decoration-style,solid|double|dotted|dashed|wave

[text-decoration-color]
group=text
value=<color>|inherit

[text-decoration-line]
group=text
value=none|underline|overline|line-through|inherit

[text-decoration-style]
group=text
value=solid|double|dotted|dashed|wavy|inherit

[text-emphasis]
group=text
value=<mixed>
sub1=text-emphasis-style,none|filled|open|dot|circle|double-circle|triangle|sesame|<string>
sub2=text-emphasis-color,<color>

[text-emphasis-color]
group=text
value=<color>

[text-emphasis-style]
group=text
value=none|filled|open|dot|circle|double-circle|triangle|sesame|<string>

[text-emphasis-position]
group=text
value=<mixed>
sub1=vertical,above|below
sub2=horizontal,right|left

[text-indent]
group=text
value=<percentage>|<length>|hanging|each-line

[text-overflow]
group=ui
value=<mixed>|inherit
sub1=text-overflow-mode,clip|ellipsis|ellipsis-word
sub2=text-overflow-ellipsis,<url>

[text-shadow]
group=text
value=<text-shadow>|<mixed>|none
sub1=x-offset,<length>
sub2=y-offset,<length>
sub3=blur,<length>
sub4=color,<color>

[text-justify]
group=text
value=auto|none|inter-word|inter-ideograph|inter-cluster|distribute|kashida

[text-transform]
group=text
value=none|capitalize|uppercase|lowercase|full-width

[text-underline-position]
group=text
value=auto|alphabetic|below|left|right

[top]
group=layout
value=<percentage>|<length>|auto

[transition]
group=animate
value=<mixed>
sub1=transition-property,none|all|<ident>
sub2=transition-duration,<time>
sub3=transition-timing-function,ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|step-start|step-stop|steps()
sub4=transition-delay,<time>

[transition-delay]
group=animate
value=<time>

[transition-duration]
group=animate
value=<time>

[transition-property]
group=animate
value=none|all|<ident>

[transition-timing-function]
group=animate
value=ease|linear|ease-in|ease-out|ease-in-out|cubic-bezier()|step-start|step-stop|steps()

[transform]
group=other
value=none|matrix()|translate()|translateX()|translateY|scale()|scaleX()|scaleY()|rotate()|skewX()|skewY()|matrix3d()|translate3d()|translateZ()|scale3d()|scaleZ()|rotate3d()|rotateX()|rotateY()|rotateZ()|perspective()

[transform-origin]
group=other
value=<mixed>
sub1=x-axis,left|center|right|<length>|<percentage>
sub2=y-axis,top|center|bottom|<length>|<percentage>
sub3=z-axis,<length>

[transform-style]
group=other
value=flat|preserve-3d

[unicode-bidi]
group=text
value=normal|embed|bidi-override|inherit

[vertical-align]
group=text
value=<percentage>|<length>|baseline|sub|super|top|text-top|middle|bottom|text-bottom|inherit

[visibility]
group=layout
value=visible|hidden|collapse

[voice-balance]
group=speech
value=<number>|left|center|right|leftwards|rightwards

[voice-duration]
group=speech
value=auto|<time>|inherit

[voice-family]
group=speech
value=<mixed>
sub1=name,<ident>|<string>
sub2=age,child|young|old
sub3=gender,male|female|neutral
sub4=preference,<number>
sub5=inherit,inherit|preserve

[voice-pitch]
group=speech
value=<mixed>
sub1=pitch,x-low|low|medium|high|x-high|<percentage>|<frequency>|<semitones>
sub2=absolute,absolute

[voice-rate]
group=speech
value=<percentage>|normal|x-slow|slow|medium|fast|x-fast

[voice-range]
group=speech
value=<mixed>
sub1=range,x-low|low|medium|high|x-high|<percentage>|<frequency>|<semitones>
sub2=absolute,absolute

[voice-stress]
group=speech
value=normal|strong|moderate|none|reduced

[voice-volume]
group=speech
value=<decibel>|silent|x-soft|soft|medium|loud|x-loud

[white-space]
group=text
value=normal|pre|nowrap|pre-wrap|pre-line

[widows]
group=page
value=<number>

[width]
group=box
value=<percentage>|<length>|auto

[word-break]
group=text
value=normal|break-all|keep-all

[word-spacing]
group=text
value=<length>|<percentage>|normal

[word-wrap]
group=text
value=normal|break-word

[writing-mode]
group=text
value=horizontal-tb|vertical-rl|vertical-lr

[z-index]
group=layout
value=<number>|auto

