diff --git a/Libraries/LibHTML/Layout/LayoutBox.cpp b/Libraries/LibHTML/Layout/LayoutBox.cpp index 44ab81fe03..cf3039287f 100644 --- a/Libraries/LibHTML/Layout/LayoutBox.cpp +++ b/Libraries/LibHTML/Layout/LayoutBox.cpp @@ -46,9 +46,22 @@ void LayoutBox::render(RenderingContext& context) auto border_width_value = style().property(CSS::PropertyID::BorderTopWidth); auto border_color_value = style().property(CSS::PropertyID::BorderTopColor); auto border_style_value = style().property(CSS::PropertyID::BorderTopStyle); - if (border_width_value.has_value() && border_color_value.has_value()) { + + if (border_width_value.has_value()) { int border_width = border_width_value.value()->to_length().to_px(); - Color border_color = border_color_value.value()->to_color(document()); + + Color border_color; + if (border_color_value.has_value()) + border_color = border_color_value.value()->to_color(document()); + else { + // FIXME: This is basically CSS "currentColor" which should be handled elsewhere + // in a much more reusable way. + auto color_value = style().property(CSS::PropertyID::Color); + if (color_value.has_value()) + border_color = color_value.value()->to_color(document()); + else + border_color = Color::Black; + } if (border_style_value.has_value() && border_style_value.value()->to_string() == "inset") { // border-style: inset