[CSSWG] Minutes Telecon 2024-02-28 [css-cascade][css-nesting][css-values][css-borders][css-contain][css-view-transitions]

=========================================
  These are the official CSSWG minutes.
  Unless you're correcting the minutes,
 Please respond by starting a new thread
   with an appropriate subject line.
=========================================


Update to Contributing.md
-------------------------

  - There is a proposed update to the contribution guide which
      clarifies when to land a PR (PR:
https://github.com/w3c/csswg-drafts/pull/9928 ).
      Group members are encouraged to review and make changes/give
      feedback.

CSS Cascade & Nesting
---------------------

  - Though the group is still waiting on use counters for issue #8738
      (Figure out whether we're fine with "shifting up" bare
      declarations after rules), they agreed to start work on a design
      for if the use counters come back saying a change is possible.

CSS Values
----------

  - RESOLVED: Allow the modulus parameter to be optional in the case of
              rounding numbers and default to 1 (Issue #9668: Let B
              default to 1 in `round(<strategy>?, A, B)`)
  - RESOLVED: -0% serializes to a normalized form (Issue #9750:
              Clarifying serialization of negative zero and expression
              simplification)

CSS Borders
-----------

  - RESOLVED: Not going to use the pixel unit for the pixel value in
              border-image-slice (Issue #6739: Accept "px" for pixel
              values in `border-image-slice`)

CSS Contain
-----------

  - RESOLVED: Close the issue in favor of consistency and reopen #5984
              (Issue #7947: Should not cq units be interpreted in the
              flatDom context?)

View Transitions
----------------

  - RESOLVED: Change CSSViewTransitionRule .type to .typeList (Issue
              #9905: `CSSViewTransitionRule.type` overrides deprecated
              `CSSRule.type`)

===== FULL MEETING MINUTES ======

Agenda: https://lists.w3.org/Archives/Public/www-style/2024Feb/0010.html

Present:
  Rachel Andrew
  Tab Atkins-Bittner
  Kevin Babbitt
  David Baron
  Oriol Brufau
  Keith Cirkel
  Stephen Chenney
  Emilio Cobos Álvarez
  Yehonatan Daniv
  Matthieu Dubet
  Robert Flack
  Paul Grenier
  Daniel Holbert
  Brian Kardell
  Brad Kemper
  Jonathan Kew
  Roman Komarov
  Chris Lilley
  Alison Maher
  Miriam Suzanne
  Alan Stearns
  Bramus Van Damme
  Lea Verou
  Sebastian Zartner

Chair: astearns

Scribe: Frances

Update to Contributing.md
=========================
  github PR: https://github.com/w3c/csswg-drafts/pull/9928

  astearns: First item on agenda is writing down a convention to not
            land prs until there is a minuted resolution with normative
            changes
  astearns: If anyone would like to make changes, feel free to improve
            it.
  Bramus: Request for the filed pr should originate from it's own fork.
  <florian> +1 to bramus' complementary PR

CSS Cascade & Nesting
=====================

Figure out whether we're fine with "shifting up" bare declarations
    after rules
------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8738

  TabAtkins: The use counters for checking have not gone into Chrome
             yet.
  TabAtkins: Suggest to wait a little longer for use counters
  lea: Use counters trade off in waiting, we might not be able to make
       the change. CSS nesting is established, how could people use it,
       have anecdotal data. To continue having shifting data, would
       like to fix it.
  TabAtkins: Need to see if it is possible to fix it, will not change
             unless we can see that it is compatible, in favor.
  lea: Don't need to wait for the use counters to decide whether it's
       worth doing, only to determine whether it *can* be done.

  astearns: Consensus that it is the right thing if possible.
  astearns: Would it be possible to make the change, what else do we
            have to do to see if it will work correctly. Is there a
            separate issue for SSN?
  TabAtkins: A naked ampersand style rule could be possible.
  <TabAtkins> The proposal in the issue is to reintroduce @nest without
              any arguments, which just represents the same elements as
              the parent. This also avoids problems that would come
              from a naked `& {...}` rule. Details are in the issue.
  matthieud: Would like if we could find the solution in parallel.

  lea: The author intent is clear, would not like to have another
       nesting syntax, bad from ui perspective.
  <TabAtkins> (We already do this "hack" in MQs/etc, fwiw.)
  TabAtkins: CSSOM would reflect declarations after the first rule
             showed up as @nest rules. Otherwise they would get grouped
             up and lose their ordering.
  astearns: It could be useful to continue to work and separate CSSOM
            into a separate issue.
  <lea> +1 The design component of this does not need use counters and
        I'm not sure we have consensus on the design we want
  TabAtkins: We could create a separate CSSOM issue.
  astearns: We can work through it as soon as we get compat data back.
  <oriol> Tab's proposal was on another issue,
https://github.com/w3c/csswg-drafts/issues/9492#issuecomment-1779739434
  astearns: Moving onto the next issue, we are limited by compat
            concerns.

CSS Values
==========

Let B default to 1 in `round(<strategy>?, A, B)`
------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/9668

  TabAtkins: Round function takes a rounding strategy, we require the
             modulus to be rounded. We could omit the modulus.
  Emilio: It feels weird to make lengths invalid and not make it
          optional, such as rounding a pixel value. Default for the
          length would be nice.
  TabAtkins: Rounding to one pixel as a default is not obvious, people
             might not care about subpixels, but rather the unit they
             are using.
  <bramus> +1 on what tab just said.

  lea: Should not have to specify 1, whereas dimensions such as length,
       would make more sense on what you are rounding by, pixels might
       not be used too much today. Would like default for lengths,
       possibly not pixels.
  Emilio: In length there is a single unit that other lengths end up
          computing to.
  lea: Sensible defaults are great when centered around user needs or
       could be confusing.

  astearns: It is reasonable to have numbers default to 1, but not
            reasonable for numbers to default to invalid for another
            type.
  lea: Which invalid results?
  astearns: Once taking the pattern of omitting the argument and
            applying it, it could create invalid creations.
  lea: When rounding numbers will be clear, when rounding lengths will
       not be clear.
  astearns: There could be a reasonable default, omit the parameter in
            some implications but not others.

  Florian: Figuring out more syntax is necessary, you need to express
           something. Figuring out which syntax is implied. For
           rounding things, separate digits after the comma. Does 10
           mean 10 digits after the period or before the period? For
           lengths, have to think about this stuff in what you mean.
  <oriol> +1 to Florian
  <lea> +1 to florian, that's exactly what I was saying too (but always
        good to have multiple framings)

  Bramus: If the default only cares for one of the cases, then it's not
          a good default?
  astearns: It could make it difficult for an author to reason whether
            to use the parameter or not.
  lea: If it's the concern, round could possibly not have a default. It
       takes a parameter to round by.
  astearns: We can likely resolve on making the change.

  PROPOSAL: Allow the modulus parameter to be optional in the case of
      rounding numbers and default to 1
  astearns: Objections? No objections.

  RESOLVED: Allow the modulus parameter to be optional in the case of
            rounding numbers and default to 1

Clarifying serialization of negative zero and expression
    simplification
--------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/9750

  TabAtkins: Track positive 0 and negative 0 separately, could result
             in different infinities in separate cases. We mostly
             separate this away. Could become an unsigned 0.
  TabAtkins: One case where it isn't true if the 0 is a percentage so
             could be positive or negative in +0% and -0%. How
             important is this? We could just stick with the spec to
             imply need to verify if clear, and care about percentages
             and simplify.
  <TabAtkins> max(0%, -0%) (or min(), or clamp())
  astearns: Can we see if the spec is clear, does the spec talk enough
            about positive and negative percentages?
  TabAtkins: Would have to keep the max function with both arguments,
             carefully threading a few arguments.

  dbaron: If the goal is serialization round tripping, we don't parse
          negative 0 into a negative 0.
  <TabAtkins> min(1% / -infinity, 0%)
  TabAtkins: If writing a solution similar to it, would still have to
             parse in the current semantics.
  TabAtkins: Currently it should require both arguments to be preserved.

  Emilio: Preserving the original syntax, we need to serialize it to
          something else. Infinity basically normalized the
          serialization, we don't preserve the actual author
          documentation.
  TabAtkins: Not a problem to simplify more aggressively in the use
             case in it does not matter.
  astearns: Write tests for the spec based on the test production.
  Emilio: Could become a complicated code path, serializing -0%, and
          draw a calc tree.
  <TabAtkins> happy to figure out how to normalize such an expression,
              at minimum

  astearns: Any other concerns?
  dbaron: Not really an implementor as far as this code is concerned,
          but I like the idea of trying to keep it simple for something
          without much of a use case.
  TabAtkins: We can resolve to at minimum serialize in case of a
             complex tree.
  PROPOSAL: -0% serializes to a normalized form

  RESOLVED: -0% serializes to a normalized form

CSS Borders
===========

Accept "px" for pixel values in `border-image-slice`
----------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/6739

  SebastianZ: Suggested to allow pixel unit for border-image-slice. For
              authors it is easier to express in pixel values.
  SebastianZ: Pixel unit is meant for CSS pixels, from an authors
              perspective it looks weird to have a unitless number for
              slicing. Would like to possibly introduce a pixel unit.

  Emilio: Is there a use case for a non pixel length?
  SebastianZ: Would just be pixels.
  Emilio: Either come up with a different unit and use calc() with it,
          or treat pixels as arbitrary lengths.
  Emilio: Slightly against
  Emilio: it'd be unfortunate if e.g. the zoom property affected this
  TabAtkins: Also slightly against. Pixels to allowed but not others,
             can put px at the end of a number but nothing else, could
             end up being confusing.

  kizu: For non pixels in any length is if using css gradient and slice
        using the same thing for the stop of the gradient.
  kizu: Might not be worth introducing a change.

  SebastianZ: Are there other use cases other than border-image-slice?
              If other use cases for a new pixel unit, could introduce
              in border-image-slice, until then, we can resolve not to
              add the px unit.
  astearns: Let's resolve
  <lea> As Roman said, I do think `border-image` is rotten at the core
        and needs a complete re-architecting, but no cycles to work on
        that right now. I would weakly support this change, but it
        doesn't make much of a difference
  PROPOSAL: Not going to use the pixel unit for the pixel value in
      border-image-slice

  RESOLVED: Not going to use the pixel unit for the pixel value in
            border-image-slice

  astearns: If we find other use cases for it, we could consider adding
            it to border-image-slice. Work on a replacement for
            border-images.

CSS Contain
===========

Should not cq units be interpreted in the flatDom context?
----------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7947

  TabAtkins: cqw units should be interpreted instead in the like tree
             rather than the flat tree. cqw units have to be consistent
             with other container queries in the flatDOM instead of in
             the normalDOM

  Emilio: Do queries differentiate?
  TabAtkins: Yes, they do.
  Emilio: Might not be what you want.
  TabAtkins: Could reopen issue.

  Miriam: I think this use-case is a strong argument to reopen. It is
          more like inheritance. Would like to reopen it.
  astearns: Close the issue saying that we want consistency.
  <TabAtkins> +1 to closing this issue for consistency
  PROPOSAL: Close the issue in favor of consistency and reopen #5984.

  RESOLVED: Close the issue in favor of consistency and reopen #5984

CSS View Transitions
====================

`CSSViewTransitionRule.type` overrides deprecated `CSSRule.type`
----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/9905

  TabAtkins: CSSViewTransitionRule as a .type is deprecated, it needs
             renaming such as typeList instead.
  <bramus> SGTM
  <TabAtkins> .type is already used in CSSRule (it's deprecated)
  PROPOSAL: Change CSSViewTransitionRule .type to .typeList

  RESOLVED: Change CSSViewTransitionRule .type to .typeList

Received on Thursday, 29 February 2024 00:53:59 UTC