# 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_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_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_VECTOR_EFFECT
# none
non-scaling-stroke
