LibWeb/CSS: Parse border-block-* properties

This doesn't currently honor `writing-mode`, `direction` and
`text-orientation`.
This commit is contained in:
Tim Ledbetter 2025-03-10 23:16:50 +00:00 committed by Sam Atkins
commit e011ddd368
Notes: github-actions[bot] 2025-03-14 16:10:08 +00:00
18 changed files with 511 additions and 144 deletions

View file

@ -466,6 +466,78 @@
"border-color"
]
},
"border-block-end": {
"inherited": false,
"initial": "medium currentcolor none",
"longhands": [
"border-block-end-width",
"border-block-end-style",
"border-block-end-color"
]
},
"border-block-end-color": {
"logical-alias-for": [
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color"
],
"max-values": 1
},
"border-block-end-style": {
"logical-alias-for": [
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style"
],
"max-values": 1
},
"border-block-end-width": {
"logical-alias-for": [
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width"
],
"max-values": 1
},
"border-block-start": {
"inherited": false,
"initial": "medium currentcolor none",
"longhands": [
"border-block-start-width",
"border-block-start-style",
"border-block-start-color"
]
},
"border-block-start-color": {
"logical-alias-for": [
"border-top-color",
"border-right-color",
"border-bottom-color",
"border-left-color"
],
"max-values": 1
},
"border-block-start-style": {
"logical-alias-for": [
"border-top-style",
"border-right-style",
"border-bottom-style",
"border-left-style"
],
"max-values": 1
},
"border-block-start-width": {
"logical-alias-for": [
"border-top-width",
"border-right-width",
"border-bottom-width",
"border-left-width"
],
"max-values": 1
},
"border-bottom": {
"inherited": false,
"initial": "medium currentcolor none",

View file

@ -194,8 +194,8 @@ RefPtr<CSSStyleValue const> ResolvedCSSStyleDeclaration::style_value_for_propert
// The resolved value for a given longhand property can be determined as follows:
switch (property_id) {
// -> background-color
// FIXME: -> border-block-end-color
// FIXME: -> border-block-start-color
// -> border-block-end-color
// -> border-block-start-color
// -> border-bottom-color
// -> border-inline-end-color
// -> border-inline-start-color
@ -210,6 +210,12 @@ RefPtr<CSSStyleValue const> ResolvedCSSStyleDeclaration::style_value_for_propert
// The resolved value is the used value.
case PropertyID::BackgroundColor:
return CSSColorValue::create_from_color(layout_node.computed_values().background_color(), ColorSyntax::Modern);
case PropertyID::BorderBlockEndColor:
// FIXME: Honor writing-mode, direction and text-orientation.
return style_value_for_property(layout_node, PropertyID::BorderBottomColor);
case PropertyID::BorderBlockStartColor:
// FIXME: Honor writing-mode, direction and text-orientation.
return style_value_for_property(layout_node, PropertyID::BorderTopColor);
case PropertyID::BorderBottomColor:
return CSSColorValue::create_from_color(layout_node.computed_values().border_bottom().color, ColorSyntax::Modern);
case PropertyID::BorderInlineEndColor:

View file

@ -600,6 +600,18 @@ void StyleComputer::for_each_property_expanding_shorthands(PropertyID property_i
switch (property_id) {
case PropertyID::BlockSize:
return PropertyID::Height;
case PropertyID::BorderBlockEndColor:
return PropertyID::BorderBottomColor;
case PropertyID::BorderBlockEndStyle:
return PropertyID::BorderBottomStyle;
case PropertyID::BorderBlockEndWidth:
return PropertyID::BorderBottomWidth;
case PropertyID::BorderBlockStartColor:
return PropertyID::BorderTopColor;
case PropertyID::BorderBlockStartStyle:
return PropertyID::BorderTopStyle;
case PropertyID::BorderBlockStartWidth:
return PropertyID::BorderTopWidth;
case PropertyID::BorderInlineStartColor:
return PropertyID::BorderLeftColor;
case PropertyID::BorderInlineStartStyle: