mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This caused me to remove CSS border image as well as CSS clip. So much more we could delete here. R=abarth@google.com
440 lines
16 KiB
Plaintext
440 lines
16 KiB
Plaintext
// This file specifies all the CSS properties we support and the necessary
|
|
// information for our code generation. The various supported arguments
|
|
// are described below with example usage
|
|
|
|
// We should remove all those marked OBSOLETE now
|
|
// We should remove all those marked LAYOUT once we have custom layout
|
|
|
|
// - alias_for=other-property
|
|
// Properties specifying alias_for do not get their own enum and instead map
|
|
// directly onto the CSSPropertyID they alias. Currently this means that the
|
|
|
|
|
|
// - runtime_flag=CSSFooProperty
|
|
// The flag on RuntimeEnabledFeatures conditionally enables the property
|
|
|
|
|
|
// - longhands=property;other-property
|
|
// The property is a shorthand for several other properties.
|
|
|
|
|
|
// Flags which go into CSSPropertyMetadata:
|
|
// - inherited
|
|
// The property will inherit by default if no value is specified, typically
|
|
// mentioned in specifications as "Inherited: yes"
|
|
|
|
|
|
// The remaining arguments are used for the StyleBuilder and allow us to
|
|
// succinctly describe how to apply properties. When default handlers are not
|
|
// sufficient, we should prefer to use converter, and failing that define
|
|
// custom property handlers in StyleBuilderCustom.cpp. We only should use
|
|
// StyleBuilderFunctions.cpp.tmpl to define handlers when there are multiple
|
|
// properties requiring the same handling, but converter doesn't suffice.
|
|
|
|
// - font
|
|
// The default property handlers call into the FontBuilder instead of setting
|
|
// values directly onto the RenderStyle
|
|
|
|
// - name_for_methods=BlendMode
|
|
// Tweaks how we choose defaults for getter, setter, initial and type_name.
|
|
// For example, setting this to BlendMode will make us use a setter of setBlendMode
|
|
// - initial
|
|
// The initial value accessor on the RenderStyle, defaults to e.g. initialBoxShadow
|
|
// - getter
|
|
// The RenderStyle getter, defaults to e.g. borderBottomLeft
|
|
// - setter
|
|
// The RenderStyle setter, defaults to e.g. setBorderBottomLeft
|
|
// - type_name
|
|
// The computed type for the property. Only required for the default value
|
|
// application, defaults to e.g. EDisplay
|
|
|
|
// - converter=convertRadius
|
|
// The StyleBuilder will call the specified function on StyleBuilderConverter
|
|
// to convert a CSSValue to an appropriate platform value
|
|
|
|
// - custom_initial
|
|
// - custom_inherit
|
|
// - custom_value
|
|
// - custom_all
|
|
// Handlers of the given types will be declared but not defined. Setting
|
|
// custom_all is equivalent to setting the other three flags
|
|
|
|
// - use_handlers_for=CSSPropertyTransform
|
|
// Use handlers for the specified property instead of defining new ones
|
|
|
|
// - builder_skip
|
|
// Ignore this property in the StyleBuilder
|
|
|
|
// - direction_aware
|
|
// This property resolves to a different property based on the current direction
|
|
// and writing mode.
|
|
|
|
|
|
// Properties with StyleBuilder handling
|
|
|
|
// High Priority and all other font properties.
|
|
// Other properties can depend upon high priority properties (e.g. font-size / ems)
|
|
color inherited, custom_all
|
|
direction inherited, custom_value
|
|
|
|
// FIXME: This is a mess due to crbug.com/353932. Shorthands shouldn't have
|
|
// any StyleBuilder handling!
|
|
font custom_all, longhands=font-family;font-size;font-style;font-variant;font-weight;font-stretch;line-height
|
|
font-family inherited, custom_all
|
|
font-kerning inherited, font, type_name=FontDescription::Kerning, name_for_methods=Kerning
|
|
font-size inherited, custom_all
|
|
font-stretch inherited, font, type_name=FontStretch, name_for_methods=Stretch
|
|
font-style inherited, font, type_name=FontStyle, name_for_methods=Style
|
|
font-variant inherited, font, type_name=FontVariant, name_for_methods=Variant
|
|
font-variant-ligatures inherited, font, name_for_methods=VariantLigatures, converter=convertFontVariantLigatures
|
|
font-weight inherited, font, type_name=FontWeight, name_for_methods=Weight, converter=convertFontWeight
|
|
-webkit-font-feature-settings inherited, font, name_for_methods=FeatureSettings, converter=convertFontFeatureSettings
|
|
-webkit-font-smoothing inherited, font, type_name=FontSmoothingMode
|
|
-webkit-locale inherited, custom_value
|
|
-webkit-text-orientation inherited, custom_value
|
|
text-rendering inherited, font, type_name=TextRenderingMode
|
|
line-height inherited, getter=specifiedLineHeight, custom_value
|
|
|
|
|
|
// LAYOUT
|
|
align-content
|
|
|
|
// LAYOUT
|
|
align-items custom_all
|
|
|
|
// LAYOUT
|
|
align-self custom_all
|
|
|
|
background-attachment custom_all
|
|
background-clip custom_all
|
|
background-color custom_all
|
|
background-image custom_all
|
|
background-origin custom_all
|
|
background-position-x custom_all
|
|
background-position-y custom_all
|
|
background-repeat-x custom_all
|
|
background-repeat-y custom_all
|
|
background-size custom_all
|
|
border-bottom-color custom_all
|
|
border-bottom-left-radius initial=initialBorderRadius, converter=convertRadius
|
|
border-bottom-right-radius initial=initialBorderRadius, converter=convertRadius
|
|
border-bottom-style type_name=EBorderStyle, initial=initialBorderStyle
|
|
border-bottom-width initial=initialBorderWidth, converter=convertLineWidth<unsigned>
|
|
border-left-color custom_all
|
|
border-left-style type_name=EBorderStyle, initial=initialBorderStyle
|
|
border-left-width initial=initialBorderWidth, converter=convertLineWidth<unsigned>
|
|
border-right-color custom_all
|
|
border-right-style type_name=EBorderStyle, initial=initialBorderStyle
|
|
border-right-width initial=initialBorderWidth, converter=convertLineWidth<unsigned>
|
|
border-top-color custom_all
|
|
border-top-left-radius initial=initialBorderRadius, converter=convertRadius
|
|
border-top-right-radius initial=initialBorderRadius, converter=convertRadius
|
|
border-top-style type_name=EBorderStyle, initial=initialBorderStyle
|
|
border-top-width initial=initialBorderWidth, converter=convertLineWidth<unsigned>
|
|
|
|
// LAYOUT
|
|
bottom initial=initialOffset, converter=convertLengthOrAuto
|
|
|
|
box-shadow converter=convertShadow
|
|
|
|
// LAYOUT
|
|
box-sizing
|
|
|
|
// LAYOUT
|
|
display
|
|
|
|
// LAYOUT
|
|
flex-basis converter=convertLengthOrAuto
|
|
|
|
// LAYOUT
|
|
flex-direction
|
|
|
|
// LAYOUT
|
|
flex-grow type_name=float
|
|
|
|
// LAYOUT
|
|
flex-shrink type_name=float
|
|
|
|
// LAYOUT
|
|
flex-wrap
|
|
|
|
// LAYOUT
|
|
height initial=initialSize, converter=convertLengthSizing
|
|
|
|
image-rendering inherited
|
|
|
|
// LAYOUT
|
|
justify-content
|
|
|
|
// LAYOUT
|
|
left initial=initialOffset, converter=convertLengthOrAuto
|
|
|
|
letter-spacing inherited, initial=initialLetterWordSpacing, converter=convertSpacing
|
|
|
|
// LAYOUT
|
|
margin-bottom initial=initialMargin, converter=convertLengthOrAuto
|
|
|
|
// LAYOUT
|
|
margin-left initial=initialMargin, converter=convertLengthOrAuto
|
|
|
|
// LAYOUT
|
|
margin-right initial=initialMargin, converter=convertLengthOrAuto
|
|
|
|
// LAYOUT
|
|
margin-top initial=initialMargin, converter=convertLengthOrAuto
|
|
|
|
// LAYOUT
|
|
max-height initial=initialMaxSize, converter=convertLengthMaxSizing
|
|
|
|
// LAYOUT
|
|
max-width initial=initialMaxSize, converter=convertLengthMaxSizing
|
|
|
|
// LAYOUT
|
|
min-height initial=initialMinSize, converter=convertLengthSizing
|
|
|
|
// LAYOUT
|
|
min-width initial=initialMinSize, converter=convertLengthSizing
|
|
|
|
object-fit runtime_flag=ObjectFitPosition, type_name=ObjectFit
|
|
object-position runtime_flag=ObjectFitPosition, converter=convertLengthPoint
|
|
opacity type_name=float
|
|
|
|
// LAYOUT
|
|
order type_name=int
|
|
|
|
outline-color custom_all
|
|
outline-offset converter=convertComputedLength<int>
|
|
outline-style custom_all
|
|
outline-width converter=convertLineWidth<unsigned short>
|
|
|
|
// OBSOLETE
|
|
overflow-wrap inherited
|
|
|
|
// OBSOLETE
|
|
overflow-x type_name=EOverflow
|
|
|
|
// OBSOLETE
|
|
overflow-y type_name=EOverflow
|
|
|
|
// LAYOUT
|
|
padding-bottom initial=initialPadding, converter=convertLength
|
|
|
|
// LAYOUT
|
|
padding-left initial=initialPadding, converter=convertLength
|
|
|
|
// LAYOUT
|
|
padding-right initial=initialPadding, converter=convertLength
|
|
|
|
// LAYOUT
|
|
padding-top initial=initialPadding, converter=convertLength
|
|
|
|
perspective custom_value
|
|
perspective-origin custom_all
|
|
|
|
// OBSOLETE
|
|
pointer-events inherited
|
|
|
|
// LAYOUT
|
|
position
|
|
|
|
// LAYOUT
|
|
right initial=initialOffset, converter=convertLengthOrAuto
|
|
|
|
tab-size inherited, type_name=unsigned
|
|
text-align inherited, custom_value
|
|
text-align-last runtime_flag=CSS3Text, inherited, type_name=TextAlignLast
|
|
// FIXME: We shouldn't switch between shorthand/not shorthand based on a runtime flag
|
|
text-decoration use_handlers_for=CSSPropertyTextDecorationLine, longhands=text-decoration-line;text-decoration-style;text-decoration-color
|
|
text-decoration-color runtime_flag=CSS3TextDecorations, custom_all
|
|
text-decoration-line runtime_flag=CSS3TextDecorations, name_for_methods=TextDecoration, converter=convertFlags<TextDecoration>
|
|
text-decoration-style runtime_flag=CSS3TextDecorations, type_name=TextDecorationStyle
|
|
text-indent inherited, custom_all
|
|
text-justify runtime_flag=CSS3Text, inherited, type_name=TextJustify
|
|
text-overflow type_name=TextOverflow
|
|
text-shadow inherited, converter=convertShadow
|
|
text-underline-position runtime_flag=CSS3TextDecorations, inherited, type_name=TextUnderlinePosition
|
|
|
|
// LAYOUT
|
|
top initial=initialOffset, converter=convertLengthOrAuto
|
|
|
|
// OBSOLETE
|
|
touch-action converter=convertFlags<TouchAction>
|
|
|
|
// OBSOLETE
|
|
touch-action-delay runtime_flag=CSSTouchActionDelay, inherited, type_name=TouchActionDelay
|
|
|
|
transform custom_value
|
|
transform-origin custom_all
|
|
transform-style name_for_methods=TransformStyle3D
|
|
unicode-bidi
|
|
|
|
// LAYOUT
|
|
vertical-align custom_inherit, custom_value
|
|
|
|
filter custom_value
|
|
-webkit-aspect-ratio inherited, custom_all
|
|
-webkit-background-clip use_handlers_for=CSSPropertyBackgroundClip
|
|
-webkit-background-composite custom_all
|
|
-webkit-background-origin use_handlers_for=CSSPropertyBackgroundOrigin
|
|
-webkit-background-size use_handlers_for=CSSPropertyBackgroundSize
|
|
|
|
// LAYOUT
|
|
-webkit-border-horizontal-spacing inherited, name_for_methods=HorizontalBorderSpacing, converter=convertComputedLength<short>
|
|
|
|
// LAYOUT
|
|
-webkit-border-vertical-spacing inherited, name_for_methods=VerticalBorderSpacing, converter=convertComputedLength<short>
|
|
|
|
-webkit-box-decoration-break
|
|
-webkit-box-shadow use_handlers_for=CSSPropertyBoxShadow
|
|
-webkit-clip-path custom_value
|
|
|
|
// OBSOLETE
|
|
-webkit-highlight inherited, converter=convertString<CSSValueNone>
|
|
|
|
-webkit-hyphenate-character inherited, name_for_methods=HyphenationString, converter=convertString<CSSValueAuto>
|
|
-webkit-line-box-contain inherited, converter=convertLineBoxContain
|
|
-webkit-line-break inherited, type_name=LineBreak
|
|
-webkit-perspective custom_all
|
|
-webkit-perspective-origin custom_all
|
|
-webkit-perspective-origin-x converter=convertLength
|
|
-webkit-perspective-origin-y converter=convertLength
|
|
-webkit-rtl-ordering inherited, type_name=Order, setter=setRTLOrdering, initial=initialRTLOrdering
|
|
|
|
// OBSOLETE
|
|
-webkit-tap-highlight-color inherited, converter=convertColor
|
|
|
|
-webkit-text-emphasis-color inherited, custom_all
|
|
-webkit-text-emphasis-position inherited, type_name=TextEmphasisPosition
|
|
-webkit-text-emphasis-style inherited, custom_all
|
|
-webkit-text-fill-color inherited, custom_all
|
|
-webkit-text-stroke-color inherited, custom_all
|
|
-webkit-text-stroke-width inherited, converter=convertTextStrokeWidth
|
|
-webkit-transform use_handlers_for=CSSPropertyTransform
|
|
-webkit-transform-origin-x converter=convertLength
|
|
-webkit-transform-origin-y converter=convertLength
|
|
-webkit-transform-origin-z converter=convertComputedLength<float>
|
|
-webkit-transform-style name_for_methods=TransformStyle3D
|
|
|
|
// OBSOLETE
|
|
-webkit-user-modify inherited
|
|
|
|
// OBSOLETE
|
|
-webkit-user-select inherited
|
|
|
|
white-space inherited
|
|
|
|
// LAYOUT
|
|
width initial=initialSize, converter=convertLengthSizing
|
|
|
|
word-break inherited
|
|
word-spacing inherited, initial=initialLetterWordSpacing, converter=convertSpacing
|
|
// UAs must treat 'word-wrap' as an alternate name for the 'overflow-wrap' property. So using the same handlers.
|
|
word-wrap inherited, name_for_methods=OverflowWrap
|
|
|
|
// consider changing this to just be the way you decide what order to paint siblings by default
|
|
z-index type_name=unsigned, custom_all
|
|
|
|
|
|
// Non-standard direction aware properties
|
|
-webkit-border-end-color direction_aware
|
|
-webkit-border-end-style direction_aware
|
|
-webkit-border-end-width direction_aware
|
|
-webkit-border-start-color direction_aware
|
|
-webkit-border-start-style direction_aware
|
|
-webkit-border-start-width direction_aware
|
|
-webkit-border-before-color direction_aware
|
|
-webkit-border-before-style direction_aware
|
|
-webkit-border-before-width direction_aware
|
|
-webkit-border-after-color direction_aware
|
|
-webkit-border-after-style direction_aware
|
|
-webkit-border-after-width direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-margin-end direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-margin-start direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-margin-before direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-margin-after direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-padding-end direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-padding-start direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-padding-before direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-padding-after direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-logical-width direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-logical-height direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-min-logical-width direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-min-logical-height direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-max-logical-width direction_aware
|
|
|
|
// LAYOUT
|
|
-webkit-max-logical-height direction_aware
|
|
|
|
// OBSOLETE
|
|
orientation builder_skip
|
|
|
|
// OBSOLETE
|
|
src builder_skip
|
|
|
|
// OBSOLETE
|
|
unicode-range builder_skip
|
|
|
|
-webkit-font-size-delta builder_skip
|
|
-webkit-text-decorations-in-effect inherited, builder_skip
|
|
|
|
// Shorthands
|
|
background longhands=background-image;background-position-x;background-position-y;background-size;background-repeat-x;background-repeat-y;background-attachment;background-origin;background-clip;background-color
|
|
background-position longhands=background-position-x;background-position-y
|
|
background-repeat longhands=background-repeat-x;background-repeat-y
|
|
border longhands=border-top-color;border-top-style;border-top-width;border-right-color;border-right-style;border-right-width;border-bottom-color;border-bottom-style;border-bottom-width;border-left-color;border-left-style;border-left-width
|
|
border-bottom longhands=border-bottom-width;border-bottom-style;border-bottom-color
|
|
border-color longhands=border-top-color;border-right-color;border-bottom-color;border-left-color
|
|
border-left longhands=border-left-width;border-left-style;border-left-color
|
|
border-radius longhands=border-top-left-radius;border-top-right-radius;border-bottom-right-radius;border-bottom-left-radius
|
|
border-right longhands=border-right-width;border-right-style;border-right-color
|
|
border-spacing longhands=-webkit-border-horizontal-spacing;-webkit-border-vertical-spacing
|
|
border-style longhands=border-top-style;border-right-style;border-bottom-style;border-left-style
|
|
border-top longhands=border-top-width;border-top-style;border-top-color
|
|
border-width longhands=border-top-width;border-right-width;border-bottom-width;border-left-width
|
|
|
|
// LAYOUT
|
|
flex longhands=flex-grow;flex-shrink;flex-basis
|
|
|
|
// LAYOUT
|
|
flex-flow longhands=flex-direction;flex-wrap
|
|
|
|
margin longhands=margin-top;margin-right;margin-bottom;margin-left
|
|
outline longhands=outline-color;outline-style;outline-width
|
|
overflow longhands=overflow-x;overflow-y
|
|
padding longhands=padding-top;padding-right;padding-bottom;padding-left
|
|
-webkit-border-after longhands=-webkit-border-after-width;-webkit-border-after-style;-webkit-border-after-color
|
|
-webkit-border-before longhands=-webkit-border-before-width;-webkit-border-before-style;-webkit-border-before-color
|
|
-webkit-border-end longhands=-webkit-border-end-width;-webkit-border-end-style;-webkit-border-end-color
|
|
// "-webkit-border-radius: 1px 2px" behaves as "border-radius: 1px / 2px"
|
|
-webkit-border-radius longhands=border-top-left-radius;border-top-right-radius;border-bottom-right-radius;border-bottom-left-radius
|
|
-webkit-border-start longhands=-webkit-border-start-width;-webkit-border-start-style;-webkit-border-start-color
|
|
-webkit-text-emphasis longhands=-webkit-text-emphasis-style;-webkit-text-emphasis-color
|
|
-webkit-text-stroke longhands=-webkit-text-stroke-width;-webkit-text-stroke-color
|
|
-webkit-transform-origin longhands=-webkit-transform-origin-x;-webkit-transform-origin-y;-webkit-transform-origin-z
|