Re: [csswg-drafts] [css-grid] Unclear how to limit track growth by fit-content() argument (#4549)

@Loirooriol Proposed edits:

```diff
diff --git a/css-grid-1/Overview.bs b/css-grid-1/Overview.bs
index 4c8543864..bd499e5a8 100644
--- a/css-grid-1/Overview.bs
+++ b/css-grid-1/Overview.bs
@@ -4278,8 +4278,6 @@ Resolve Intrinsic Track Sizes</h3>
      to the [=growth limits=] of tracks with
      a <a>max track sizing function</a> of ''max-content'',
      to accommodate these items' <a>max-content contributions</a>.
-     However, limit the growth of any ''fit-content()'' tracks
-     by their ''fit-content()'' argument.
    </ol>
 
    Repeat incrementally for items with greater spans until all items have been considered.
@@ -4370,10 +4368,15 @@ Distributing Extra Space Across Spanned Tracks</h4>
       (and continuing to grow the unfrozen tracks as needed).
 
       For [=base sizes=],
-      the |limit| is its [=growth limit=].
+      the |limit| is its [=growth limit=],
+        capped by its ''fit-content()'' argument if any.
       For [=growth limits=],
-      the |limit| is infinity if it is marked as [=infinitely growable=],
-      and equal to the [=growth limit=] otherwise.
+      the |limit| is the [=growth limit=]
+        if the [=growth limit=] is finite
+        and the track is not [=infinitely growable=],
+      otherwise its ''fit-content()'' argument
+        if it has a ''fit-content()'' [=track sizing function=],
+      and infinity otherwise.
 
       Note: If the |affected size| was a <a>growth limit</a>
       and the track is not marked [=infinitely growable=],
@@ -4400,14 +4403,16 @@ Distributing Extra Space Across Spanned Tracks</h4>
        <li>
         when accommodating any contribution
         into [=growth limits=]:
-        all |affected track|s.
+        any |affected track| that has an intrinsic [=max track sizing function=].
       </ul>
 
       For this purpose,
       the [=max track sizing function=] of a ''fit-content()'' track
       is treated as ''max-content''
-      until it reaches the limit specified as the ''fit-content()'' argument,
-      after which it is treated as having a <a>fixed sizing function</a> of that argument.
+      until the track reaches the limit specified as the ''fit-content()'' argument,
+      after which its [=max track sizing function=] is treated as being
+      a <a>fixed sizing function</a> of that argument
+      (which can change which tracks continue to receive space in this step).
 
       Note: This step prioritizes the distribution of space
       for accommodating |size contribution|s
diff --git a/css-text-decor-4/Overview.bs b/css-text-decor-4/Overview.bs
index 25dc6fd16..f33e9d0a3 100644
--- a/css-text-decor-4/Overview.bs
+++ b/css-text-decor-4/Overview.bs
@@ -12,7 +12,6 @@ Issue Tracking: Tracker http://www.w3.org/Style/CSS/Tracker/products/10
 Editor: Elika J. Etemad / fantasai, Invited Expert, http://fantasai.inkedblade.net/contact, w3cid 35400
 Editor: Koji Ishii, Google, kojiishi@gmail.com, w3cid 45369
 Abstract: This module contains the features of CSS relating to text decoration, such as underlines, text shadows, and emphasis marks.
-Link Defaults: css-color-3 (property) color, css-break-3 (dfn) fragment
 </pre>
 
 <pre class="link-defaults">
@@ -83,7 +82,7 @@ Line Decoration: Underline, Overline, and Strike-Through</h2>
  The following properties describe line decorations that are added to the content of an element.
  When specified on or propagated to an <a>inline box</a>,
  that <a>box</a> becomes a <dfn>decorating box</dfn> for that decoration,
- applying the decoration to all its <a>fragments</a>.
+ applying the decoration to all its <a>box fragments</a>.
  The decoration is then further propagated to any <a>in-flow</a> <a>block-level</a> boxes that split the inline
  (see <a href="https://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level">CSS2.1 section 9.2.1.1</a>).
  When specified on or propagated to a <a>block container</a> that establishes an <a>inline formatting context</a>,
@@ -1913,7 +1912,7 @@ Text Shadows: the 'text-shadow' property</h2>
 
  <pre class="propdef">
  Name: text-shadow
- Value: none | [ <<color>>? && <<length>>{2,4} ]#
+ Value: none | <<shadow>>#
  Initial: none
  Applies to: text
  Inherited: yes
@@ -1926,41 +1925,55 @@ Text Shadows: the 'text-shadow' property</h2>
  This property accepts a comma-separated list of shadow effects
  to be applied to the text of the element.
  Values are interpreted as for 'box-shadow' [[!CSS-BACKGROUNDS-3]].
- (But note that the ''box-shadow/inset'' keyword are not allowed.)
  Each layer shadows the element's text and all its text decorations
  (composited together).
- If the color of the shadow is not specified,
- it defaults to ''currentColor'',
- i.e. the shadow’s color is taken from the element’s 'color' property.
+
+ Unlike 'box-shadow',
+ the <a spec=css-backgrounds-3>spread distance</a>
+ is strictly interpreted as outset distance
+ from any point of the glyph outline,
+ and therefore, similar to the blur radius,
+ creates rounded, rather than sharp, corners.
+ Negative spread values are invalid.
 
  The shadow effects are applied front-to-back:
  the first shadow is on top.
- The shadows may thus overlay each other,
- but they never overlay the text itself.
- The shadow must be painted at a stack level
- between the element's border and/or background (if present)
+ The shadows may thus overlay each other.
+
+ <dfn>Outer text shadows</dfn>
+ (specified without the ''box-shadow/inset'' keyword)
+ shadow the text--
+ including any text stroke [[!FILL-STROKE-3]]--
+ as if it were cut and raised above the surrounding canvas.
+ Unlike 'box-shadow', outer text shadows are not clipped to the shadowed shape
+ and may show through if the text is partially-transparent.
+
+ <dfn>Inner text shadows</dfn>
+ (specified with the ''box-shadow/inset'' keyword)
+ shadow the canvas--
+ and any text stroke [[!FILL-STROKE-3]]--
+ as if the text were cut and dropped below the surrounding canvas.
+ They are therefore only drawn within the inner bounds of the stroke.
+
+ Outer shadows must be painted at a stack level
+ between the element's border/background (if present)
  and the elements text and text decoration.
- UAs should avoid painting text shadows over text
+ UAs should avoid painting such text shadows over text
  in adjacent elements belonging to the same stack level and stacking context.
  (This may mean that the exact stack level of the shadows depends
  on whether the element has a border or background:
  the exact stacking behavior of text shadows is thus UA-defined.)
- It is undefined whether a given shadow layer shadows
+ It is undefined whether a given outer shadow layer shadows
  each glyph or decoration independently
  or if the text and/or decorations are flattened and then shadowed.
 
- Unlike 'box-shadow', text shadows are not clipped to the shadowed shape
- and may show through if the text is partially-transparent.
+ Inner shadows must be painted at a stack level
+ immediately above the text.
+
  Like 'box-shadow', text shadows do not influence layout,
  and do not trigger scrolling
  or increase the size of the <a>scrollable overflow region</a>.
 
- Also unlike 'box-shadow',
- the [=spread distance=] is strictly interpreted as outset distance
- from any point of the glyph outline,
- and therefore, similar to the blur radius,
- creates rounded, rather than sharp, corners.
-
  Note: The painting order of shadows defined here is the opposite
  of that defined in the 1998
  <a href="https://www.w3.org/TR/1998/REC-CSS2-19980512">CSS2 Recommendation</a>.
@@ -1969,12 +1982,6 @@ Text Shadows: the 'text-shadow' property</h2>
  <code>::first-line</code> and <code>::first-letter</code>
  pseudo-elements.
 
- Level 4 adds a spread radius argument to 'text-shadow',
- using the same syntax and interpretation as for 'box-shadow',
- except that corners are always rounded
- (since the geometry of a glyph is not so simple as a box).
-
-
 <h2 id="painting">
 Painting Text Decorations</h2>
 
@@ -2090,26 +2097,11 @@ Appendix B: Default UA Stylesheet</h2>
 <h2 class="no-num" id="changes">Appendix C:
 Changes</h2>
 
-<h3 class="no-num" id="changes-2018">
-Changes since the 13 March 2018 Working Draft</h3>
+<h3 class="no-num" id="changes-2020">
+Changes since the 5 May 2020 Working Draft</h3>
 
 <ul>
- <li>Merged in entire contents of <a href="https://www.w3.org/TR/css-text-decor-3/">CSS Text Decoration Level 3</a>,
- so that this is no longer a diff spec.
- <li>Split 'text-decoration-skip' into longhands.
-  (<a href="https://github.com/w3c/csswg-drafts/issues/843">Issue 843</a>)
- <li>Added ''text-decoration-skip-ink/all'' value to 'text-decoration-skip-ink'.
- <li>Renamed <css>text-decoration-width</css> to 'text-decoration-thickness'.
- <li>Added <<percentage>> values to 'text-decoration-thickness' and 'text-underline-offset'.
-  (<a href="https://github.com/w3c/csswg-drafts/issues/2165">Issue 2165</a>)
- <li>Defined 'text-underline-offset' position values as outsets rather than insets,
-  because this was more intuitive to users.
- <li>Moved ''text-underline-position/from-font'' keyword from 'text-underline-offset' to 'text-underline-position'.
-  (<a href="https://github.com/w3c/csswg-drafts/issues/3118#issuecomment-432297480">Issue 3118</a>)
- <li>Adjust ''text-emphasis-skip: punctuation'' to include all of Po category, with some exceptions.
-  (<a href="https://github.com/w3c/csswg-drafts/issues/839">Issue 839</a>)
- <li>Clarified that line-throughs are always continuous.
- <li>Miscellaneous clarifications and editorial tweaks.
+ <li>
 </ul>
 
 <h3 class="no-num" id="additions-l3">
@@ -2123,7 +2115,7 @@ The following features have been added since <a href="https://www.w3.org/TR/css-
  <li>Added ''text-underline-position/from-font'' value to 'text-underline-position'.
  <li>Drafted 'text-decoration-skip' property and its longhands.
  <li>Drafted 'text-emphasis-skip' property.
- <li>Added [=spread distance=] value to 'text-shadow'.
+ <li>Added <a spec=css-backgrounds-3>spread distance</a> and ''box-shadow/inset'' to 'text-shadow'.
 </ul>
```

These changes aim to:
* clarify how the fit-content() limit caps the growth limit (at no point is it ever larger than a minmax(auto, [limit]) track)
* apply the fit-content() limit as a cap when distributing space to base sizes, so that we don't blow past the fit-content() limit if other spanned tracks have infinite growth limits (but don't give it more space than a minmax(auto, max-content) track would get otherwise)

The overall principle is to match the smaller of `minmax(auto, max-content)` and `minmax(auto, <var>limit</var>)`, similar to how `width: fit-content(<var>limit</var>)` is defined as `max(min-content, min(max-content, <var>limit</var>))`.

If this looks good to you, we'll raise it to the WG for review!

-- 
GitHub Notification of comment by fantasai
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4549#issuecomment-1067389586 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Monday, 14 March 2022 23:10:28 UTC