diff --git a/Userland/Libraries/LibWeb/CSS/Enums.json b/Userland/Libraries/LibWeb/CSS/Enums.json index 9c306150b9..34cdc7fb46 100644 --- a/Userland/Libraries/LibWeb/CSS/Enums.json +++ b/Userland/Libraries/LibWeb/CSS/Enums.json @@ -142,6 +142,8 @@ "optimizequality=smooth" ], "justify-content": [ + "start", + "end", "flex-start", "flex-end", "center", diff --git a/Userland/Libraries/LibWeb/CSS/Identifiers.json b/Userland/Libraries/LibWeb/CSS/Identifiers.json index 24c25a7f94..a4b4628b62 100644 --- a/Userland/Libraries/LibWeb/CSS/Identifiers.json +++ b/Userland/Libraries/LibWeb/CSS/Identifiers.json @@ -109,6 +109,7 @@ "double", "e-resize", "enabled", + "end", "ew-resize", "fantasy", "fast", @@ -249,6 +250,7 @@ "srgb", "standalone", "standard", + "start", "static", "sticky", "stretch", diff --git a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp index c730e67b69..1d7b6aaa9f 100644 --- a/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp +++ b/Userland/Libraries/LibWeb/Layout/FlexFormattingContext.cpp @@ -1231,6 +1231,7 @@ void FlexFormattingContext::distribute_any_remaining_free_space() bool justification_is_centered = false; switch (flex_container().computed_values().justify_content()) { + case CSS::JustifyContent::Start: case CSS::JustifyContent::FlexStart: if (is_direction_reverse()) { flex_region_render_cursor = FlexRegionRenderCursor::Right; @@ -1239,6 +1240,7 @@ void FlexFormattingContext::distribute_any_remaining_free_space() initial_offset = 0; } break; + case CSS::JustifyContent::End: case CSS::JustifyContent::FlexEnd: if (is_direction_reverse()) { initial_offset = 0; @@ -2002,6 +2004,20 @@ Gfx::FloatPoint FlexFormattingContext::calculate_static_position(Box const& box) bool pack_from_end = true; float main_offset = 0; switch (flex_container().computed_values().justify_content()) { + case CSS::JustifyContent::Start: + if (is_direction_reverse()) { + main_offset = specified_main_size(flex_container()); + } else { + main_offset = 0; + } + break; + case CSS::JustifyContent::End: + if (is_direction_reverse()) { + main_offset = 0; + } else { + main_offset = specified_main_size(flex_container()); + } + break; case CSS::JustifyContent::FlexStart: if (is_direction_reverse()) { pack_from_end = false;