at (12,12) content-size 776x98 [BFC] children: inline
+ line 0 width: 311.21875, height: 17.46875, bottom: 17.46875, baseline: 13.53125
+ frag 0 from TextNode start: 0, length: 35, rect: [12,12 311.21875x17.46875]
+ "Making Commerce Better for Everyone"
+ TextNode <#text>
+ BlockContainer
at (12,112) content-size 776x98 [BFC] children: inline
+ line 0 width: 311.21875, height: 17.46875, bottom: 17.46875, baseline: 13.53125
+ frag 0 from TextNode start: 0, length: 35, rect: [12,112 311.21875x17.46875]
+ "Making Commerce Better for Everyone"
+ TextNode <#text>
+
+ViewportPaintable (Viewport<#document>) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [0,0 800x222]
+ PaintableWithLines (BlockContainer) [9,9 782x204]
+ PaintableBox (Box
.container) [10,10 780x202]
+ PaintableWithLines (BlockContainer
) [11,11 778x100]
+ TextPaintable (TextNode<#text>)
+ PaintableWithLines (BlockContainer
) [11,111 778x100]
+ TextPaintable (TextNode<#text>)
diff --git a/Tests/LibWeb/Layout/input/grid/container-min-height.html b/Tests/LibWeb/Layout/input/grid/container-min-height.html
new file mode 100644
index 0000000000..c35416f6ab
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/grid/container-min-height.html
@@ -0,0 +1,10 @@
+
Making Commerce Better for Everyone
Making Commerce Better for Everyone
\ No newline at end of file
diff --git a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
index 2b23cdb7c9..8f3532eb8a 100644
--- a/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
+++ b/Userland/Libraries/LibWeb/Layout/GridFormattingContext.cpp
@@ -1803,6 +1803,25 @@ void GridFormattingContext::run(Box const& box, LayoutMode, AvailableSpace const
determine_grid_container_height();
+ auto const& containing_block_state = m_state.get(*grid_container().containing_block());
+ auto height_of_containing_block = containing_block_state.content_height();
+ auto min_height = grid_container().computed_values().min_height().to_px(grid_container(), height_of_containing_block);
+
+ // If automatic grid container height is less than min-height, we need to re-run the track sizing algorithm
+ if (m_automatic_content_height < min_height) {
+ resolve_items_box_metrics(GridDimension::Row);
+
+ AvailableSize width(available_space.width);
+ AvailableSize height(AvailableSize::make_definite(min_height));
+ run_track_sizing(AvailableSpace(width, height), GridDimension::Row);
+
+ resolve_items_box_metrics(GridDimension::Row);
+
+ resolve_grid_item_heights();
+
+ determine_grid_container_height();
+ }
+
if (available_space.height.is_intrinsic_sizing_constraint() || available_space.width.is_intrinsic_sizing_constraint()) {
determine_intrinsic_size_of_grid_container(available_space);
return;