# 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 RenderStyleConstants.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
# The following is only allowed in @font-face:
all
#
# 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
currentcolor
#
# colors in non strict mode
grey
-webkit-text
#
# CSS_PROP_BACKGROUND_REPEAT:
#
repeat
repeat-x
repeat-y
no-repeat
# round
# space
#
# 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
-webkit-match-parent
#
# CSS_PROP_LIST_STYLE_POSITION:
#
outside
inside
#
# CSS_PROP_LIST_STYLE_TYPE:
#
disc
circle
square
decimal
decimal-leading-zero
arabic-indic
binary
bengali
cambodian
khmer
devanagari
gujarati
gurmukhi
kannada
lower-hexadecimal
lao
malayalam
mongolian
myanmar
octal
oriya
persian
urdu
telugu
tibetan
thai
upper-hexadecimal
lower-roman
upper-roman
lower-greek
lower-alpha
lower-latin
upper-alpha
upper-latin
afar
ethiopic-halehame-aa-et
ethiopic-halehame-aa-er
amharic
ethiopic-halehame-am-et
amharic-abegede
ethiopic-abegede-am-et
cjk-earthly-branch
cjk-heavenly-stem
ethiopic
ethiopic-halehame-gez
ethiopic-abegede
ethiopic-abegede-gez
hangul-consonant
hangul
lower-norwegian
oromo
ethiopic-halehame-om-et
sidama
ethiopic-halehame-sid-et
somali
ethiopic-halehame-so-et
tigre
ethiopic-halehame-tig
tigrinya-er
ethiopic-halehame-ti-er
tigrinya-er-abegede
ethiopic-abegede-ti-er
tigrinya-et
ethiopic-halehame-ti-et
tigrinya-et-abegede
ethiopic-abegede-ti-et
upper-greek
upper-norwegian
asterisks
footnotes
hebrew
armenian
lower-armenian
upper-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
-wap-marquee
#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
-webkit-grab
-webkit-grabbing
# none
#
# CSS_PROP_DIRECTION:
#
ltr
rtl
#
# CSS_PROP_TEXT_TRANSFORM:
#
capitalize
uppercase
lowercase
#none
#
# CSS_PROP_VISIBILITY:
#
visible
#hidden
collapse
#
# Unordered rest
#
a3
a4
a5
above
absolute
always
avoid
b4
b5
below
bidi-override
blink
both
close-quote
crop
cross
embed
fixed
hand
hide
higher
invert
-webkit-isolate
landscape
ledger
legal
letter
level
line-through
local
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

# -webkit-appearance
# The order here should match the order in the ControlPart enum in ThemeTypes.h.
# All appearance values that should be accepted by the parser should be listed between 'checkbox' and 'textarea':
checkbox
radio
push-button
square-button
button
button-bevel
default-button
inner-spin-button
-webkit-input-speech-button
list-button
listbox
listitem
media-fullscreen-button
media-mute-button
media-play-button
media-seek-back-button
media-seek-forward-button
media-rewind-button
media-return-to-realtime-button
media-toggle-closed-captions-button
media-slider
media-sliderthumb
media-volume-slider-container
media-volume-slider
media-volume-sliderthumb
media-volume-slider-mute-button
media-controls-background
media-controls-fullscreen-background
media-current-time-display
media-time-remaining-display
menulist
menulist-button
menulist-text
menulist-textfield
meter
outer-spin-button
progress-bar
progress-bar-value
slider-horizontal
slider-vertical
sliderthumb-horizontal
sliderthumb-vertical
caret
searchfield
searchfield-decoration
searchfield-results-decoration
searchfield-results-button
searchfield-cancel-button
textfield
relevancy-level-indicator
continuous-capacity-level-indicator
discrete-capacity-level-indicator
rating-level-indicator
textarea
# An appearance value that should not be accepted by the parser:
caps-lock-indicator

#
# CSS_PROP_BORDER_IMAGE
#
# stretch
# repeat
round

#
# CSS_PROP_BACKGROUND_CLIP/ORIGIN
#
# border/content/padding are deprecated and ultimately will only apply to the -webkit- form of these properties.
# border-box/content-box/padding-box should be used instead.
#
border
border-box
content
content-box
padding
padding-box

#
# background-size
#
contain
cover

#
# CSS_PROP__KHTML_RTL_ORDERING
#
logical
visual

#
# CSS_PROP__WEBKIT_BORDER_FIT
#
lines

#
# CSS_PROP__WEBKIT_ANIMATION_DIRECTION
#
# alternate

#
# CSS_PROP__WEBKIT_ANIMATION_FILL_MODE
#
# forwards
# backwards
# both

#
# CSS_PROP__WEBKIT_ANIMATION_ITERATION_COUNT
#
# infinite

#
# CSS_PROP__WEBKIT_ANIMATION_PLAY_STATE
#
running
paused

#
# CSS_PROP__WEBKIT_TRANSFORM_STYLE
#
flat
preserve-3d

#
# CSS_PROP__WEBKIT_TRANSITION_TIMING_FUNCTION
# CSS_PROP__WEBKIT_ANIMATION_TIMING_FUNCTION
#
ease
linear
ease-in
ease-out
ease-in-out
step-start
step-end

#
# CSS_PROP_ZOOM
#
document
reset

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

#
# CSS_PROP_SPEECH
#
spell-out
digits
literal-punctuation
no-punctuation

#
# -webkit-font-smoothing
#
# auto
# none
antialiased
subpixel-antialiased

# text-rendering
#auto
optimizeSpeed
optimizeLegibility
geometricPrecision

# -webkit-color-correction
#default
sRGB

# (-webkit-view-mode:) media feature:
floating
fullscreen
maximized
minimized
windowed

# -webkit-hyphens
# none
manual
# auto

# -webkit-overflow-scrolling
# auto
touch

# -webkit-writing-mode
# SVG compatibility
lr
rl
tb
lr-tb
rl-tb
tb-rl
# Standard values from CSS3
horizontal-tb
vertical-rl
vertical-lr
horizontal-bt

# -webkit-text-emphasis-position
over
under

# -webkit-text-emphasis-style
filled
open
dot
# circle
double-circle
triangle
sesame

# -webkit-radial-gradient
# circle
ellipse
closest-side
closest-corner
farthest-side
farthest-corner
# contain
# cover

# -webkit-text-orientation
upright
vertical-right

# -webkit-line-box-contain
font
glyphs
inline-box
replaced


