# These are all values accepted for CSS2.
#
# WARNING:
# --------
#
# The Values are sorted according to the properties they belong to,
# and have to be in the same order as the enums in RenderStyle.h.
#
# If not, the optimizations in the cssparser and style selector will fail,
# and produce incorrect results.
#
#
# CSS_PROP_*_COLOR
#
aliceblue
antiquewhite
# aqua
aquamarine
azure
beige
bisque
# black
blanchedalmond
# blue
blueviolet
brown
burlywood
cadetblue
chartreuse
chocolate
coral
cornflowerblue
cornsilk
crimson
cyan
darkblue
darkcyan
darkgoldenrod
darkgray
darkgreen
darkgrey
darkkhaki
darkmagenta
darkolivegreen
darkorange
darkorchid
darkred
darksalmon
darkseagreen
darkslateblue
darkslategray
darkslategrey
darkturquoise
darkviolet
deeppink
deepskyblue
dimgray
dimgrey
dodgerblue
firebrick
floralwhite
forestgreen
# fuchsia
gainsboro
ghostwhite
gold
goldenrod
# gray
# grey
# green
greenyellow
honeydew
hotpink
indianred
indigo
ivory
khaki
lavender
lavenderblush
lawngreen
lemonchiffon
lightblue
lightcoral
lightcyan
lightgoldenrodyellow
lightgray
lightgreen
lightgrey
lightpink
lightsalmon
lightseagreen
lightskyblue
lightslategray
lightslategrey
lightsteelblue
lightyellow
# lime
limegreen
linen
magenta
# maroon
mediumaquamarine
mediumblue
mediumorchid
mediumpurple
mediumseagreen
mediumslateblue
mediumspringgreen
mediumturquoise
mediumvioletred
midnightblue
mintcream
mistyrose
moccasin
navajowhite
# navy
oldlace
# olive
olivedrab
# orange
orangered
orchid
palegoldenrod
palegreen
paleturquoise
palevioletred
papayawhip
peachpuff
peru
pink
plum
powderblue
# purple
# red
rosybrown
royalblue
saddlebrown
salmon
sandybrown
seagreen
seashell
sienna
# silver
skyblue
slateblue
slategray
slategrey
snow
springgreen
steelblue
tan
# teal
thistle
tomato
turquoise
violet
wheat
# white
whitesmoke
# yellow
yellowgreen

# CSS_PROP_CLIP_PATH
# CSS_PROP_CLIP_RULE
nonzero
evenodd

# CSS_PROP_MASK
# CSS_PROP_OPACITY
# CSS_PROP_ENABLE_BACKGROUND
accumulate
new

# CSS_PROP_FILTER
# CSS_PROP_FLOOD_COLOR
currentColor

# CSS_PROP_FLOOD_OPACITY
# CSS_PROP_LIGHTING_COLOR
#currentColor

# CSS_PROP_STOP_COLOR
# CSS_PROP_STOP_OPACITY
# CSS_PROP_POINTER_EVENTS
visiblePainted
visibleFill
visibleStroke
#visible
painted
fill
stroke
all
#none

# CSS_PROP_COLOR_INTERPOLATION
#auto
sRGB
linearRGB

# CSS_PROP_COLOR_INTERPOLATION_FILTERS
#auto
#sRGB
#linearRGB

# CSS_PROP_COLOR_PROFILE
#sRGB

# CSS_PROP_COLOR_RENDERING
#auto
optimizeSpeed
optimizeQuality

## CSS_PROP_FILL
#currentColor

# CSS_PROP_FILL_OPACITY
# CSS_PROP_FILL_RULE
#nonzero
#evenodd

# CSS_PROP_IMAGE_RENDERING
#auto
#optimizeSpeed
#optimizeQuality

# CSS_PROP_MARKER
# CSS_PROP_MARKER_END
# CSS_PROP_MARKER_MID
# CSS_PROP_MARKER_START
# CSS_PROP_SHAPE_RENDERING
#auto
#optimizeSpeed
crispEdges
geometricPrecision

# CSS_PROP_STROKE
# CSS_PROP_STROKE_DASHARRAY
# CSS_PROP_STROKE_DASHOFFSET
# CSS_PROP_STROKE_LINECAP
butt
# round
# square

# CSS_PROP_STROKE_LINEJOIN
miter
# round
bevel

# CSS_PROP_STROKE_MITERLIMIT
# CSS_PROP_STROKE_OPACITY
# CSS_PROP_STROKE_WIDTH
# CSS_PROP_TEXT_RENDERING
#auto
#optimizeSpeed
optimizeLegibility
#geometricPrecision

# CSS_PROP_ALIGNMENT_BASELINE
#auto
# baseline
before-edge
after-edge
#middle
central
text-before-edge
text-after-edge
ideographic
alphabetic
hanging
mathematical

# CSS_PROP_BASELINE_SHIFT
#baseline
# sub
# super

# CSS_PROP_DOMINANT_BASELINE
#auto
use-script
no-change
reset-size

# CSS_PROP_GLYPH_ORIENTATION_HORIZONTAL

# CSS_PROP_GLYPH_ORIENTATION_VERTICAL
# CSS_PROP_KERNING
# CSS_PROP_TEXT_ANCHOR
# start
# middle
# end

# CSS_PROP_WRITING_MODE
lr-tb
rl-tb
tb-rl
lr
rl
tb
