[CSSWG] Minutes Telecon 2023-08-02 [css-view-transitions] [css-anchor] [css-position] [css-align] [css-text] [css-contain] [css-shapes] [mediaqueries] [selectors]

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


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

  - RESOLVED: We ask for CR transition for view-transitions L1 (Issue
              #8878: Move CSS View Transitions Level 1 to CR)

CSS Anchor
----------

  - RESOLVED: Add the anchor-center value (Issue #8979: Add the
              “centering” behavior which is now defined as an example
              in the specs as something built-in)

Alignment & Positioning
-----------------------

  - RESOLVED: Define this new auto behavior for anchor-center. Bring
              this issue back with examples for the rest (Issue #9124:
              Better interaction of auto insets and self-alignment
              properties?)

CSS Text
--------

  - RESOLVED: Name it [the word-break value] 'auto-phrase' (Issue
              #7193: Don't provide a language parameter for
              word-boundary-detection)
  - RESOLVED: If your phrase is too long you should break at a normal
              word boundary rather than overflow (Issue #7193)

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

  - RESOLVED: Add these four container font relative units and their
              functional versions to target specific containers (Issue
              #8855: Add container-font relative units)

CSS Shapes
----------

  - RESOLVED: We fix the example and tests based on it (Issue #8695:
              Optional values shouldn't be serialized)
  - RESOLVED: Remove the part about serializing calc expressions from
              Shapes spec (Issue #8695)

Media Queries
-------------

  - RESOLVED: Restrict comparison syntax to the mf-numeric-value
              production, not the mf-value production (Issue #8998:
              Parsing strategy for range syntax)

Selectors
---------

  - RESOLVED: Change from -- to state (Issue #4805: Custom state
              pseudo class proposal)

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

Agenda: https://lists.w3.org/Archives/Public/www-style/2023Aug/0000.html

Present:
  Joey Arhar
  Tab Atkins
  Elika Etemad
  Chris Harrelson
  Daniel Holbert
  Ian Kilpatrick
  Una Kravets
  ChangSeok Oh
  Florian Rivoal
  Khushal Sagar
  Alan Stearns
  Miriam Suzanne

Regrets:
  Jonathan Kew
  David Leininger
  Bramus Van Damme
  Sebastian Zartner

Chair: astearns

Scribe: dael

  astearns: This is good attendance so we should get going. We'll
            shuffle to item 1, 3, 2, 10 and then get to the rest
  astearns: Any other changes?

View Transitions
================

Move CSS View Transitions Level 1 to CR
---------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8878

  khush: Got a lot of excellent feedback last time. I mentioned
         changes since last discussion. Horizontal reviews are done.
  khush: No response to security.
  khush: No inline issues in spec. Covered a good chunk at F2F.
         fantasai did a full review of spec, thanks for that
  khush: Any remaining issues are editorial

  <khush> https://drafts.csswg.org/css-view-transitions-1/#viewtransition-process-old-state-captured
  khush: One spot where I could use a suggestion is ^
  khush: When doing the ED for L2 spec with the cross-doc API it was
         unclear how to hook into the L1 code. During course of
         navigation we capture an object and then want to resume.
  khush: L2 sets up object, creates and object that's opaque. L2 then
         resumes. [missed]. Other than that I don't think there's
         anything remaining to push to CR
  astearns: Reason to put that into L1 algo is what?
  khush: L2 describes steps specific to cross-doc navigation elements.
         A bit intertwined with L1 sets that create view transition
         object and capture everything and in same doc allow render.
         In cross doc you take, cache, and render to other doc. Unless
         it's all in same spec it's hard to capture all of this. We
         did the opaque step to capture it.
  khush: In HTML it's one spec so you just add, but wasn't sure better
         how to do it here
  chrishtr: Is this blocking the spec?
  khush: No
  chrishtr: So it's a no op in l1?
  khush: Yes, it's a no op
  chrishtr: Sounds like good feedback, but orthogonal
  astearns: Seems odd to have in module level when the thing isn't in
            the module level. I think it's fine to have it or not
            have it
  khush: When we're far into the L2 we can figure out best way to
         structure

  astearns: Second question, I'm assuming changes are all up to date?
  fantasai: I did a line by line review in June and filed issues then
            which we discussed a couple weeks ago. Haven't
            specifically reviewed changelogs
  <khush> https://drafts.csswg.org/css-view-transitions-1/#changes
  khush: End of spec has an appendix with all the changes
  astearns: Any other questions or opinions on going to CR with view
            transitions L1
  astearns: Not an issue for going to CR, how is the test suite?
  astearns: Do we have the start of a test suite?
  khush: There's lots of WPTs for this
  fantasai: One thing I would say is process old state capture thing
            probably could be better explained. That's editorial and
            doesn't need to block CR. I'd say fine to go to CR. It
            will take a few days to get all the things through and in
            the meantime we can look at editorial issues
  astearns: Proposal: We ask for CR transition for view-transitions L1
  astearns: Objections?

  RESOLVED: We ask for CR transition for view-transitions L1

  khush: Thanks everyone for the feedback
  fantasai: We should also publish a WD today so state of draft is
            updated
  astearns: Yes, that'll make publication easier
  khush: One PR yet to land so publish after that?
  fantasai: Yes, and editorial changes don't need CR approval

CSS Anchor
==========

Add the “centering” behavior which is now defined as an example in the
    specs as something built-in
----------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8979

  TabAtkins: The very first example in the spec shows a common use
             case. Center positioned element over anchor with a bit of
             safety
  TabAtkins: If centering would overflow CB we shift you a little off
             center.
  TabAtkins: Cool you can express this, but it's a bit complicated. We
             had an issue to make it easier
  TabAtkins: Luckily in grid-based proposal there was an alternative.
             A new self-alignment value 'anchor-center'
  TabAtkins: If you're using anchor positioning and are abspos it will
             attempt to center you over the element in the axis you
             spec. If strict center causes overflow we'll shift a bit
  TabAtkins: I have a PR with spec text.
  TabAtkins: To decide on: should this live in anchor positioning or
             alignment? I put in anchor positioning
  TabAtkins: A few more detailed questions on exact mechanics if no
             general concerns
  TabAtkins: Opening the floor for questions

  astearns: Seeing +1 in issue. Other opinions
  <fantasai> +1 to adding it, but I haven't had time to review the
             spec text
  <miriam> +1
  <una> +1
  dholbert: Took a quick look and it makes sense to me. Nice to have
            easy syntax to do the thing people will want
  <chrishtr> +1
  <florian> +1 to the idea, didn't review the PR yet.
  <changseok> +1
  astearns: I do think makes sense to leave in anchor positioning for
            now since defined based on anchor properties
  astearns: Lots of +1s
  astearns: Objections to adding the anchor-center value

  RESOLVED: Add the anchor-center value

  astearns: You said there were details. Would it make sense to get PR
            in and raise separate issues?
  TabAtkins: That would be good.

Alignment & Positioning
=======================

Better interaction of auto insets and self-alignment properties?
----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/9124

  TabAtkins: This is a generalization of one detail on anchor-center.
             When defining it, I realized if we didn't change anything
             about auto insets it wouldn't work very well. To make
             anchor-center work you need to set left and right to 0.
  TabAtkins: This is because current behavior is designed around
             certain assumptions and lacks of functionality CSS 2 had
             but we've since filled in. If you have a single auto it
             tightly wraps you element to align in the obvious way.
             This type of behavior made sense in CSS 2.
  TabAtkins: We now have better. The behaviors with rough
             approximations no longer make sense. anchor-center spec
             that double auto insets resolves one to 0 and the other
             to the same distance in other direction so you get
             largest possible non-overflow
  TabAtkins: In the other case, makes sense to do something similar
             and set auto insets to 0. If there's not 0 then alignment
             doesn't do something useful. Right now double auto makes
             you'd align staticpos not abspos.
  TabAtkins: In the presence of an affirmative signal you want
             alignment, meaning you set an alignment to non-initial,
             we probably want to change
  TabAtkins: Pro: for any non-initial value for self alignment
             properties we resolve auto to 0. We keep current for
             default, can't change that. But if you say something like
             start-align it makes sense to give them an inset CB you
             can position into
  TabAtkins: For abspos elements if self-alignment property is
             non-default we resolve auto to 0. I want to leave
             possibility to do more subtle things. For example
             anchor-center is a little smarter, but similar in spirit
  TabAtkins: I don't believe anybody implements yet. We are about to
             in Chrome. If anyone does, hopefully reasonable change.
  TabAtkins: Thoughts?

  fantasai: I'm not 100% sure that's compat with flexbox and grid
            which are spec to honor alignment properties for staticpos
  <fantasai> https://www.w3.org/TR/css-position-3/#abspos-insets
  fantasai: There is behavior in positioning spec for these values
            where alignment is with respect to staticpos. I disagree
            nothing useful to be done without setting to 0
  TabAtkins: Compat isn't an issue because chrome at least doesn't
             support there. It's a change in spec, but not a change in
             actual behavior. Not sure on other browsers
  iank: Small change for us, but I don't think it would be web compat
        issue
  TabAtkins: I also believe for single non-auto case it's pretty
             straight forwardly bad if you're indicating you want to
             align
  fantasai: In grid or flexbox you're aligning to the container that's
            your parent
  TabAtkins: Single auto, not double
  TabAtkins: Single I think this is clearly right
  fantasai: Oooh, okay.
  <iank> +1 that its a better behaviour for the general case.

  TabAtkins: In the double case, the new behavior aligns you in abspos
             CB. I believe that's better. anchor-center definitely
             wants it and I suspect better in the general case. Often
             it's similar.
  TabAtkins: The staticpos rect doesn't seem the most useful
  fantasai: In flexbox align-self to does and effect when you're
            staticpos. Same for grid.
  fantasai: Also you're losing functionality by doing that because
            then you can't align in staticpos which in grid/flexbox is
            your parent and in block it's left/right which has some
            uses. You want to be in static but align to end for example
  fantasai: I don't mind changing for single auto where other end is
            anchor because you're not doing static at that point. So
            saying treat the other side as 0 doesn't seem
            unreasonable. I don't think we should change spec
  <fantasai> https://www.software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cdiv%20style%3D%22display%3A%20grid%3B%20border%3A%20solid%3B%20width%3A%20100px%3B%20height%3A%20100px%22%3E%0A%20%20%3Cdiv%20style%3D%22position%3A%20absolute%3B%20border%3A%20solid%20orange%3B%20align-self%3A%20end%22%3E%3C%2Fdiv%3E%0A%3C%2Fdiv%3E%0A
  TabAtkins: Main counter is all staticpos behavior is a weak approx
             of what you can do with anchor pos. Anything you can do
             with static you can do better with anchor. So preserving
             isn't that relevant

  astearns: iank has been on the queue for a bit
  iank: Generally, I don't think people rely on staticpos often.
  iank: With self alignment I don't think we'll have compat issue
  iank: When I played with it seemed like an upgrade for authors
  iank: Getting to compat, staticpos was already weird because
        align-self would impact both axes. I think this is an upgrade
        for double-auto. We're prepared to take web compat hit to see
        if this is compat

  chrishtr: iank question on flexbox/grid. Are there use cases there?
  iank: Not particularly. You have the case where your CB is the
        parent. When the abspos they make the parent relpos. When
        mostly using abspos no behavior change. I agree with TabAtkins
        anything needing staticpos can be done better with anchor

  dholbert: Better to separate replaced and non-replaced elements.
            Replaced elements have intrinsic width. Actively giving it
            left:0 right:0 will stretch and I don't think that's the
            intent
  iank: Intent would be we don't stretch when we resolve to 0. We keep
        shrink to fit. We're changing used not computed value. So you
        look at computed when determining to stretch
  TabAtkins: We're not changing initial value behavior. Only if you
             set the self alignment property to  specific
  dholbert: Default doesn't have something, you set align-self:center
            and then it stretched
  TabAtkins: Center doesn't trigger stretch
  dholbert: Even if it's top/bottom set to 0
  TabAtkins: I think so. It would be a spec bug if it does, I think

  chrishtr: My understanding is this substantially simplifies engine.
            Correct?
  dholbert: I think so from when I tried to implement the grid change.
            Simpler not to have to compute the auto offset if you
            don't have to
  iank: It's a straight up simplification and matches what devs expect

  astearns: I wonder if we could resolve to define this for
            anchor-center for now and keep this open and have fantasai
            look at flex/grid use cases and come up with here is what
            we'll lose with examples?
  TabAtkins: We've already significantly chopped down staticpos
             behavior for flex and grid. If fantasai wants to spend
             time, happy to keep open
  iank: Presence of anchor being there is an important caveat
  fantasai: Yeah, I think that you don't lose as much with anchor
            positioning. I think the areas I'm more concerned is block
            layout
  TabAtkins: Haven't thought about block yet so happy to discuss there.
  iank: I don't think you lose anything with block because if you need
        to you make the static parent an anchor and target the edges
        you're interested in
  fantasai: How would you do that automatically?
  TabAtkins: I think we should go into the details in issue

  astearns: Proposal: add this new behavior for anchor-center and
            leave the issue open for if this is extended to the rest
            of the non-initial values
  fantasai: I think for anchor-center this does make sense

  <una> so will there be a new issue open for that?
  astearns: [reads una] I think we leave this one open since it's not
            an anchor-position specific issue
  dholbert: And anchor-center is a bit more magical than this proposal
  astearns: Is that okay una?
  una: Sounds good

  <dholbert> This is the testcase that I was looking at for "what are
             the effects of the used value being auto vs 0", fwiw:
             https://jsfiddle.net/dholbert/15y3dqu2/

  iank: Can we try and get back within the month?
  astearns: Proposal: Define this new auto behavior for anchor-center.
            Bring this issue back with examples for the rest
  astearns: Objections?

  RESOLVED: Define this new auto behavior for anchor-center. Bring
            this issue back with examples for the rest

CSS Text
========

Don't provide a language parameter for word-boundary-detection
--------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7193#issuecomment-1656188302

  chrishtr: My understanding is we're all in agreement but need a name
  chrishtr: Three suggested are what I mentioned
  <TabAtkins> I'm weakly towards "phrase" just to suggest what it's
              actually doing.
  <TabAtkins> and that keyword sounds reasonable from a complexity
              standpoint
  chrishtr: Reason to choose 'auto-phrase' is because it could
            fallback if there isn't platform support

  florian: I think 'auto' alone would not be good
  florian: I think auto alone would be a bad value because it already
           has a normal. 'auto-phrase' is reasonable. I think
           'keep-phrase' would also be okay. I could go either way
           between those
  fantasai: Interacts a bit with property name for the
            whitespace-text-transform-something which automatically
            inserts spaces at these points. A keyword that can be in
            both makes sense which 'auto-phrase' does that. 'auto' is
            too generic and 'keep-phrase' doesn't work for word
            boundary
  florian: Agree

  astearns: Arguments for anything else?
  astearns: Objections to naming it auto-phrase

  RESOLVED: Name it auto-phrase

  fantasai: As people implement this, one consideration we need to
            make sure is when you turn this on you don't end up
            triggering overflow because the phrases. We'll want to
            avoid that, particularly if it's long or it's foreign and
            you can't understand. Normal should be to wrap at a
            boundary not overflow
  chrishtr: Makes sense
  astearns: Anything to resolve here?
  fantasai: Proposal: If your phrase is too long you should break at a
            normal word boundary rather than overflow
  astearns: Comfortable with that?
  florian: Yes
  astearns: Proposal: add a principle saying you should break within
            the phrase instead of overflowing
  astearns: Objections?

  RESOLVED: If your phrase is too long you should break at a normal
            word boundary rather than overflow

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

Add container-font relative units
---------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8855

  miriam: We added cq units that are similar to viewport. cqi, cqv
          etc. several use cases for getting something like rems but
          relative to container. cqch, cqex, cqem and cqlh. cqem and
          cqlh are clearest
  <fantasai> sgtm
  miriam: Other question is this came from an issue we resolved by
          adding functions for cq units so you could access the unit
          on a specific container. We can consider that here.
  miriam: Question is do we want these 4 cq relative units

  TabAtkins: I think this is reasonable. We also should put this into
             functional syntax. If you can access some aspects of an
             arbitrary container, getting to the font bits makes sense
  TabAtkins: +1 to the full proposal
  <una> +1 this proposal makes sense!

  astearns: Proposal: Add these four container font relative units and
            their functional versions to target specific containers
  astearns: Objections?

  RESOLVED: Add these four container font relative units and their
            functional versions to target specific containers

CSS Shapes
==========

Optional values shouldn't be serialized
---------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8695

  fantasai: The CSS shapes spec tries to spec serialization but does a
            couple of things that don't make sense. In an example it
            says omitting components shows some default values don't
            show in serialization.
  fantasai: You can omit @position so that doesn't make sense. We have
            interop that we always serialize, but since you can omit
            you should allow to omit. Shortest serialization principle.
  fantasai: Second is some guidance about avoiding calc and calc
            transforms, but that conflicts with rules about
            serializing position in calc.
  fantasai: In this case, should defer to rules in values 4
  <TabAtkins> strong +1 to making these consistent now
  astearns: This was written before the rules. Intent was always to be
            superseded by calc. Happy to defer to existing text now
  astearns: First bit needs to stay in shapes because talks about
            specific shapes values, right?
  fantasai: I think we just need to correct the example and remove/fix
            the tests
  astearns: Any concerns about anybody relying on this? I don't think
            I have any

  astearns: Proposal: We fix the example and tests based on it
  astearns: Objections?

  RESOLVED: We fix the example and tests based on it

  astearns: Proposal: Remove the part about serializing calc
            expressions from Shapes spec
  astearns: Objections?

  RESOLVED: Remove the part about serializing calc expressions from
            Shapes spec

  astearns: Did you happen to look at the tests for serializing calc
            in Shapes? There may be some that need updates
  fantasai: I think there are tests, but I don't remember where
            they are
  astearns: Anything else on this one?

Media Queries
=============

Parsing strategy for range syntax
---------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8998

  TabAtkins: It was pointed out that the mathematical syntax for MQs,
             specifically equals, <, >, etc. didn't restrict the value
             very well. You could say resolution = infinite. You need
             to know too much information to know what's the MQ,
             what's the keyword
  TabAtkins: I think it's an oversight
  TabAtkins: Proposal is when you use comparison syntax we restrict
             value to numbers, dimensions, ratios. If you want a
             keyword you use colon syntax
  astearns: Opinions?
  TabAtkins: I think this is just an oversight. It's a mature spec so
             we need a resolution
  astearns: Proposal?
  <fantasai> makes sense to me
  TabAtkins: Restrict compare syntax to the mf-numeric production
  astearns: Objections?
  <TabAtkins> restrict comparison syntax to the mf-numeric-value
              production, not the mf-value production

  RESOLVED: Restrict comparison syntax to the mf-numeric-value
            production, not the mf-value production

Selectors
=========

Custom state pseudo class proposal
----------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-1344721034

  jarhar: I was working on getting this spec. Has :-- custom name
          syntax. Suggestion was :state instead of :-- for custom
          name. Turns out there was discussion in 2020
  jarhar: I don't have a strong opinion. I wish [missed] was here to
          state his case.
  <jarhar> https://lists.w3.org/Archives/Public/www-style/2020May/0017.html
  jarhar: Previous resolution minutes ^
  astearns: Whatwg issue sounds like the idea is that it's more
            consistent with :part

  fantasai: oriol posted a comment that :--was discussed for another
            kind of custom selector?
  <fantasai> https://github.com/w3c/csswg-drafts/issues/4805#issuecomment-1662763534
  TabAtkins: Yeah. For like saying :--heading that was equivalent of
             h1, h2 etc. Having the clash isn't ideal, though doable
  astearns: Always favor a name over ascii gibberish to make it easier
            to see what you're trying to do. Not a strong opinion
  TabAtkins: Looking at the discussion where we decided, looks like
             everybody was unenthusiastic. If we decide to revert to
             :state I think that's fine
  TabAtkins: Counter argument was from plinss who wanted it not to be
             too distinct. The --makes it look like a normal pseudo
             class. I don't have a big opinion
  astearns: We could resolve to change to :state which makes it easier
            to get through whatwg. plinss can raise a new issue if he
            chooses
  fantasai: I think it makes more sense. We use --names when
            declaring, but not when pulling information from another
            system. Makes sense to not use -- for this case from what
            I understand it to be
  <florian> +1
  astearns: Anyone want to wait on a resolution to make sure plinss is
            on board?
  astearns: Objections to changing from -- to state

  RESOLVED: Change from -- to state

  astearns: That's time. Thanks everybody for joining us on zoom.
  astearns: I'll set up the calendar invite for the rest of the month
            soon. Talk to you all next week

Received on Thursday, 3 August 2023 23:28:24 UTC