diff --git a/Userland/Libraries/LibWeb/CSS/Identifiers.json b/Userland/Libraries/LibWeb/CSS/Identifiers.json index 6696b50cbcf..bbeb9aea1e5 100644 --- a/Userland/Libraries/LibWeb/CSS/Identifiers.json +++ b/Userland/Libraries/LibWeb/CSS/Identifiers.json @@ -107,6 +107,7 @@ "lowercase", "lower-alpha", "lower-latin", + "lower-roman", "medium", "move", "ne-resize", @@ -163,6 +164,7 @@ "uppercase", "upper-alpha", "upper-latin", + "upper-roman", "visible", "vertical-text", "wait", diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index be62c097f03..e3c9a56222c 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -645,6 +645,10 @@ Optional StyleProperties::list_style_type() const return CSS::ListStyleType::UpperAlpha; case CSS::ValueID::UpperLatin: return CSS::ListStyleType::UpperLatin; + case CSS::ValueID::UpperRoman: + return CSS::ListStyleType::UpperRoman; + case CSS::ValueID::LowerRoman: + return CSS::ListStyleType::LowerRoman; default: return {}; } diff --git a/Userland/Libraries/LibWeb/CSS/StyleValue.h b/Userland/Libraries/LibWeb/CSS/StyleValue.h index 00e5002459a..51910ff91c8 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleValue.h +++ b/Userland/Libraries/LibWeb/CSS/StyleValue.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2018-2020, Andreas Kling + * Copyright (c) 2021, Tobias Christiansen * * SPDX-License-Identifier: BSD-2-Clause */ @@ -173,8 +174,10 @@ enum class ListStyleType { DecimalLeadingZero, LowerAlpha, LowerLatin, + LowerRoman, UpperAlpha, UpperLatin, + UpperRoman, }; enum class Overflow : u8 { diff --git a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp index 3833755dadd..7c26770c089 100644 --- a/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp +++ b/Userland/Libraries/LibWeb/Layout/ListItemMarkerBox.cpp @@ -36,6 +36,12 @@ ListItemMarkerBox::ListItemMarkerBox(DOM::Document& document, CSS::ListStyleType case CSS::ListStyleType::UpperLatin: m_text = String::bijective_base_from(m_index - 1); break; + case CSS::ListStyleType::LowerRoman: + m_text = String::roman_number_from(m_index).to_lowercase(); + break; + case CSS::ListStyleType::UpperRoman: + m_text = String::roman_number_from(m_index); + break; case CSS::ListStyleType::None: break; @@ -88,8 +94,10 @@ void ListItemMarkerBox::paint(PaintContext& context, PaintPhase phase) case CSS::ListStyleType::DecimalLeadingZero: case CSS::ListStyleType::LowerAlpha: case CSS::ListStyleType::LowerLatin: + case CSS::ListStyleType::LowerRoman: case CSS::ListStyleType::UpperAlpha: case CSS::ListStyleType::UpperLatin: + case CSS::ListStyleType::UpperRoman: if (m_text.is_null()) break; context.painter().draw_text(enclosing, m_text, Gfx::TextAlignment::Center);