diff --git a/Libraries/LibHTML/CSS/StyleResolver.cpp b/Libraries/LibHTML/CSS/StyleResolver.cpp
index b26324e903..81b5ab15a6 100644
--- a/Libraries/LibHTML/CSS/StyleResolver.cpp
+++ b/Libraries/LibHTML/CSS/StyleResolver.cpp
@@ -164,6 +164,52 @@ static void set_property_expanding_shorthands(StyleProperties& style, CSS::Prope
return;
}
+ if (property_id == CSS::PropertyID::Padding) {
+ if (value.is_length()) {
+ style.set_property(CSS::PropertyID::PaddingTop, value);
+ style.set_property(CSS::PropertyID::PaddingRight, value);
+ style.set_property(CSS::PropertyID::PaddingBottom, value);
+ style.set_property(CSS::PropertyID::PaddingLeft, value);
+ return;
+ }
+ if (value.is_string()) {
+ auto parts = split_on_whitespace(value.to_string());
+ if (parts.size() == 2) {
+ auto vertical = parse_css_value(parts[0]);
+ auto horizontal = parse_css_value(parts[1]);
+ style.set_property(CSS::PropertyID::PaddingTop, vertical);
+ style.set_property(CSS::PropertyID::PaddingBottom, vertical);
+ style.set_property(CSS::PropertyID::PaddingLeft, horizontal);
+ style.set_property(CSS::PropertyID::PaddingRight, horizontal);
+ return;
+ }
+ if (parts.size() == 3) {
+ auto top = parse_css_value(parts[0]);
+ auto horizontal = parse_css_value(parts[1]);
+ auto bottom = parse_css_value(parts[2]);
+ style.set_property(CSS::PropertyID::PaddingTop, top);
+ style.set_property(CSS::PropertyID::PaddingBottom, bottom);
+ style.set_property(CSS::PropertyID::PaddingLeft, horizontal);
+ style.set_property(CSS::PropertyID::PaddingRight, horizontal);
+ return;
+ }
+ if (parts.size() == 4) {
+ auto top = parse_css_value(parts[0]);
+ auto right = parse_css_value(parts[1]);
+ auto bottom = parse_css_value(parts[2]);
+ auto left = parse_css_value(parts[3]);
+ style.set_property(CSS::PropertyID::PaddingTop, top);
+ style.set_property(CSS::PropertyID::PaddingBottom, bottom);
+ style.set_property(CSS::PropertyID::PaddingLeft, left);
+ style.set_property(CSS::PropertyID::PaddingRight, right);
+ return;
+ }
+ dbg() << "Unsure what to do with CSS padding value '" << value.to_string() << "'";
+ return;
+ }
+ return;
+ }
+
style.set_property(property_id, value);
}