LibWeb: Add border-*-radius logical properties

This commit is contained in:
Tim Ledbetter 2025-06-30 20:33:17 +01:00 committed by Andreas Kling
commit 5b522c096e
Notes: github-actions[bot] 2025-07-01 09:17:45 +00:00
9 changed files with 215 additions and 9 deletions

View file

@ -687,6 +687,24 @@
"hashless-hex-color"
]
},
"border-end-end-radius": {
"logical-alias-for": [
"border-top-left-radius",
"border-bottom-left-radius",
"border-top-right-radius",
"border-bottom-right-radius"
],
"max-values": 1
},
"border-end-start-radius": {
"logical-alias-for": [
"border-top-left-radius",
"border-bottom-left-radius",
"border-top-right-radius",
"border-bottom-right-radius"
],
"max-values": 1
},
"border-inline-color": {
"inherited": false,
"initial": "currentcolor",
@ -901,6 +919,24 @@
"unitless-length"
]
},
"border-start-end-radius": {
"logical-alias-for": [
"border-top-left-radius",
"border-bottom-left-radius",
"border-top-right-radius",
"border-bottom-right-radius"
],
"max-values": 1
},
"border-start-start-radius": {
"logical-alias-for": [
"border-top-left-radius",
"border-bottom-left-radius",
"border-top-right-radius",
"border-bottom-right-radius"
],
"max-values": 1
},
"border-style": {
"initial": "none",
"longhands": [

View file

@ -935,6 +935,50 @@ PropertyID StyleComputer::map_logical_alias_to_physical_property_id(PropertyID p
if (first_is_one_of(mapping_context.writing_mode, WritingMode::VerticalRl, WritingMode::SidewaysRl))
return PropertyID::BorderRightWidth;
return PropertyID::BorderLeftWidth;
case PropertyID::BorderEndEndRadius:
if (mapping_context.writing_mode == WritingMode::HorizontalTb) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomRightRadius;
return PropertyID::BorderBottomLeftRadius;
}
if (first_is_one_of(mapping_context.writing_mode, WritingMode::VerticalRl, WritingMode::SidewaysRl)) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomLeftRadius;
return PropertyID::BorderTopLeftRadius;
}
if (mapping_context.writing_mode == WritingMode::VerticalLr) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomRightRadius;
return PropertyID::BorderTopRightRadius;
}
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopRightRadius;
return PropertyID::BorderBottomRightRadius;
case PropertyID::BorderEndStartRadius:
if (mapping_context.writing_mode == WritingMode::HorizontalTb) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomLeftRadius;
return PropertyID::BorderBottomRightRadius;
}
if (first_is_one_of(mapping_context.writing_mode, WritingMode::VerticalRl, WritingMode::SidewaysRl)) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopLeftRadius;
return PropertyID::BorderBottomLeftRadius;
}
if (mapping_context.writing_mode == WritingMode::VerticalLr) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopRightRadius;
return PropertyID::BorderBottomRightRadius;
}
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomRightRadius;
return PropertyID::BorderTopRightRadius;
case PropertyID::BorderInlineStartColor:
if (mapping_context.writing_mode == WritingMode::HorizontalTb) {
if (used_direction == Direction::Ltr)
@ -1032,7 +1076,49 @@ PropertyID StyleComputer::map_logical_alias_to_physical_property_id(PropertyID p
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopWidth;
return PropertyID::BorderBottomWidth;
case PropertyID::BorderStartEndRadius:
if (mapping_context.writing_mode == WritingMode::HorizontalTb) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopRightRadius;
return PropertyID::BorderTopLeftRadius;
}
if (first_is_one_of(mapping_context.writing_mode, WritingMode::VerticalRl, WritingMode::SidewaysRl)) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomRightRadius;
return PropertyID::BorderTopRightRadius;
}
if (mapping_context.writing_mode == WritingMode::VerticalLr) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomLeftRadius;
return PropertyID::BorderTopLeftRadius;
}
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopLeftRadius;
return PropertyID::BorderBottomLeftRadius;
case PropertyID::BorderStartStartRadius:
if (mapping_context.writing_mode == WritingMode::HorizontalTb) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopLeftRadius;
return PropertyID::BorderTopRightRadius;
}
if (first_is_one_of(mapping_context.writing_mode, WritingMode::VerticalRl, WritingMode::SidewaysRl)) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopRightRadius;
return PropertyID::BorderBottomRightRadius;
}
if (mapping_context.writing_mode == WritingMode::VerticalLr) {
if (used_direction == Direction::Ltr)
return PropertyID::BorderTopLeftRadius;
return PropertyID::BorderBottomLeftRadius;
}
if (used_direction == Direction::Ltr)
return PropertyID::BorderBottomLeftRadius;
return PropertyID::BorderTopLeftRadius;
case PropertyID::MarginBlockStart:
if (mapping_context.writing_mode == WritingMode::HorizontalTb)
return PropertyID::MarginTop;