[CSSWG] Minutes Telecon 2025-06-11 [pointer-animations][css-anchor-position][css-overflow][cssom-view][css-borders]

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


Announcing pointer-animations-1 editor's draft
----------------------------------------------

  - The editor's draft was published at
https://drafts.csswg.org/pointer-animations-1/ .
      Review and issues are welcome.

CSS Anchor Position
-------------------

  - The proposal for styling differently based on fallback selected
      from @position-fallback was added to issue #8171 (Detecting
      active @position-fallback). There were some questions to refine
      it further and, when ready, it will be added to Anchor Position 2.

CSS Overflow
------------

  - RESOLVED: Add :target-before and :target-after (Issue #11600:
              Selecting ::scroll-marker based on relationship to scroll
              target)

CSSOM View
----------

  - RESOLVED: Use the writing mode of the target element (Issue #11796:
              scrollIntoView spec text ("determine the scroll-into-view
              position") disagrees with browser behavior on which
              writing-mode(s) to use to determine sides)

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

  - RESOLVED: The option will be called bevel (Issue #12232:
              corner-shape `angle` vs `bevel`)

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

Agenda: https://lists.w3.org/Archives/Public/www-style/2025Jun/0004.html

Present:
  Tab Atkins-Bittner
  David Awogbemila
  Kevin Babbitt
  Justin Breiland
  Oriol Brufau
  Kurt Catti-Schmidt
  Stephen Chenney
  Emilio Cobos Álvarez
  Yehonatan Daniv
  Robert Flack
  Simon Fraser
  Mason Freed
  Paul Grenier
  Daniel Holbert
  Jonathan Kew
  Ian Kilpatrick
  Roman Komarov
  David Leininger
  Rune Lillesveen
  Alison Maher
  Eric Meyer
  Cassondra Roberts
  Noam Rosenthal
  Alan Stearns
  Miriam Suzanne
  Josh Tumath
  Lea Verou
  Sam Weinig
  Sebastian Zartner

Regrets:
  David Baron
  Chris Lilley
  Bramus Van Damme

Scribe: JoshT


Announcing pointer-animations-1 editor's draft
==============================================

  ydaniv: editors draft published.
  ydaniv: ready for review, comments, issues, questions
  ydaniv: constructive ones of course!
  <kizu> https://drafts.csswg.org/pointer-animations-1/
  astearns: thank you. yes please start adding issues

  fantasai: what is necessary before taking it to FPWD?
  astearns: we can incubate things as editors drafts. not terrible if
            it takes a while

  ydaniv: would be helpful to get a review from the group, initial
          notions. specific parts like:
  ydaniv: the ranges, if it's right. the way it's specified now.
  ydaniv: the subject. there is a new range that you can center.
  ydaniv: and the different range names
  ydaniv: would be helpful to get some feedback, whether it's worth
          prototyping
  ydaniv: if there's no big issues, maybe we can move to FPWD and
          prototype

  <PaulG> Initial thoughts from an APA perspective: there MUST be an
          accessibility concerns section. If this is used by default,
          it will frustrate, annoy, or harm users with disabilities.
          Developers should use an opt-in approach with this. (based on
          my first glance)

  astearns: if there are issues where you are particularly seeking
            feedback, you can open your own or add a note to the draft
  astearns: there must be an a11y concerns section. please add that or
            open an issue to do so

  flackr: it's hard for me to know how feasible the spec is. we could
          go to FPWD but we don't know yet if we can implement what
          we've written
  flackr: risk of going to FPWD too early
  florian: I think that's OK. if this is a promising direction, then
           it's good to go to FPWD
  florian: and we might discover it's not feasible, but I don't think
           we need to wait for [prototypes]
  astearns: this is only an introduction. please raise issues if
            something is weird on first read

  fantasai: this draft connects with css-animations-2 and maybe
            scroll-animations
  fantasai: those specs haven't been updated in two years. flackr, do
            you think you have time to update them?
  flackr: I want to but can't promise time to do so.
  fantasai: maybe a plan to get them updated in the next three months
            or so. scroll driven animations implementing in WebKit,
            should probably be CR soon
  fantasai: will be hard to cross link if we don't update

CSS Anchor Position
===================

Detecting active @position-fallback
-----------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8171#issuecomment-2922342543

  futhark: we can have fallback positions with @position rules
  futhark: to position based on available space
  futhark: there is desire to style differently based on which fallback
           is chosen
  futhark: to do so with container queries
  futhark: I have made an explainer. got positive feedback from the TAG
  futhark: the next step is to get a resolution and feedback. resolve
           to work on it?
  futhark: and to what level to add it to?

  fantasai: this is super needed. I think concerned from usability PoV,
            fallbacks being numbered is not great
  futhark: explainer came to a different conclusion. chrome impl uses
           numbers for simplicity
  fantasai: for position-area values, I think we want to ask 'are you
            in this mode or the other mode'. relative to the position.
  <lea> What if we name them? `@try top { ... } @try bottom { ... }` etc
  fantasai: so if my dropdown is in the top and then bottom, I don't
            want to index to what order it's in
  fantasai: with position-area, you've got the mapping with logical and
            physical
  fantasai: you want to say if it's inline-start, I want to query if
            it's left or right
  <emilio> Is it well defined what happens if you do cycles? Or does
           the new anchor type also imply size containment or so?
  futhark: we discussed should we map to try and names. if we map to
           position-area, should it match a query for position-area
  fantasai: I think we should query not the fallback, but the region.
            map between logical and physical, or the name of a position
            try
  fantasai: and then you could add a flip block or flip inline
  fantasai: and that would be easier to use and get you what you want:
            to query the physical location

  astearns: could you have more than one fallback in a particular
            direction
  fantasai: you query which one is active
  fantasai: together if you have four items to try, I can query the
            same way the first and the third position. I think it
            should be queried based on details of the position
  fantasai: like anchor area colon, position: block-start, if I have
            specified that or the fallback, whatever that is
  fantasai: the position try values would be their own named custom area
  fantasai: that's why I use the name of the position try rule

  lea: are there any more use cases than arrows?
  lea: do you just need to know where the element is positioned?
  lea: what you really want is how the element is positioned
  lea: otherwise it's too specific to anchor positioning
  lea: we should look at the ergonomics of how we make the arrows. with
       this API, what does it look like to make arrows? it might look
       awkward

  miriam: I'm curious about the details, whether it involves
          containment, but I can take it to an issues
  futhark: we need style containment for counters.

  TabAtkins: response to lea. needs to be tied to position try because
             you don't know where the thing you're putting the arrow
             on is
  TabAtkins: for a tooltip, that needs to be flush
  TabAtkins: needs to be tied to the styles used. could experiment for
             other stuff. but for this use case, this design is what's
             required

  fantasai: I think this proposal connects really well with the tether
            proposal
  fantasai: to make them easier to do
  <lea> Makes sense. Speaking of use cases, there's also transitions:
        you want a different transition depending on relative position
        (e.g. growing from the top or from the bottom)

  astearns: we can open up issues to discuss these things. can we wait
            until we've discussed the things that come up in the issues
  fantasai: should go in anchor-positioning-2.

Properties & Values API
=======================

Figure out what to do with font-relative lengths
------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/9517

  TabAtkins: the deal here is that if you have registered custom
             properties. we resolve unit math.
  TabAtkins: if you have an em, this now depends on the font-size
             property
  TabAtkins: I have proposal to add constraints to length type custom
             properties
  <fantasai> what constraints?
  TabAtkins: not yet complete. number typed ones could also get this
             from algebra
  TabAtkins: this doesn't require any resolutions
  TabAtkins: I need to a: extend this to apply to all typed custom
             properties
  TabAtkins: b: rewrite to use the new dependency mapping property that
             is in all the new CSS specs
  TabAtkins: will just be a mechanical transform, but I think there's a
             solution. just need to take care of it now
  fantasai: I don't understand why it was brought up to the WG if not
            going to even explain what we're doing
  TabAtkins: was brought up by oriol. I'm just acknowledging that it is
             being worked on
  <oriol> I didn't remember adding this to agenda, happy to wait for
          Tab's edits
  astearns: so we'll take it off the agenda and keep the issue open.
            will bring it back when Tab has done some work

CSS Overflow
============

Selecting ::scroll-marker based on relationship to scroll target
----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/11600

  flackr: there is one issue: target past and future to refer to the
          target current marker
  flackr: it wouldn't solve the other problem of styling the thing
          targetted. I don't know if we have a proposal for that yet
  TabAtkins: I don't like the name past and future. would prefer before
             and after
  TabAtkins: but we are saying yeah to it and no one commenting on it
             otherwise
  TabAtkins: do we want to resolve to do it?
  fantasai: I can see why that makes sense. but we do have 'current'
            which pairs with past and future
  TabAtkins: I think current works on various axis
  TabAtkins: I think before, current and after are reasonable adjectives
  florian: it doesn't feel like a different axis.
  TabAtkins: there is no time in 'steps'.
  fantasai: should we go back and look at other places where we use
            these terms?
  TabAtkins: the pseudo-class for highlights API uses it as well.
  <schenney> Specifically ::search-text:current
  astearns: no strong opinion either way. would like to use before and
            after consistently
  fantasai: currently used for time axis, so maybe we should revisit
            usage in the highlights api
  <schenney> Nobody has implemented past/future in this context, so no
             problem changing it.
  TabAtkins: should be brought up in separate issue

  astearns: resolution to add target-before and target-after?
  TabAtkins: match the other targets in the scroll marker group before
             or after the currently targeted one
  florian: are we talking about a pseudo-class before and after?
  TabAtkins: yes
  florian: I think this is confusing having :before and :after
  TabAtkins: it's :target-before and :target-after

  astearns: would anyone like more time to consider this?
  astearns: anyone who would object?
  astearns: names can be bikeshedded
  fantasai: I'm OK but Tab can you open issue about highlight API?
  TabAtkins: yes

  RESOLVED: add :target-before and :target-after

CSSOM View
==========

scrollIntoView spec text ("determine the scroll-into-view position")
    disagrees with browser behavior on which writing-mode(s) to use
    to determine sides
--------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/11796

  emilio: This is about what the axis for scrollIntoView is
  emilio: should align on what browsers do, which I think makes sense
  emilio: otherwise it's not clear which axis you are targeting from a
          single....
  emilio: the axis of a scroll container doesn't make sense
  <smfr> seems fine

  astearns: you are suggesting we change the spec to match what is done
            by browser engines?
  emilio: yes, chrome, safari and firefox
  emilio: IIRC, interpreting the block and inline axis relative to the
          writing mode
  dholbert: scroll me to a position I'm on on the inline axis
  dholbert: you might have multiple scrollers vertically in one and a
            different direction in another
  dholbert: these could end up doing different things in different
            ancestors
  dholbert: so map it to the physical axis using the writing mode of
            the element
  dholbert: and all scrollers work regardless of writing mode

  astearns: is this mostly an edge case?
  astearns: or are there use cases for elements whose writing mode is
            orthogonal to the scroller?
  dholbert: if you have children with a mix of writing modes and you
            call the fn, you might expect them to do different things
            regardless of the child
  dholbert: but if no one does that, no content depends on that

  fantasai: I think it's reasonable for content to have a mix of
            writing modes. like Japanese magazines. sidebar might be
            horizontal but headline vertical
  fantasai: mix of writing modes in more complex layouts in Japanese,
            but authors not taking advantage of that yet on the web
  fantasai: common in magazines
  emilio: I think the point is no one can depend on the spec behaviour
          because it's not implemented anywhere
  fantasai: then that means it's reasonable to change the behaviour
  fantasai: it's weird because the right thing to do to is to base of
            the writing mode of the container
  dholbert: as soon as you have scrollers with a mix of writing modes,
            it gets bizarre
  dholbert: then it'll be horizontally aligned in one and vertically
            aligned in another
  dholbert: it's chaos. the proposal is to center on the axis being
            scrolled into the view
  dholbert: disregarding the writing mode of the parents
  fantasai: could we take the writing mode of the nearest scroll
            container and use it for all of them
  dholbert: could also work.
  dholbert: but if you're interpreting center on different axis, as
            long as we decide on a single writing mode to use, that
            addresses it

  emilio: on the other hand, that's weird with overflow: hidden
  emilio: I think, can you specify these in physical directions as well
          with scrollIntoView?
  emilio: if you know the axis to align to, that deals with the mixed
          writing mode
  emilio: I think what browsers do is the least bad option, TBH
  dholbert: I don't see physical axis in the API
  <oriol> https://drafts.csswg.org/cssom-view/#dictdef-scrollintoviewoptions
doesn't have physical
  emilio: maybe we should add physical properties
  emilio: can be a separate issue
  <fantasai> +1 to adding physical axes
  emilio: I will open an issue for that

  astearns: option 1: change spec to use nearest scrolling container.
            not implemented.
  astearns: option 2: or use the writing mode of the target element.
            maybe change things in the future once we have a better
            understanding of content that needs better handling
  fantasai: seems a reasonable way forward. should add the physical
            keywords.
  fantasai: both reasonable but option 2 for now
  astearns: proposed resolution is scrollIntoView will interpret block
            and inline axis in terms of the target element
  astearns: with note in spec to use the nearest scroller at some point
            if we work out a use case to do that
  <iank> could be a separate issue with new keywords if that usecase is
         valid.
  dholbert: I'm mixed on the note. I think emilio's point about
            overflow:hidden makes it intractable
  fantasai: we have overflow: clip now
  astearns: we could add a keyword to opt into the new behaviour
  astearns: any objections?

  RESOLVED: use the writing mode of the target element

  astearns: I don't think we have enough info of the use cases to
            change it
  astearns: emilio will open an issue on the physical properties
  emilio: maybe worth a separate issue on the proposal for a different
          behaviour. I agree

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

corner-shape `angle` vs `bevel`
-------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/12232

  noamr: This is about diagonal line version of corner shape
  noamr: in a zero value
  noamr: angle and bevel
  noamr: I prefer bevel because it's consistent with canvas
  noamr: also, when I think of angle, it makes me think we'll specify
         an angle like 90deg
  noamr: also, I don't have a strong opinion, but it ties up a loose
         end in the spec

  smfr: I feel somewhat strongly that bevel is better
  smfr: shaving the corner off something

  lea: I feel moderately strongly about angle. better for non-native
       speakers
  lea: and corner-shape is used for shapes different to rectangle with
       corner shaved off, including making diamond shapes
  SebastianZ: I weakly prefer angle over bevel
  SebastianZ: but we resolved changing it to angle, maybe through an
              initiative from Una. but didn't see reasoning behind it

  <fantasai> could also do 'straight', but maybe that's had to spell?
  <fantasai> round | straight | notch | scoop
  <fantasai> round | bevel | notch | scoop
  <fantasai> round | angle | notch | scoop
  <fantasai> round | diagonal | notch | scoop
  noamr: I want to suggest third option: diagonal
  noamr: diagonal corner
  <lea> +1 for finding a third option, though no idea what that would
        be :P
  <lea> straight?
  <smfr> straight was already proposed for "square" so that's confusing
  <lea> fair

  astearns: four options. I personally don't like angle. Like what
            angle?
  astearns: diagonal makes it clear it is a diagonal angle
  astearns: leaning towards that. maybe because it's a new suggestion
  <lea> +1 to diagonal
  <fantasai> POLL: In the context of round | notch | scoop, should we
             take a) bevel b) diagonal c) angle d) straight e) chamfer
  <TabAtkins> And in the uncommon case, it's still clearly stretching
              between the corners of some rectangle, which is also
              correct
  <florian> FWIW, I prefer bevel
  <davidleininger> design tools use bevel right?
  dholbert: if it's a square, it can mean connecting a line from one
            corner to the other
  <kizu> +1 to diagonal, slightly long, but ok-ish
  TabAtkins: that makes sense. this is connecting two corners of a
             region
  <iank> slant ?
  <lea> strong -1 to chamfer
  <fantasai> +1 slant
  dholbert: it's about two opposite corners
  noamr: it is the diagonal of the square that defines the corner
  <lea> slant seems okay too
  florian: slant is not the worst
  <TabAtkins> I don't think people would be assuming that about all the
              other values - using 'round' doesn't mean the entire box
              is round. It's clearly the shape of the one corner.
  <SebastianZ> Also strong -1 on chamfer, even when that's used in many
               3D tools.
  <jfkthame> +1 bevel
  smfr: bevel already exists in canvas
  smfr: so I'm a little surprised how we're not going with what already
        exists in svg and canvas
  <ydaniv> +1
  <TabAtkins> +1 to bevel, fwiw
  <dholbert> +1 bevel
  <kurt> +1 bevel
  <smfr> `stroke-linejoin="bevel"`
  <davidleininger> +1 bevel

  astearns: poll on bevel vs diagonal?
  <fantasai> POLL: In the context of round | notch | scoop, should we
             take a) bevel b) diagonal c) angle d) straight e) chamfer
             f) slant
  astearns: any other options?
  <emeyer> A
  <davidleininger> A
  <dholbert> a
  <miriam> a
  <schenney> a
  <noamr> a
  <jfkthame> a
  <futhark> a
  <florian> a
  <JoshT> a
  <SebastianZ> c
  <smfr> a
  <iank> A
  <ydaniv> a
  <kbabbitt> a
  <fantasai> a, b/d/f
  <astearns> a
  <castastrophe> A
  <TabAtkins> a
  <kurt> a
  <oriol> a
  <kizu> a
  <lea> b, c, d, f
  astearns: clear winner of bevel, shall we resolve?

  RESOLVED: the option will be called bevel

Received on Wednesday, 11 June 2025 23:41:50 UTC