فهرست منبع

LibWeb: Add fit-content as a valid size value for CSS width

Andreas Kling 2 سال پیش
والد
کامیت
09eb3ef405

+ 1 - 0
Userland/Libraries/LibWeb/CSS/Identifiers.json

@@ -118,6 +118,7 @@
   "fantasy",
   "fast",
   "fine",
+  "fit-content",
   "fixed",
   "flex",
   "flex-end",

+ 2 - 1
Userland/Libraries/LibWeb/CSS/Properties.json

@@ -1663,7 +1663,8 @@
       "percentage [0,∞]"
     ],
     "valid-identifiers": [
-      "auto"
+      "auto",
+      "fit-content"
     ],
     "quirks": [
       "unitless-length"

+ 6 - 0
Userland/Libraries/LibWeb/CSS/Size.cpp

@@ -64,6 +64,12 @@ Size Size::make_fit_content(Length available_space)
     return Size { Type::FitContent, move(available_space) };
 }
 
+Size Size::make_fit_content()
+{
+    // NOTE: We use "auto" as a stand-in for "stretch" here.
+    return Size { Type::FitContent, Length::make_auto() };
+}
+
 Size Size::make_none()
 {
     return Size { Type::None, Length::make_auto() };

+ 1 - 0
Userland/Libraries/LibWeb/CSS/Size.h

@@ -33,6 +33,7 @@ public:
     static Size make_min_content();
     static Size make_max_content();
     static Size make_fit_content(Length available_space);
+    static Size make_fit_content();
     static Size make_none();
 
     bool is_auto() const { return m_type == Type::Auto; }

+ 2 - 0
Userland/Libraries/LibWeb/CSS/StyleProperties.cpp

@@ -72,6 +72,8 @@ CSS::Size StyleProperties::size_value(CSS::PropertyID id) const
             return CSS::Size::make_min_content();
         case ValueID::MaxContent:
             return CSS::Size::make_max_content();
+        case ValueID::FitContent:
+            return CSS::Size::make_fit_content();
         case ValueID::None:
             return CSS::Size::make_none();
         default: