[CSSWG] Minutes Extended Telecon 2023-03-20 [css-scroll-animations] [css-overflow-3]

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


Scroll Animations
-----------------

  - RESOLVED: Reduce default scoping to ancestors only, add
              scroll-timeline-attachment as described in the issue
              (Issue #7759: Broader scope of scroll timelines)
  - RESOLVED: Collapse keyframes with same specified offset to the
              earlier one, then pull percentage-only keyframes to the
              front and sort them (Issue #8507: Keyframe ordering and
              ordering requirements)
  - RESOLVED: Accept proposal in the issue [proposal:
              https://github.com/w3c/csswg-drafts/issues/8405#issuecomment-1464810166
]
              (Issue #8405: animation-range vs animation-duration)
  - RESOLVED: Scroll overlap range is in addition to scroll-padding,
              view-timeline-inset should have an initial value of auto
              (Issue #7747: Consider initial value of auto for
              view-timeline-inset)
  - RESOLVED: animation-range's initial value is the keyword "normal"
              (Issue #8406: Naming the initial value of
              animation-range)
  - RESOLVED: For printing/paged, root is considered fully in view
              (scroll timelines on it are inactive) (Issue #8226:
              Define scroll linked animation behavior in printing
              documents)
  - RESOLVED: Percentages outside the 0-100 range are valid in
              progress percentages (Issue #8552: Clarify that progress
              percentages must be between 0% and 100%)
  - RESOLVED: Make <percentage> optional in animation-range-start/end,
              defaulting to 0%/100% (Issue #8438: Allow optional
              `<percentage>` in `animation-range-*`)
  - RESOLVED: When specifying "animation-range: foo X%", set the
              -range-end to "foo 100%" (staying in same phase, just
              setting to end) (Issue #8438)
  - RESOLVED: SLA uses logical interpretations of scrolling (rather
              than scrollLeft/Top always) (Issue #7752: ViewTimeline
              values of startOffset/endOffset in RTL writing mode)
  - RESOLVED: Pending Brian's potential objections, go with
              `getCurrentTime(rangeName?)` (Issue #8201:
              Animation.getCurrentTime is easily confused with
              Animation.currentTime)
  - RESOLVED: SLA does do flat-tree lookup for nearest ancestor
              scroller, spec will be clarified (Issue #8192: Timeline
              lookup should probably not use flat tree)
  - RESOLVED: New features are not added to the animation shorthand
              (for now), they're just reset (Issue #8054: Animation
              short-hand support for new properties)
  - RESOLVED: Merge keyframes if their *specified* offsets match,
              don't try to merge based on computed (Issue #8487: Avoid
              merging named timeline range keyframes which compute to
              the same offset)

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

  - RESOLVED: Republish Overflow 3

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

Agenda: https://github.com/w3c/csswg-drafts/projects/37

Present:
  Rachel Andrew
  Rossen Atanassov
  Tab Atkins
  David Baron
  Emilio Cobos Álvarez
  Yehonatan Daniv
  Elika Etemad
  Robert Flack
  Daniel Holbert
  Brian Kardell
  Chris Lilley
  Eric Meyer
  François Remy
  Cassondra Roberts
  Alan Stearns
  Miriam Suzanne
  Bramus Van Damme

Chairs: Rossen & astearns

Scribe: emilio
Scribe's scribe: fantasai

Scroll Animations
=================

Broader scope of scroll timelines
---------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7759

  flackr: We previously deferred this, but it came up that this could
          actually simplify timeline-name lookup
  flackr: where if you can define timeline names on ancestors we don't
          need sibling lookups
  flackr: This is probably architecturally simpler and already have a
          reasonable API for this
  fantasai: To summarize there's three options: do nothing (lookup
            would be ancestors and prev-siblings), adapt this explicit
            exposing mechanism proposed in the issue and narrow
            default to ancestors only, or narrow it to ancestors only
            for now but acknowledging we can expand in the future
  fantasai: [describes proposal]
  fantasai: so you can do attachment with my timeline name or saying
            "I'm an ancestor and I can declare a name etc"
  flackr: There's some hierarchies where this defer attachment is
          required for
  flackr: and it nicely generalizes
  flackr: so I'd like to adapt it including the stricter scoping

  emilio: Just wanted to confirm that the proposal included dropping
          the sibling lookup?
  emilio: otherwise sounds good to me
  flackr: Yeah I propose dropping sibling and having deferred
          attachment drop those
  emilio: sgtm
  Rossen: That's option 2 right?
  fantasai: yes

  bramus: What's the default mechanism here?
  fantasai: It'd look up the ancestors
  <emilio> not siblings
  bramus: So if you want to include preceding siblings you'd have to
          define the attachment somewhere?
  fantasai: You'd declare a name in the common ancestor and the
            scroller would attach to that name
  flackr: My comment from sept. 7 has an example of this

  PROPOSAL: Reduce default scoping to ancestors only, add
            scroll-timeline-attachment as described in the issue

  RESOLVED: Reduce default scoping to ancestors only, add
            scroll-timeline-attachment as described in the issue

Keyframe ordering and ordering requirements
-------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8507

  flackr: css-animations defines that there's a sorting of keyframes
          by offset
  flackr: timeline-range keyframes have effectively dynamic offsets
  flackr: further, web-animations requires keyframes to be sorted and
          throws if not
  flackr: Proposal is for css animations if you look at keyframes
          you'll sort by the computed offset which means that the
          keyframe order can switch depending on layout offsets
  flackr: We shouldn't merge keyframes with same computed offset but
          different specified offsets
  flackr: There's an exception already for different composite modes
          and easing
  flackr: if you have a not-computed offset
  flackr: I'm proposing we just keep them in the stable sort order
          relative to the other keyframes around them
  flackr: so basically you do a stable sort but keyframes with no
          offset are not comparable
  flackr: There'd be no changes for web animations, what you pass is
          what you get, and we'd relax the requirement to specify them
          in order
  flackr: so that only fixed offsets need to be sorted

  fantasai: So you're proposing that whatever keyframes get passed in
            and if they don't have a resolvable offset do they get
            dropped?
  flackr: They're dropped from the animation but getKeyframes would
          still return them as described above
  emilio: Does this mean that calling getKeyframes now needs to do a
          layout update, rather than just styling?
  flackr: Yes, if the animation has range-based keyframes, it needs a
          layout update...
  flackr: I believe that at least Chrome didn't differentiate between
          style and layout in this case
  emilio: I'm pretty sure we do
  emilio: Chrome doesn't have such a strong difference between update
          style vs layout
  emilio: but we do have that difference
  emilio: although container queries make that tricky
  fantasai: Would it make sense not to do the layout-based sort?
  fantasai: So percentage-based keyframes are sorted but the others
            remain stable
  emilio: I think that might be slightly preferable
  emilio: the less we need to update for DOM APIs the better

  fantasai: Why are we sorting these at all? Can we have the API not
            sort them?
  flackr: For WebAnimations it asserts that they're sorted, which we
          need to relax
  flackr: For CSS animations it's spec'd that we'd sort the keyframes
          by the percentage specified
  flackr: This is observable and it'd be hard to know whether it's
          compatible to change that
  fantasai: What if we zero out the dynamic offsets when sorting so
            that we have a canonical order?
  fantasai: If there's a percentage offset we sort by that but for
            range we treat as zero
  flackr: I feel like if we treat range separate we can just leave
          them in the specified order
  flackr: I think the main reason keyframes are sorted by percent is
          for merging and we don't want to merge these

  YehonatanDaniv: The only case offsets could change dependent on
                  layout is changing ?? to cover
  YehonatanDaniv: I think that's the only case which is kind of minor
  flackr: Anything other than cover computes its offset based on the
          timeline
  flackr: cover is the only case where the % specified is equivalent
          to the percentage in the timeline
  flackr: otherwise the % is dependent on layout
  flackr: e.g. range of 100% is dependent on the element size
  YehonatanDaniv: Larger or smaller than viewport?
  flackr: Any change in the element's height changes what 'enter 100%'
          results in
  YehonatanDaniv: But that doesn't change the order of keyframes
  flackr: Ah, yes. If you have keyframes of multiple ranges specified
  YehonatanDaniv: I think if the only edge case is missing one of the
                  1st three with cover, then reasonable not to update
                  the order of the keyframes according to layout
                  changes
  YehonatanDaniv: We have duration and currentTime update, but order
                  of keyframes doesn't need to change in most cases
  flackr: But the question is what should spec say about order of
          keyframes?
  YehonatanDaniv: I think everything else still holds, we have logical
                  order of entry/contain/exit, and then entry-crossing/
                  exit-crossing
  flackr: There's overlap among those phases, and cover covers all of
          them
  YehonatanDaniv: Cover is the special case
  flackr: entry-crossing and exit-crossing are also special
  flackr: One possibility is we could have sort by range name and then
          percentage
  flackr: that defines a DOM ordering
  flackr: or we could leave them as specified in the CSS
  flackr: which is consistent with what we do when keyframes have
          different easings or composite modes
  flackr: They stay in their specified order
  flackr: so in the absence of any reason to sort we use the specified
          order
  YehonatanDaniv: Ok, by range name and offset, but need to clarify
                  regarding special cases
  flackr: The other reason that sorting matters is it affects which
          keyframe values are active for a particular range
  flackr: if 2 keyframes compute to 20%, when you're after 20%, which
          keyframe's values are you getting?
  flackr: if one says 'bg: green' other is 'bg: blue', need to know
          which is later to know what color to get
  flackr: My proposal is in all complex cases we use specified order
  flackr: that removes layout order, and produces a well-defined
          animation
  YehonatanDaniv: Consistent also with [missed]
  flackr: consistent with what we do with easing and composite mode

  bramus: Also wanted to point out order can change if size of
          scroller changes
  bramus: e.g. 'enter 100%' and exit animation starts when scroller
          becomes too small
  bramus: Authors can predict what happens, so I'm in favor of this
          proposal
  fantasai: I wanted to ask what the proposal is? Don't sort other
            than the percentage based ones? If two keyframes have the
            same offset even in different phases we don't merge them?
  flackr: We won't merge if they have the same computed offset
  fantasai: Even if they have the same specified offset?
  flackr: We can merge then, it's not complex and is consistent with
          the expectations for other animations
  fantasai: I think we could propose that keyframes with the same
            specified offset are merged

  fantasai: What happens if there's interleaved keyframes and ranged?
  flackr: The index of the specified keyframe is the secondary sort
          order
  fantasai: So say I have 20%, entry 50%, 0%, entry 0%, entry 6em
  flackr: I was wondering if we could be really naive and use stable
          sort where values are equal if any value has ranges
  flackr: so only the 0% will move before the 20%
  flackr: for applying the animation later we need to sort by computed
          offset
  fantasai: Right but you want percentages in order, but ranges don't
            matter
  fantasai: So do you ?? or move all the percentages first?
  flackr: I think percentages at the beginning would be simplest
  fantasai: I think otherwise you need to chop up the list and sort
            the fragments
  <Rossen> 0%, 20%, entry 50%, entry 0%, entry 6em
  <fantasai> Percentages at the beginning option: 0%, 20%, entry 50%,
             entry 0%, entry 6em
  <fantasai> Segmented list option: 0%, entry 0%, entry 6em, 20%,
             entry 50%
  flackr: My concern with the segmented option is that percentages are
          not guaranteed to be sorted among them
  fantasai: I'm not sure it makes sense, I'm saying "I'm a complex
            list so my order is that of the most recently-specified
            raw percent keyframe"
  flackr: I'm not sure it makes sense to do that

  emilio: I was going to say that seems more simple and intuitive to me
  emilio: put percentages at the beginning, then sort the rest
  PROPOSAL: Collapse keyframes with same specified offset to the
            earlier one, then pull percentage-only keyframes to the
            front and sort them

  RESOLVED: Collapse keyframes with same specified offset to the
            earlier one, then pull percentage-only keyframes to the
            front and sort them

  Rossen: OK, we're resolved. As you get more experience with this,
          let us know if it works

animation-range vs animation-duration
-------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8405

  <fantasai> Proposal ->
https://github.com/w3c/csswg-drafts/issues/8405#issuecomment-1464810166
  flackr: when you specify all of animation-range-start/end/duration
  flackr: it's not possible to satisfy all of these constraints
  flackr: where we've arrived is that animation-range is setting the
          absolute points at which an animation starts and ends and
          all other constraints are applied inside that range
  flackr: so your duration could make the animation shorter but a
          longer one would be clipped to that range
  flackr: this is my mental model as well
  fantasai: [goes over comment]

  flackr: One point of clarification: for time-based timelines you
          need the range to start at the point you tell them to play
  fantasai: If you set a negative delay you might end up with a start
            before the document timeline start
  fantasai: If you have an animation range that could be negative
            range, but you're not going to see that animation
  flackr: If you specified animation-range-start: 0s that implies the
          time at which the document loaded
  flackr: so the auto start range would be the point at which you play
          the animation
  fantasai: I see, so when we add times to animation-range it makes
            the model consistent

  YehonatanDaniv: So if duration is shorter than start-end which one
                  takes precedence?
  fantasai: So if it's smaller it might clip the animation, but if the
            duration is larger the animation ends until the end of the
            range
  YehonatanDaniv: but if I force iterations to 1...
  fantasai: If you have no delay, you layout the keyframes along the
            duration, but if the end of the range is before, any
            frames after get ignored
  YehonatanDaniv: ok
  YehonatanDaniv: so start/end either define my duration if auto or a
                  clipping range
  fantasai: Yeah
  PROPOSAL: [fantasai's comment ;)]

  RESOLVED: Accept proposal in the issue

Consider initial value of auto for view-timeline-inset
------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7747

  flackr: We discussed this in our previous session and resolved that
          the initial view-timeline-inset should be 0 based on the
          assumption that scroll-padding was used to set a margin for
          page-down operations
  flackr: but all browsers actually scroll 87% of the remaining area
          after you remove scroll-padding
  flackr: So scroll-padding is strictly used for occluding element
  flackr: and changing that would break sites that use it to exclude
          occluding elements
  flackr: So proposal is to have auto which is scrollport minus
          scroll-padding
  flackr: to account for invisible elements
  fantasai: One of the goals for scroll-padding was to give the author
            the ability to control that overlap
  fantasai: or set it to zero, but I understand we have a compat
            problem but that brings the question of how we want to
            address that use case
  flackr: So... the issue is that devs have used it assuming that it's
          strictly an overlapping-element-region
  flackr: If we change the interpretation as offset-defining the page
          region you change page-down behavior
  flackr: I guess it's complicated wrt view-timeline-inset
  fantasai: I think for view-timeline-inset should just account for
            padding
  fantasai: that's what auto would do, it should not pay attention to
            the absolute amount of scroll
  flackr: Developers are using it because we don't use that as the
          page value

  emilio: I was going to agree with fantasai
  fantasai: Then we need to update the scroll-snap spec to say the UA
            should provide some overlap for continuity purposes on top
            of that
  flackr: [on-the-spot compat check]
  flackr: Chrome and Safari are using 87.5% of the scroll-padding
          inset area
  flackr: Firefox is not using scroll-padding at all for page amount,
          webkit/blink have 87% of scroll-padding
  emilio: I think scroll-padding should be accounted for
  emilio: if we don't, it's an oversight
  emilio: It might be we don't want to define as the whole region
  emilio: but, we could still not have an auto value
  emilio: and use zero and have ?? use scroll-padding area
  emilio: I don't care either way, having a zero start or auto
  flackr: I just remembered the other complication, we use the padding
          area for how much additional scrolling we need to do to
          scroll things into view
  flackr: so the way it's defined it's better suited to define
          overlapping elements
  flackr: to me that implies it should be fine to have view-timeline
          follow that as the default
  fantasai: I think the proposed resolution is: #1, scroll overlap
            range is in addition to scroll-padding, that requires
            scroll snap changes
  fantasai: #2 changing view-timeline-inset to have an initial value
            of auto

  RESOLVED: Scroll overlap range is in addition to scroll-padding,
            view-timeline-inset should have an initial value of auto

  Scribe: TabAtkins

Naming the initial value of animation-range
-------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8406

  flackr: The default animation-range on SLA tells their relevant
          timeline
  flackr: But these properties exist in general for time-based anims
          as well
  flackr: for time-based, we're saying that the attachment point of
          the animation is what it would normally be
  flackr: As discussed previously, basede on when the animation plays
  flackr: So I'm suggesting the animation-range default should be
          'auto', since there's a calc in play
  flackr: Alternative is calling it normal
  fantasai: For time-based, doesn't sound like it's that complicated?
            just 'start now', right?
  flackr: Right, but we don't use 'normal' for anything yet
  fantasai: We use normal in other props, like content:normal or
            line-height:normal, both of which aren't simple values
            either
  florian: We tend to use normal for things that *can* be complex but
           that are well-defined, while auto can be more magical
  flackr: It's just bikeshedding, just wanted group opinion on whether
          auto or normal is better
  fantasai: My take is that this is a normal thing to do, so "normal"
  fantasai: while animation-range:auto kinda implies some more magical
            calculation based on other things maybe
  flackr: I'm not opposed
  astearns: Other opinions?
  astearns: Proposed resolution is that animation-range's initial
            value is "normal"

  RESOLVED: animation-range's initial value is the keyword "normal"

Define scroll linked animation behavior in printing documents
-------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8226

  flackr: When you print a doc, we need to define what the animation
          value from SLA is
  flackr: I think there's two possible choices.
  flackr: I think makes the most sense is to treat the root as a
          scroller that's fully in view - scrollport is size of
          scrollable area
  flackr: This means many animations wouldn't have a time value, so
          they'd be skipped
  flackr: Other option is we treat one page as the scrollport, and
          presumably the scroll position is zero

  florian: I'm not on top of things wrt animations, but wanted to
           point out that while it's not common, print and paged can
           be different - you can have scrollable things in a page in
           ebook, for example
  TabAtkins: I think this question is for the root scroller though
  TabAtkins: which is basically the same problem for paged and print
  flackr: Other scrollers are fine, they can compute their time. this
          is just the root scroller
  flackr: it just doesn't really have a scroll position
  fantasai: Can you explain more? say I have a root background
            animation from green to red as it goes 0%-100%. what
            happens when I print?
  flackr: The scroll animation is considered inactive since there is
          no scrollable overflow, so it's not applied.
  fantasai: That makes sense, I think that's the right thing to do.
  astearns: So proposed resolution is that, for printing/paged
            purposes, we treat root as fully in view with no
            scrollable overflow
  fantasai: Scroll timeline is inactive on the root, maybe clearer to
            state directly

  RESOLVED: For printing/paged, root is considered fully in view
            (scroll timelines on it are inactive)

Clarify that progress percentages must be between 0% and 100%
-------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8552

  fantasai: We're just clarifying we can do 'contain -20%' and it's
            valid
  fantasai: Currently spec allows it
  <bramus> +1
  flackr: I support, these dynamic ranges can also compute outside
          their 0-100 range
  astearns: Objections?

  RESOLVED: percentages outside the 0-100 range are valid in progress
            percentages

Allow optional `<percentage>` in `animation-range-*`
----------------------------------------------------
  github:  https://github.com/w3c/csswg-drafts/issues/8438

  <fantasai> ->
https://github.com/w3c/csswg-drafts/issues/8438#issuecomment-1464672747
  fantasai: There was discussion about %s in teh syntax of
            animation-range
  fantasai: Can specify the shorthand to a name, but the longhands
            currently require a percent
  fantasai: One proposal is to make that optional - if omitted it
            defaults to 0%/100% depending on prop
  flackr: Sounds fine to me
  <bramus> +1
  TabAtkins: +1
  astearns: proposed resolution is to make % optional in
            animation-range-start/end, defaulting to 0%/100%
  <fantasai> PROPOSAL: Make <percentage> optional in
             animation-range-start/end, defaulting to 0%/100%

  RESOLVED: Make <percentage> optional in animation-range-start/end,
            defaulting to 0%/100%

  fantasai: If you specify `animation-range: name %`, currently it
            sets animation-range-start to that, and leaves -end as
            normal
  <fantasai> animation-range: name x%
  <fantasai> animation-range-start: name x%; animation-range-end:
             normal
  <fantasai> animation-range-start: name x%; animation-range-end: name
             (100 - x)%
  fantasai: The alternative is to expand it to this ^^
  fantasai: so if you say "contain 5%", it'll set them to "contain 5%"
            and "contain 95%", so you're insetting from either end
  flackr: I put this forward because it felt odd to take the specified
          % from the start, but ending in a potentially totally
          different animation range
  flackr: Felt consistent with margin/padding that get spammed to the
          other side of the block.
  ydaniv: Question is do we want to change the range as well - if
          start is "entry" do we use "exit" in the end?
  fantasai: Seems maybe too magical? Don't you want contain/cover?

  YehonatanDaniv: For those the proposal makes sense. Seems funky that
                  for entry 5% we expand to entry 95%
  flackr: You can already use 'contain' to do that, but there are
          use-cases for keeping it in the same range. So I'd prefer
          not to.
  fantasai: I'd understand if you wanted to expand "name X%" to "name
            X%" and "name 100%"
  fantasai: so we'd take the name and set it to both longhands, but
            only use the % in start
  <flackr> animation-range-start: name x%; animation-range-end: name
           100%
  <fantasai> animation-range: name x%
  <fantasai> 1) animation-range-start: name x%; animation-range-end:
             normal
  <fantasai> 2) animation-range-start: name x%; animation-range-end:
             name (100 - x)%
  <fantasai> 3) animation-range-start: name x%; animation-range-end:
             name 100%
  <TabAtkins> (this was gonna be my suggestion too - if the concern is
              just that setting 'end' to an unrelated phase, it seems
              reasonable to just set to that phase with 100%)

  flackr: Good with 2 or 3
  fantasai: Slight pref for 3, okay with 2
  TabAtkins: prefer 3
  emilio: Also prefer 3
  emilio: 2 seems too magic
  TabAtkins: Particularly, I don't know what 2 would do if you start
             at 55% :)
  astearns: Do we think we'll get a second % in animation-range at
            some point?
  fantasai: You can specify "name % name %" to end wherever you want
  fantasai: In theory we could say "name % %" default to the previous
            name
  <ydaniv> staying with 3 (:
  astearns: If we already have the syntax, no need to complicate until
            people ask for it
  astearns: So seems like we have option 3 consensus

  RESOLVED: When specifying "animation-range: foo X%", set the
            -range-end to "foo 100%" (staying in same phase, just
            setting to end)

  ACTION: file issue on 3-value syntax

ViewTimeline values of startOffset/endOffset in RTL writing mode
----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7752

  flackr: On SL timelines we have start-offset and end-offset giving
          resolved scroll position
  flackr: Right now I think they're aligned with scrollTop and
          scrollLeft, so they're not writing mode-aware
  flackr: The math works out fine with potentially negative ranges
  flackr: But question is if they should be logical, or stay aligned?
  fantasai: And you brought up suggestion that maybe we need logical
            scroll offset accessors
  ydaniv: We have some logical options for the visual viewport
  fantasai: I feel like it would be nice to have logical accessors on
            the element, and also made this logical as a result.
  TabAtkins: If you're RTL it defaults to being scrolled all the way
             to the right
  TabAtkins: So my opinion is that the default behavior should match
             the experience of the person working with it
  TabAtkins: even if the accessors don't yet exist
  flackr: Sure, we can go with logical, and have a followup to do
          logical accessors on scrollports
  astearns: So proposed resolution is that for SLA we use the logical
            interpretations of scrolling?
  flackr: Yep
  <fantasai> wfm
  ydaniv: Yeah sounds good

  RESOLVED: SLA uses logical interpretations of scrolling (rather than
            scrollLeft/Top always)

  astearns: And flackr will raise a separate issue for logical
            scroll-position accessors

Animation.getCurrentTime is easily confused with Animation.currentTime
----------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8201

  flackr: Bikeshedding issue
  flackr: We added an API to get a range-specific current time
  flackr: But Brian brought up that when you're not specifying a
          range, and just getting the time of the timeline, there's
          already an accessor for that
  flackr: So question is, should this get a range-specific name, or
          just consider the .currentTime accessor legacy?
  flackr: Because one bit about the function is we can return the
          TypedOM object, rather than just the double that
          .currentTime returns
  flackr: I'm slightly in preference to this being the new way to get
          times, so use a generic name, and have range name specified
          in options with a property bag as Brian suggested
  astearns: But Brian thinks we should go with
            getCurrentTimeForRange()?
  flackr: Yeah, Brian thinks it's confusing to have another API for
          something we already have an accessor for
  flackr: I'm not concerned with calling it getCurrenTtimeForRange(),
          just need to decide

  fantasai: My thoughts are we'd add this to get the TypedOM object,
            and to get it relative to a range.
  fantasai: Feel like taking a property bag is a little awkward from a
            usage pov
  fantasai: I think ranges are a fundamental enough concept that
            having it just be a string argument is fine
  flackr: His argument for a property bag is that we don't want to
          confused authors, and might want to extend in the future
  fantasai: Those can go in a property bag
  astearns: I'm a little concerned with resolving without Brian's okay
  flackr: Least contentious is to resolve on the ForRange naming, we
          know Brian is okay with that
  astearns: fantasai, you okay with ForRange?
  fantasai: Think it depends on if we want a plain getCurrentTime at
            any point
  fantasai: Could push to apac call and get Brian on

  TabAtkins: I'm mildly against extremely long names, especially if
             the arg is obvious, extra typing is annoying
  TabAtkins: not strongly for/against property bag vs positional
             argument, but lean towards positional because fantasai's
             argument that it's quite fundamental
  TabAtkins: if we put in property bag, we can make an overload later
  TabAtkins: for API niceness, I think I like what I believe the spec
             currently specifies
  TabAtkins: getCurrentTime("rangename")
  TabAtkins: can add property bag later
  flackr: Should we resolve this is what we prefer and ask Brian to
          take a look?
  astearns: So proposed resolution is to use the short name with a
            string argument, reasons above, ping Brian to see if he
            wants to object
  astearns: Objections?

  RESOLVED: Pending Brian's potential objections, go with
            `getCurrentTime(rangeName?)`

Timeline lookup should probably not use flat tree
-------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8192

  TabAtkins: My position on container queries doesn't apply here, I
             agree with fantasai
  ydaniv: Agreed, but one concern
  ydaniv: "nearest" is taking your lookup - you might think you were
          inactive but end up in an active timeline
  flackr: I think that's consistent with other scroller APIs, like
          stickypos
  fantasai: So proposing to resolve we do use the flat tree to find
            nearest scroller
  flackr: Yup
  astearns: So where the spec currently says "nearest ancestor" we
            make it explicit to be flat tree

  RESOLVED: SLA does do flat-tree lookup for nearest ancestor
            scroller, spec will be clarified

Animation short-hand support for new properties
-----------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8054

  fantasai: Proposed resolution is we don't need to support new
            features in the 'animation' shorthand
  <TabAtkins> (agreed, the animation shorthand is already a trash fire
              of parsing)
  fantasai: We might come up with a good idea for later, but for now
  astearns: Close the issue, or tag it to a different level?
  fantasai: Tag it
  astearns: So proposed resolution is "not now"
  dbaron: The shorthand is still resetting those new props, just can't
          set them?
  fantasai: Yes

  RESOLVED: New features are not added to the animation shorthand (for
            now), they're just reset

Avoid merging named timeline range keyframes which compute to the
    same offset
-----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8487

  flackr: This was already implied by an earlier issue
  flackr: If two keyframes have same offset, don't merge unless they
          have identical specified value
  flackr: (Not if their offsets compute to the same value)

  RESOLVED: Merge keyframes if their *specified* offsets match, don't
            try to merge based on computed

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

Republish CSS Overflow 3
------------------------

  <fantasai> https://lists.w3.org/Archives/Member/w3c-css-wg/2023JanMar/0224.html
  <fantasai> https://drafts.csswg.org/css-overflow-3/#scrolling
  fantasai: Request to repub Overflow 3, which added a section for
            scrolling-related concepts
  fantasai: This gives us a bunch of anchors
  astearns: Changes section up to date?
  <fantasai> https://drafts.csswg.org/css-overflow-3/#changes

  RESOLVED: Republish Overflow 3

Received on Saturday, 25 March 2023 18:17:38 UTC