Minutes Telecon 2018-07-18 [css-fonts-4] [css-display] [cssom-1] [css-overflow] [css-text]

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


Fonts 4
-------

  - RESOLVED: Add Chris Lilley as editor to fonts 4

CSS Display
-----------

  - RESOLVED: Keep it that blockification and establishing formatting
              context are independent (Issue #2673)
  - As a part of the discussion for issue #2673 it was raised that
      part of the reason blockification and establishing a formatting
      context were requested to be linked is the earlier resolution to
      make inline flow-root and inline block the same. Over the next
      week people will re-look at that decision (
https://github.com/w3c/csswg-drafts/issues/1246 )
      and re-open it if necessary.
  - Unless there is a new issue opened, next week there will be a CR
      publication request.

CSSOM
-----

  - RESOLVED: Have the PR https://github.com/w3c/csswg-drafts/pull/2924
              as the start of a set of constraints with Gecko
              algorithm as an example in a note

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

  - RESOLVED: Keep current definition such that we could all lines in
              overflow:clip descendant (Issue #2421)

CSS Text
--------

  - RESOLVED: Handle percent text-indent in intrinsic size box same as
              percent in padding and margin (Issue #1597)
  - RESOLVED: Defer this issue (#2390: Implement or unship
              word-break:break-word) for now [to Level 4]

===== FULL MINUTES BELOW ======

Agenda: https://lists.w3.org/Archives/Public/www-style/2018Jul/0014.html

Present:
  Rossen Atanasso
  Tab Atkins
  David Baron
  Garrett Berg
  Oriol Brufau (IRC Only)
  Tantek Çelik
  Emilio Cobos Álvarez
  Dave Cramer
  Tony Graham
  Dael Jackson
  Brian Kardell
  Brad Kemper
  Peter Linss
  Thierry Michel
  Anton Prowse
  Liam Quin
  Manuel Rego Casasnovas
  Florian Rivoal
  Jen Simmons
  Alan Stearns

Regrets:
  Rachel Andrew
  Benjamin De Cock
  Chris Harrelson
  Chris Lilley
  Michael Miller
  Melanie Richards
  Lea Verou
  Greg Whitworth

Scribe: dael

Fonts 4
=======

  astearns: Let's start
  astearns: Does anyone have any last minute changes/additions?
  fantasai: Resolution for chrisl to be editor of fonts 4? Editing
            fonts 3 and not fonts 4 seems like an oversight
  astearns: We didn't get one, but I'm happy to now. Is myles on?
  <myles> yes
  astearns: myles is this okay with you?
  myles: Yes

  RESOLVED: Add Chris Lilley as editor to fonts 4

  astearns: I believe that's in the draft already so it's now official

CSS Display
===========

Blockifications should establish BFC in block containers
--------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/2673

  TabAtkins: Oriol has been asking for if blockification should auto
             establish bfc rather then occasionally explicit. fantasai
             and I disagreeing because they don't happen every time
  TabAtkins: If anyone disagrees and things blockification should auto
             be a BFC, great let's talk. If not looking for resolution
             of support

  Rossen: You saying that blocification doens't force BFC?
  TabAtkins: Not intrinsically.
  Rossen: Example?
  TabAtkins: Have to look.
  TabAtkins: Any time we blockify and inline-block does not cause it
             to become a FC it just goes to block
  fantasai: That's true in that it does not change the display
            computation. That's required by backwards compat.
  fantasai: We could change to not change display and also make it a
            formatting context. We do that for float abspos and others
  fantasai: Right now when we do blockification in cases where new
            element will establish new FC anyway. If we apply
            blockification in flow blocks I don't think we'd want new
            FC. Grid items currently blockify and a subgrid isn't a
            new FC
  Rossen: does subgrid blockify?
  fantasai: If we did we'd need an exception. It has to blockify
            because if it's an inline grid it becomes not an inline.
            When it's a grid item...if you have an item inside a grid
            that element is blockified. Blockification if it says
            display inline it becomes block. inline-table become
            block, inline-grid becomes block. But a subgrid isn't a
            new FC because it intertwines with grid outside. Can't say
            it's a new FC, but it is blockified
  fantasai: I don't think we can tie these two concepts together.
            block makes it a block. They almost always coincide but I
            don't think the concepts are intrinsically bound and
            shouldn't be tied in spec
  * emilio agrees with fantasai
  florian: Exception of subgrid this is an editorial twist as to if
           you describe separately or together. So it's editorial.
  <Oriol> But I think a BFC is desired if you have `display: inline
          flow-root`. CSS DIsplay says it becomes `flock flow`, and a
          future feature might blockify without forcing BFC. Then the
          flow-rootness will be lost

  dbaron: I think one other point in the issue from Oriol. I think
          Oriol trying to put in IRC too
  dbaron: Current blockification remove flow-root nature. If
          blockification always makes things FC it's fine. If it
          doesn't then maybe blockification rules need to be fixed so
          if you say flow-root you don't lose that
  fantasai: So far cases where lose flow-root is converting inline
            flow-root or a run-in flow-root. In case of inline-block
            we can't change how display is computed due to backwards
            compat.
  fantasai: Every other case where flow-root is blockified it
            establishes a new FC anyway.
  fantasai: We're flowing it, we're abspos it, putting it in a grid or
            flexbox. These are cases where element that is a block
            container it establishes a new FC
  dbaron: So in subgrid it's not possible to be a new FC?
  fantasai: Matter of terminology, but fundamental idea of a new FC is
            there's no intertwining between new and old FC. If there's
            info passed through the boundaries when you do something
            like whitespace collapsing it's porous. Same is true for
            display:block, margins collapse through boundary. The
            contents inside and outside participate
  fantasai: New FC creates a barrier without that bleedthrough. The
            justification and alignment doesn't pass through the
            inline-block boundary. Same as a block element with new FC.
  fantasai: For a grid, if you nest a grid inside a grid same thing
            applies. No interactions between grid tracks inside a
            nested grid. Subgrid you do have negotiation between inner
            subgrid context and outer parents and siblings. They
            participate together in sizing algo
  fantasai: The size declarations and names of lines on parent pass to
            subgrid. There is fundamental bleeding through of the
            content and the layout calc. To say it's a new FC doesn't
            make sense.
  dbaron: Makes sense to me. Some point earlier I thought you said
          that...something about how these were still block formatting
          context.
  fantasai: Grid items are considered grid level, not block. They
            participate in grid FC. But there is blockificaiton
            process that changes display values to make them
            block-like. We convert anything with a non-block outer
            display to a block
  dbaron: And one of the blockified things can be a subgrid?
  fantasai: You run blockification on every grid item. You run it
            through blockification Might be a no-op, but you run
            through.
  fantasai: Was we decided to do subgrid with a new type the
            display-type of a subgrid needs to be declared. If you say
            grid or inline grid doesn't really matter.
  fantasai: Blockification process turns inline on subgrid to grid.
  dbaron: I worried you said display: block could be subgrid
  fantasai: No, you can't
  florian: Blockification is really dis-inline-ification
  fantasai: In a sense. We have outer display type which says how your
            behavior is when in flow layout. Outside of flow layout
            distinction between inline and block has no meaning and is
            ignored. Each display value corresponds to a state.
  fantasai: If I take subgrid and put it in a bfc it will not behave
            as subgrid, but it'll be the fallback behavior.
  <TabAtkins> Core point tho: grid items are blockified, subgrids are
              grid items (by definition) but aren't FCs (by
              definition), so blockification *cannot* imply
              FCification in general.
  fantasai: Whether declared inline or block grid it'll make a
            difference in participation once in block container

  astearns: Back to original issue: We have a choice of keeping things
            as we are where blockification and formatting context are
            discussed separate. Or we changes that blockification
            implies a FC but it can be overwritten in places like
            subgrid
  astearns: Argument that 2 things are separate is compelling to me
            because having both explicit sounds easier to comprehend.
            I like that it's explicit
  astearns: Argument to tie together is that there may be situations
            in the future where we might forget about forcing FC in
            blockification case where we need it to happen. Benefit
            for the explicit call outweighs danger of forgetting to
            make that call in the future.
  <florian> since this makes no behavior difference, this is
            editorial, and I like to leave it up to the editors to
            describe it the way they want. That helps the whole prose
            be coherent
  <AmeliaBR> Is there any consequence of blockification that *is*
             necessary for subgrid? Or can it just be that "grid-items
             are blockified (and create a formatting context),
             *except* for those with `display: subgrid`"?
  <fantasai> AmeliaBR, inline-grid needs to be converted to grid
  <fantasai> ('display' value)
  dbaron: Blockification without FCification doesn't work in a block
          context. In grid it's fine, but in block context it removes
          the things that are supposed to be FC. I think that's a
          piece Oriol doesn't like. Maybe it's that we never will use
          and so it's okay. Might be worth noting.
  astearns: Make sense to call that out in all current cases you need
            the 2 in a block context
  <Oriol> Yes, the problem is with flow layout
  <fantasai> dbaron, I missed exactly the sense of what you said, and
             the first sentence of the minutes doesn't make sense...
  * dbaron thinks the minutes are right
  <fantasai> ... ok, I think I understand. Disagree somewhat, though.
  <myles> are we discussing a behavior change, or just wording in the
          spec?
  <astearns> myles just wording, afaik

  Rossen: fwiw, from impl experience we've had this model inside our
          engine since IE9. During style computation we independently
          decide inner layout type, outside layout placement (where
          you will be placed), and 2 auxiliary ones, based on the
          layout placement and type we compute if you're a BFC and if
          you require a stacking context.
  Rossen: What I can tell you is they're all independent. But I don't
          see why we should unless from inline-block PoV we have to.

  fantasai: Address point from Oriol and dbaron where if you happen to
            use blockification for block level items
            question...example is an inline-block when blockifies
            turns into display:block which is porous. Argument is
            inline-block should be a block flow-root and a new FC. Not
            convinced of that being the expectation.
  fantasai: I think that's part of why it's not in CSS
            2.1...distinction between block, block layout, and bfc is
            not huge. inline-block vs a block do form a pair.
  fantasai: Formatting context establishment is a side effect because
            they just want this as a block to be a FC, not something
            they specifically needed.
  <Oriol> I think it may be OK if inline-block doesn't become a
          flow-root, but if you explicitly specify flow-root, you
          shouldn't lose it
  fantasai: I'm not sure what you would expect, but becoming
            display:block isn't necessarily unexpected. If you said
            inline flow-root it's clear you wanted that but we're
            getting into fiddly cases and we decided inline-block and
            flow-root are identical
  dbaron: I think this is a negative side effect of that. Prob fine
          for inline-block, but weird if flow-root.

  dbaron: I think I'm okay just concluding here
  astearns: And close no change dbaron ?
  dbaron: I think no change and a note pointing out that it isn't
          great if if you do blockification without FC and people used
          flow-root explicitly
  astearns: Need to ask Oriol if he's okay closing with a note.
  <Oriol> OK, but note that if a future feature allows blockification
          without BFC, then it will be more difficult to change
  astearns: And would anyone else objects to resolve no change except
            adding a note
  fantasai: 3 ways forward, to be clear.
  fantasai: 1) close no change FC and blockification are independent
  fantasai: 2) blockification implies FCificiation so inline-block
            converts to block flow-root and we will need an exception
            for subgrid
  fantasai: 3) revert resolution where we said inline-block and inline
            flow are identical and say they're independent and have
            same behavior except if you blockify.
  fantasai: That lets you when you blockify inline flow-root it
            becomes display: flow-root
  <dbaron> I'd be fine with (3) based on this discussion but I don't
           know why we made that resolution to begin with.
  astearns: We're 30 minutes on this issue. My preference would be
            close no change and raise a new issue on inline-block and
            inline flow-root
  fantasai: We had an issue and resolved on the current. Only reason
            to re-open is if people want option 3 which gets you
            independence for blockification and FCification but also
            clarifies the inline flow-root.
  astearns: Reopening that with this in mind makes sense and doesn't
            change how we'd resolve here.
  fantasai: Fair enough

  astearns: I'd like to close this.
  astearns: Let's resolve that blockification and establishing FC are
            independent and we will add a note on the flow-root issue
            which can become a github issue to change our previous
            decision
  <Oriol> Works for me
  fantasai: This is last open issue before CR so we need to open the
            issue or go to CR
  astearns: Objections to keep blockification and establishing FC are
            independent

  RESOLVED: Keep it that blockification and establishing FC are
            independent

  astearns: Anyone think we should take up an issue about inline-block
            and inline flow-root?
  florian: Rather not
  dbaron: Don't know context of original decision so hard to know
  <fantasai> dbaron, discussion at
https://github.com/w3c/csswg-drafts/issues/1246
  astearns: Let's leave at that this week. Those in the discussion
            please decide if open new issue.

  Rossen: Should we resolve on to CR?
  astearns: Let's give another week and go to CR next week.

CSSOM
=====

Replace steps of set a CSS declaration with some constraints
------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/pull/2924

  emilio: Issue is that the latest resolution on how set property
          behaved: it always appends to end of declaration so it's
          sane with logical prop. It's a nightmare of webcompat and
          perf for Gecko and Blink
  emilio: We turned it off in Gecko and backed out in Blink. xidorn
          had this proposal to let a set of properties in a logical
          group and in a UA dependent way that's in same logical group
          it need to appear after so setProperty behaves correct
  emilio: I think frremy...what xidorn did in gecko which we haven't
          landed is that if you get to the case where a prop and
          there's another from the group that defers we append the new
          prop
  emilio: xidorn proposes to define in terms of constraints which I'm
          okay, but prefer define properly. Only reason not to do is
          proposal from frremy. We need to decide if we're fine
          resolving like this or if fine to say it's constraints and
          UA can do what they want or define algorithm in spec

  frremy: From what I recall my proposal was pretty in line with
          constraints. I'm fine with them as defined. Good to have UA
          experiment. If it's fine we can refine further. Fine to go
          with xidorn proposal for now. It makes a lot of sense.
  emilio: Okay
  astearns: I agree, emilio. It's good to have things properly defined
            once we have impl experience and can determine the
            constraints. Happy starting with the PR and adding

  emilio: People fine with gecko algorithm as an example?
  florian: Sounds okay
  astearns: As a note?
  emilio: Pretty much.
  astearns: Objections to having the PR
https://github.com/w3c/csswg-drafts/pull/2924
            as the start of a set of constraints with gecko algo as an
            example in a note?
  frremy: Sounds good

  RESOLVED: Have the PR https://github.com/w3c/csswg-drafts/pull/2924
            as the start of a set of constraints with Gecko algorithm
            as an example in a note

  astearns: Anything else on this?

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

How does max-lines interact with hidden content?
------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/2421

  florian: This started much broader and we're almost done. Just a
           corner case we haven't decided explicitly.
  florian: The broad topic is which lines do we count when we have
           max-lines and a decedent or BFCs or a child also with
           max-lines. We resolved we skip when you nest max-lines.
           Resolved for most of overflow. Remaining bit is
           overflow:clip
  florian: overflow:clip is not a BFC so it implies you could the
           lines inline overflow:clip. I think close this with no more
           changes needed.

  Rossen: Is the issue different if overflow:clip is applied to
          max-lines container?
  florian: This is on descendant
  Rossen: How is it different then when on max-line container?
  florian: On container it doesn't do anything special and overflow
           not terribly relevant.
  Rossen: But then you can extract same thing happens with child.
  florian: So you're okay no change?
  Rossen: Yes
  astearns: We could lines in descendant with overflow:clip, but only
            not overflowing?
  florian: Count all the lines
  Rossen: Overflow:clip doesn't effect count of lines
  florian: Right
  astearns: Gotcha

  astearns: Objections to keep current definition such that we could
            all lines in overflow:clip descendant?
  fantasai: I think this is correct. Might be initially confusing but
            it's the right model

  RESOLVED: Keep current definition such that we could all lines in
            overflow:clip descendant

CSS Text
========

Percentage of 'text-indent' against intrinsically sized box?
------------------------------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/1597

  florian: Had previous discussion about text-indent and % and we
           resolved which element to resolve % against. Not that
           discussion. This is what do we do when intrinsic sizing. If
           indent grows the size and depends on the size we've got a
           loop
  florian: I think we got close to consensus but ran out of time. I
           remember that no one had a use case for % text-indent on an
           intrinsic size thing so easiest is to say % resolves to 0
           and there's no loop.
  florian: Alt is min-content. That works for me too. I don't think
           this is use case driven.
  florian: Only thing to push us toward not-0 is people might want
           large negative % to hide stuff. Dunno if done much with
           text-indent. So I'd go with 0, but min-content is okay
  <Rossen> +1 to 0-
  <fantasai> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cdiv%20style%3D%22float%3A%20left%3B%20border%3A%20solid%3B%20text-indent%3A%2050%25%22%3EThis%20is%20a%20test

  dbaron: I think normal thing in these cases is we resolve to 0
          during intrinsic-width computation and then resolve width
          during layout. Is that what you mean with 0?
  dbaron: I think that's how we treat % padding and % margin.
  <Rossen> what David said ^
  florian: I think that's fine

  astearns: Prop: Handle % text-indent in intrinsic size box same as %
            in padding and margin
  Rossen: This is current behavior as well, we resolve % against
          containing block so we can't resolve them during intrinsic
          sizing.
  astearns: Other opinions?
  <dbaron> (I think this is also what Mats was asking for in the
           issue.)
  <tantek> what Rossen said
  astearns: Obj?

  RESOLVED: Handle % text-indent in intrinsic size box same as % in
            padding and margin

  fantasai: % padding and margin on a child of the element
  dbaron: I think it's the same as on that element
  fantasai: No if you set explicit width resolves correct
  Rossen: Not really. Element is being intrinsically size. That's the
          same so text-indent can't resolve just like you can't do
          min-width etc.
  fantasai: But when you do resolve it's the size of the element, not
            the size of the parent. Which is different then margins
            and padding which look at parent
  Rossen: Don't see how child comes into play. But let's move on.
          We're on same page

Implement or unship word-break:break-word
-----------------------------------------
  github: https://github.com/w3c/csswg-drafts/issues/2390

  fantasai: I think it's that we have issue open about adding
            non-standard word-break:break-word to CSS. Not
            word-break:break-all. This allows you to wrap if you run
            out of room. Should have a property with same behavior
            where word-wrap:break-word effects intrinsic size of
            element
  <tantek> can we get intent to unship by whoever supports it if it's
           not a compat problem?
  fantasai: We were asked to add new value word-break:break-word for
            web compat and we pushed back because it's confusing. We
            said we'd add value if FF and Edge found themselves
            compelled for web compat to impl. They have not so far. To
            not go down that path we made word-wrap:break-word have
            the same behavior that they would have gotten from
            word-break:break-word
  * myles is not following
  <tantek> myles does Safari/Webkit support word-break:break-word? And
           if so, can you unship?
  fantasai: I recommend close no change for the moment. If our
            attempts to stem the webcompat problem is not successful
            we'll assume Edge or FF will file an issue saying we need
            this.

  astearns: tantek asked on IRC [reads]
  fantasai: For the moment I don't think we should ask. We should give
            time for impl to catch up with word-wrap:break-word
            behavior change so authors can use that in place of
            word-break:break-word
  fantasai: I think we need to give a year or 2 before we ask blink
            and webkit to unship so the web can adapt to standards
            compliant way.
  florian: Also a chance this transition will be less painful since in
           browsers that don't have it, the least bad fallback is to
           use the property we recommend.
  florian: But we can't unship until we ship alternative.
  <emilio> Gecko just implemented, fwiw
  <dbaron> emilio, implemented what?
  <tantek> emilio: oh well, sounds like we're screwed then
  <fantasai> dbaron, https://bugzilla.mozilla.org/show_bug.cgi?id=1472386
  <emilio> tantek: dbaron: The new behavior, I mean, sorry:
           https://bugzilla.mozilla.org/show_bug.cgi?id=1472386

  tantek: I wanted to comment that the process that we should wait on
          compat is orthogonal because compat has nothing to do with
          what authors want. Compat is are we screwed by what's in the
          past. If we're screwed waiting won't change it. If we're not
          waiting can make it worse. If you're serious about dropping
          you need to do it asap regardless of if the authors have an
          equivalent feature. You won't avoid compat in the future by
          introducing a future feature. The reasoning is poor
  <astearns> +1 to tantek
  florian: We're inbetween. This is sufficiently used...
  tantek: Is it on the record? I want blink and webkit to say here's
          why we can't unship. Let's not presume unshippability
  florian: I think we have it. Need to find it
  frremy: It was discussed at a F2F and Google said won't unship.
  tantek: Do we have a % number to justify not unshipping?
  frremy: I think they did.
  tantek: If they did did they give us a % for if it drop below
          they'll unship? That's what we need for this to be numbers
          based
  <Rossen> +1 to tantek
  fantasai: Blink contacted site owners asking them to change. Site
            owners didn't want to change because they needed specific
            property behavior. We need time for that.
  <tantek> emilio can you link the FF impl bug or FF intent to ship?
  <emilio> tantek: https://bugzilla.mozilla.org/show_bug.cgi?id=1472386
  fantasai: florian was saying that we're in-between. Usage is not
            high enough that Edge and FF need to impl, but too high
            for chrome and blink to unship. Gecko has implemented new
            property behavior and not non-standard thing
  fantasai: We need to wait for that change to deploy across browsers
            so site authors will change and then reduce web compat
            impact and then let them unship
  <fantasai> https://github.com/w3c/csswg-drafts/issues/2390#issuecomment-380422690
  <tantek> where is the commitment to implement the new property/value
           behavior from others?
  <tantek> is FF the only implementation?

  astearns: We're overtime. Whether or not we can get unship for
            non-standard...Well, this issue is impl or unship so I
            think we can resolve not to add non-standard property but
            unship question is in the air.
  fantasai: My recommendation is we close or defer this issue so it's
            not sitting
  tantek: Let's defer
  frremy: Defer to next level. I like this
  florian: Defer good
  astearns: Objection to defer this issue for now?

  RESOLVED: defer this issue for now

Received on Thursday, 19 July 2018 09:02:13 UTC