diff --git a/Tests/LibWeb/Layout/expected/css-values/calc-min-with-percentage.txt b/Tests/LibWeb/Layout/expected/css-values/calc-min-with-percentage.txt
new file mode 100644
index 0000000000..096c0870d5
--- /dev/null
+++ b/Tests/LibWeb/Layout/expected/css-values/calc-min-with-percentage.txt
@@ -0,0 +1,9 @@
+Viewport <#document> at (0,0) content-size 800x600 children: not-inline
+ BlockContainer at (0,0) content-size 800x116 [BFC] children: not-inline
+ BlockContainer
at (8,8) content-size 500x100 children: not-inline
+ BlockContainer at (8,8) content-size 100x100 children: not-inline
+
+ViewportPaintable (Viewport<#document>) [0,0 800x600]
+ PaintableWithLines (BlockContainer) [0,0 800x116]
+ PaintableWithLines (BlockContainer) [8,8 500x100]
+ PaintableWithLines (BlockContainer
) [8,8 100x100]
diff --git a/Tests/LibWeb/Layout/input/css-values/calc-min-with-percentage.html b/Tests/LibWeb/Layout/input/css-values/calc-min-with-percentage.html
new file mode 100644
index 0000000000..84e8a288e2
--- /dev/null
+++ b/Tests/LibWeb/Layout/input/css-values/calc-min-with-percentage.html
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp b/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp
index e0b250afd9..f77baaf931 100644
--- a/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp
+++ b/Userland/Libraries/LibWeb/CSS/StyleValues/CalculatedStyleValue.cpp
@@ -217,8 +217,18 @@ bool NumericCalculationNode::contains_percentage() const
return m_value.has
();
}
-CalculatedStyleValue::CalculationResult NumericCalculationNode::resolve(Optional, CalculatedStyleValue::PercentageBasis const&) const
+CalculatedStyleValue::CalculationResult NumericCalculationNode::resolve(Optional, CalculatedStyleValue::PercentageBasis const& percentage_basis) const
{
+ if (m_value.has()) {
+ return percentage_basis.visit(
+ [&](Empty const&) -> CalculatedStyleValue::CalculationResult {
+ VERIFY_NOT_REACHED();
+ },
+ [&](auto const& value) {
+ return CalculatedStyleValue::CalculationResult(value.percentage_of(m_value.get()));
+ });
+ }
+
return m_value;
}