blob: bf316251590d6e4e47ac29c4a3fe55e85e1917eb [file] [log] [blame]
{
// 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
parameters: {
// - alias_for: "other-property"
// Properties specifying alias_for should be virtually identical to the
// properties they alias. Minor parsing differences are allowed as long as
// the CSSValues created are of the same format of the aliased property.
alias_for: {
},
// - runtime_flag: "CSSGridLayout"
// The flag on RuntimeEnabledFeatures conditionally enables the property.
// This doesn't currently work with alias_for.
runtime_flag: {
},
// - is_descriptor
// Whether it is the name of a CSS descriptor.
// TODO(alancutter): Don't use CSSPropertyID for descriptors.
is_descriptor: {
},
// - is_property
// Whether it is the name of a CSS property.
is_property: {
default: true,
},
// - longhands: "property;other-property"
// The property is a shorthand for several other properties.
longhands: {
default: '',
},
// - api_class: true|"classname"
// Specifies the existence (and optionally name) of a CSSPropertyAPI
// implementation for the property to be used by make_css_property_apis.py.
// See core/css/properties/CSSPropertyAPI<PropertyName>.h for API details.
// * Add this flag if the API has been implemented for this property.
// * If the classname for this is different to the name of the property, specify a
// value for this flag. e.g. api_class=CSSPropertyAPIWebkitPadding
// TODO(aazzam): When most properties have been implemented, modify this so that
// properties with default classnames do not get this flag, and introduce a
// 'not_implemented' flag instead.
api_class: {
},
// - api_methods: ["method1", "method2"]
// List of methods that are implemented in the CSSPropertyAPI for this property.
// This is used by make_css_property_apis.py to specify which functions are defined
// in the .h file for this property, and also used in CSSPropertyAPIFiles.h.tmpl to
// generate declarations for only the methods this property has implementations for.
api_methods: {
default: [],
valid_type: "list",
// This list must be an ordered, complete list of methods whose names match those
// defined in CSSPropertyDescriptor.h.
valid_values: ["parseSingleValue", "parseShorthand"],
},
// - field_group
// Name of the group that this field belongs to. Fields in the same group are stored
// together as a nested class inside ComputedStyle and dynamically allocated on use.
// Leave this out if the field is stored directly on ComputedStyle.
field_group: {
value_type: "str"
},
// - field_size
// Number of bits needed to store this field. Only used for storage_only
// fields. If specified, the field will be stored as bit field. Otherwise
// it will be stored as a normal data member.
field_size: {
valid_type: "int",
},
// - field_template
// Affects how the interface to this field is generated.
// TODO(sashab, meade): Remove this once TypedOM types are specified for
// every property, since this value can be inferred from that.
field_template: {
valid_values: [
// Field is stored as an enum and has a initial/getter/setter/resetter.
// If include_paths is empty, we would also generate the corresponding
// enum definition in ComputedStyleConstants.h.
"keyword",
// Field stores a primitive value like int/bool. The type is specified by
// type_name. The interface has a initial/getter/setter/resetter.
"primitive",
// Field is stored as a bool, whose default value is false
// and can only be set to true. Has a initial/getter/setter.
"monotonic_flag",
// Field has type specified at type_name and has a getter/setter.
// Also has a setter taking an rvalue reference. Cannot be packed.
"external",
// Only the storage is generated. The interface is handwritten.
"storage_only",
],
},
// - include_paths: ["path/to/file1.h", "path/to/file2.h"]
// List of files containing the definitions of types in 'type_name'. Each of
// these files will appear as a #include in ComputedStyleBase.h. For
// example, if the type_name is 'Vector<String>', include_paths should be
// ["platform/wtf/Vector.h", "platform/wtf/text/WTFString.h"]
include_paths: {
default: [],
},
// Name of the pointer type that wraps this field (e.g. RefPtr).
// Can only be set if the field template is storage_only.
wrapper_pointer_name: {
valid_type: "str",
valid_values: ["RefPtr", "Persistent", "std::unique_ptr", "DataPersistent"],
},
// - keywords: ["keyword1", "keyword2"]
// This specifies all valid keyword values for the property.
// TODO(sashab): Once all properties are represented here, delete
// CSSValueKeywords.in and use this list instead.
keywords: {
default: [],
},
// - default_value: "keyword-value"
// This specifies the default value for this field.
// - for keyword fields, this is the initial keyword
// - for other fields, this is a string containg the C++ expression
// that is used to initialise the field.
default_value: {
},
// Flags which go into CSSOMTypes:
// - typedom_types: ["Type", "OtherType"]
// The property can take types specified in typedom_types for CSS Typed OM.
// Keyword does not need to be specified as every property can take keywords.
// - separator
// The property supports a list of values, and when there is more than one,
// it is separated with this character.
typedom_types: {
default: [],
valid_type: "list",
valid_values: [
"Angle",
"Flex",
"Frequency",
"Length",
"Number",
"Percent",
"Position",
"Resolution",
"Time",
"Transform",
"Unparsed",
"Image"
],
},
separator: {
valid_values: [",", " ", "/"],
},
// Flags which go into CSSPropertyMetadata:
// - interpolable
// The interpolable flag indicates whether a property can be animated smoothly.
// If this flag is set, the property should also be added to the switch
// statements in AnimatedStyleBuilder, CSSPropertyEquality and
// CSSAnimatableValueFactory.
// - inherited
// The property will inherit by default if no value is specified, typically
// mentioned in specifications as "Inherited: yes"
interpolable: {
default: false,
valid_type: "bool",
},
inherited: {
default: false,
valid_type: "bool",
},
// - independent
// This property affects only one field on ComputedStyle, and can be set
// directly during inheritance instead of forcing a recalc.
// StyleResolver and StyleAdjuster are not invoked when these properties
// are changed on a parent. Recalcs only happen if at least one
// non-independent inherited property is changed in the parent.
independent: {
default: false,
valid_type: "bool",
},
// 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 ComputedStyle
// - svg
// The default property handlers access the SVGComputedStyle
font: {
default: false,
valid_type: "bool",
},
svg: {
default: false,
valid_type: "bool",
},
// - 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 ComputedStyle, defaults to e.g. initialBoxShadow
// - getter
// The ComputedStyle getter, defaults to e.g. borderBottomLeft
// - setter
// The ComputedStyle 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
name_for_methods: {
},
getter: {
},
setter: {
},
initial: {
},
type_name: {
},
// - converter: "ConvertRadius"
// The StyleBuilder will call the specified function on StyleBuilderConverter
// to convert a CSSValue to an appropriate platform value
converter: {
},
// - 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
custom_all: {
default: false,
valid_type: "bool",
},
custom_initial: {
default: false,
valid_type: "bool",
},
custom_inherit: {
default: false,
valid_type: "bool",
},
custom_value: {
default: false,
valid_type: "bool",
},
// - use_handlers_for: "CSSPropertyTransform"
// Use handlers for the specified property instead of defining new ones
use_handlers_for: {
},
// - builder_skip
// Ignore this property in the StyleBuilder
builder_skip: {
default: false,
valid_type: "bool",
},
// - direction_aware
// This property resolves to a different property based on the current direction
// and writing mode.
direction_aware: {
default: false,
valid_type: "bool",
},
// - priority: "High"
// The priority level for computing the property. Valid values are
// "Animation" (highest), "High" and "Low". Properties with the same
// priority level are grouped and computed in alphabetical order. The
// default value is "Low".
priority: {
default: "Low",
valid_values: ["Animation", "High", "Low"],
},
},
data: [
// Properties with StyleBuilder handling
// Animation Priority properties
{
name: "animation-delay",
custom_all: true,
priority: "Animation",
},
{
name: "animation-direction",
custom_all: true,
keywords: ["normal", "reverse", "alternate", "alternate-reverse"],
priority: "Animation",
separator: ",",
},
{
name: "animation-duration",
custom_all: true,
priority: "Animation",
},
{
name: "animation-fill-mode",
custom_all: true,
priority: "Animation",
},
{
name: "animation-iteration-count",
custom_all: true,
keywords: ["infinite"],
priority: "Animation",
separator: ",",
},
{
name: "animation-name",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
priority: "Animation",
},
{
name: "animation-play-state",
custom_all: true,
priority: "Animation",
},
{
name: "animation-timing-function",
custom_all: true,
priority: "Animation",
},
{
name: "transition-delay",
custom_all: true,
priority: "Animation",
},
{
name: "transition-duration",
custom_all: true,
priority: "Animation",
},
{
name: "transition-property",
custom_all: true,
priority: "Animation",
},
{
name: "transition-timing-function",
custom_all: true,
priority: "Animation",
},
// High Priority and all other font properties.
// Other properties can depend upon high priority properties (e.g. font-size / ems)
{
name: "color",
custom_all: true,
inherited: true,
interpolable: true,
priority: "High",
},
{
name: "direction",
custom_value: true,
type_name: "TextDirection",
inherited: true,
default_value: "ltr",
field_template: "keyword",
keywords: ["ltr", "rtl"],
priority: "High",
include_paths: ["platform/text/TextDirection.h"],
},
{
name: "font-family",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontFamily",
is_descriptor: true,
font: true,
inherited: true,
name_for_methods: "FamilyDescription",
priority: "High",
type_name: "FontDescription::FamilyDescription",
},
{
name: "font-kerning",
font: true,
inherited: true,
name_for_methods: "Kerning",
priority: "High",
type_name: "FontDescription::Kerning",
},
{
name: "font-size",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontSize",
font: true,
getter: "GetSize",
inherited: true,
interpolable: true,
name_for_methods: "Size",
priority: "High",
},
{
name: "font-size-adjust",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontSizeAdjust",
font: true,
inherited: true,
interpolable: true,
name_for_methods: "SizeAdjust",
priority: "High",
runtime_flag: "CSSFontSizeAdjust",
},
{
name: "font-stretch",
is_descriptor: true,
font: true,
inherited: true,
name_for_methods: "Stretch",
priority: "High",
type_name: "FontStretch",
},
{
name: "font-style",
is_descriptor: true,
font: true,
inherited: true,
name_for_methods: "Style",
priority: "High",
type_name: "FontStyle",
},
{
name: "font-variant-ligatures",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontVariantLigatures",
font: true,
inherited: true,
name_for_methods: "VariantLigatures",
priority: "High",
type_name: "VariantLigatures",
},
{
name: "font-variant-caps",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontVariantCaps",
font: true,
inherited: true,
name_for_methods: "VariantCaps",
priority: "High",
},
{
name: "font-variant-numeric",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontVariantNumeric",
font: true,
inherited: true,
name_for_methods: "VariantNumeric",
priority: "High",
},
{
name: "font-weight",
converter: "ConvertFontWeight",
is_descriptor: true,
font: true,
inherited: true,
interpolable: true,
name_for_methods: "Weight",
priority: "High",
type_name: "FontWeight",
},
{
name: "font-feature-settings",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontFeatureSettings",
is_descriptor: true,
font: true,
inherited: true,
name_for_methods: "FeatureSettings",
priority: "High",
},
{
name: "font-variation-settings",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFontVariationSettings",
font: true,
inherited: true,
interpolable: true,
name_for_methods: "VariationSettings",
priority: "High",
runtime_flag: "CSSVariableFonts",
},
{
name: "-webkit-font-smoothing",
font: true,
inherited: true,
priority: "High",
type_name: "FontSmoothingMode",
},
{
name: "-webkit-locale",
custom_value: true,
font: true,
inherited: true,
priority: "High",
},
{
name: "text-orientation",
custom_value: true,
inherited: true,
priority: "High",
field_template: "keyword",
keywords: ["sideways", "mixed", "upright"],
default_value: "mixed",
field_size: 2,
field_group: "rare-inherited",
getter: "GetTextOrientation"
},
{
name: "-webkit-text-orientation",
custom_value: true,
inherited: true,
priority: "High",
type_name: "TextOrientation",
},
{
name: "writing-mode",
custom_value: true,
inherited: true,
default_value: "horizontal-tb",
field_template: "keyword",
keywords: ["horizontal-tb", "vertical-rl", "vertical-lr"],
priority: "High",
type_name: "WritingMode",
include_paths: ["platform/text/WritingMode.h"],
},
{
name: "-webkit-writing-mode",
custom_value: true,
inherited: true,
priority: "High",
type_name: "WritingMode",
},
{
name: "text-rendering",
font: true,
inherited: true,
priority: "High",
type_name: "TextRenderingMode",
},
{
name: "zoom",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
is_descriptor: true,
priority: "High",
field_template: "storage_only",
type_name: "float",
default_value: "1.0",
field_group: "visual",
},
{
name: "align-content",
api_methods: ["parseSingleValue"],
api_class: "CSSPropertyAPIAlignOrJustifyContent",
converter: "ConvertContentAlignmentData",
initial: "InitialContentAlignment",
field_template: "storage_only",
type_name: "StyleContentAlignmentData",
field_group: "rare-non-inherited",
default_value: "StyleContentAlignmentData(kContentPositionNormal, kContentDistributionDefault, kOverflowAlignmentDefault)",
include_paths: ["core/style/StyleContentAlignmentData.h"],
},
{
name: "align-items",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertSelfOrDefaultAlignmentData",
initial: "InitialDefaultAlignment",
field_template: "storage_only",
type_name: "StyleSelfAlignmentData",
field_group: "rare-non-inherited",
default_value: "StyleSelfAlignmentData(RuntimeEnabledFeatures::CSSGridLayoutEnabled() ? kItemPositionNormal : kItemPositionStretch, kOverflowAlignmentDefault)",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
},
{
name: "alignment-baseline",
svg: true,
},
{
name: "align-self",
api_class: "CSSPropertyAPIAlignOrJustifySelf",
api_methods: ["parseSingleValue"],
converter: "ConvertSelfOrDefaultAlignmentData",
initial: "InitialSelfAlignment",
field_template: "storage_only",
type_name: "StyleSelfAlignmentData",
field_group: "rare-non-inherited",
default_value: "StyleSelfAlignmentData(kItemPositionAuto, kOverflowAlignmentDefault)",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
},
{
name: "backdrop-filter",
api_class: "CSSPropertyAPIFilter",
converter: "ConvertFilterOperations",
interpolable: true,
runtime_flag: "CSSBackdropFilter",
},
{
name: "backface-visibility",
field_template: "storage_only",
type_name: "EBackfaceVisibility",
field_group: "rare-non-inherited",
default_value: "kBackfaceVisibilityVisible",
field_size: 1,
},
{
name: "background-attachment",
custom_all: true,
},
{
name: "background-blend-mode",
custom_all: true,
},
{
name: "background-clip",
custom_all: true,
},
{
name: "background-color",
custom_all: true,
interpolable: true,
},
{
name: "background-image",
custom_all: true,
interpolable: true,
keywords: ["auto", "none"],
typedom_types: ["Image"],
},
{
name: "background-origin",
custom_all: true,
},
{
name: "background-position-x",
custom_all: true,
interpolable: true,
},
{
name: "background-position-y",
custom_all: true,
interpolable: true,
},
{
name: "background-repeat-x",
custom_all: true,
},
{
name: "background-repeat-y",
custom_all: true,
},
{
name: "background-size",
custom_all: true,
interpolable: true,
},
{
name: "baseline-shift",
api_class: true,
api_methods: ["parseSingleValue"],
custom_inherit: true,
custom_value: true,
interpolable: true,
svg: true,
},
{
name: "border-bottom-color",
custom_all: true,
interpolable: true,
type_name: "Color",
field_template: "storage_only",
default_value: "0",
field_group: "surround",
include_paths: ["platform/graphics/Color.h"],
},
{
name: "border-bottom-left-radius",
api_class: "CSSPropertyAPIBorderRadius",
api_methods: ["parseSingleValue"],
converter: "ConvertRadius",
interpolable: true,
field_template: "external",
include_paths: ["platform/LengthSize.h"],
type_name: "LengthSize",
field_group: "surround",
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
},
{
name: "border-bottom-right-radius",
api_class: "CSSPropertyAPIBorderRadius",
api_methods: ["parseSingleValue"],
converter: "ConvertRadius",
interpolable: true,
field_template: "external",
include_paths: ["platform/LengthSize.h"],
type_name: "LengthSize",
field_group: "surround",
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
},
{
name: "border-bottom-style",
type_name: "EBorderStyle",
field_template: "keyword",
keywords: ["none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double"],
default_value: "none",
typedom_types: ["Image"],
field_group: "surround",
},
{
name: "border-bottom-width",
api_class: "CSSPropertyAPIBorderWidth",
converter: "ConvertLineWidth<float>",
initial: "InitialBorderWidth",
interpolable: true,
keywords: ["thin", "medium", "thick"],
typedom_types: ["Length"],
field_template: "storage_only",
include_paths: ["platform/LayoutUnit.h"],
type_name: "LayoutUnit",
default_value: "LayoutUnit(3)",
field_group: "surround",
},
{
name: "border-collapse",
independent: true,
inherited: true,
default_value: "separate",
field_template: "keyword",
keywords: ["separate", "collapse"],
},
{
name: "border-image-outset",
api_class: "CSSPropertyAPIBorderImageOutset",
custom_all: true,
interpolable: true,
},
{
name: "border-image-repeat",
api_class: "CSSPropertyAPIBorderImageRepeat",
custom_all: true,
},
{
name: "border-image-slice",
api_class: "CSSPropertyAPIBorderImageSlice",
custom_all: true,
interpolable: true,
},
{
name: "border-image-source",
api_class: "CSSPropertyAPIImage",
api_methods: ["parseSingleValue"],
custom_value: true,
interpolable: true,
keywords: ["none"],
typedom_types: ["Image"],
},
{
name: "border-image-width",
api_class: "CSSPropertyAPIBorderImageWidth",
custom_all: true,
interpolable: true,
},
{
name: "border-left-color",
custom_all: true,
interpolable: true,
field_template: "storage_only",
include_paths: ["platform/graphics/Color.h"],
type_name: "Color",
default_value: "0",
field_group: "surround",
},
{
name: "border-left-style",
type_name: "EBorderStyle",
field_template: "keyword",
keywords: ["none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double"],
default_value: "none",
typedom_types: ["Image"],
field_group: "surround",
},
{
name: "border-left-width",
api_class: "CSSPropertyAPIBorderWidth",
converter: "ConvertLineWidth<float>",
initial: "InitialBorderWidth",
interpolable: true,
keywords: ["thin", "medium", "thick"],
typedom_types: ["Length"],
field_template: "storage_only",
include_paths: ["platform/LayoutUnit.h"],
type_name: "LayoutUnit",
default_value: "LayoutUnit(3)",
field_group: "surround",
},
{
name: "border-right-color",
custom_all: true,
interpolable: true,
field_template: "storage_only",
include_paths: ["platform/graphics/Color.h"],
type_name: "Color",
default_value: "0",
field_group: "surround",
},
{
name: "border-right-style",
type_name: "EBorderStyle",
typedom_types: ["Image"],
field_template: "keyword",
default_value: "none",
keywords: ["none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double"],
field_group: "surround",
},
{
name: "border-right-width",
api_class: "CSSPropertyAPIBorderWidth",
converter: "ConvertLineWidth<float>",
initial: "InitialBorderWidth",
interpolable: true,
keywords: ["thin", "medium", "thick"],
typedom_types: ["Length"],
field_template: "storage_only",
include_paths: ["platform/LayoutUnit.h"],
type_name: "LayoutUnit",
default_value: "LayoutUnit(3)",
field_group: "surround",
},
{
name: "border-top-color",
custom_all: true,
interpolable: true,
field_template: "storage_only",
include_paths: ["platform/graphics/Color.h"],
type_name: "Color",
default_value: "0",
field_group: "surround",
},
{
name: "border-top-left-radius",
api_class: "CSSPropertyAPIBorderRadius",
api_methods: ["parseSingleValue"],
converter: "ConvertRadius",
interpolable: true,
field_template: "external",
include_paths: ["platform/LengthSize.h"],
type_name: "LengthSize",
field_group: "surround",
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
},
{
name: "border-top-right-radius",
api_class: "CSSPropertyAPIBorderRadius",
api_methods: ["parseSingleValue"],
converter: "ConvertRadius",
interpolable: true,
field_template: "external",
include_paths: ["platform/LengthSize.h"],
type_name: "LengthSize",
field_group: "surround",
default_value: "LengthSize(Length(0, kFixed), Length(0, kFixed))",
},
{
name: "border-top-style",
type_name: "EBorderStyle",
field_template: "keyword",
default_value: "none",
keywords: ["none", "hidden", "inset", "groove", "outset", "ridge", "dotted", "dashed", "solid", "double"],
typedom_types: ["Image"],
field_group: "surround",
},
{
name: "border-top-width",
api_class: "CSSPropertyAPIBorderWidth",
converter: "ConvertLineWidth<float>",
initial: "InitialBorderWidth",
interpolable: true,
keywords: ["thin", "medium", "thick"],
typedom_types: ["Length"],
field_template: "storage_only",
include_paths: ["platform/LayoutUnit.h"],
type_name: "LayoutUnit",
default_value: "LayoutUnit(3)",
field_group: "surround",
},
{
name: "bottom",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
typedom_types: ["Length", "Percent"],
keywords: ["auto"],
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length()",
},
{
name: "box-shadow",
converter: "ConvertShadowList",
interpolable: true,
field_template: "storage_only",
type_name: "ShadowList",
field_group: "rare-non-inherited",
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
},
{
name: "box-sizing",
field_template: "keyword",
type_name: "EBoxSizing",
default_value: "content-box",
keywords: ["content-box", "border-box"],
field_group: "box",
},
{
name: "break-after",
// Storage for this property also covers these legacy properties:
// page-break-after, -webkit-column-break-after
default_value: "auto",
field_template: "keyword",
keywords: [
"auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page", "recto", "right", "verso"
],
type_name: "EBreakBetween",
},
{
name: "break-before",
// Storage for this property also covers these legacy properties:
// page-break-before, -webkit-column-break-before
default_value: "auto",
field_template: "keyword",
keywords: [
"auto", "avoid", "avoid-column", "avoid-page", "column", "left", "page", "recto", "right", "verso"
],
type_name: "EBreakBetween",
},
{
name: "break-inside",
// Storage for this property also covers these legacy properties:
// page-break-inside, -webkit-column-break-inside
default_value: "auto",
field_template: "keyword",
keywords: ["auto", "avoid", "avoid-column", "avoid-page"],
},
{
name: "buffered-rendering",
svg: true,
},
{
name: "caption-side",
independent: true,
inherited: true,
default_value: "top",
field_template: "keyword",
keywords: ["top", "bottom"],
},
{
name: "caret-color",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
interpolable: true,
field_template: "storage_only",
type_name: "Color",
include_paths: ["platform/graphics/Color.h"],
default_value: "Color()",
field_group: "rare-inherited",
},
{
name: "clear",
default_value: "none",
field_template: "keyword",
keywords: ["none", "left", "right", "both"],
},
{
name: "clip",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertClip",
custom_all: true,
interpolable: true,
field_template: "storage_only",
include_paths: ["platform/LengthBox.h"],
type_name: "LengthBox",
default_value: "LengthBox()",
field_group: "visual",
},
{
name: "clip-path",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertClipPath",
interpolable: true,
field_template: "storage_only",
type_name: "ClipPathOperation",
field_group: "rare-non-inherited",
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
include_paths: ["core/style/ClipPathOperation.h"],
},
{
name: "clip-rule",
inherited: true,
svg: true,
type_name: "WindRule",
},
{
name: "color-interpolation",
inherited: true,
svg: true,
},
{
name: "color-interpolation-filters",
inherited: true,
svg: true,
type_name: "EColorInterpolation",
},
{
name: "color-rendering",
inherited: true,
svg: true,
},
{
name: "column-fill",
type_name: "ColumnFill",
field_template: "storage_only",
default_value: "kColumnFillBalance",
field_size: 1,
field_group: "rare-non-inherited->multi-col",
},
{
name: "contain",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFlags<Containment>",
runtime_flag: "CSSContainment",
name_for_methods: "Contain",
type_name: "Containment",
field_template: "storage_only",
field_group: "rare-non-inherited",
field_size: 4,
default_value: "kContainsNone",
},
{
name: "content",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
separator: ",",
typedom_types: ["Image"],
type_name: "ContentData",
field_template: "storage_only",
field_group: "rare-non-inherited",
default_value: "nullptr",
wrapper_pointer_name: "Persistent",
include_paths: ["core/style/ContentData.h"],
},
{
name: "counter-increment",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
},
{
name: "counter-reset",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
},
{
name: "cursor",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
field_template: "keyword",
keywords: [
"auto", "default", "none", "context-menu", "help", "pointer", "progress", "wait", "cell", "crosshair",
"text", "vertical-text", "alias", "copy", "move", "no-drop", "not-allowed", "e-resize", "n-resize",
"ne-resize", "nw-resize", "s-resize", "se-resize", "sw-resize", "w-resize", "ew-resize", "ns-resize",
"nesw-resize", "nwse-resize", "col-resize", "row-resize", "all-scroll", "zoom-in", "zoom-out",
"-webkit-grab", "-webkit-grabbing"
],
default_value: "auto",
},
{
name: "cx",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertLength",
interpolable: true,
svg: true,
},
{
name: "cy",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertLength",
interpolable: true,
svg: true,
},
{
name: "d",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertPathOrNone",
interpolable: true,
svg: true,
},
{
name: "display",
default_value: "inline",
field_template: 'keyword',
keywords: [
"inline", "block", "list-item", "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", "flex", "inline-flex", "grid", "inline-grid", "contents", "flow-root", "none",
],
},
{
name: "dominant-baseline",
inherited: true,
svg: true,
},
{
name: "empty-cells",
independent: true,
inherited: true,
default_value: "show",
field_template: "keyword",
keywords: ["show", "hide"],
type_name: "EEmptyCells",
},
{
name: "fill",
api_class: "CSSPropertyAPIPaintStroke",
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
interpolable: true,
setter: "SetFillPaint",
svg: true,
},
{
name: "fill-opacity",
api_class: "CSSPropertyAPIOpacity",
api_methods: ["parseSingleValue"],
converter: "ConvertNumberOrPercentage",
inherited: true,
interpolable: true,
svg: true,
},
{
name: "fill-rule",
inherited: true,
svg: true,
type_name: "WindRule",
},
{
name: "filter",
api_class: "CSSPropertyAPIFilter",
converter: "ConvertFilterOperations",
interpolable: true,
},
{
name: "flex-basis",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
type_name: "Length",
field_template: "storage_only",
default_value: "Length(kAuto)",
field_group: "rare-non-inherited->flexible-box",
},
{
name: "flex-direction",
type_name: "EFlexDirection",
field_template: "storage_only",
default_value: "kFlowRow",
field_size: 2,
field_group: "rare-non-inherited->flexible-box",
},
{
name: "flex-grow",
api_class: "CSSPropertyAPIFlexGrowOrShrink",
api_methods: ["parseSingleValue"],
interpolable: true,
type_name: "float",
field_template: "storage_only",
default_value: "0.0f",
field_group: "rare-non-inherited->flexible-box",
},
{
name: "flex-shrink",
api_class: "CSSPropertyAPIFlexGrowOrShrink",
api_methods: ["parseSingleValue"],
interpolable: true,
type_name: "float",
field_template: "storage_only",
default_value: "1.0f",
field_group: "rare-non-inherited->flexible-box",
},
{
name: "flex-wrap",
type_name: "EFlexWrap",
field_template: "storage_only",
default_value: "kFlexNoWrap",
field_size: 2,
field_group: "rare-non-inherited->flexible-box",
},
{
name: "float",
default_value: "none",
field_template: "keyword",
keywords: ["none", "left", "right"],
name_for_methods: "Floating",
type_name: "EFloat",
},
{
name: "flood-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
converter: "ConvertColor",
interpolable: true,
svg: true,
},
{
name: "flood-opacity",
api_class: "CSSPropertyAPIOpacity",
api_methods: ["parseSingleValue"],
converter: "ConvertNumberOrPercentage",
interpolable: true,
svg: true,
},
{
name: "grid-auto-columns",
api_class: "CSSPropertyAPIGridAutoLine",
converter: "ConvertGridTrackSizeList",
runtime_flag: "CSSGridLayout",
type_name: "Vector<GridTrackSize>",
field_template: "storage_only",
default_value: "Vector<GridTrackSize>(1, GridTrackSize(Length(kAuto)))",
field_group: "rare-non-inherited->grid",
},
{
name: "grid-auto-flow",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertGridAutoFlow",
runtime_flag: "CSSGridLayout",
type_name: "GridAutoFlow",
field_template: "storage_only",
default_value: "kAutoFlowRow",
field_size: 4, // TODO(shend): Make this use "kGridAutoFlowBits".
field_group: "rare-non-inherited->grid",
},
{
name: "grid-auto-rows",
api_class: "CSSPropertyAPIGridAutoLine",
converter: "ConvertGridTrackSizeList",
runtime_flag: "CSSGridLayout",
type_name: "Vector<GridTrackSize>",
field_template: "storage_only",
default_value: "Vector<GridTrackSize>(1, GridTrackSize(Length(kAuto)))",
field_group: "rare-non-inherited->grid",
},
{
name: "grid-column-end",
converter: "ConvertGridPosition",
runtime_flag: "CSSGridLayout",
api_class: "CSSPropertyAPIGridLine",
type_name: "GridPosition",
field_template: "storage_only",
default_value: "GridPosition()",
field_group: "rare-non-inherited->grid-item",
},
{
name: "grid-column-gap",
converter: "ConvertLength",
runtime_flag: "CSSGridLayout",
type_name: "Length",
field_template: "storage_only",
default_value: "Length(kFixed)",
field_group: "rare-non-inherited->grid",
},
{
name: "grid-column-start",
api_class: "CSSPropertyAPIGridLine",
converter: "ConvertGridPosition",
runtime_flag: "CSSGridLayout",
type_name: "GridPosition",
field_template: "storage_only",
default_value: "GridPosition()",
field_group: "rare-non-inherited->grid-item",
},
{
name: "grid-row-end",
api_class: "CSSPropertyAPIGridLine",
converter: "ConvertGridPosition",
runtime_flag: "CSSGridLayout",
type_name: "GridPosition",
field_template: "storage_only",
default_value: "GridPosition()",
field_group: "rare-non-inherited->grid-item",
},
{
name: "grid-row-gap",
converter: "ConvertLength",
runtime_flag: "CSSGridLayout",
type_name: "Length",
field_template: "storage_only",
default_value: "Length(kFixed)",
field_group: "rare-non-inherited->grid",
},
{
name: "grid-row-start",
api_class: "CSSPropertyAPIGridLine",
converter: "ConvertGridPosition",
runtime_flag: "CSSGridLayout",
type_name: "GridPosition",
field_template: "storage_only",
default_value: "GridPosition()",
field_group: "rare-non-inherited->grid-item",
},
{
name: "grid-template-areas",
api_class: true,
custom_all: true,
runtime_flag: "CSSGridLayout",
},
{
name: "grid-template-columns",
api_class: "CSSPropertyAPIGridTemplateLine",
custom_all: true,
runtime_flag: "CSSGridLayout",
field_template: "storage_only",
type_name: "Vector<GridTrackSize>",
field_group: "rare-non-inherited->grid",
default_value: "Vector<GridTrackSize>()",
},
{
name: "grid-template-rows",
api_class: "CSSPropertyAPIGridTemplateLine",
custom_all: true,
runtime_flag: "CSSGridLayout",
field_template: "storage_only",
type_name: "Vector<GridTrackSize>",
field_group: "rare-non-inherited->grid",
default_value: "Vector<GridTrackSize>()",
},
{
name: "height",
api_class: "CSSPropertyAPIWidthOrHeight",
converter: "ConvertLengthSizing",
is_descriptor: true,
interpolable: true,
typedom_types: ["Length", "Percent"],
keywords: ["auto", "fit-content", "min-content", "max-content"],
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "box",
default_value: "Length()",
},
{
name: "hyphens",
inherited: true,
runtime_flag: "CSSHyphens",
field_template: "keyword",
type_name: "Hyphens",
keywords: ["none", "manual", "auto"],
default_value: "manual",
field_group: "rare-inherited",
},
{
name: "image-rendering",
inherited: true,
field_template: "keyword",
keywords: ["auto", "optimize-speed", "optimize-quality", "-webkit-optimize-contrast", "pixelated"],
default_value: "auto",
field_group: "rare-inherited",
},
{
name: "image-orientation",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertImageOrientation",
inherited: true,
name_for_methods: "RespectImageOrientation",
runtime_flag: "ImageOrientation",
field_template: "primitive",
type_name: "bool",
default_value: "false",
field_group: "rare-inherited",
},
{
name: "isolation",
type_name: "EIsolation",
field_template: "keyword",
keywords: ["auto", "isolate"],
field_group: "rare-non-inherited",
field_size: 1,
default_value: "auto",
},
{
name: "justify-content",
api_class: "CSSPropertyAPIAlignOrJustifyContent",
api_methods: ["parseSingleValue"],
converter: "ConvertContentAlignmentData",
initial: "InitialContentAlignment",
field_template: "storage_only",
type_name: "StyleContentAlignmentData",
field_group: "rare-non-inherited",
default_value: "StyleContentAlignmentData(kContentPositionNormal, kContentDistributionDefault, kOverflowAlignmentDefault)",
include_paths: ["core/style/StyleContentAlignmentData.h"],
},
{
name: "justify-items",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertSelfOrDefaultAlignmentData",
initial: "InitialSelfAlignment",
runtime_flag: "CSSGridLayout",
field_template: "storage_only",
type_name: "StyleSelfAlignmentData",
field_group: "rare-non-inherited",
default_value: "StyleSelfAlignmentData(kItemPositionAuto, kOverflowAlignmentDefault)",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
},
{
name: "justify-self",
api_class: "CSSPropertyAPIAlignOrJustifySelf",
api_methods: ["parseSingleValue"],
converter: "ConvertSelfOrDefaultAlignmentData",
initial: "InitialSelfAlignment",
runtime_flag: "CSSGridLayout",
field_template: "storage_only",
type_name: "StyleSelfAlignmentData",
field_group: "rare-non-inherited",
default_value: "StyleSelfAlignmentData(kItemPositionAuto, kOverflowAlignmentDefault)",
include_paths: ["core/style/StyleSelfAlignmentData.h"],
},
{
name: "left",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
typedom_types: ["Length", "Percent"],
keywords: ["auto"],
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length()",
},
{
name: "letter-spacing",
api_class: "CSSPropertyAPILetterAndWordSpacing",
api_methods: ["parseSingleValue"],
converter: "ConvertSpacing",
inherited: true,
initial: "InitialLetterWordSpacing",
interpolable: true,
},
{
name: "lighting-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
converter: "ConvertColor",
interpolable: true,
svg: true,
},
{
name: "line-height",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertLineHeight",
getter: "SpecifiedLineHeight",
inherited: true,
interpolable: true,
field_template: "storage_only",
include_paths: ["platform/Length.h"],
type_name: "Length",
default_value: "Length(-100.0, kPercent)",
field_group: "inherited",
},
{
name: "line-height-step",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<uint8_t>",
inherited: true,
runtime_flag: "CSSSnapSize",
field_template: "primitive",
type_name: "uint8_t",
default_value: "0",
field_group: "rare-inherited",
},
{
name: "list-style-image",
api_class: "CSSPropertyAPIImage",
api_methods: ["parseSingleValue"],
custom_value: true,
inherited: true,
interpolable: true,
typedom_types: ["Image"],
field_template: "storage_only",
type_name: "StyleImage",
wrapper_pointer_name: "Persistent",
default_value: "nullptr",
field_group: "rare-inherited",
},
{
name: "list-style-position",
independent: true,
inherited: true,
default_value: "outside",
field_template: "keyword",
keywords: ["outside", "inside"],
},
{
name: "list-style-type",
inherited: true,
default_value: "disc",
field_template: "keyword",
keywords: [
"disc", "circle", "square", "decimal", "decimal-leading-zero", "arabic-indic", "bengali", "cambodian", "khmer", "devanagari", "gujarati", "gurmukhi", "kannada", "lao", "malayalam", "mongolian", "myanmar", "oriya", "persian", "urdu", "telugu", "tibetan", "thai", "lower-roman", "upper-roman", "lower-greek", "lower-alpha", "lower-latin", "upper-alpha", "upper-latin", "cjk-earthly-branch", "cjk-heavenly-stem", "ethiopic-halehame", "ethiopic-halehame-am", "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "hangul", "hangul-consonant", "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal", "hebrew", "armenian", "lower-armenian", "upper-armenian", "georgian", "cjk-ideographic", "simp-chinese-formal", "simp-chinese-informal", "trad-chinese-formal", "trad-chinese-informal", "hiragana", "katakana", "hiragana-iroha", "katakana-iroha", "none",
],
},
{
name: "margin-bottom",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertQuirkyLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "margin-left",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertQuirkyLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "margin-right",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertQuirkyLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "margin-top",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertQuirkyLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "marker-end",
api_class: "CSSPropertyAPIMarker",
converter: "ConvertFragmentIdentifier",
inherited: true,
name_for_methods: "MarkerEndResource",
svg: true,
},
{
name: "marker-mid",
api_class: "CSSPropertyAPIMarker",
converter: "ConvertFragmentIdentifier",
inherited: true,
name_for_methods: "MarkerMidResource",
svg: true,
},
{
name: "marker-start",
api_class: "CSSPropertyAPIMarker",
converter: "ConvertFragmentIdentifier",
inherited: true,
name_for_methods: "MarkerStartResource",
svg: true,
},
{
name: "mask",
api_class: "CSSPropertyAPIMarker",
converter: "ConvertFragmentIdentifier",
name_for_methods: "MaskerResource",
svg: true,
},
{
name: "mask-source-type",
custom_all: true,
runtime_flag: "CSSMaskSourceType",
},
{
name: "mask-type",
svg: true,
},
{
name: "max-height",
converter: "ConvertLengthMaxSizing",
is_descriptor: true,
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "box",
default_value: "Length(kMaxSizeNone)",
},
{
name: "max-width",
converter: "ConvertLengthMaxSizing",
is_descriptor: true,
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "box",
default_value: "Length(kMaxSizeNone)",
},
{
name: "min-height",
api_class: "CSSPropertyAPIWidthOrHeight",
converter: "ConvertLengthSizing",
is_descriptor: true,
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "box",
default_value: "Length()",
},
{
name: "min-width",
api_class: "CSSPropertyAPIWidthOrHeight",
converter: "ConvertLengthSizing",
is_descriptor: true,
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "box",
default_value: "Length()",
},
{
name: "mix-blend-mode",
name_for_methods: "BlendMode",
type_name: "blink::WebBlendMode",
},
{
name: "object-fit",
field_template: "keyword",
keywords: ["fill", "contain", "cover", "none", "scale-down"],
field_group: "rare-non-inherited",
field_size: 3,
getter: "GetObjectFit",
default_value: "fill",
},
{
name: "object-position",
converter: "ConvertPosition",
interpolable: true,
field_template: "external",
type_name: "LengthPoint",
include_paths: ["platform/LengthPoint.h"],
field_group: "rare-non-inherited",
default_value: "LengthPoint(Length(50.0, kPercent), Length(50.0, kPercent))",
},
{
name: "offset-anchor",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertPositionOrAuto",
interpolable: true,
runtime_flag: "CSSOffsetPositionAnchor",
},
{
name: "offset-distance",
api_class: true,
converter: "ConvertLength",
interpolable: true,
},
{
name: "offset-path",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertOffsetPath",
},
{
name: "offset-position",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertPositionOrAuto",
interpolable: true,
runtime_flag: "CSSOffsetPositionAnchor",
},
{
name: "offset-rotate",
api_class: "CSSPropertyAPIOffsetRotate",
converter: "ConvertOffsetRotate",
interpolable: true,
},
// Whether or not we're transparent.
{
name: "opacity",
api_class: "CSSPropertyAPIOpacity",
api_methods: ["parseSingleValue"],
interpolable: true,
field_template: "storage_only",
type_name: "float",
field_group: "rare-non-inherited",
default_value: "1.0",
},
{
name: "order",
api_class: true,
api_methods: ["parseSingleValue"],
interpolable: true,
field_template: "storage_only",
type_name: "int",
field_group: "rare-non-inherited",
default_value: "0",
},
{
name: "orphans",
api_class: "CSSPropertyAPIFragmentation",
api_methods: ["parseSingleValue"],
inherited: true,
interpolable: true,
type_name: "short",
field_template: "primitive",
default_value: "2",
field_group: "rare-inherited",
},
{
name: "outline-color",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
interpolable: true,
},
{
name: "outline-offset",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<int>",
interpolable: true,
},
{
name: "outline-style",
custom_all: true,
},
{
name: "outline-width",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertLineWidth<unsigned short>",
interpolable: true,
},
{
name: "overflow-anchor",
runtime_flag: "ScrollAnchoring",
inherited: false,
default_value: "auto",
field_template: "keyword",
keywords: [
"visible", "none", "auto",
],
},
{
name: "overflow-wrap",
inherited: true,
field_template: "keyword",
keywords: ["normal", "break-word"],
default_value: "normal",
field_size: 1,
field_group: "rare-inherited",
},
{
name: "overflow-x",
default_value: "visible",
field_template: "keyword",
keywords: [
"visible", "hidden", "scroll", "auto", "overlay", "-webkit-paged-x", "-webkit-paged-y",
],
type_name: "EOverflow",
},
{
name: "overflow-y",
default_value: "visible",
field_template: "keyword",
keywords: [
"visible", "hidden", "scroll", "auto", "overlay", "-webkit-paged-x", "-webkit-paged-y",
],
type_name: "EOverflow",
},
{
name: "padding-bottom",
api_class: "CSSPropertyAPIPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "padding-left",
api_class: "CSSPropertyAPIPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "padding-right",
api_class: "CSSPropertyAPIPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "padding-top",
api_class: "CSSPropertyAPIPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
interpolable: true,
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length(kFixed)",
},
{
name: "paint-order",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertPaintOrder",
inherited: true,
svg: true,
},
{
name: "perspective",
api_class: "CSSPropertyAPIPerspective",
converter: "ConvertPerspective",
interpolable: true,
field_template: "storage_only",
type_name: "float",
field_group: "rare-non-inherited",
default_value: "0.0",
},
{
name: "perspective-origin",
converter: "ConvertPosition",
interpolable: true,
field_template: "storage_only",
type_name: "LengthPoint",
field_group: "rare-non-inherited",
default_value: "LengthPoint(Length(50.0, kPercent), Length(50.0, kPercent))",
},
{
name: "pointer-events",
independent: true,
inherited: true,
default_value: "auto",
field_template: "keyword",
keywords: [
"none", "auto", "stroke", "fill", "painted", "visible", "visibleStroke", "visibleFill", "visiblePainted", "bounding-box", "all",
],
},
{
name: "position",
custom_inherit: true,
default_value: "static",
field_template: "keyword",
getter: "GetPosition",
keywords: [
"static", "relative", "absolute", "fixed", "sticky",
],
},
{
name: "quotes",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertQuotes",
inherited: true,
field_template: "storage_only",
type_name: "QuotesData",
include_paths: ["core/style/QuotesData.h"],
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
field_group: "rare-inherited",
},
{
name: "resize",
custom_value: true,
field_template: "storage_only",
field_group: "rare-non-inherited",
field_size: 2,
default_value: "EResize::kNone",
},
{
name: "right",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
typedom_types: ["Length", "Percent"],
keywords: ["auto"],
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length()",
},
{
name: "r",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertLength",
interpolable: true,
svg: true,
},
{
name: "rx",
api_class: "CSSPropertyAPIRadius",
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
svg: true,
},
{
name: "ry",
api_class: "CSSPropertyAPIRadius",
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
svg: true,
},
{
name: "scroll-behavior",
runtime_flag: "CSSOMSmoothScroll",
type_name: "ScrollBehavior",
field_template: "storage_only",
field_group: "rare-non-inherited",
field_size: 2,
default_value: "kScrollBehaviorAuto",
},
{
name: "scroll-snap-type",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertSnapType",
getter: "GetScrollSnapType",
runtime_flag: "CSSScrollSnapPoints",
field_template: "storage_only",
type_name: "ScrollSnapType",
field_group: "rare-non-inherited->scroll-snap",
include_paths: ["core/style/ScrollSnap.h"],
default_value: "ScrollSnapType()",
},
{
name: "scroll-snap-align",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertSnapAlign",
getter: "GetScrollSnapAlign",
runtime_flag: "CSSScrollSnapPoints",
field_template: "storage_only",
type_name: "ScrollSnapAlign",
field_group: "rare-non-inherited->scroll-snap",
default_value: "ScrollSnapAlign()",
include_paths: ["core/style/ScrollSnap.h"],
},
{
name: "scroll-snap-stop",
default_value: "normal",
field_template: "keyword",
keywords: ["normal", "always"],
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-top",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-bottom",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-left",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-right",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-block-start",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
direction_aware: true,
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-block-end",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
direction_aware: true,
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-inline-start",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
direction_aware: true,
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-inline-end",
api_class: "CSSPropertyAPIScrollPadding",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollPadding",
include_paths: ["platform/Length.h"],
typedom_types: ["Length", "Percent"],
type_name: "Length",
direction_aware: true,
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-top",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-bottom",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-left",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-right",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-block-start",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
direction_aware: true,
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-block-end",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
direction_aware: true,
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-inline-start",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
direction_aware: true,
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-inline-end",
api_class: "CSSPropertyAPIScrollSnapMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
initial: "InitialScrollSnapMargin",
direction_aware: true,
include_paths: ["platform/Length.h"],
type_name: "Length",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "shape-image-threshold",
api_class: true,
api_methods: ["parseSingleValue"],
interpolable: true,
field_template: "storage_only",
type_name: "float",
field_group: "rare-non-inherited",
default_value: "0.0",
},
{
name: "shape-margin",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertLength",
interpolable: true,
field_template: "external",
type_name: "Length",
include_paths: ["platform/Length.h"],
field_group: "rare-non-inherited",
default_value: "Length(0, kFixed)",
},
{
name: "shape-outside",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertShapeValue",
interpolable: true,
typedom_types: ["Image"],
field_template: "storage_only",
type_name: "ShapeValue",
field_group: "rare-non-inherited",
default_value: "nullptr",
wrapper_pointer_name: "Persistent",
include_paths: ["core/style/ShapeValue.h"],
},
{
name: "shape-rendering",
inherited: true,
svg: true,
},
{
name: "size",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
},
{
name: "speak",
inherited: true,
field_template: "keyword",
keywords: ["none", "normal", "spell-out", "digits", "literal-punctuation", "no-punctuation"],
default_value: "normal",
field_group: "rare-inherited",
},
{
name: "stop-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
converter: "ConvertColor",
interpolable: true,
svg: true,
},
{
name: "stop-opacity",
api_class: "CSSPropertyAPIOpacity",
api_methods: ["parseSingleValue"],
converter: "ConvertNumberOrPercentage",
interpolable: true,
svg: true,
},
{
name: "stroke",
api_class: "CSSPropertyAPIPaintStroke",
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
interpolable: true,
setter: "SetStrokePaint",
svg: true,
},
{
name: "stroke-dasharray",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertStrokeDasharray",
inherited: true,
interpolable: true,
name_for_methods: "StrokeDashArray",
svg: true,
},
{
name: "stroke-dashoffset",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertLength",
inherited: true,
interpolable: true,
name_for_methods: "StrokeDashOffset",
svg: true,
},
{
name: "stroke-linecap",
inherited: true,
name_for_methods: "CapStyle",
svg: true,
type_name: "LineCap",
},
{
name: "stroke-linejoin",
inherited: true,
name_for_methods: "JoinStyle",
svg: true,
type_name: "LineJoin",
},
{
name: "stroke-miterlimit",
api_class: true,
api_methods: ["parseSingleValue"],
inherited: true,
interpolable: true,
name_for_methods: "StrokeMiterLimit",
svg: true,
type_name: "float",
},
{
name: "stroke-opacity",
api_class: "CSSPropertyAPIOpacity",
api_methods: ["parseSingleValue"],
converter: "ConvertNumberOrPercentage",
inherited: true,
interpolable: true,
svg: true,
},
{
name: "stroke-width",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertUnzoomedLength",
inherited: true,
interpolable: true,
svg: true,
},
{
name: "table-layout",
default_value: "auto",
field_template: "keyword",
keywords: [
"auto", "fixed"
]
},
{
name: "tab-size",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrTabSpaces",
inherited: true,
getter: "GetTabSize",
type_name: "TabSize",
include_paths: ["platform/text/TabSize.h"],
field_template: "external",
default_value: "TabSize(8)",
field_group: "rare-inherited",
},
{
name: "text-align",
custom_value: true,
independent: false,
inherited: true,
default_value: "start",
field_template: "keyword",
getter: "GetTextAlign",
keywords: [
"left", "right", "center", "justify", "webkitLeft", "webkitRight", "webkitCenter", "start", "end",
],
},
{
name: "text-align-last",
inherited: true,
field_template: "keyword",
keywords: ["auto", "start", "end", "left", "right", "center", "justify"],
default_value: "auto",
field_size: 3,
field_group: "rare-inherited",
},
{
name: "text-anchor",
inherited: true,
svg: true,
},
{
name: "text-combine-upright",
inherited: true,
name_for_methods: "TextCombine",
field_template: "keyword",
keywords: ["none", "all"],
default_value: "none",
field_size: 1,
field_group: "rare-inherited",
},
{
name: "text-decoration",
api_class: true,
longhands: "text-decoration-line;text-decoration-style;text-decoration-color",
use_handlers_for: "CSSPropertyTextDecorationLine",
},
{
name: "text-decoration-color",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
interpolable: true,
runtime_flag: "CSS3TextDecorations",
field_template: "external",
type_name: "StyleColor",
include_paths: ["core/css/StyleColor.h"],
field_group: "rare-non-inherited",
default_value: "StyleColor::CurrentColor()",
},
{
name: "text-decoration-line",
api_class: "CSSPropertyAPITextDecorationLine",
converter: "ConvertFlags<TextDecoration>",
name_for_methods: "TextDecoration",
runtime_flag: "CSS3TextDecorations",
type_name: "TextDecoration",
},
{
name: "text-decoration-skip",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFlags<TextDecorationSkip>",
inherited: true,
runtime_flag: "CSS3TextDecorations",
field_template: "storage_only",
type_name: "TextDecorationSkip",
default_value: "TextDecorationSkip::kObjects",
field_size: 3,
field_group: "rare-inherited",
},
{
name: "text-decoration-style",
runtime_flag: "CSS3TextDecorations",
field_template: "keyword",
keywords: ["solid", "double", "dotted", "dashed", "wavy"],
field_group: "rare-non-inherited",
default_value: "solid",
},
{
name: "text-indent",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
interpolable: true,
field_template: "external",
type_name: "Length",
include_paths: ["platform/Length.h"],
default_value: "Length(kFixed)",
field_group: "rare-inherited",
},
{
name: "text-justify",
inherited: true,
runtime_flag: "CSS3Text",
getter: "GetTextJustify",
field_template: "keyword",
type_name: "TextJustify",
include_paths: ["platform/text/TextJustify.h"],
default_value: "auto",
keywords: ["auto", "none", "inter-word", "distribute"],
field_group: "rare-inherited",
},
{
name: "text-overflow",
field_template: "keyword",
field_group: "rare-non-inherited",
default_value: "clip",
keywords: ["clip", "ellipsis"],
},
{
name: "text-shadow",
converter: "ConvertShadowList",
inherited: true,
interpolable: true,
field_template: "storage_only",
type_name: "ShadowList",
include_paths: ["core/style/ShadowList.h"],
wrapper_pointer_name: "RefPtr",
default_value: "nullptr",
field_group: "rare-inherited",
},
{
name: "text-size-adjust",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertTextSizeAdjust",
inherited: true,
getter: "GetTextSizeAdjust",
field_template: "external",
type_name: "TextSizeAdjust",
include_paths: ["core/style/TextSizeAdjust.h"],
default_value: "TextSizeAdjust::AdjustAuto()",
field_group: "rare-inherited",
},
{
name: "text-transform",
independent: true,
inherited: true,
default_value: "none",
field_template: "keyword",
keywords: ["capitalize", "uppercase", "lowercase", "none"],
},
// FIXME: Implement support for 'under left' and 'under right' values.
{
name: "text-underline-position",
api_class: true,
api_methods: ["parseSingleValue"],
inherited: true,
runtime_flag: "CSS3TextDecorations",
field_template: "keyword",
type_name: "TextUnderlinePosition",
default_value: "auto",
keywords: ["auto", "under"],
field_group: "rare-inherited",
},
{
name: "top",
api_class: "CSSPropertyAPIMargin",
api_methods: ["parseSingleValue"],
converter: "ConvertLengthOrAuto",
interpolable: true,
typedom_types: ["Length", "Percent"],
keywords: ["auto"],
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "surround",
default_value: "Length()",
},
{
name: "touch-action",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertFlags<TouchAction>",
type_name: "TouchAction",
field_template: "storage_only",
field_group: "rare-non-inherited",
field_size: 6, // TODO(shend): Make this use "kTouchActionBits".
default_value: "TouchAction::kTouchActionAuto",
include_paths: ["platform/graphics/TouchAction.h"],
},
{
name: "transform",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertTransformOperations",
interpolable: true,
keywords: ["none"],
typedom_types: ["Transform"],
},
{
name: "transform-box",
field_template: "keyword",
keywords: ["border-box", "fill-box", "view-box"],
default_value: "border-box",
runtime_flag: "CSSTransformBox",
},
{
name: "transform-origin",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertTransformOrigin",
getter: "GetTransformOrigin",
interpolable: true,
field_template: "storage_only",
type_name: "TransformOrigin",
field_group: "rare-non-inherited->transform",
default_value: "TransformOrigin(Length(50.0, kPercent), Length(50.0, kPercent), 0)",
include_paths: ["core/style/TransformOrigin.h"],
},
{
name: "transform-style",
name_for_methods: "TransformStyle3D",
field_template: "keyword",
keywords: ["flat", "preserve-3d"],
field_group: "rare-non-inherited",
default_value: "flat",
field_size: 1,
},
{
name: "translate",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertTranslate",
interpolable: true,
runtime_flag: "CSSIndependentTransformProperties",
field_template: "storage_only",
type_name: "TranslateTransformOperation",
field_group: "rare-non-inherited->transform",
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
include_paths: ["platform/transforms/TranslateTransformOperation.h"],
},
{
name: "rotate",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertRotate",
interpolable: true,
runtime_flag: "CSSIndependentTransformProperties",
field_template: "storage_only",
type_name: "RotateTransformOperation",
field_group: "rare-non-inherited->transform",
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
include_paths: ["platform/transforms/RotateTransformOperation.h"],
},
{
name: "scale",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertScale",
interpolable: true,
runtime_flag: "CSSIndependentTransformProperties",
field_template: "storage_only",
type_name: "ScaleTransformOperation",
field_group: "rare-non-inherited->transform",
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
include_paths: ["platform/transforms/ScaleTransformOperation.h"],
},
{
name: "unicode-bidi",
include_paths: ["platform/text/UnicodeBidi.h"],
default_value: "normal",
field_template: "keyword",
keywords: [
"normal", "embed", "bidi-override", "isolate", "plaintext", "isolate-override",
],
type_name: "UnicodeBidi",
},
{
name: "vector-effect",
svg: true,
},
{
name: "vertical-align",
api_class: true,
api_methods: ["parseSingleValue"],
custom_inherit: true,
custom_value: true,
interpolable: true,
},
{
name: "visibility",
independent: true,
inherited: true,
default_value: "visible",
interpolable: true,
field_template: "keyword",
keywords: ["visible", "hidden", "collapse"],
},
{
name: "x",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertLength",
interpolable: true,
svg: true,
},
{
name: "y",
api_class: "CSSPropertyAPIStrokeOrLength",
converter: "ConvertLength",
interpolable: true,
svg: true,
},
{
name: "-webkit-appearance",
type_name: "ControlPart",
field_template: "storage_only",
field_group: "rare-non-inherited",
default_value: "kNoControlPart",
field_size: 6,
},
{
name: "-webkit-app-region",
custom_all: true,
name_for_methods: "DraggableRegionMode",
field_template: "keyword",
field_group: "rare-non-inherited",
default_value: "none",
keywords: ["none", "drag", "no-drag"],
},
{
name: "-webkit-background-clip",
use_handlers_for: "CSSPropertyBackgroundClip",
},
{
name: "-webkit-background-origin",
use_handlers_for: "CSSPropertyBackgroundOrigin",
},
{
name: "-webkit-border-horizontal-spacing",
api_class: "CSSPropertyAPIWebkitBorderSpacing",
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<short>",
inherited: true,
interpolable: true,
name_for_methods: "HorizontalBorderSpacing",
field_template: "primitive",
type_name: "short",
field_group: "inherited",
default_value: "0",
},
{
name: "-webkit-border-image",
api_class: true,
custom_value: true,
},
{
name: "-webkit-border-vertical-spacing",
api_class: "CSSPropertyAPIWebkitBorderSpacing",
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<short>",
inherited: true,
interpolable: true,
name_for_methods: "VerticalBorderSpacing",
field_template: "primitive",
type_name: "short",
field_group: "inherited",
default_value: "0",
},
{
name: "-webkit-box-align",
type_name: "EBoxAlignment",
field_template: "storage_only",
default_value: "BSTRETCH",
field_size: 3,
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-decoration-break",
field_template: "keyword",
field_group: "box",
keywords: ["slice", "clone"],
default_value: "slice",
},
{
name: "-webkit-box-direction",
independent: true,
inherited: true,
default_value: "normal",
field_template: "keyword",
keywords: ["normal", "reverse"],
},
{
name: "-webkit-box-flex",
api_class: true,
type_name: "float",
field_template: "primitive",
default_value: "0.0f",
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-flex-group",
api_class: true,
api_methods: ["parseSingleValue"],
type_name: "unsigned",
field_template: "primitive",
default_value: "1",
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-lines",
type_name: "EBoxLines",
field_template: "storage_only",
default_value: "SINGLE",
field_size: 1,
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-ordinal-group",
api_class: "CSSPropertyAPIFragmentation",
api_methods: ["parseSingleValue"],
type_name: "unsigned",
field_template: "storage_only",
default_value: "1",
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-orient",
type_name: "EBoxOrient",
field_template: "storage_only",
default_value: "HORIZONTAL",
field_size: 1,
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-pack",
type_name: "EBoxPack",
field_template: "storage_only",
default_value: "kBoxPackStart",
field_size: 2,
field_group: "rare-non-inherited->deprecated-flexible-box",
},
{
name: "-webkit-box-reflect",
converter: "ConvertBoxReflect",
field_template: "storage_only",
type_name: "StyleReflection",
field_group: "rare-non-inherited",
default_value: "nullptr",
wrapper_pointer_name: "RefPtr",
include_paths: ["core/style/StyleReflection.h"],
},
{
name: "column-count",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
interpolable: true,
type_name: "unsigned short",
field_template: "storage_only",
default_value: "1",
field_group: "rare-non-inherited->multi-col",
},
{
name: "column-gap",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<float>",
custom_all: true,
interpolable: true,
type_name: "float",
field_template: "storage_only",
default_value: "0.0f",
field_group: "rare-non-inherited->multi-col",
},
{
name: "column-rule-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
custom_all: true,
interpolable: true,
},
{
name: "column-rule-style",
initial: "InitialColumnRuleStyle",
type_name: "EBorderStyle",
},
{
name: "column-rule-width",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertLineWidth<unsigned short>",
interpolable: true,
},
{
name: "column-span",
api_class: true,
api_methods: ["parseSingleValue"],
type_name: "ColumnSpan",
field_template: "storage_only",
field_group: "rare-non-inherited->multi-col",
default_value: "kColumnSpanNone",
field_size: 1,
},
{
name: "column-width",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<float>",
custom_all: true,
interpolable: true,
field_template: "storage_only",
type_name: "float",
default_value: "0.0f",
field_group: "rare-non-inherited->multi-col",
},
{
name: "-webkit-highlight",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertString<CSSValueNone>",
inherited: true,
field_template: "external",
type_name: "AtomicString",
include_paths: ["platform/wtf/text/AtomicString.h"],
default_value: "g_null_atom",
field_group: "rare-inherited",
},
{
name: "-webkit-hyphenate-character",
converter: "ConvertString<CSSValueAuto>",
inherited: true,
name_for_methods: "HyphenationString",
field_template: "external",
type_name: "AtomicString",
include_paths: ["platform/wtf/text/AtomicString.h"],
default_value: "AtomicString()",
field_group: "rare-inherited",
},
{
name: "-webkit-line-break",
inherited: true,
field_template: "keyword",
type_name: "LineBreak",
keywords: ["auto", "loose", "normal", "strict", "after-white-space"],
default_value: "auto",
field_group: "rare-inherited",
},
// An Apple extension.
{
name: "-webkit-line-clamp",
api_class: true,
api_methods: ["parseSingleValue"],
type_name: "LineClampValue",
field_template: "storage_only",
field_group: "rare-non-inherited",
default_value: "LineClampValue()",
include_paths: ["core/style/LineClampValue.h"],
},
{
name: "-webkit-margin-after-collapse",
type_name: "EMarginCollapse",
field_template: "keyword",
keywords: ["collapse", "separate", "discard"],
field_group: "rare-non-inherited",
default_value: "collapse",
},
{
name: "-webkit-margin-before-collapse",
type_name: "EMarginCollapse",
field_template: "keyword",
keywords: ["collapse", "separate", "discard"],
field_group: "rare-non-inherited",
default_value: "collapse",
},
{
name: "-webkit-margin-bottom-collapse",
name_for_methods: "MarginAfterCollapse",
type_name: "EMarginCollapse",
},
{
name: "-webkit-margin-top-collapse",
name_for_methods: "MarginBeforeCollapse",
type_name: "EMarginCollapse",
},
{
name: "-webkit-mask-box-image-outset",
api_class: "CSSPropertyAPIBorderImageOutset",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-mask-box-image-repeat",
api_class: "CSSPropertyAPIBorderImageRepeat",
custom_all: true,
},
{
name: "-webkit-mask-box-image-slice",
api_class: "CSSPropertyAPIBorderImageSlice",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-mask-box-image-source",
api_class: "CSSPropertyAPIImage",
api_methods: ["parseSingleValue"],
custom_value: true,
interpolable: true,
},
{
name: "-webkit-mask-box-image-width",
api_class: "CSSPropertyAPIBorderImageWidth",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-mask-clip",
custom_all: true,
},
{
name: "-webkit-mask-composite",
custom_all: true,
},
{
name: "-webkit-mask-image",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-mask-origin",
custom_all: true,
},
{
name: "-webkit-mask-position-x",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-mask-position-y",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-mask-repeat-x",
api_class: "CSSPropertyAPIWebkitMaskRepeat",
custom_all: true,
},
{
name: "-webkit-mask-repeat-y",
api_class: "CSSPropertyAPIWebkitMaskRepeat",
custom_all: true,
},
{
name: "-webkit-mask-size",
custom_all: true,
interpolable: true,
},
{
name: "-webkit-perspective-origin-x",
api_class: "CSSPropertyAPIWebkitOriginX",
converter: "ConvertLength",
interpolable: true,
},
{
name: "-webkit-perspective-origin-y",
api_class: "CSSPropertyAPIWebkitOriginY",
converter: "ConvertLength",
interpolable: true,
},
{
name: "-webkit-print-color-adjust",
independent: true,
inherited: true,
default_value: "economy",
field_template: "keyword",
keywords: ["economy", "exact"],
},
{
name: "-webkit-rtl-ordering",
independent: true,
inherited: true,
initial: "InitialRtlOrdering",
default_value: "logical",
field_template: "keyword",
keywords: ["logical", "visual"],
setter: "SetRtlOrdering",
type_name: "EOrder",
},
{
name: "-webkit-ruby-position",
inherited: true,
field_template: "keyword",
type_name: "RubyPosition",
keywords: ["before", "after"],
default_value: "before",
field_group: "rare-inherited",
},
{
name: "-webkit-tap-highlight-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
converter: "ConvertColor",
inherited: true,
field_template: "external",
type_name: "Color",
include_paths: ["platform/graphics/Color.h"],
default_value: "LayoutTheme::TapHighlightColor()",
field_group: "rare-inherited",
},
{
name: "-webkit-text-combine",
inherited: true,
name_for_methods: "TextCombine",
},
{
name: "-webkit-text-emphasis-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
field_template: "storage_only",
type_name: "Color",
include_paths: ["platform/graphics/Color.h"],
default_value: "Color()",
field_group: "rare-inherited",
},
{
name: "-webkit-text-emphasis-position",
inherited: true,
field_template: "keyword",
type_name: "TextEmphasisPosition",
default_value: "over",
keywords: ["over", "under"],
field_group: "rare-inherited",
},
{
name: "-webkit-text-emphasis-style",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
},
{
name: "-webkit-text-fill-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
field_template: "storage_only",
type_name: "Color",
include_paths: ["platform/graphics/Color.h"],
default_value: "Color()",
field_group: "rare-inherited",
},
{
name: "-webkit-text-security",
inherited: true,
field_template: "keyword",
keywords: ["none", "disc", "circle", "square"],
default_value: "none",
field_group: "rare-inherited",
},
{
name: "-webkit-text-stroke-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
custom_all: true,
inherited: true,
interpolable: true,
field_template: "storage_only",
type_name: "Color",
include_paths: ["platform/graphics/Color.h"],
default_value: "Color()",
field_group: "rare-inherited",
},
{
name: "-webkit-text-stroke-width",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertTextStrokeWidth",
inherited: true,
field_template: "primitive",
type_name: "float",
default_value: "0",
field_group: "rare-inherited",
},
{
name: "-webkit-transform-origin-x",
api_class: "CSSPropertyAPIWebkitOriginX",
converter: "ConvertLength",
interpolable: true,
},
{
name: "-webkit-transform-origin-y",
api_class: "CSSPropertyAPIWebkitOriginY",
converter: "ConvertLength",
interpolable: true,
},
{
name: "-webkit-transform-origin-z",
api_class: true,
api_methods: ["parseSingleValue"],
converter: "ConvertComputedLength<float>",
interpolable: true,
},
{
name: "-webkit-user-drag",
field_template: "keyword",
field_group: "rare-non-inherited",
default_value: "auto",
keywords: ["auto", "none", "element"],
},
{
name: "-webkit-user-modify",
inherited: true,
field_template: "keyword",
keywords: ["read-only", "read-write", "read-write-plaintext-only"],
default_value: "read-only",
field_group: "rare-inherited",
},
{
name: "user-select",
inherited: true,
field_template: "keyword",
keywords: ["none", "text", "all"],
default_value: "text",
field_group: "rare-inherited",
},
{
name: "white-space",
independent: true,
inherited: true,
default_value: "normal",
field_template: "keyword",
keywords: ["normal", "pre", "pre-wrap", "pre-line", "nowrap", "-webkit-nowrap"],
},
{
name: "widows",
api_class: "CSSPropertyAPIFragmentation",
api_methods: ["parseSingleValue"],
inherited: true,
interpolable: true,
field_template: "primitive",
type_name: "short",
default_value: "2",
field_group: "rare-inherited",
},
{
name: "width",
api_class: "CSSPropertyAPIWidthOrHeight",
converter: "ConvertLengthSizing",
is_descriptor: true,
interpolable: true,
typedom_types: ["Length", "Percent"],
keywords: ["auto", "fit-content", "min-content", "max-content"],
field_template: "external",
include_paths: ["platform/Length.h"],
type_name: "Length",
field_group: "box",
default_value: "Length()"
},
{
name: "will-change",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
},
{
name: "word-break",
inherited: true,
field_template: "keyword",
// Word Break Values. Matches WinIE and CSS3
keywords: ["normal", "break-all", "keep-all", "break-word"],
default_value: "normal",
field_group: "rare-inherited",
},
{
name: "word-spacing",
api_class: "CSSPropertyAPILetterAndWordSpacing",
api_methods: ["parseSingleValue"],
converter: "ConvertSpacing",
inherited: true,
initial: "InitialLetterWordSpacing",
interpolable: true,
},
// UAs must treat 'word-wrap' as an alternate name for the 'overflow-wrap' property. So using the same handlers.
{
name: "word-wrap",
inherited: true,
name_for_methods: "OverflowWrap",
},
{
name: "z-index",
api_class: true,
api_methods: ["parseSingleValue"],
custom_all: true,
interpolable: true,
type_name: "int",
field_template: "storage_only",
field_group: "box",
default_value: "0"
},
// CSS logical props
{
name: "inline-size",
direction_aware: true,
},
{
name: "block-size",
direction_aware: true,
},
{
name: "min-inline-size",
direction_aware: true,
},
{
name: "min-block-size",
direction_aware: true,
},
{
name: "max-inline-size",
api_class: "CSSPropertyAPIWebkitMaxLogicalWidthOrHeight",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "max-block-size",
api_class: "CSSPropertyAPIWebkitMaxLogicalWidthOrHeight",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
// Non-standard direction aware properties
{
name: "-webkit-border-end-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-end-style",
direction_aware: true,
},
{
name: "-webkit-border-end-width",
api_class: "CSSPropertyAPIWebkitBorderWidth",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-start-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-start-style",
direction_aware: true,
},
{
name: "-webkit-border-start-width",
api_class: "CSSPropertyAPIWebkitBorderWidth",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-before-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-before-style",
direction_aware: true,
},
{
name: "-webkit-border-before-width",
api_class: "CSSPropertyAPIWebkitBorderWidth",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-after-color",
api_class: "CSSPropertyAPIColor",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-border-after-style",
direction_aware: true,
},
{
name: "-webkit-border-after-width",
api_class: "CSSPropertyAPIWebkitBorderWidth",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-margin-end",
api_class: "CSSPropertyAPIWebkitMargin",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-margin-start",
api_class: "CSSPropertyAPIWebkitMargin",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-margin-before",
api_class: "CSSPropertyAPIWebkitMargin",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-margin-after",
api_class: "CSSPropertyAPIWebkitMargin",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-padding-end",
api_class: "CSSPropertyAPIWebkitPadding",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-padding-start",
api_class: "CSSPropertyAPIWebkitPadding",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-padding-before",
api_class: "CSSPropertyAPIWebkitPadding",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-padding-after",
api_class: "CSSPropertyAPIWebkitPadding",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-logical-width",
api_class: "CSSPropertyAPIWebkitLogicalWidthOrHeight",
direction_aware: true,
},
{
name: "-webkit-logical-height",
api_class: "CSSPropertyAPIWebkitLogicalWidthOrHeight",
direction_aware: true,
},
{
name: "-webkit-min-logical-width",
api_class: "CSSPropertyAPIWebkitLogicalWidthOrHeight",
direction_aware: true,
},
{
name: "-webkit-min-logical-height",
api_class: "CSSPropertyAPIWebkitLogicalWidthOrHeight",
direction_aware: true,
},
{
name: "-webkit-max-logical-width",
api_class: "CSSPropertyAPIWebkitMaxLogicalWidthOrHeight",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
{
name: "-webkit-max-logical-height",
api_class: "CSSPropertyAPIWebkitMaxLogicalWidthOrHeight",
api_methods: ["parseSingleValue"],
direction_aware: true,
},
// Properties that we ignore in the StyleBuilder.
// TODO(timloh): This seems wrong, most of these shouldn't reach the StyleBuilder
{
name: "all",
builder_skip: true,
},
{
name: "page",
api_class: true,
api_methods: ["parseSingleValue"],
builder_skip: true,
},
{
name: "-webkit-font-size-delta",
api_class: true,
api_methods: ["parseSingleValue"],
builder_skip: true,
},
{
name: "-webkit-text-decorations-in-effect",
api_class: "CSSPropertyAPITextDecorationLine",
builder_skip: true,
inherited: true,
},
// Descriptor only names
{
name: "font-display",
is_descriptor: true,
is_property: false,
runtime_flag: "CSSFontDisplay",
},
{
name: "max-zoom",
is_descriptor: true,
is_property: false,
},
{
name: "min-zoom",
is_descriptor: true,
is_property: false,
},
{
name: "orientation",
is_descriptor: true,
is_property: false,
},
{
name: "src",
is_descriptor: true,
is_property: false,
},
{
name: "unicode-range",
is_descriptor: true,
is_property: false,
},
{
name: "user-zoom",
is_descriptor: true,
is_property: false,
},
// Shorthands
{
name: "animation",
longhands: "animation-name;animation-duration;animation-timing-function;animation-delay;animation-iteration-count;animation-direction;animation-fill-mode;animation-play-state",
},
{
name: "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",
},
{
name: "background-position",
longhands: "background-position-x;background-position-y",
},
{
name: "background-repeat",
longhands: "background-repeat-x;background-repeat-y",
},
{
name: "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-image-source;border-image-slice;border-image-width;border-image-outset;border-image-repeat",
},
{
name: "border-bottom",
longhands: "border-bottom-width;border-bottom-style;border-bottom-color",
},
{
name: "border-color",
longhands: "border-top-color;border-right-color;border-bottom-color;border-left-color",
},
{
name: "border-image",
longhands: "border-image-source;border-image-slice;border-image-width;border-image-outset;border-image-repeat",
},
{
name: "border-left",
longhands: "border-left-width;border-left-style;border-left-color",
},
{
name: "border-radius",
longhands: "border-top-left-radius;border-top-right-radius;border-bottom-right-radius;border-bottom-left-radius",
api_class: true,
api_methods: ["parseShorthand"],
},
{
name: "border-right",
longhands: "border-right-width;border-right-style;border-right-color",
},
{
name: "border-spacing",
longhands: "-webkit-border-horizontal-spacing;-webkit-border-vertical-spacing",
},
{
name: "border-style",
longhands: "border-top-style;border-right-style;border-bottom-style;border-left-style",
keywords: ["none"],
typedom_types: ["Image"],
},
{
name: "border-top",
longhands: "border-top-width;border-top-style;border-top-color",
},
{
name: "border-width",
longhands: "border-top-width;border-right-width;border-bottom-width;border-left-width",
},
{
name: "flex",
longhands: "flex-grow;flex-shrink;flex-basis",
api_class: true,
api_methods: ["parseShorthand"],
},
{
name: "flex-flow",
longhands: "flex-direction;flex-wrap",
},
{
name: "font",
longhands: "font-style;font-variant-ligatures;font-variant-caps;font-variant-numeric;font-weight;font-stretch;font-size;line-height;font-family",
},
{
name: "font-variant",
longhands: "font-variant-ligatures;font-variant-caps;font-variant-numeric",
is_descriptor: true,
},
{
name: "grid",
longhands: "grid-template-rows;grid-template-columns;grid-template-areas;grid-auto-flow;grid-auto-rows;grid-auto-columns;grid-column-gap;grid-row-gap",
runtime_flag: "CSSGridLayout",
},
{
name: "place-content",
longhands: "align-content;justify-content",
runtime_flag: "CSSGridLayout",
},
{
name: "place-items",
longhands: "align-items;justify-items",
runtime_flag: "CSSGridLayout",
},
{
name: "place-self",
longhands: "align-self;justify-self",
runtime_flag: "CSSGridLayout",
},
{
name: "grid-area",
longhands: "grid-row-start;grid-column-start;grid-row-end;grid-column-end",
runtime_flag: "CSSGridLayout",
},
{
name: "grid-column",
longhands: "grid-column-start;grid-column-end",
runtime_flag: "CSSGridLayout",
},
{
name: "grid-gap",
longhands: "grid-row-gap;grid-column-gap",
runtime_flag: "CSSGridLayout",
},
{
name: "grid-row",
longhands: "grid-row-start;grid-row-end",
runtime_flag: "CSSGridLayout",
},
{
name: "grid-template",
longhands: "grid-template-rows;grid-template-columns;grid-template-areas",
runtime_flag: "CSSGridLayout",
},
{
name: "list-style",
longhands: "list-style-type;list-style-position;list-style-image",
},
{
name: "margin",
longhands: "margin-top;margin-right;margin-bottom;margin-left",
},
{
name: "marker",
longhands: "marker-start;marker-mid;marker-end",
},
{
name: "offset",
longhands: "offset-position;offset-path;offset-distance;offset-rotate;offset-anchor",
},
{
name: "outline",
longhands: "outline-color;outline-style;outline-width",
},
{
name: "overflow",
longhands: "overflow-x;overflow-y",
},
{
name: "padding",
longhands: "padding-top;padding-right;padding-bottom;padding-left",
},
{
name: "page-break-after",
longhands: "break-after",
},
{
name: "page-break-before",
longhands: "break-before",
},
{
name: "page-break-inside",
longhands: "break-inside",
},
{
name: "scroll-padding",
longhands: "scroll-padding-top;scroll-padding-right;scroll-padding-bottom;scroll-padding-left",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-block",
longhands: "scroll-padding-block-start;scroll-padding-block-end",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-padding-inline",
longhands: "scroll-padding-inline-start;scroll-padding-inline-end",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin",
longhands: "scroll-snap-margin-top;scroll-snap-margin-right;scroll-snap-margin-bottom;scroll-snap-margin-left",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-block",
longhands: "scroll-snap-margin-block-start;scroll-snap-margin-block-end",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "scroll-snap-margin-inline",
longhands: "scroll-snap-margin-inline-start;scroll-snap-margin-inline-end",
runtime_flag: "CSSScrollSnapPoints",
},
{
name: "transition",
longhands: "transition-property;transition-duration;transition-timing-function;transition-delay",
},
{
name: "-webkit-border-after",
longhands: "-webkit-border-after-width;-webkit-border-after-style;-webkit-border-after-color",
},
{
name: "-webkit-border-before",
longhands: "-webkit-border-before-width;-webkit-border-before-style;-webkit-border-before-color",
},
{
name: "-webkit-border-end",
longhands: "-webkit-border-end-width;-webkit-border-end-style;-webkit-border-end-color",
},
{
name: "-webkit-border-start",
longhands: "-webkit-border-start-width;-webkit-border-start-style;-webkit-border-start-color",
},
{
name: "-webkit-column-break-after",
longhands: "break-after",
},
{
name: "-webkit-column-break-before",
longhands: "break-before",
},
{
name: "-webkit-column-break-inside",
longhands: "break-inside",
},
{
name: "column-rule",
longhands: "column-rule-width;column-rule-style;column-rule-color",
},
{
name: "columns",
longhands: "column-width;column-count",
},
{
name: "-webkit-margin-collapse",
longhands: "-webkit-margin-before-collapse;-webkit-margin-after-collapse",
api_class: true,
api_methods: ["parseShorthand"],
},
{
name: "-webkit-mask",
longhands: "-webkit-mask-image;-webkit-mask-position-x;-webkit-mask-position-y;-webkit-mask-size;-webkit-mask-repeat-x;-webkit-mask-repeat-y;-webkit-mask-origin;-webkit-mask-clip",
},
{
name: "-webkit-mask-box-image",
longhands: "-webkit-mask-box-image-source;-webkit-mask-box-image-slice;-webkit-mask-box-image-width;-webkit-mask-box-image-outset;-webkit-mask-box-image-repeat",
},
{
name: "-webkit-mask-position",
longhands: "-webkit-mask-position-x;-webkit-mask-position-y",
},
{
name: "-webkit-mask-repeat",
longhands: "-webkit-mask-repeat-x;-webkit-mask-repeat-y",
},
{
name: "-webkit-text-emphasis",
longhands: "-webkit-text-emphasis-style;-webkit-text-emphasis-color",
},
{
name: "-webkit-text-stroke",
longhands: "-webkit-text-stroke-width;-webkit-text-stroke-color",
},
// Aliases; these map to the same CSSPropertyID
{
name: "-epub-caption-side",
alias_for: "caption-side",
},
{
name: "-epub-text-combine",
alias_for: "-webkit-text-combine",
},
{
name: "-epub-text-emphasis",
alias_for: "-webkit-text-emphasis",
},
{
name: "-epub-text-emphasis-color",
alias_for: "-webkit-text-emphasis-color",
},
{
name: "-epub-text-emphasis-style",
alias_for: "-webkit-text-emphasis-style",
},
{
name: "-epub-text-orientation",
alias_for: "-webkit-text-orientation",
},
{
name: "-epub-text-transform",
alias_for: "text-transform",
},
{
name: "-epub-word-break",
alias_for: "word-break",
},
{
name: "-epub-writing-mode",
alias_for: "-webkit-writing-mode",
},
{
name: "-webkit-align-content",
alias_for: "align-content",
},
{
name: "-webkit-align-items",
alias_for: "align-items",
},
{
name: "-webkit-align-self",
alias_for: "align-self",
},
{
name: "-webkit-animation",
alias_for: "animation",
},
{
name: "-webkit-animation-delay",
alias_for: "animation-delay",
},
{
name: "-webkit-animation-direction",
alias_for: "animation-direction",
},
{
name: "-webkit-animation-duration",
alias_for: "animation-duration",
},
{
name: "-webkit-animation-fill-mode",
alias_for: "animation-fill-mode",
},
{
name: "-webkit-animation-iteration-count",
alias_for: "animation-iteration-count",
},
{
name: "-webkit-animation-name",
alias_for: "animation-name",
},
{
name: "-webkit-animation-play-state",
alias_for: "animation-play-state",
},
{
name: "-webkit-animation-timing-function",
alias_for: "animation-timing-function",
},
{
name: "-webkit-backface-visibility",
alias_for: "backface-visibility",
},
// "-webkit-background-size: 10px" behaves as "background-size: 10px 10px"
{
name: "-webkit-background-size",
alias_for: "background-size",
},
{
name: "-webkit-border-bottom-left-radius",
alias_for: "border-bottom-left-radius",
},
{
name: "-webkit-border-bottom-right-radius",
alias_for: "border-bottom-right-radius",
},
// "-webkit-border-radius: 1px 2px" behaves as "border-radius: 1px / 2px"
{
name: "-webkit-border-radius",
alias_for: "border-radius",
},
{
name: "-webkit-border-top-left-radius",
alias_for: "border-top-left-radius",
},
{
name: "-webkit-border-top-right-radius",
alias_for: "border-top-right-radius",
},
{
name: "-webkit-box-shadow",
alias_for: "box-shadow",
},
{
name: "-webkit-box-sizing",
alias_for: "box-sizing",
},
{
name: "-webkit-clip-path",
alias_for: "clip-path",
},
{
name: "-webkit-column-count",
alias_for: "column-count",
},
{
name: "-webkit-column-gap",
alias_for: "column-gap",
},
{
name: "-webkit-column-rule",
alias_for: "column-rule",
},
{
name: "-webkit-column-rule-color",
alias_for: "column-rule-color",
},
{
name: "-webkit-column-rule-style",
alias_for: "column-rule-style",
},
{
name: "-webkit-column-rule-width",
alias_for: "column-rule-width",
},
{
name: "-webkit-column-span",
alias_for: "column-span",
},
{
name: "-webkit-column-width",
alias_for: "column-width",
},
{
name: "-webkit-columns",
alias_for: "columns",
},
{
name: "-webkit-filter",
alias_for: "filter",
},
{
name: "-webkit-flex",
alias_for: "flex",
},
{
name: "-webkit-flex-basis",
alias_for: "flex-basis",
},
{
name: "-webkit-flex-direction",
alias_for: "flex-direction",
},
{
name: "-webkit-flex-flow",
alias_for: "flex-flow",
},
{
name: "-webkit-flex-grow",
alias_for: "flex-grow",
},
{
name: "-webkit-flex-shrink",
alias_for: "flex-shrink",
},
{
name: "-webkit-flex-wrap",
alias_for: "flex-wrap",
},
{
name: "-webkit-font-feature-settings",
alias_for: "font-feature-settings",
},
{
name: "-webkit-justify-content",
alias_for: "justify-content",
},
{
name: "line-break",
alias_for: "-webkit-line-break",
runtime_flag: "CSSLineBreak",
},
{
name: "-webkit-opacity",
alias_for: "opacity",
},
{
name: "-webkit-order",
alias_for: "order",
},
{
name: "-webkit-perspective",
alias_for: "perspective",
},
{
name: "-webkit-perspective-origin",
alias_for: "perspective-origin",
},
{
name: "-webkit-shape-image-threshold",
alias_for: "shape-image-threshold",
},
{
name: "-webkit-shape-margin",
alias_for: "shape-margin",
},
{
name: "-webkit-shape-outside",
alias_for: "shape-outside",
},
{
name: "-webkit-text-size-adjust",
alias_for: "text-size-adjust",
},
{
name: "-webkit-transform",
alias_for: "transform",
},
{
name: "-webkit-transform-origin",
alias_for: "transform-origin",
},
{
name: "-webkit-transform-style",
alias_for: "transform-style",
},
{
name: "-webkit-transition",
alias_for: "transition",
},
{
name: "-webkit-transition-delay",
alias_for: "transition-delay",
},
{
name: "-webkit-transition-duration",
alias_for: "transition-duration",
},
{
name: "-webkit-transition-property",
alias_for: "transition-property",
},
{
name: "-webkit-transition-timing-function",
alias_for: "transition-timing-function",
},
{
name: "-webkit-user-select",
alias_for: "user-select",
},
],
}