# 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.
#
inherit
initial
#
# CSS_PROP_OUTLINE_STYLE
# CSS_PROP_BORDER_TOP_STYLE
# CSS_PROP_BORDER_BOTTOM_STYLE
# CSS_PROP_BORDER_LEFT_STYLE
none
hidden
inset
groove
ridge
outset
dotted
dashed
solid
double
#
# CSS_PROP_FONT:
#
caption
icon
menu
message-box
small-caption
-webkit-mini-control
-webkit-small-control
-webkit-control
status-bar

#
# CSS_PROP_FONT_STYLE:
#
#normal
italic
oblique
#
# CSS_PROP_FONT_VARIANT:
#
#normal
small-caps
#
# CSS_PROP_FONT_WEIGHT:
#
normal
bold
bolder
lighter
100
200
300
400
500
600
700
800
900
#
# CSS_PROP_FONT_SIZE:
#
xx-small
x-small
small
medium
large
x-large
xx-large
-webkit-xxx-large
smaller
larger
#
# CSS_PROP_FONT_STRETCH:
#
#normal
wider
narrower
ultra-condensed
extra-condensed
condensed
semi-condensed
semi-expanded
expanded
extra-expanded
ultra-expanded
#
# CSS_PROP_GENERIC_FONT_FAMILY:
#
serif
sans-serif
cursive
fantasy
monospace
-webkit-body
#
#
# CSS_PROP_*_COLOR
#
aqua
black
blue
fuchsia
gray
green
lime
maroon
navy
olive
orange
purple
red
silver
teal
white
yellow
transparent
-webkit-link
-webkit-activelink
activeborder
activecaption
appworkspace
background
buttonface
buttonhighlight
buttonshadow
buttontext
captiontext
graytext
highlight
highlighttext
inactiveborder
inactivecaption
inactivecaptiontext
infobackground
infotext
match
menutext
scrollbar
threeddarkshadow
threedface
threedhighlight
threedlightshadow
threedshadow
window
windowframe
windowtext
-webkit-focus-ring-color
#
# colors in non strict mode
grey
-webkit-text
#
# CSS_PROP_BACKGROUND_REPEAT:
#
repeat
repeat-x
repeat-y
no-repeat
#
# CSS_PROP__WEBKIT_BACKGROUND_COMPOSITE:
#
clear
copy
source-over
source-in
source-out
source-atop
destination-over
destination-in
destination-out
destination-atop
xor
plus-darker
# highlight
plus-lighter
#
# CSS_PROP_VERTICAL_ALIGN:
#
baseline
middle
sub
super
text-top
text-bottom
top
bottom
# HTML alignment MIDDLE has no corresponding CSS alignment
-webkit-baseline-middle
#
# CSS_PROP_TEXT_ALIGN:
#
-webkit-auto
left
right
center
justify
-webkit-left
-webkit-right
-webkit-center
#
# CSS_PROP_LIST_STYLE_POSITION:
#
outside
inside
#
# CSS_PROP_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
#
# CSS_PROP_DISPLAY:
#
inline
block
list-item
run-in
compact
inline-block
table
inline-table
table-row-group
table-header-group
table-footer-group
table-row
table-column-group
table-column
table-cell
table-caption
-webkit-box
-webkit-inline-box
#none
#
# CSS_PROP_CURSOR:
#
auto
crosshair
default
pointer
move
vertical-text
cell
context-menu
alias
# copy
progress
no-drop
not-allowed
-webkit-zoom-in
-webkit-zoom-out
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
s-resize
w-resize
ew-resize
ns-resize
nesw-resize
nwse-resize
col-resize
row-resize
text
wait
help
all-scroll
# none
#
# CSS_PROP_DIRECTION:
#
ltr
rtl
#
# CSS_PROP_TEXT_TRANSFORM:
#
capitalize
uppercase
lowercase
#none
#
# CSS_PROP_VISIBILITY:
#
visible
#hidden
collapse
#
# Unordered rest
#
above
absolute
always
avoid
below
bidi-override
blink
both
close-quote
crop
cross
embed
fixed
hand
hide
higher
invert
landscape
level
line-through
loud
lower
-webkit-marquee
mix
no-close-quote
no-open-quote
nowrap
open-quote
overlay
overline
portrait
pre
pre-line
pre-wrap
relative
scroll
separate
show
static
thick
thin
underline
-webkit-nowrap

# CSS3 Values
# CSS_PROP_BOX_ALIGN
stretch
start
end
#center
#baseline

# CSS_PROP_BOX_DIRECTION
# normal
reverse

# CSS_PROP_BOX_ORIENT
horizontal
vertical
inline-axis
block-axis

# CSS_PROP_BOX_PACK
# start
# end
# center
# justify

# CSS_PROP_BOX_LINES
single
multiple

# CSS_PROP_MARQUEE_DIRECTION
forwards
backwards
ahead
# reverse
# left
# right
up
down
# auto

# CSS_PROP_MARQUEE_SPEED
slow
# normal
fast

# CSS_PROP_MARQUEE_REPETITION
infinite

# CSS_PROP_MARQUEE_STYLE
# none
slide
# scroll
alternate

#
# CSS_PROP__KHTML_USER_MODIFY
#
read-only
read-write
read-write-plaintext-only

#
# CSS_PROP__KHTML_USER_DRAG
#
element

#
# CSS_PROP__KHTML_USER_SELECT
#
ignore

#
# CSS_PROP_WIDTH/MIN_WIDTH/MAX_WIDTH
#
intrinsic
min-intrinsic

#
# CSS_PROP_TEXT_OVERFLOW
#
clip
ellipsis

#
# CSS_PROP__KHTML_MARGIN_COLLAPSE
#
# collapse
# separate
discard

#
# CSS_PROP_TEXT_*_COLOR
#
dot-dash
dot-dot-dash
wave

#
# CSS_PROP_TEXT_*_MODE
#
continuous
skip-white-space

#
# CSS_PROP_WORD_BREAK
#
break-all

#
# CSS_PROP_WORD_WRAP
#
break-word

#
# CSS_PROP__KHTML_NBSP_MODE
#
space

#
# CSS_PROP__KHTML_LINE_BREAK
#
after-white-space

#
# CSS_PROP__KHTML_APPEARANCE
#
checkbox
radio
push-button
square-button
button
button-bevel
default-button
listbox
listitem
media-fullscreen-button
media-mute-button
media-play-button
media-seek-back-button
media-seek-forward-button
media-slider
media-sliderthumb
menulist
menulist-button
menulist-text
menulist-textfield
scrollbarbutton-up
scrollbarbutton-down
scrollbarbutton-left
scrollbarbutton-right
scrollbartrack-horizontal
scrollbartrack-vertical
scrollbarthumb-horizontal
scrollbarthumb-vertical
scrollbargripper-horizontal
scrollbargripper-vertical
slider-horizontal
slider-vertical
sliderthumb-horizontal
sliderthumb-vertical
caret
searchfield
searchfield-decoration
searchfield-results-decoration
searchfield-results-button
searchfield-cancel-button
textfield
textarea

#
# CSS_PROP_BORDER_IMAGE
#
# stretch
# repeat
round

#
# CSS_PROP_BACKGROUND_CLIP/ORIGIN
#
border
content
padding

#
# CSS_PROP_BOX_SIZING
#
border-box
content-box

#
# CSS_PROP__KHTML_RTL_ORDERING
#
logical
visual

#
# CSS_PROP__WEBKIT_BORDER_FIT
#
lines

#
# CSS_PROP__WEBKIT_TRANSITION_TIMING_FUNCTION
#
linear
ease-in
ease-out
ease-in-out
