diff --git a/Tests/LibWeb/Layout/expected/grid/grid-template-columns-with-min-css-function.txt b/Tests/LibWeb/Layout/expected/grid/grid-template-columns-with-min-css-function.txt
new file mode 100644
index 0000000000..e5d4d3d6fb
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/grid/grid-template-columns-with-min-css-function.txt
@@ -0,0 +1,8 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (1,1) content-size 798x54.9375 [BFC] children: not-inline
+ Box
at (10,10) content-size 780x36.9375 [GFC] children: not-inline
+ BlockContainer at (55.5,11) content-size 689x34.9375 [BFC] children: inline
+ line 0 width: 200.40625, height: 34.9375, bottom: 34.9375, baseline: 27.0625
+ frag 0 from TextNode start: 0, length: 13, rect: [55.5,11 200.40625x34.9375]
+ "hello friends"
+ TextNode <#text>
diff --git a/Tests/LibWeb/Layout/input/grid/grid-template-columns-with-min-css-function.html b/Tests/LibWeb/Layout/input/grid/grid-template-columns-with-min-css-function.html
new file mode 100644
index 0000000000..c390478f5b
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/grid/grid-template-columns-with-min-css-function.html
@@ -0,0 +1,11 @@
+hello friends
\ No newline at end of file
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
index e169f13396..eb783c9e7f 100644
--- a/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
+++ b/Userland/Libraries/LibWeb/CSS/Parser/Parser.cpp
@@ -6900,11 +6900,8 @@ Optional Parser::parse_track_sizing_function(ComponentVa
return CSS::ExplicitGridTrack(maybe_min_max_value.value());
else
return {};
- } else if (function_token.name().equals_ignoring_ascii_case("calc"sv)) {
- auto grid_size = parse_grid_size(token);
- if (!grid_size.has_value())
- return {};
- return CSS::ExplicitGridTrack(grid_size.value());
+ } else if (auto maybe_dynamic = parse_dynamic_value(token); !maybe_dynamic.is_error() && maybe_dynamic.value()) {
+ return CSS::ExplicitGridTrack(GridSize(LengthPercentage(maybe_dynamic.release_value()->as_calculated())));
}
return {};
} else if (token.is(Token::Type::Ident) && token.token().ident().equals_ignoring_ascii_case("auto"sv)) {