[CSSWG] Minutes Extended Telecon 2023-03-22 [css-cascade] [css-animations] [css-contain] [css-color]

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


CSS Cascade
-----------

  - RESOLVED: Cascade proximity is weaker than specificity (Issue
              #6790: Strong vs weak scoping proximity)
  - RESOLVED: The combinator is deferred (Issue #8628: Do we want to
              defer some or all of these scope extensions to level 7?)
  - RESOLVED: The name will be @scope-siblings (Issue #7751: Handle
              sibling-proximity in @scope)

CSS Animations
--------------

  - RESOLVED: Include `overlay` property with values of `auto` and
              `none` to position-4 with a note about concerns over
              extensibility (Issue #8189: Entry and exit animations
              for top-layer elements)

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

  - RESOLVED: Elements within a display:none subtree have no parents
              that container queries can access (Issue #8197:
              Container queries within display:none are difficult to
              implement)
  - RESOLVED: Add a function for every container query unit that
              allows to reference a named container (Issue #7858:
              Reference named containers for cq units)
  - RESOLVED: Style queries can accept properties in boolean context;
              false if matches initial value, true otherwise (Issue
              #8127: Allow container query style features to evaluate
              in a boolean?)
  - It's unclear if the questions in issue #7875 (`overflow: auto`
      incompatible with size containment and container queries) are
      covered in the spec and need clarification or if there are
      changes to be made to handle contain-intrinsic-size.

CSS Color
---------

  - RESOLVED: Allow out-of-gamut HSL and HWB colors (Issue #8444:
              Allow out-of-gamut HSL/HWB colors (previously "Move
              gamut mapping to a future spec"))
  - RESOLVED: Change specification say browsers MUST use OKLab color
              interpolation for all colors, including legacy colors
              (Issue #7948: What if legacy colors *also* interpolated
              in Oklab by default?)

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

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

Present:
  Rossen Atanassov
  Tab Atkins
  David Baron
  Oriol Brufau
  Tantek Çelik
  Emilio Cobos Álvarez
  Yehonatan Daniv
  Elika Etemad
  Robert Flack
  Mason Freed
  Chris Harrelson
  Daniel Holbert
  Brian Kardell
  Chris Lilley
  Peter Linss
  Eric Meyer
  François Remy
  Khushal Sagar
  Alan Stearns
  Miriam Suzanne
  Bramus Van Damme
  Lea Verou

Chairs: Rossen & astearns

Scribe: emeyer

CSS Cascade
===========

Strong vs weak scoping proximity
--------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/6790

  miriam: With @scope, there are two features that help avoid large
          scoped things overriding smaller scoped things
  miriam: One of those is pretty strong, which is the ability to set
          lower boundaries
  miriam: The other is somewhat weaker, which is a heuristic priority
          for inner over outer
  miriam: We're calling that cascade proximity; question is whether
          that's more or less powerful that the specificity heuristic
  miriam: Proposal is to have it be weaker than, because we're trying
          to reduce specificity reliance
  miriam: When these two heuristics conflict, specificity is easier to
          change
  astearns: I suggested people provide arguments in favor of stronger,
            but all the comments in the issue argue for weaker
  astearns: Comments?
  <bramus> SGTM

  RESOLVED: Cascade proximity is weaker than specificity

Do we want to defer some or all of these scope extensions to level 7?
---------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8628

  miriam: Some tag-along features we can consider; all are useful,
          question is whether we should be trying to cover them now or
          defer to next spec level
  miriam: If we don't defer them, next on the agenda is a scope
          sibling feature
  miriam: This would be horizontal in the DOM
  miriam: A pretty straightforward thing to spec, we think, but it
          hasn't been specced
  miriam: The other is the scoped proximity combinators
  miriam: We have a little less sense when people would use this
          rather than @scope
  miriam: For @scope you're trying to target several elements in the
          DOM, and the at-rule does that neatly
  miriam: In a single selector, it gets more complex
  miriam: The real question is: defer, or no?
  <TabAtkins> +1 to deferring, they're all nice but none are necessary

  astearns: One concern with deferring is there may be feedback with
            current-level features that could modify
  astearns: If we're not considering these now, we may miss something
  miriam: It's hard to know if that's too cautious
  miriam: So far neither has caused major changes and will continue to
          be in our heads, but I dunno
  TabAtkins: My estimate is they shouldn't cause any problems, and
             should be forward-compatible
  astearns: Would it make sense to have a note about things we've
            explicitly deferred?
  miriam: Since one is partially-specced, it could be opening another
          spec

  bramus: I'm okay with deferring combinators due to complexity, but
          was wondering if we can have sibling scope in level 6
  <emilio> Implementation-wise they seem a bit trickier than
           descendant scopes fwiw
  <emilio> Because to change the descendant relationship you need to
           remove from the DOM but that's not true for siblings
  astearns: What use case are you concerned about with sibling
            proximity?
  bramus: So authors can style things like start and end dates on a
          calendar and also styles things between them
  miriam: Another example is to style everything between one header
          and the next header
  fantasai: Seems like those are use cases where you don't need scope
            proximity effect, you just want the flooring effect, yes?
  miriam: I think I've seen examples using both
  miriam: They achieve the same goal, but at different levels of
          explicitness and power

  astearns: Can we resolve on deferring the combinator?
  astearns: Proposing deferring 8380 with a note that it was deferred
            to next level

  RESOLVED: The combinator is deferred

Handle sibling-proximity in @scope
----------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7751

  bramus: In regular scope, we can walk down the DOM tree
  bramus: Suggestion here is to introduce sibling proximity where the
          lower boundary is a sibling of the upper boundary element
  bramus: Syntax would be the same as @scope rule; difference would be
          the at-rule would be @sibling-scope
  fantasai: With normal scoping, relationships are obvious, but here
            we're only doing following siblings, so should make that a
            little more obvious
  fantasai: Because we're only going forwards in the tree
  bramus: It's implied by the name, I think
  bramus: The end boundary element should be a following sibling of
          the start boundary element
  bramus: It could be you style all the siblings from a certain
          element down
  <lea> +1 to @scope-sibling over @sibling-scope for the reason
        fantasai mentioned
  <lea> also typing @scope would bring both up in autocomplete
  fantasai: I would go with @scope-siblings rather than @sibling-scope
            so they sort together
  bramus: Would it be @scope-sibling or @scope sibling?
  lea: I agree with Elika on the naming; they sort together, they
       autocomplete together

  astearns: Should we resolve on that?
  bramus: I'm fine with that
  astearns: We do tend to go with non-plural syntax for things, so
            @scope-sibling
  fantasai: The non-plural form reads weirdly
  astearns: Yeah, okay
  miriam: You are creating a scope of siblings
  florian: We do have precedent for a few plurals

  RESOLVED: The name will be @scope-siblings

  astearns: Anything else?
  miriam: I think we're hoping things will carry over from the other
          one
  bramus: There's another CSS cascade issue at the bottom of the list
  astearns: People have joined specifically for the animation issue,
            so I want to do that next

CSS Animations
==============

Entry and exit animations for top-layer elements
------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8189

  plinss: There was TAG discussion about popover, which turned into
          discussion about the top layer in general
  plinss: TAG is concerned about the overall design of the top layer
  plinss: It's done by monkey-patching CSS
  plinss: It should be defined by the CSS WG, but hasn't been getting
          a lot of love
  plinss: There's room for declaratively creating not just the top
          layer, but multiple layers
  plinss: I think it should be controlled entirely in the CSS layer
  plinss: Don't have a specific design, but the TAG feels it needs to
          be done

  TabAtkins: I've had this on my to-do list
  TabAtkins: To pull out painting order and do a spec about that
  TabAtkins: We have a resolution on file to put that into the
             position spec
  TabAtkins: Proper specification in CSS is on my task like
  TabAtkins: In terms of authors being able to create layers other
             than the top layer, completely agree
  TabAtkins: This has come up with anchor positioning
  TabAtkins: I definitely support authors being able to define
             additional layers you can move things into
  TabAtkins: In terms of making the top layer accessible, that's been
             discussed and there are significant concerns
  TabAtkins: Anything the UA is using the top layer for shouldn't be
             able to be covered up
  TabAtkins: That's a larger, separate conversation
  TabAtkins: Doesn't have to prevent letting authors insert layers
             between document and “top layer”
  plinss: I understand the security concerns
  plinss: We have precedence for letting the UA override author styles
          and should use similar mechanisms for the top layer
  plinss: While we should allow authors to create layers, the top
          layer should just be another layer, not something special
          and magic
  plinss: The magic can come from the UA stylesheet
  astearns: Please add a link to the proposal you referenced

  chrishtr: We're going to do the work to move the top layer stuff
            into the position spec
  chrishtr: Can we go back to the thing in 8189, which is adding
            transition control for developers entering and exiting top
            layer?
  <lea> how can we discuss entry/exit animations separately to whether
        there will be author control of top-layeredness? These are
        intrinsically related
  masonf: In general, I'm in support of moving into positioning spec
  masonf: I would be supportive of letting authors create a new top
          layer under the existing top layer
  masonf: Trying to do it with existing CSS in the existing top layer
          are difficult
  masonf: Like the top layer being an ordered set
  masonf: So I'd be against allowing direct control of the existing
          top layer
  plinss: I'm not arguing the change how the top layer now works, I
          just think it should be explained using CSS
  plinss: Such as exposing the ordering via CSS
  masonf: If that's possible, I'm in favor of it
  plinss: I think so
  plinss: It would also be great to fix all the z-index hackery that's
          been done since day one
  <lea> +1 to everything plinss is saying of course

  astearns: I'm hearing a lot of agreement and a stated plan to work
            on this in the position spec
  chrishtr: That would be the first step, yeah
  chrishtr: My proposal on 8189 is you can say transition and then a
            CSS property that refers to the top layer behavior, and
            then the usual transition delay
  chrishtr: So you could push transitioning things into the top layer
  chrishtr: My reading of issue commentary is that people are
            generally positive about the mechanism
  chrishtr: So if we're good and want to pick a name, I think overlay
            would be fine
  <masonf> +1 to `overlay`. `overlay-behavior` feels odd.
  fantasai: I like the idea of using the word overlay, but think
            overlay-behavior is a bit weird
  fantasai: I'm open to thoughts
  <bramus> +1 on just `overlay`
  <masonf> `overlay-index` ? That feels bad too.
  astearns: The analogy to z-index would make me wonder why there
            aren't integers allowed in the syntax

  fantasai: This should go into position-4, not -3
  chrishtr: Agreed
  astearns: I'm seeing more people in favor of `overlay` rather than
            `overlay-index`
  astearns: We could put it into position-4 and see what people say
  astearns: So we propose to include `overlay` property with values of
            `auto` and `none`
  <dbaron> (maybe some other name thoughts might be overlay-layer or
           overlay-level)
  plinss: I have concerns this could conflict with other things we
          might do very soon
  astearns: Amended proposal to include `overlay` property with values
            of `auto` and `none` to position-4 with a note about
            concerns over extensibility
  <masonf> +1

  RESOLVED: Include `overlay` property with values of `auto` and
            `none` to position-4 with a note about concerns over
            extensibility

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

Container queries within display:none are difficult to implement
----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8197

  oriol: Problem is that browsers tend to avoid computing style of
         elements inside a display:none subtree
  oriol: You can still force the computation with JS
  oriol: What should happen if one of these elements may have a
         container which is applying some rules conditionally, which
         may affect the computed style you get?
  oriol: Gets more complicated if ancestor is a container or not
  oriol: In Blink, I think this was easier to implement per spec since
         it has some caching and first computation is cached
  oriol: That way we know if ancestors are containers or not
  oriol: Firefox doesn't have this caching, so when it computes, the
         information isn't stored in the element
  oriol: emilio didn't think my patch to pass information around was
         the best
  oriol: Discussion agreed it was reasonable that an element in a
         display: none subtree should be treated as having no container
  oriol: This might not be good for style queries

  emilio: Some of this is complexity specific to Firefox, but in
          general, some of this is very messy and not very
          interoperable
  emilio: I'm not a fan of adding complexity here
  emilio: We do something similar where older browsers do transforms
          on display: none elements as none
  emilio: I'd rather do the easy-to-implement thing instead of having
          extra complexity
  emilio: I don't think it's particularly useful to check elements
          based on container queries when the container isn't there
  emilio: Any answer will be weird
  astearns: Is there a way of having elements escape a display: none
            ancestor using CSS?
  emilio: No, which is why browsers optimize them away
  astearns: Then I have no concerns

  astearns: Proposed resolution: elements within a display:none
            subtree have no parents that container queries can access
  emilio: The wording could be they have no query containers, though
          I'd like Rune to confirm this is fine
  emilio: We can resolve and seek comment after
  astearns: Anyone on the call want to wait for Rune's response?
  (silence)

  RESOLVED: Elements within a display:none subtree have no parents
            that container queries can access

Reference named containers for cq units
---------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7858

  miriam: There are two function proposal on this
  miriam: There's concern about using actual lengths in these functions
  miriam: Idea is to be able to query for a specific container
  miriam: Could query for container 10cqi and a container name
  miriam: Idea 1: a new function for each container unit
  miriam: Would take the argument of a container name
  miriam: Idea 2: Have a general container unit reference function
  miriam: Something like `container-unit(<unit>,<container-name>)`
  miriam: Could use this in calc() to do whatever math is needed
  miriam: This is a little bit bulky that would help authors clean
          this up a bit, but it's a good start
  miriam: I like the second idea; probably needs some bikeshedding on
          the name

  astearns: Anyone with opinions or dislikes?
  <TabAtkins> happy with either, honestly
  <TabAtkins> latter is verbose but the functionality makes sense
  emilio: There are units that don't make sense in a container
          function, right?
  miriam: Yeah
  fantasai: The only relevant units are font-relative and
            container-relative
  emilio: I'm not particularly opposed, but some of these seem like
          they could be handled differently
  emilio: This feels a bit weird
  emilio: I have a slight preference for the first option, but not
          strong

  fantasai: I like that the first idea is easier to type and is a
            straightforward extension of existing syntax
  TabAtkins: I agree with emilio that the general function is a little
             funky
  TabAtkins: We could make a cqem unit and corresponding function, so
             I think I'd be happier with dedicated functions
  TabAtkins: Plus a non-binding intent to always have a function that
             goes with any new CQ unit
  <emilio> +1

  astearns: I'm a little excited about the more vague function — why
            just units, why not custom properties?
  TabAtkins: That wouldn't be the container unit function which needs
             to be a math function
  fantasai: I think we should start where we can with this syntax
            which is easy to use and we'll want anyway, even if we
            have a more generic function. Also I think it would be
            nice if we could make it behave more like a unit...
  miriam: The custom units proposal would let you wire that up
  astearns: Sound like we're converging on idea one, where every unit
            gets a corresponding function
  <miriam> I will also open an issue for cqem

  RESOLVED: Add a function for every container query unit that allows
            to reference a named container

  <fantasai> cqi(<container-name>)
  <TabAtkins> right, it resolves to 1 of the corresponding unit

Allow container query style features to evaluate in a boolean?
--------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8127

  miriam: Container query style features can query custom properties,
          so the question is, can you query without the value to see
          if it has initial value
  miriam: Thus getting true or false back
  miriam: False if it's the default value, true if it's changed
  <fantasai> sgtm
  <fremy> +1
  <lea> +1 obvs

  dholbert: Would anything special be needed for Houdini registered
            properties?
  miriam: Yes, you'd be checking to see if it's the initial value, by
          default that would be the guaranteed-invalid value
  Rossen: Any questions or objections?
  (silence)

  RESOLVED: style queries can accept properties in boolean context;
            false if matches initial value, true otherwise

`overflow: auto` incompatible with size containment and container
    queries
-----------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7875

  oriol: We had a resolution but I'm not sure if that was the right
         solution
  oriol: Problem is that with overflow:auto, if the browser is using
         classical scrollbars, those take up space
  oriol: This can happen in two ways
  oriol: Browser may behave a bit different, if the element is sized
         intrinsically, the scrollbar size is added on top of content
         size
  oriol: If the size is explicit, then outer size of the element is
         preserved and scrollbars go inside
  oriol: We resolved the address the problem we don't want, having to
         check to see if ancestors have to change size
  oriol: We always want to stop at element with size containment
  oriol: So we resolved to have scrollbars shrink content size
  oriol: Question with this is, first, this addresses the auto case,
         but what about the overflow:scroll case?
  oriol: Second, even if we preserve outer size of the element, there
         are features that depend on content size, like container
         queries and contain-intrinsic-size:auto
  oriol: By letting auto scrollbars affect content size, we have
         instability with container queries and
         contain-intrinsic-size:auto
  oriol: Maybe it would be simpler to say that if an element has size
         containment or contain-intrinsic-size:auto, then
         overflow:auto would need to computer to overflow:scroll
  oriol: By forcing the element to consistently get scrollbars, we'd
         avoid problems, might not look as good
  oriol: Open to ideas, but finding a solution that covers all
         problems simultaneously is tricky

  florian: I think your suggestion of getting stable scrollbars does
           help
  florian: I support that
  florian: Maybe we could do indirection through scrollbar-gutter
           properties
  oriol: Those properties have the stable keyword, but I think it only
         affects on axis
  florian: Yeah, maybe that won't work
  florian: Containment is magic enough already; I think we could make
           it do strange things like this

  iank: I do worry about web compatibility
  iank: People throw overflow:auto on random elements
  iank: Also, the optimization mentioned in the spec is on a best-case
        scenario
  iank: You aren't required to use it for whatever reason
  florian: Ian, did you mean we should let the outer size with
           overflow:auto change and that regains consistency at the
           expense of optimization?
  iank: Want to think about it a little more, but I would be fine with
        that
  iank: It's a little bit of a hairy area

  miriam: Confused about the loop you mentioned of scrollbars getting
          added due to content
  miriam: That seems like the same loop we had to work through to get
          container queries at all, how is this new/different?
  oriol: You can make contents change size with container queries
  iank: This falls into the you-always-move-forward pool
  iank: We start assuming no scrollbars, then add if needed
  oriol: It's not like browsers are freezing, but if you start forcing
         things with JS or such, operations that should not affect
         things visually can change things
  oriol: I have some examples in the issue of things looking broken
  iank: To me, those examples are browser bugs
  oriol: Then we need to define the expected behavior
  miriam: I thought we did

  Rossen: Is it the case that when we start with no scrollbars, you
          can only add scrollbars in the normal case, excluding
          container queries?
  Rossen: Is the proposal to make changing the scrollbar state once
          per layout a defined behavior?
  oriol: Yeah, I want to avoid circularities
  oriol: Mia was saying we can already avoid them, so maybe I missed
         something
  oriol: Reading the specification, it seems there's a circularity
  oriol: Was proposing a way to keep the content from affecting the
         content size of the container
  oriol: If there's another solution that only take a look at size at
         one point and not others, that may be fine
  <miriam> note and example here discuss this exact example:
           https://www.w3.org/TR/css-contain-3/#containment-inline-size
  iank: We said you're performing a layout and engines will try to
        optimize, but can skip them
  iank: You start with no scrollbars, then add a scrollbar or two if
        needed, then finish
  iank: So you only add scrollbars during layout
  iank: It's tricky to get the optimization correct
  iank: This circularity can arise with regular content, so this isn't
        particularly new

  Rossen: Is there a clarification or solution we need to record here,
          or is there an added step that seems reasonable?
  miriam: Not sure; I think this is covered and I see this exact case
          mentioned in the spec, so I need to know what's unclear and
          in need of clarification
  oriol: Even if we use this approach on whether query styles apply or
         not, there's a problem with contain-intrinsic-size:auto which
         remembers the content size
  oriol: We have some inconsistency here, and I think the other cases
         are addressed in other ways, but I don't see this
         contain-intrinsic-size problem addressed
  miriam: It's likely we do need to clarify here
  Rossen: Let's take the conversation back to the issue and work out a
          solution there

CSS Color 4
===========

Allow out-of-gamut HSL/HWB colors (previously "Move gamut mapping to
    a future spec")
--------------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/8444

  chris: In the course of discussion about whether we should do gamut
         mapping, it turns out to be observable through script in one
         case
  chris: That's when you convert to HSL or HWB
  chris: That's not very helpful; worry is out-of-gamut colors could
         return unusual results when converting
  chris: Proposal is that colors should be round-tripped
  chris: You'll get weird HSL values but it's okay because that's what
         you asked for
  chris: HSL and HWB are lossy
  chris: I'm in favor of the proposal, but been waiting for
         implementor input

  Rossen: Any implementors here who want to provide input?
  emilio: I need to look more carefully
  Rossen: Are you opposed?
  emilio: Not particularly
  Rossen: This doesn't sound like it's raising an initial strong
          reaction
  emilio: I'd be fine resolving and I can come back if there's a
          problem
  chris: Proposal is to allow out-of-gamut HSL and HWB colors
  Rossen: Objections?
  (silence)

  RESOLVED: Allow out-of-gamut HSL and HWB colors

What if legacy colors *also* interpolated in Oklab by default?
--------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/7948

  chris: For non-legacy colors, implementation should interpolate in
         oklab
  chris: The spec says implementations MAY interpolate in sRGB if all
         the colors are legacy colors
  chris: Lea raised, why not make them all do it in oklab?
  chris: We did some tests, and for some colors there's a big
         difference
  lea: I think it's an obvious improvement in every color pair we tried
  lea: There is precedent for doing this in places like
       text-decoration-skip
  lea: It makes for an easier rule to learn and remember
  lea: oklab produces better gradients
  lea: The only problem I could think of is color pickers
  lea: I can't remember the proposed solution to this
  lea: The Chrome team has said they're kind of apprehensive because
       they tried to do linear RGB and there were problems
  lea: This isn't the same because linear RGB isn't perceptually
       uniform
  chris: In Chrome, the colors are stored in pre-multiplied linear RGB
  chris: I wanted to know whether they said they can't change because
         of that trial, or because of the proposal
  lea: I heard from someone on Chrome team they tried linear RGB and
       had poor results
  chris: As expected

  bramus: I don't think anyone here can address this directly, but
          I'll poke the correct people for a response
  <fremy> I would note that there might be images associated to the
          gradients
  Rossen: In absence of that, is there a resolution you want to take
          here that will ideally be something that would work?
  lea: Are there any objections to this, involving actual cases where
       this would be worse?

  emilio: Does this only affect gradients, or does it also affect
          animation?
  lea: That's up to us; I believe it's currently about gradients only
  emilio: Applying to animations would be trickier because it affects
          computed styles
  <TabAtkins> yeah I'd be relatively bothered by interpolation and
              gradients not working the same
  chris: The spec is about interpolation, so it would apply to
         everything
  emilio: That's a bit trickier, but it might work
  emilio: I'd be surprised if there are no pages that rely on this,
          but it might be a better default
  chris: Although it's true a gradient defined as a gradient is
         better, I'm concerned we'll get “why is my page lighter?”
  emilio: It's good to change the default consistently
  emilio: I agree it's a better default, but compat is a concern
  emilio: Gradients would be better regardless, I think
  emilio: Changing the default for everything is probably worth a try

  <ydaniv> what about filters?
  <lea> ydaniv: filters are defined entirely differently, they don't
        use interpolation

  lea: I want to clarify that making this the default doesn't make it
       mandatory
  lea: There's a way to specify the interpolation space for gradients,
       and will be able to apply to other things
  lea: So there's an escape hatch
  chris: This comes down to, is this an opt-in or an opt-out?
  chris: For unmaintained pages, what happens?
  Rossen: opt-in would be safer, yes?
  chris: I agree

  plinss: The issue of a page becoming lighter isn't a big deal except
          in cases where CSS color needs to match image color
  plinss: Want to be sure we're taking that into consideration
  <fantasai> +1 from me to plinss's point, that it's important for the
             endpoints and not so much for the middle

  bramus: I vote for opt-in; authors will be surprised if colors change
  Rossen: +1 from me
  Rossen: colors can often be a branding issue

  lea: This reminded me, we have a more relevant precedent where we
       changed to interpret legacy CSS colors in sRGB, so what what
       red meant changed (for example)
  lea: That's a much bigger change than what we're discussing here
  lea: only midpoints in a transition will change
  <TabAtkins> color management only affected people with good screens,
              though
  fantasai: I support Lea's proposal; I think midpoint changes will be
            an improvement
  fantasai: There's a lot of shift in colors depending on monitor
            calibration etc.
  <florian> +1
  <miriam> +1

  Rossen: So do we make this opt-in, something we can drop later, or
          make it opt-out?
  lea: Opt-in basically means no change
  fantasai: I think we should change the default for the web to be the
            better interpolation
  lea: Current language is that browsers MAY do this; proposal is to
       change this to MUST ...or at least SHOULD?
  Rossen: Or maybe SHOULD
  lea: Also resolutions are not binding, we can always reverse if
       investigations reveal it's a bad idea
  florian: I'm not sure what we gain with a SHOULD
  florian: If we have a good reason not to do something, we should
           roll this back
  florian: I think MUST is appropriate
  lea: Maybe SHOULD is better for low-powered devices where oklab
       computation is harder than calculating the RGB values on hand
  plinss: I would argue devices like that probably won't support this
          sort of thing

  Rossen: Objections to using MUST on using oklab?
  <astearns> +1 to MUST
  <fantasai> +1 to requiring OKLab interpolation
  (silence)

  RESOLVED: change specification say browsers MUST use OKLab color
            interpolation for all colors, including legacy colors

Received on Saturday, 25 March 2023 20:02:58 UTC