Subject: bug#50354: 28.0.50; Fill in some more css gaps

From: Theodor Thornhill <[email-masked]>
Date: Fri, 03 Sep 2021 12:39:01 +0200

Hi again!

Following up on my last patch, I've added a couple more.  I tried to
follow up on Simens suggestions and use the grammarlike alist.
Furthermore there are some small additions from the newer specs.

Hope this is useful!
Theodor

>From e0f8f1c83d3c41660245df1a05e1393ec417038b Mon Sep 17 00:00:00 2001
From: Theodor Thornhill <[email-masked]>
Date: Fri, 3 Sep 2021 12:07:47 +0200
Subject: [PATCH 1/4] Clean up css-property-alist for alignment

* css-mode.el (css-property-alist, css-value-class-alist): Provide new
position related entries for use in css-property-alist.  Make sure
that property-alist reflect the spec: https://www.w3.org/TR/css-align-3/#property-index
---
 lisp/textmodes/css-mode.el | 54 ++++++++++++++++++--------------------
 1 file changed, 26 insertions(+), 28 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index f406afb7b6..c2086d2fd3 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -302,34 +302,25 @@
     ("grid-template-rows" "none" track-list auto-track-list)
 
     ;; CSS Box Alignment Module Level 3
-    ;; (https://www.w3.org/TR/css-align-3/#alignment-values)
-    ("align-content" "center" "start" "end" "flex-start" "flex-end"
-     "normal" "first" "last" "baseline" "space-between" "space-around"
-     "space-evenly" "stretch" "safe" "unsafe")
-    ("align-items" "normal" "stretch" "center" "start" "end"
-     "flex-start" "flex-end" "baseline" "first" "last" "baseline"
-     "safe" "unsafe")
-    ("align-self" "auto" "normal" "center" "start" "end"
-     "self-start" "self-end" "flex-start" "flex-end"
-     "baseline" "first" "last" "stretch" "safe" "unsafe")
-    ("justify-content" "center" "start" "end" "flex-start" "flex-end"
-     "left" "right" "normal" "space-between" "space-around"
-     "space-evenly"  "stretch" "safe" "unsafe")
-    ("justify-items" "auto" "normal" "stretch" "center" "start" "end"
-     "flex-start" "flex-end" "self-start" "self-end" "left" "right"
-     "baseline" "first" "last" "legacy" "safe" "unsafe")
-    ("justify-self" "auto" "normal" "stretch" "center" "start" "end"
-     "flex-start" "flex-end" "self-start" "self-end" "left" "right"
-     "baseline" "first" "last" "safe" "unsafe")
-    ("place-content" "center" "start" "end" "left" "right" "flex-start"
-     "flex-end" "baseline" "first" "last" "space-evenly" "space-around"
-     "space-between")
-    ("place-items" "auto" "normal" "center" "start" "end"
-     "self-start" "self-end" "flex-start" "flex-end"
-     "left" "right" "baseline" "first" "last" "stretch")
-    ("place-self" "auto" "center" "start" "end" "self-start" "self-end"
-     "flex-start" "flex-end" "normal" "left" "right" "baseline"
-     "first" "last" "stretch")
+    ;; (https://www.w3.org/TR/css-align-3/#property-index)
+    ("align-content"
+     baseline-position content-distibution overflow-position content-position)
+    ("align-items"
+     "normal" "stretch" baseline-position overflow-position self-position)
+    ("align-self"
+     "auto" "normal" "stretch"
+     baseline-position overflow-position self-position)
+    ("justify-content" "normal"
+     content-distibution overflow-position content-position "left" "right")
+    ("justify-items"
+     "normal" "stretch" baseline-position overflow-position self-position
+     "left" "right" "legacy")
+    ("justify-self"
+     "auto" "normal" "stretch" baseline-position overflow-position self-position
+     "left" "right")
+    ("place-content" align-content justify-content)
+    ("place-items" align-items justify-items)
+    ("place-self" justify-self align-self)
 
     ;; CSS Flexible Box Layout Module Level 1
     ;; (https://www.w3.org/TR/css-flexbox-1/#property-index)
@@ -779,6 +770,13 @@ further value candidates, since that list would be infinite.")
     (padding-width length percentage)
     (position
      "left" "center" "right" "top" "bottom" percentage length)
+    (baseline-position "left" "right" "baseline")
+    (content-distribution
+     "space-between" "space-around" "space-evenly" "stretch")
+    (overflow-position "unsafe" "safe")
+    (content-position "center" "start" "end" "flex-start" "flex-end")
+    (self-position
+     "center" "start" "end" "self-start" "self-end" "flex-start" "flex-end")
     (radial-gradient "radial-gradient()")
     (relative-size "larger" "smaller")
     (repeat-style
-- 
2.30.1 (Apple Git-130)

>From beab400910450d3d2a4874f0e453999b6f611a3e Mon Sep 17 00:00:00 2001
From: Theodor Thornhill <[email-masked]>
Date: Fri, 3 Sep 2021 12:14:32 +0200
Subject: [PATCH 2/4] Update to CSS Grid Layout Module Level 2

* css-mode.el (css-property-alist): Update to the newer spec, and add
the subgrid keywords
---
 lisp/textmodes/css-mode.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index c2086d2fd3..8689c94bc5 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -278,8 +278,8 @@
     ;; (https://www.w3.org/TR/css-contain-1/#property-index)
     ("contain" "none" "strict" "content" "size" "layout" "paint")
 
-    ;; CSS Grid Layout Module Level 1
-    ;; (https://www.w3.org/TR/css-grid-1/#property-index)
+    ;; CSS Grid Layout Module Level 2
+    ;; (https://www.w3.org/TR/css-grid-2/#property-index)
     ("grid" grid-template grid-template-rows "auto-flow" "dense"
      grid-auto-columns grid-auto-rows grid-template-columns)
     ("grid-area" grid-line)
@@ -298,8 +298,8 @@
     ("grid-template" "none" grid-template-rows grid-template-columns
      line-names string track-size line-names explicit-track-list)
     ("grid-template-areas" "none" string)
-    ("grid-template-columns" "none" track-list auto-track-list)
-    ("grid-template-rows" "none" track-list auto-track-list)
+    ("grid-template-columns" "none" track-list auto-track-list "subgrid")
+    ("grid-template-rows" "none" track-list auto-track-list "subgrid")
 
     ;; CSS Box Alignment Module Level 3
     ;; (https://www.w3.org/TR/css-align-3/#property-index)
-- 
2.30.1 (Apple Git-130)

>From 7c2daa34a77ecca28a1bb66a9a9b7cb3d58f1e57 Mon Sep 17 00:00:00 2001
From: Theodor Thornhill <[email-masked]>
Date: Fri, 3 Sep 2021 12:19:36 +0200
Subject: [PATCH 3/4] Update to CSS Containment Module Level 2

* css-mode.el (css-property-alist): Update contain, and add
content-visibility.
---
 lisp/textmodes/css-mode.el | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 8689c94bc5..a39a62aa68 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -274,9 +274,10 @@
     ("color" color)
     ("opacity" alphavalue)
 
-    ;; CSS Containment Module Level 1
-    ;; (https://www.w3.org/TR/css-contain-1/#property-index)
-    ("contain" "none" "strict" "content" "size" "layout" "paint")
+    ;; CSS Containment Module Level 2
+    ;; (https://www.w3.org/TR/css-contain-2/#property-index)
+    ("contain" "none" "strict" "content" "size" "layout" "style" "paint")
+    ("content-visibility" "visible" "auto" "hidden")
 
     ;; CSS Grid Layout Module Level 2
     ;; (https://www.w3.org/TR/css-grid-2/#property-index)
-- 
2.30.1 (Apple Git-130)

>From 132b72f76a885e655b35ecaf9f3447d94e4844db Mon Sep 17 00:00:00 2001
From: Theodor Thornhill <[email-masked]>
Date: Fri, 3 Sep 2021 12:21:49 +0200
Subject: [PATCH 4/4] Update to CSS Flexible Box Layout Module Level 2

* css-mode.el (css-property-alist): Update link.
---
 lisp/textmodes/css-mode.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index a39a62aa68..d57f2d5493 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -323,8 +323,8 @@
     ("place-items" align-items justify-items)
     ("place-self" justify-self align-self)
 
-    ;; CSS Flexible Box Layout Module Level 1
-    ;; (https://www.w3.org/TR/css-flexbox-1/#property-index)
+    ;; CSS Flexible Box Layout Module Level 2
+    ;; (https://www.w3.org/TR/css-flexbox-2/#property-index)
     ("flex" "none" flex-grow flex-shrink flex-basis)
     ("flex-basis" "auto" "content" width)
     ("flex-direction" "row" "row-reverse" "column" "column-reverse")
-- 
2.30.1 (Apple Git-130)