<Rossen_> uber driver got is in the wrong city :/ running late...
<Rossen_> Alan, if you're already there please kick off the meetings
<astearns> room is still only half-full
<myles> jdaggett seems to be having connection issues :(
<dbaron> FWIW, I will probably miss significant parts of (a) this morning and (b) Tuesday after 15:00
<astearns> tables first
<astearns> trackbot, start meeting
<frremy> francois remy, microsoft
<gregwhitworth> Greg Whitworth, Microsoft
<birtles> Brian Birtles, Mozilla
<dino> Dean Jackson, Apple
<myles> Myles C. Maxfield, Apple
<dauwhe> Dave Cramer, Hachette
<andrey-rybka> Andrey Rybka, Bloomberg
<jihye> Jihye Hong, LG Electronics
<astearns> Alan Stearns, Adobe
<dbaron> L. David Baron, Mozilla
<ChrisL> Chris Lilley, W3C
<shane> Shane Stephens, Google
<fantasai> fantasai / Elika J Etemad, Invited Expert
<jet> Jet Villegas, Mozilla
<zcorpan> Simon Pieters, Opera
<SimonSapin> Simon Sapin, Mozilla
<gsnedders> Geoffrey Sneddon, Invited Expert
<surma> Surma, Google
<markw> Mark Watson, Netflix
<shane> scribenick: shane
gregwhitworth: I'll start off with an easy one
<rego> Manuel Rego, Igalia
<glazou> Daniel Glazman, Disruptive Innovations
gregwhitworth: one thing that
covers all the table discussions - we're going for interop,
nothing new, fancy, or that makes sense
... except when there's absolutely no interop
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/497
gregwhitworth: there we have some
new ideas we'd like to discuss
... this one is pretty straightforwards
... caption-side property for left or right. Moz implements but
nobody else does. It's useful but would like to push to next
level
fantasai: should copy the note from CSS2.1
dbaron: this was in CSS2.0
... so it's effectively already been published as at least
CR
<Bert> Bert Bos, W3C
<leaverou> Lea Verou, Invited Expert
gregwhitworth: OK that's fine. I just don't want to go through speccing
<Rossen_> Rossen Atanassov, Microsoft
fantasai: note from 2.1 doesn't cover left and right. Need to add left and right to that.
gregwhitworth: are you steadfast in keeping?
zcorpan: is anyone else going to implement?
fantasai: more important with writing modes
<rbyers> Rick Byers, Google
dbaron: want to keep unless we
remove table captions completely
... they're a disastrous feature but these values mitigate
<pal> Pierre-Anthony Lemieux, supported by MovieLabs
<skk> Hiroshi Sakakibara, BPS
Florian: when we throw in vertical writing modes and logical names do we need to have them?
gregwhitworth: with tables don't
*need* to have anything
... does anyone else plan to implement?
[ a resounding *no* ]
???: be careful with anything you do wrt accessibility - captions are the unofficial accessible label for tables.
s///jcraig/jcraig/
<fantasai> actually it was resounding silence
RESOLUTION: keep note from CSS2.1 for caption-side, add left & right values to note, move side captions to next level
<skhrshin> Shintaro Sakahara, BPS
frremy: next issue is about collapsible whitespace.
<jcraig> s/be careful with anything you do wrt accessibility - captions are the unofficial accessible label for captions./be cautious how you announce any property changes with anything related to accessibility - caption is the official accessible labeling element for tables./
frremy: during table fixup,
collapsible whitespace is mostly removed per-spec. There is a
difference in the way browsers do this.
... firefox matches CSS2.1 accurately.
... Chrome (& webkit?) have simplistic behavior - just drop
it
... so issue is if you have a table row element that contains
another table row
... this is invalid markup but there's a fixup
... rules for collapsing whitespace are very specific - should
not collapse because there's some table elements being inserted
inside
... but tricky because the elements haven't been inserted
yet
... proposal is just use display type of boxes to decide
whether to collapse whitespace or not
... reasons: (1) easier to implement. (2) mostly doesn't have
any difference.
... only has visible impact if you specify whitespace:
???
... by default parser will fix up your markup for you but if
you directly insert elements into the DOM that won't happen
dbaron: are you saying to change the spec from matching gecko to matching edge?
frremy: no we are going to match
gecko
... in edge we do fixup, then go back and add spaces to match
specified behavior
... we would like Chrome to get interop as well
eae: that makes a lot of sense to us
frremy: so basically saying that we're going to do whitespace collapse *before* the fixup that inserts elements, not after
<Rossen> glazou, many
<gregwhitworth> Proposed resolution: Anonymous inline boxes which contain only white space, are the first and/or last child of a tabular container, and whose immediate sibling (if any) is a table-non-root box, are treated as if they had display: none.
fantasai: if there's a change from 2.1 then you need to fix 2.1 as well
Florian: but you haven't found a valid use case for nested tables with whitespace pre
astearns: does anyone object to this proposal? No? Resolved.
RESOLUTION: Anonymous inline boxes which contain only white space, are the first and/or last child of a tabular container, and whose immediate sibling (if any) is a table-non-root box, are treated as if they had display: none.
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/466
gregwhitworth: the next one may
not need a resolution
... we rewrote fixup because it was horrible. Need a PhD in
mathematics. I drove myself mad.
... we rewrote to be more concise, shouldn't change behavior.
Could the people who wrote it please confirm? Would like a
resolution to accept the new text.
<takamasa_> takamasa,BPS present+
dbaron: I would like bz to review
fantasai: add a note that says if there's any differences from 2.1 then there's an error that needs to be reported
RESOLUTION: gecko to review, then add note to new text and accept
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/469
gregwhitworth: next. What CSS is
applicable to table-track & table-track-grouping
elements?
... everyone does this differently. Want to concentrate on what
properties are whitelisted
dbaron: for width & height -
those only work in the appropriate dimension, right?
... position: relative is weird. There are three different
things that position: relative does. Different browsers support
different combos. (1) establishes containing block for abspos
descendants. (2) moves the thing. (3) messes with z-index
ordering
... the containing block one is interoperable (I think)
<gregwhitworth> https://jsfiddle.net/5um10zts/
gregwhitworth: don't want to get too hung up on that. Not only test case.
fantasai: blink most recently
rewrote backgrounds impl. Will render much closer to gecko post
this.
... not opposed to having a whitelist on tables.
... each individual property should be considered
TabAtkins: I'm kinda against a whitelist, other than for layout properties. Why don't the rest of the properties just work?
dbaron: one of the issues there
is the way table backgrounds & borders interact with
stuff
... in some ways can be addressed by defining the way
backgrounds & borders work more precisely
... e.g. sometimes border mightn't apply to row's own
background
frremy: want to whitelist for now
to let these things stabilize.
... better to start from a small subset
TabAtkins: but the definitions should just pop out of whatever's been written
<dbaron> I agree with Tab.
Florian: regardless of the color of the list, people are just going to rely on what works
gregwhitworth: not leaving anything undefined. That's the point
<fantasai> +1 to Florian
Florian: yeah but you can't rely on expanding a set later, because people will just rely on it not working
TabAtkins: just a whitelist - OK.
But opposite of that is "these properties are banned and
guaranteed not to work"
... probably not going to do that.
... instead should make sure everything is defined properly,
then we can just allow any non-layout properties without doing
anything special
frremy: do we actually want to be able to do this? We'll need to change implementations
TabAtkins: will need to change impls anyway at some point
Florian: if you want to leave it undefined at this level, that's OK. But can't write down that 'it should not work' because will need to change impls, then can't make it work later.
gregwhitworth: ok we have an action from the group. Describe a new paint model.
frremy: next issue. Captions in
CSS2.1 inside tables
... are ???
... gecko does it, but that's the only browser that works this
way
fantasai: what do you mean by inside the table
<zcorpan> <table><caption>
frremy: if you have a caption inside a table (in markup)
<frremy> https://github.com/w3c/csswg-drafts/issues/471
gregwhitworth: please look at
issue
... if you have a table, with a div on top of the table
... in gecko, it's acting as if it's a block box outside of the
table
... everyone else sizes it along with the table
frremy: gecko is laying out
caption as if table did not exist
... CSS2.1 resolved that width of table should increase to
match caption
... makes no sense if both depend on each other
... better to just specify that caption is being laid out as
child of table
fantasai: can't do that. If there's a border, caption is not inside that.
frremy: position absolute elements can be outside border area
fantasai: but caption takes up space
Florian: so you're suggesting a
new layout mode that only applies to captions?
... so percentage would resolve against table, intrinsic width
of table would take caption into account, etc..
frremy: yes. A lot of the CSS2.1 spec already implies this
dbaron: percentage widths are
normally resolved according to containing block.
... table boxes and table wrapper boxes are not containing
blocks
fantasai: whole point of table wrapper box is to put a border around the table and put the caption outside it.
[ divers alarums ]
<fantasai> https://www.w3.org/TR/CSS21/tables.html#model
<fantasai> "The width of the table wrapper box is the border-edge width of the table box inside it, as described by section 17.5.2."
<fantasai> What exactly is the problem here?
[ decided that a small group should break out to discuss this. ]
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/473
gregwhitworth: next topic.
<zcorpan> (fantasai sayeth table wrapper was intended to be a containing block)
<dbaron> if the table wrapper box were a containing block, I think that would break percentage width on <table>
gregwhitworth: in 2.1 there was a
bunch of text about if this is a valid cell, do x, if this is a
row do x, etc.
... we wrote something that merges the empty tracks together so
we don't need to do all those checks
<fantasai> dbaron, no there's an exception for that
gregwhitworth: shouldn't see any implementation difference. Just editorial.
<fantasai> "Percentages on 'width' and 'height' on the table are relative to the table wrapper box's containing block, not the table wrapper box itself. "
<fantasai> dbaron, if it wasn't intended to be a containing block, that sentence would not have been necessary
Florian: put the note saying 'this is supposed to be the same as that, if not then tell us'
<dbaron> fantasai, I think that assumes the spec was written all at once by a single author who remembered all the other parts of the spec
Florian: the note distinguishes these sections from the sections where there are behavior changes
frremy: next. Percentage
resolution.
... This is for elements that are direct children of table
cells.
... if you specify relative width, how do percentages
resolve?
... tables have multiple layout passes, need to specify for
each of these
... not interoperable.
dbaron: interesting case is height, right?
frremy: mainly, some width issues
too
... mainly writing modes related
gregwhitworth: yeah mainly it's height that is the issue
frremy: Gecko does not resolve percentage, treats as auto
dbaron: no we sometimes resolve percentage height
frremy: edge & chrome treat
as auto on first layout pass, then in second layout pass when
size is known the percentage is resoved
... this is used to size objects based on size of rows.
dbaron: last time I looked at this (10 yrs ago) there was a web compat requirement that the percentages be resolved in some cases, not be resolved in some cases, and no strong requirement in some cases.
frremy: chrome also has diff
behaviour is overflow: scroll is specified, then height
resolves as 0 in first layout pass
... some sites rely on this
... causes a scroll bar rather than big cell
... suggestion is to specify Chrome's behavior as the correct
one
dbaron: I think there are still
some cases where there's a requirement not to resolve them in
second pass
... e.g. what if table has a height and one row has a height
but not the other.
... how do percentages resolve in row with no height.
frremy: can resolve in second layout pass based on heights in first pass
dbaron: I believe there are web compat cases where it's required not to do this
gregwhitworth: use case we've seen is license agreements in table. Big chunk of text with height set to 75%. Button at the bottom isn't accessible in Edge, but scrollbar gives access in Chrome.
frremy: works in Firefox because reasons.
<Rossen> rossen: dbaron, the question about interoperability requirements of 10yrs ago is, do these still apply today?
dbaron: would like to look into this more?
<dbaron> http://dbaron.org/css/test/2006/percent-height-in-tables
gregwhitworth: can we assign
issue to you then?
... next. Border radius in collapsed mode
... need to figure out what to do with border radius when in
collapsed mode
... edge is only browser that implements this
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/475
gregwhitworth: there is an
interesting test case where you apply drop shadow. Everyone
propagates radius into shadow but only edge shows radius on
table
... proposing we drop this behavior - add into spec that
border-radius doesn't work on tables in collapsed mode.
eae: we're fine with that
dbaron: us too
fantasai: would need to update CSS3 backgrounds spec
RESOLUTION: drop border-radius support on table root for tables in collapsed mode.
<frremy> https://github.com/w3c/csswg-drafts/issues/476
frremy: height on a
table-row-group
... no interop
... so broken that nobody can rely on this. Chrome ignores.
Firefox implements and distributes height to rows. Edge puts
same height on every single row.
dbaron: HTML4 specified that if
you put width on a column group it applies that width to every
column in the group.
... but it didn't say anything like that for rows
frremy: proposal is to either do what firefox is doing, or specify that we don't care about this height
eae: could go either way
frremy: then let's spec firefox behavior. Better match for author expectations.
RESOLUTION: specify gecko's behavior for height on table-row-group
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/477
gregwhitworth: min-height on
TR
... currently only edge supports
... authors probably expect this but blink/gecko don't
support.
... proposing to match other browsers and drop this
... unless other browsers want to implement?
<fantasai> Can whoever is the github admin give edit permissions to jdaggett?
dbaron: it is a somewhat
frequently requested feature. min-height shouldn't be that
hard.
... I could go either way
... probably can't implement in the short term
fantasai: spec it and mark at risk
<gregwhitworth> https://jsfiddle.net/wj5tjvcy/
<gregwhitworth> https://github.com/w3c/csswg-drafts/issues/471
gregwhitworth: visibility:
collapse
... blink don't implement
... big compat risk
... should behave same as visibility: hidden
<astearns> https://github.com/w3c/csswg-drafts/issues/478
gregwhitworth: seems to actually modify layout somewhat. 4 options
<fantasai> (astearns pasted the correct issue, dael, pls replace link :)
gregwhitworth: A: The cell's
contents are clipped (What Safari and Edge currently do)
... B: The cell's contents overflow (What Gecko does)
... C: You don't collapse the track since the spanning cell is
in the track
... D: You make this a layout change and you re-layout the cell
in the new constraint space
dbaron: proposed options seems
unrelated to rest of issue
... is issue talking about what happens if you apply
visibility: collapse to rows or cells?
... proposed options seems to be cells, everything else
rows
frremy: rows. It's when there are cells that span
dbaron: I think A is correct behavior, but getting into this situation doesn't make any sense
fantasai: current behavior is useless, nobody wants that. Should provide something that is usable.
gregwhitworth: I think authors would expect re-layout
dbaron: some cases where you want to be able to hide things without doing relayout
gregwhitworth: but you're already relaying out table wrapper box
dbaron: but nothing inside the table changes size
fantasai: could make it
contingent on overflow property?
... if overflow is visible, then do relayout
... otherwise clip
frremy: would rather just choose one thing
fantasai: but this gives both options in a sensible way
frremy: spec is defined so
visibility collapse doesn't cause relayout of table
... but I doubt anyone actually avoids layout
... not convinced there's perf benefit
Florian: but from usability POV,
hiding some rows shouldn't cause everything else to
jiggle
... not an implementation thing
dbaron: one of the effects that can happen is that if you have a row and one of the cells in the row significantly impacts width, then collapsing the row causes all of the cells to change width, and scroll shifts accordingly
frremy: if you have a cell that
spans multiple columns with centered text
... collapse center columns (???) and can't see anything any
more
Florian: I agree with fantasai's
suggestion
... if overflow is visible on the cell then do re-layout,
otherwise don't.
Rossen: so if it's auto then you will be introducing a scrollbar
Florian: I think so
Rossen: how are you going to address this? It's a layout issue but you don't want to relayout
gregwhitworth: so where do we
stand?
... we'll think about it and come back for a resolution
fantasai: if collapsing things and spanning cell contributes something, might want to subtract out part of that.
<br duration=15min>
<gregwhitworth> scribeNick: gregwhitworth
<astearns> https://github.com/w3c/csswg-drafts/issues/383
TabAtkins: so, trying to get this
issue resolved on a call
... 4 years ago Roc tried to resolve a url that points to a
frag ref in an SVG document
... you might want to refer to it as a particular object or an
image
... there wasn't a firm conclusion
... but the concensus seemed to be that urls with a fragment
refer to a resource in the document, if not it is an
image
... this allows you to cover most issues, but this causes a
small difference between CSS and SVG
... I would like to resolve on anything, and I'll do whatever
spec work
... Amelia said that SVG is thinking about doing some smart
stuff where it tries to resolve as a resource and then fall
back as image
... the reason why we didn't want to do this was because we
have different paths based on what is being loaded
dbaron: There may be some slight web compatibility issues, eg: svg mask
TabAtkins: yes mask would be
expecting to look for a reference
... Not entirely sure how much, but I'm sure there probably are
some
Florian: in that case could you utilize the element() for unambiguous issues?
TabAtkins: Don't worry about that
dbaron: though we do have an
element function that does a different thing for
background-image
... is the CSS different than the moz version?
fantasai: yes
Florian: yeah that's the one I was referring to
TabAtkins: that only exists in Firefox
zcorpan: what do browsers do?
<dbaron> so what background: -moz-element() does could be background: element-image() or something like that
TabAtkins: Similar to what I
stated, background-image refers to image and mask refers to
object reference
... the mask spec is very badly defined on this matter as they
want to refer to them as either
... ideally we should match up the attribute and the
property
tantek: are there any tests?
TabAtkins: I didn't link to any here, but I could possibly dig some up
<tantek> could have test cases linked directly from https://github.com/w3c/csswg-drafts/issues/383 ?
tantek: yeah, could please put those in the actual GitHub issue
TabAtkins: the complication is
that, unless we changed more recently we'll fail things that
are external documents
... at least we didn't do back in the day
... from css
dino: I think it should be ok, I think if it's within SVG where there becomes a problem
shepazu: this is defined in SVG 2 in profiles
astearns: can we make a decision today?
<shepazu> SVG 2 processing modes (security, etc.): https://www.w3.org/TR/SVG2/conform.html#processing-modes
TabAtkins: If anyone is fine to resolve that's great, but if we want to wait until later that's fine too
Rossen: are there any issues in SVG?
TabAtkins: They need to match with what we do
Rossen: that's why I'm asking they're trying to CR SVG2
TabAtkins: agreed, we need to get them as consistent as possible and ASAP
tantek: the folks that are looking at this, did they look at the cursor properties?
TabAtkins: the cursor should be
taking it as an image because it can't take an external
resource
... that's the problem, everything in CSS refers to it as an
image, SVG where it can refers to a resource
plinss: there is an architectural problem here that has bugged me, we shouldn't do anything different only if there is a fragment in the url
tantek: if it's SVG you'll only know that if you go fetch it
TabAtkins: yeah, I think distinguishing it based on a fragment is ok
plinss: it could be
anything
... once you know what's there and it's a valid resource
then
... I prefer the SVG approach
... theoretically a sub resource of a PNG could grab another
image
TabAtkins: being able to
re-interpret a document as an image if it isn't the right type
of reference
... in our loading pipelines, how reasonable is that?
Florian: that wouldn't matter to a css prop that only takes an image
TabAtkins: of course, only ones - like mask
zcorpan: I don't really like that behavior, I'd prefer it to just fail, makes it obvious to the author
TabAtkins: if we don't do the fallback and we don't want to assume anything in the URL then
<TabAtkins> If prop takes <image>, treat it as image. If prop takes <ref>, treat it as ref. If prop takes both, treat it as ref; override with image() if you want.
<andrey-rybka> i agree with that
TabAtkins: I'm happy with that
dbaron: so a prop takes both,
basically makes mask, clip-path, etc
... so if it takes both, treat it as a reference?
TabAtkins: yes load it as a document and search for the reference
dbaron: so you're saying that we
should load all external resources as an svg?
... people use mask today pointing to the PNG
... quite a lot
... this will probably break a lot of stuff
TabAtkins: that's what I was
worried about
... probably similar to what Roc
... <use> is just fine as it only takes ref()
Rossen: what about marker
... it's not as used, but it should be similiar
leaverou: thanks
TabAtkins: assume it's a ref if it could be a ref or image
Florian: without a fallback?
TabAtkins: yes, there is no fallback
astearns: restates his idea of the proposal
<TabAtkins> 1. For ambiguous cases, always treat url() as ref.
<TabAtkins> 2. For ambiguous cases, introspect on URL; treat fragment as ref, no-frag as image.
<TabAtkins> 3. For ambigusous cases, load as document and see if it's pointing to a valid ref; if not, load as image.
<zcorpan> (1) is not web-compatible per dbaron. (3) is expensive in impl because different loading pipelines
<astearns> 1 probably has web-compat problems, 2 breaks architecture assumptions, 3 is expensive
fantasai: here's an issue, if we take a prop that only allows an image, and extend it to, e.g. handle paint servers a prop that wasn't ambiguous becomes ambiguous
Florian: lists all of the problems
shane: use a random page generator
<zcorpan> Don't Break The plinss
shane: maybe implement all three
leaverou: 2 seems the most obvious to authors
fantasai: the image function isn't implemented by anyone yet
Florian: option 3 is stated that it's incompatible with how browser's are implemented but is that still true
TabAtkins: do we still have a diff between loading something as an image and an SVG image?
esprehn: yes, SVG is super weird
<leaverou> fwiw, after Tab's comment re:SVG stacks, I'm leaning towards 3 being least surprising for authors
TabAtkins: the option we're discussing (catches @esprehn up)
esprehn: I'd support the hash
astearns: even if the url redirects to a url with a fragment?
esprehn: this has to be determined early in the pipeline
Florian: and it sounds author hostile
dbaron: ok, I did find the gecko
code to determine which loading path
... get's the URL
... skips any chars that are control chars or space, and if the
first char found is a hash then it loads it as a reference
TabAtkins: so it's only doing local matches?
dbaron: I believe so
TabAtkins: so everything else would be treated as an image
dbaron: I'm not exactly sure, it seems odd that we don't support external ref for masking
astearns: I'm hearing a lot of implementers wanting option 2, authors want option 3, and it seems SVG wants option 3
dbaron: that's hard
TabAtkins: the point of three is that you have the double load
ChrisL: when you say load, do you actually go fetch it again?
TabAtkins: I believe it does?
dbaron: I think if they have the correct cache headers you could
plinss: this double loading sounds like a red herring
shane: it's only a red herring if you don't want consistency
plinss: seems like something you could change
dbaron: there are benefits also to modularity and security consistencies to take into consideration
plinss: with exception to
security issue, that seems like an implementation detail
... I should be able to pass an html document to a background
image and it renders it as an image
<birtles> background reading http://robert.ocallahan.org/2012/10/impending-doom-for-svg-stacks-sort-of.html
Florian: should we maybe remove the ambiguous definitions and make them explicit
<tantek> yes there are CSP implications
zcorpan: if we were to start over we wouldn't have the ambiguous issues
<tantek> CSP img-src vs media-src vs child-src
fantasai: so hold on, the issue we're discussing - I think that Firefox is already solving this
dbaron: the local ref thing might
be for something different
... actually ignore my code
... it's somehow related
<fantasai> s/think that Firefox is already solving this/didn't dbaron say that FF loads based on local vs non-local URL? That's less more straightforward than switching based on fragment/no-fragment/
dbaron: there are areas where url:#foo is relative to the document and not relative to the CSS
TabAtkins: there is no way to resolve the fragment in CSS
<dbaron> ok, I'm not sure whether this code is actually relevant
<TabAtkins> https://drafts.csswg.org/css-values/#local-urls
fantasai: we resolved on the local urls is relative to itself
TabAtkins: that's not what the spec says
fantasai: what did you do to the spec?
TabAtkins: what I just said
fantasai: we had a discussion and we said we're not doing that
Florian: since we only have this problem when there is an ambiguity, then we only have to deal with it with legacy stuff since we won't design future CSS to be ambiguous. Do you, plinss accept option number 2
plinss: I'm not excited about it, I know we have warts but I don't want to people to point to this as precedent
<dbaron> yeah, we do support remote references -- I think the current gecko test is just "does the URL have a ref"
<SimonSapin> https://lists.w3.org/Archives/Public/www-style/2016Jun/0026.html "Minutes Telecon 2016-06-08"
<SimonSapin> OK to have fragment-only URLs always refer to the host document?
<SimonSapin> ----------------------------------------------------------------
<SimonSapin> - There were strong objections to this approach so TabAtkins will
<SimonSapin> re-write with a different approach.
tantek: the TAG is ok with this?
plinss: saying I'm ok with this - is an overstatement, if we're going to have this stupid behavior then we should deprecate the url() for these properties that have ambiguity
<fantasai> Tab misread his spec, see https://hg.csswg.org/drafts/rev/6e9ea5a746c3
astearns: the only option that I can think of is to go look at the data and then fetch what is correct, but that has an issue because we want to define what browsers actually do
tantek: I'm with plinss on this - this feels bad
TabAtkins: esprehn pointed out that we don't know how mask loading actually works, so we'd prefer a simple option
<fantasai> Alright, issues against https://drafts.csswg.org/css-values-3/#local-urls
TabAtkins: I'd prefer option 2 and make adjustments as necessary and bind ourselves from doing it again
<fantasai> 1. Clarify so that TabAtkins isn't confused by his own spec ;)
tantek: detail the back compat issues
<fantasai> 2. Clarify whether computed value is "#foo" or "baseURL#foo"
TabAtkins: that's what we're doing, we know that mask has the problem
<birtles> from roc's article, "For example, for security reasons external resource documents for paint servers are required to be same-origin with the main document --- in Gecko, at least, and we think the security reasons are good enough to require the same behavior in every browser."
<fantasai> 3. Spec says url(#foo) is treated as same-document, but what if it's in an HTML doc with a <base href> pointing elsewhere?
tantek: if the homework is done
then we're willing to take the suggested proposals to ensure
that ALL ambiguous issues are covered by our proposal
... if there isn't an issue, then you just cut the
ambiguity
TabAtkins: that sounds
reasonable, I'm happy to look into this
... I think mask falls into this, we'll need to provide some
special casing
... Let's resolve on not introducing no <image> or
<reference> ambiguity
zcorpan: does this apply to SVG WG too?
<birtles> not sure fill/stroke actually do support loading images, https://svgwg.org/svg2-draft/painting.html#SpecifyingFillPaint ?
<fantasai> 4. Round-tripping is broken for inherited local URLs afaict
<astearns> https://www.w3.org/dpub/IG/wiki/Detailed_TPAC_2016_Agenda#Meeting_with_CSS_WG
<TabAtkins> ScribeNick: TabAtkins
dauwhe: We wanted to discuss a few issues with CSS, mostly to get input as to what are good areas to continue working in, so we don't conflict with design/impl of CSS.
fantasai: Work on hyphenation!
dauwhe: The first thing is MQs.
We have some interesting use-cases.
... Daniel created one of the them.
glazou: The epub world has an
issue with MathML. Legacy systems don't know about it.
... In particular, the image fallback for MathML.
... The publishers are not really willing to invest in MathML
inside of ebooks, because they're pretty sure legacy systems
won't show anything.
... MathML won't render, nor will the fallback.
... One possible solution is to have a feature MQ for MathML
(like the script one)
... So you can display:block/none for the (separate) image
fallback.
... Not the *only* options for epub, but one of them.
TabAtkins: And this implies that the fallback si done outside of the MathML, so it'll render normally?
glazou: Yes.
Rossen: You mean native support for MathML, not mathjax?
glazou: Yes. Generally just doesn't support MathML. Sometimes they'll render the text, sometimes not; they usually don't render the fallback.
Florian: And if you do have support for script, you load MathJax?
dauwhe: These usually don't have scripting
Bill_Kasdorf: And righ tnow, because of no MathML support, the epubs don't have accessible math at all.
dino: So let's say you're not in
a legacy system. You'll say display:block on the mathml and
display:none on the fallback?
... So it's just testing for native; script support will be
something else?
TabAtkins: In script, if it runs, you can handle that yourself.
<Zakim> liam, you wanted to note I think "gap" in CSS is not exactly the same as "gutter" in typography, as the latter would include padding and margin
tzviya: We're not just talking about MathML here. We want to talk about the future of MQs in general.
<Rossen> liam, you should speak up when you q yourself :)
tzviya: Some work with ARIA has
talked about using MQs for some solutions there, so we wanted
some more general ideas about MQs.
... Maybe something about affecting the chrome?
Florian: One topic is that we
used to have media types; these worked poorly. We're
deprecating as much as we can, and instead finding the more
granular level of things that distinguish the types. Pages vs
not, interactive vs static, etc.
... Granular rather than bundled. That's a big theme we've been
running towards.
... Another is to expose various user prefs. User wants
high-contrast, etc.
... Not working on that yet, sometimes tricky. Some OSes
forcibably invert the screen or contrast; others just epxress
the preference to the app.
... We need to reflect both; whether you've been inverted (and
you should maybe respond to that), and whether the user
requests inverting (that you're expected to do)
duga: About native support, a lot
of reading systems provide polyfills.
... I don't necessarily care that the browser renders native
MathML; I care whehter it'll look good on a device.
... So they need to be able to respond to that.
glazou: So we might to have the MQ respond to script backfilling support. Some DOM API.
TabAtkins: I'm okay with adding a MathML query, with the added clarification that having a switch to claim support would be useful.
dino: That forces a style reflow?
TabAtkins: Yes.
<zcorpan> hasFeature("MathML")
RESOLUTION: Add a MQ that reports MathML support, with some way for scripts to claim support.
ACTION glazou to report to Epub about the MathML MQ being approved.
<trackbot> Created ACTION-789 - Report to epub about the mathml mq being approved. [on Daniel Glazman - due 2016-09-26].
ACTION Florian to write the MathML MQ.
<trackbot> Created ACTION-790 - Write the mathml mq. [on Florian Rivoal - due 2016-09-26].
[metaaaaaaaaaa]
Rossen: We have a new CSS-AAM
joint task force with APA.
... Intent is to define a11y APIs for all CSS modules/features
that are deemed inaccessible - like the 'order' property of
Flexbox.
... Just an FYI, I'll drop a link.
... Please reach out to us with a11y/CSS-related problems or
requests.
dauwhe: Next: tables.
... Aligning on characters in table cells.
... Old feature in specs; it's a high-prio for publishing
community. There's some Text 4 language for it.
... dbaron did a quick reading from an impl POV and raised 10
or 15 issues.
<dbaron> https://drafts.csswg.org/css-text-4/#character-alignment
dauwhe: We get to a point in
these things where the issues need more input from the impls
than on the design.
... Wondering what the next steps are on that.
<Rossen> CSS Accessibility Task Force - http://lists.w3.org/Archives/Public/public-aria-admin/2016Aug/0018.html
dauwhe: And how we get more interest when we need browser details; it gets over our heads, as people who don't write rendering engines.
Florian: I get the impression
both groups are waiting on each other.
... CSS is wiating on epub to come up with examples, so
dbaron's examples can be solved.
<Rossen> Here's the initial set of features interested to the CSS/APA task force https://github.com/w3c/aria/wiki/CSS-AAM-Potential-Features
Florian: But I think this isni't
happening, because those cases don't happen in "normal"
content, they're weird corner cases.
... Like, mostly aligning numbers with a period or comma.
... So not really questions about nested markup, or different
font sizes, etc.
dbaron: One question is a really
substantive one - about intrinsic width.
... If you're in a constrained-width situation, is this
flexible? Do you break the char alignment - does your
min-content width include the char alignment? Or something
else?
<astearns> (summarizes issue 17)
dbaron: In general, if your table
has char alignment but is too small to fit.
... Different font size is mostly not much to care, but people
will use bold, and that's a different width. Maybe can punt,
maybe people will notice.
dauwhe: I can try to translate your questions into actual examples to get feedback on.
dbaron: Another is what happens when you break a line in something that specifies char alignment.
dauwhe: Interesting, don't have an answer.
David_Wood: Speaking as a rep of
an editor company, all of these are familiar use-cases. We run
into all of them, trying to make WYSIWYG of content, especially
with tiny mobile interfaces.
... Bold fonts in a RTL in a list in a table.
[violent agreement]
david_wood: I can take an action to construct examples
Florian: And preferably pair with preferred answers.
dauwhe: I can try to collect this info and bring it directly to Text 4 editors.
<dauwhe> https://drafts.csswg.org/css-text-4/#character-alignment
astearns: I support this, but it's makework until browsers sign onto it. Any chance browsers are going to do this?
dino: If your customers/publishing houses came to Apple asking for it, you'd get results.
tzviya: Chemical journals ahve a huge need for it.
<tzviya> sz??/Tzviya
Bill_Kasdorf: And lining up numbers in financial contexts.
dino: I'd appreciate - you can send emails to me - an email saying you're a publihsing house, you ahve these customers, they need X.
<ChrisL> s/Tzivia/Tzviya, Wiley
r12a: Dave, when you're doing these examples, can you put up some rtl ones?
Florian: Hiroshi provided some japanese examples, don't think they're much different.
r12a: But the bidi ones I'd quite like to see.
dino: Send emails asap. Now is a great time to get into Apple's planning cycle. ^_^
<dino> Send email to dino@apple.com
dauwhe: High-level future task
thing.
... Relationship between CSS and FO.
... Seems to be a general trend of using CSS for a lot of
document creation tasks, rather than XSL-FO.
... Might be useful to have a more formal summary of what we
can do right now in CSS, and what we can't.
liam: I've worked on that
somewhat, but not made a document.
... Been writing a program the last few weeks to autoconvert
from FO to CSS, to try and find the easy vs hard things.
... Previously I approached it architecturally, but the specs
are so different that's hard.
ACTION liam to identify the things in XSL-FO that are hard to do in CSS, and write up some results.
<trackbot> Created ACTION-791 - Identify the things in xsl-fo that are hard to do in css, and write up some results. [on Liam Quin - due 2016-09-26].
dauwhe: Status of Page Floats?
Florian: Johannes did a lot of
work; at Vivliostyle we want to work on it, but haven't
prioritized it recently.
... The basics of level 1 are in place, needs more
error-handling.
<glazou> clapierre: there is no "next version of CSS"
<astearns> me clapierre continuously
<fantasai> clapierre: http://fantasai.inkedblade.net/weblog/2011/inside-csswg/modules
[discussing whether further topics are best done here, or in the Houdini day]
<glazou> gsnedders: C(n,p)
myles: In Text 3 we have a hanging-punct property.
<astearns> https://drafts.csswg.org/css-text/#propdef-hanging-punctuation
myles: The keywords in this prop
describe character sets *and* situations to apply hanging
punct, and the amount to hang that punctuation.
... A single keyword does all of these.
... These keywords are not very compatible with western-style
punct. They're designed for Japanese.
... Because this isn't very useful for western-style, and
keywords pull together all three pieces, it's impossible to
extend syntax in the future to separate these out.
... It's common for different authors to want to specify
different sets of characters to hang.
... It should be postponed to level 4.
fantasai: We had a long ML
discussion on this.
... Both western and eastern hanging-punc wants to say "put
parens/quotes on outside"; hanging-punc does that.
... In CJK you want to hang certain characters fully outside
the box, but in Western punc you want optical alignment along
that edge.
... Not specific chars, based on the shape of the glyphs
instead.
... Different typesetting engines have different fetaures to
try and get this effect.
... Some hang hyphens, some period, some both, some
more...
... In each case you're not maintaining a grid, you're just
looking for a sharper edge.
... It seems to me that classing chars and saying how much they
hang isn't the ideal way to control this.
... You don't want that level of details, you want to say "do
optical alignment".
... So better solved by having a "pairs kerning" value that
pairs a character with the edge of the paragraph.
... So just a single switch in CSS that turns that on.
... Don't know much about font data, but there is a
kerning-pairs table. Is there an entry for char+end of
line?
lrosenth: No.
fantasai: Ah, would be useful.
Powerful and simple for the author.
... I would rather provide that as a switch, rather than the
author listing all the unicode tables that should hang, how
much they hang, and they're basically writing a kerning
table.
... Different fonts have different glyph shapes, different
amount of hang is appropriate.
... Swash vs non-swash.
... So then not even character-based, it's glyph-based. Based
on the font. Then CSS becomes simpler.
... Just too much complexity for author and CSS otherwise.
dauwhe: I'm gonna action myself to see what InDesign does, to see if they're that fancy.
<Zakim> liam, you wanted to note that a solution that involves editing every font might not be simple in practice
liam: Saying the solution is
simpler if it just requires all the fonts in the world to be
editted, slight problem there.
... There have been system in the past with "margin kerning" ,
a kern pair against a margin.
... Could see something like that added, with CSS being able to
augment/override the kerning.
... But not sure if that's ismpler in practice than what we've
seen.
fantasai: We can also just have an automatic thing where the UA just makes up values.
astearns: That's what InDesign does.
fantasai: So happy to have UA
synthesize values when they don't exist.
... But adding character-based kerning in CSS is a lot of
complexity for everyone, and doesn't really belong at this
level.
SimonSapin: We already have
codepoint sets in CSS with unicode-range.
... But not maps.
ChrisL: Two way sof doing kerning
- kern-pair table, and a new way with gpos, based on contextual
information.
... No way to kern at end of line, because end-of-line isn't
given to the text renderer.
myles: People who know more about OPenType than me says the spec allows kerning against margins.
lrosen: But nothing in the gpos or other font tables that define that. You can synth something external, is all.
fantasai: So I'd say rather than doing this character-based (which is wrong anyway), we can add a switch that turns on automatic end-of-line kerning, and that'd be as good as what InDesign does. Then we can work with the fonts to bake this into the data tables.
lrosenth: If the goal is to do
something with fonts, and we're okay with it only working with
future fonts, the OT group is in the midst of doing OT
advancements. Just completed SVG fonts, now doing the variable
fonts.
... So good opportunity for change right now.
<ChrisL> I wonder how end of line and start of line contextual swash forms are handled though
dauwhe: I think we do want to
decide on which chars hang and which don't - only hang period
and quotes, but not hyphens (more subtle), or be really
aggressive and hang em-dashes and question marks.
... Doing this off the spec list makes this an all-or-nothing
proposal, which I'm wary of.
fantasai: We also have requests
from CJK that they want specific punc chars as linebreak.
... And we're like, that's great, but we'll start with generic
sets, and in the future add specific controls.
... Much more complicated than doing presets.
<lrosenth> @chrisL - a good question. I’ll see if I can find out
dauwhe: The set hereis inadequate right now, as it has no quotation marks. Definitely want that, possibly a hyphen.
fantasai: Other than quotes, what common things do you want to control? Chars that are common in books/etc.
dauwhe: open/close single/double quote, period, comma, hyphen
myles: In Latin it's uncommon to hang brackets/parens/etc, but the spec hangs them.
Bill_Kasdorf: Even on a char basis, French quotes aren't the same as English - French quotes might not want hanging when you do want English ones.
fantasai: Could see wanting
hanging on first/last, but not internal lines.
... Spec currently does that. Only periods/commas/??? hang
internally.
David_wood: People want to quote English in French, this is common.
fantasai: You can use whatever quotes you want.
koji: I disagree with fantasai
about fonts.
... Some fonts want 49% hang vs 51% hang, we dont' wnat to go
there.
... The idea of pair kerning on beginning/end of line isn't
great for browsers.
... We shape logical runs, *then* make linebreaks.
... When we pair-kern, we need to reshape on every linebreak,
and that's very expensive.
... s/disagree/agree/
myles: My proposal was to push
this out to Text 4. Judging by disagreement, sounds like a good
idea.
... It also seems very clear that some people want to hang
different punc. Maybe font is one input, but not *only*
input.
... I think having web author list codepoints would be
extremely easy to create typographically bad-looking hanging
paragraphs.
... People forget the codepoints all the time, or put in the
wrong codepoints.
Florian: I'm convinced there's no easy answer for western punc. Not convinced the property as designed can't be extended to this later. For CJK, it might need extension, but it *works* and is clear.
<SimonSapin> http://www.fileformat.info/info/unicode/category/Pd/list.htm
Florian: So I'd rather not push it, unless it currently prevents us from extending in the future.
myles: I opened with the idea that the current values conflate char sets and ways to hang them, and a reasonable future will separate those out.
fantasai: I think they'll default; there would be an auto value.
<eae> astearns: there's "only" about 30 of them... ;p
fantasai: So we can add anothe
rproperty, or make this a shorthand; as long as there's a good
initial value matching our current, I don't think we're
blocked.
... So I also want to keep the current, as it does work for
CJK, and for pullquotes it works for Latin. Refinements I think
we can extend into later.
dauwhe: I would first like to get together and design it for Latin, amke sure there's no conflict.
Rossen: Objections to pushing to level 4?
fantasai: Implemented in WebKit?
Rossen: But they're the ones trying to push it. ^_^
r12a: What about CJK users that want it now rather than in a few years?
Florian: The JP gov *will* care about referring to soemthing that's not CR.
fantasai: I think we shouldn't push it unless we find that it's not going to work.
koji: epub referred to the spec before it was CR...
myles: The keywords are "first", "end", "force-start", "force-last". And these specify char sets.
fantasai: Right. If we want to customize, we can add a different property, or extend this prop to specify.
<bobbytung> Hanging Punctuation not happens to Trad. Chinese. Simp. Chinese ebooks recently follow japanese rules in several Reading System.
fantasai: Like "first brackets"
<fantasai> e.g. hanging-punctuation: first quotes last quotes;
koji: correction: this property was not referred to by epub.
<fantasai> Can split into longhands, or add a parallel property
skk: epub already renders with hanging-punctuation, even if not explicitly referencing the spec.
fantasai: I think we should leave it at level 3, unless someone shows me a problem.
dauwhe: I'll work on the syntax.
r12a: Worried we're on a closed community; leaving it off of epub list might have just been an oversight.
Florian: I'd say you can't nicely typeset a book in Japanese without this, and as it is works for most books.
<gregwhitworth> https://speakerdeck.com/jensimmons/proposal-to-csswg-sept-2016
RESOLUTION: Keep hanging-punctuation in level 3, marked as at-risk, study whether it needs to be punted.
<fantasai> ScribeNick: fantasai
jensimmons [introduces self]
[ longtime designer]
jensimmons: Wanted to talk about
Regions spec and alternative, and how it ties to Grid
... Grid is totally awesome
... Can do repsonsive layout in one line of code. Thank you
everybody
... [shows cool examples]
... writing-modes, transform / rotate, etc.
... You can make Mondiran responsive
... Auto-flows, let Grid handle math
... Grid is fantastic if you have items and you want to place
the items
... Can do that traditional way, or do that by adding wehite
space
... But when it comes to long passages of text, still stuck
with one giant column
... You can center it or right-align it
... Or break it up with some images
... But stuck with one long column
... multicol is awesome... except [scroll up and down problem
with 3 cols of text]
<ChrisL> If only we had some way to calibrate output devices and maybe express that in some sort of color profile
<ChrisL> then we could see the presentation
jensimmons: We need some way to
place items like this [arrows showing compex flow with short
block, wide block, three cols, another spannign block, two col
bolock
... Or do rows of multicols
[muil cols in rows, each shorter than viewport]
jensimmons: Could scroll-snap,
but don't have to
... Got regions spec
... Regions spe cworks like this
[shows pile of empty divs, plus a few lines of CSS]
jensimmons: Need a bunch of
elmeents to use
... You flow your actual content into a variablish thing (named
flow), then later you pull out into empty divs
... Not in agreement about this, 'cuz have to useempty divs,
add/subtract divs in JS
... Been wondering can we do this in CSS alone?
... Obsessed with this question
... I like this part (flow-into: foobar)
... Then see Grid, I see grid
... We have layout we want in grid, but need to be able to flow
things into / out of boxes
... I think ths solution to this is also solution to another
problem
... Other problem -
... Let's say ou have a layout
... Title, figure, article, bio
... Can lay these things out on to grid
... What if you want to put a line down the column
... What if you wnated a border down the full length?
... Could put a border on each item, but not on the edge of a
grid, or edge of cells
... Or here, got items with background colors... bu what if I
want to put a background on the cell?
... Want color blocking on the page, change it on responsive
breakpoints?
... Grid doesn't have a way to style empty cells
... Rache Andrew says at every workshop, people aks how to
style empty cells
... Design like this [ block borders between random things]
can't do it
... or this [circle in the background; retangle in the
corner]
... I know how to lay this out, but don't have anything ot
style
... How do solve this righ tnow?
... Add empty divs!
[[[[RETURN OF THE SPACER GIFS]]]]
jensimmons: I know how to do
this... spacer gifs as <div>s
... Solution is to solve the problem you haven't realized we
have yet
<rachelandrew> I get asked the backgrounds and borders question re grid, pretty much every time (unprompted).
jensimmons: Trick of the thing is
this
... If I want to style an item on the grid, no problem: place
the item, then style it with a color
... What I want to do is to take the thing inside the curly
braces and put it outside the braces
... grid: 3/1/4/2 { background: blue; }
... What else in CSS does this kind of thing?
... Animations does that, with @keyframes
... How about we do something like this?
@region foobar { grid: 3 /1/4/2 }
foobar { background:blue }
jensimmons: Name the rgion,
target it, and style it
... Let's say we have multiple grid, maybe @region
#grid-container foo bar { ... }
... or @grid-container:region(foobar) { ... }
... So in this example, place first three things
... Next, ceate a color block
... Whenever you use grid to explicitly place items
... OK
... But when using auto-placement, just get lots of rows of
things
... Not a lot of ways to do creative things in that space
... What if I wanted the item in the 2nd to last column tilt a
bit
... I always want that one tilted, however it auto-flows?
... Can do it with this design
... Ability to style a place in the grid, not just an item in
the grid
... Another item on my running list of questions...
... I want to skip cells
... I want a bunch of holes in my gri: auto-flow, but skip
these cells
... Maybe reuse this syntax for that
... How do you flow content through regions?
... So far can define a place on the grid, give it a name
... Also saying to name a region chain
... Looks like @region-chain .... { 1 { grid ... } 2 { ... }
... }
... Target a named area, tareget a region
... This make sit possible to easily switch from one region
chain to another at any break point
... Named grid areas and named regions gets complicated
... Have to rename grid areas every time you want to chang
eyour region flow
... This complicates things na dmake sit harder
... Name areas for styling the areas... but have the rgion
chain be separate
... Here are some examples
... Here's a bunch of paragraphs
... Grid on my main element
... Region chain, I want these particular areas on the grid to
be in the region chain
... In ths way as well,I could say text is bigger in this
region
... text is less in this other region
... Here's all the code in one slide [10 line sof code]
... Antoher thing about it
... YOu have mobile version, responsive biger
... Right now reordering wrt ads, etc is done by screwing up
a11y
... want to place ads in particular way
... Here have content in <main>, but mix it with ads that
are not in <main>
j Here I have two region chains. One is maincontent flow
Another one is the adcontent flow
jensimmons: Great to have ability
to pull content from another part of the DOM for this
case
... Would be great to pull content from one place and pull it
into grid in another part of the docuemnt
... Also helsp to solve CSS shapes
... Can create multiple regions, and then pull content from one
to another
... Solves a lot of use cases of exclusions
... A lot of things we want, thought of way off in the dstance,
could cover partially by this stuff
... I do think there's a need to fgure out how to do a repeat
syntax
... e.g. want an unknown amount of regions
... But maybe a way to do this
... So requires grid, using grid to do heavy lifting for layout
sizing targeting, etc.
... Three things: ability to define a region
... property for "skip me during auto flow"
... And then region chain
Rossen: Thank you for presentation
TabAtkins: I saw four things in
here
... First is decorative pseudos for grid
... Sounds fine
<Rossen> aah, sorry glazou
TabAtkins: Specify chunk of grid, specify whitelisted properties
<Rossen> glazou, I'll give you an extra q spot
TabAtkins: Second is saying
whether those take up auto-flow cases
... Might even be able to dos oemthing automatic there
... Example of tilting something
... Was that selecting a normal item in the grid based on the
postion in the grid?
jensimmons: My though twas that the pseudo is like a container for the item in that area
TabAtkins: spanning items ignore it then?
jensimmons: I guess
... Would need to limit CSS that applies
TabAtkins: Reparenting under the
pseudo.
... Not sure how difficult it is
plinss: We insert anonymous boxes
<rachelandrew> for some other background stuff, I did a bit of playing around with Grid + Regions as it keeps coming up as a possible answer to certain use cases https://rachelandrew.co.uk/archives/2016/03/25/css-grid-and-css-regions/
TabAtkins: Never insert a pseudo-element as parent of another box
plinss: Anonymous boxes were a long time ago intended to be styleable
<rachelandrew> https://rachelandrew.co.uk/archives/2016/06/17/thinking-about-page-floats-figures-regions-and-grids/ demos in those posts.
glazou: You have summarized what
used to be in a lot of our drafts -- @slots
... I think Apple has some earlier version of @slot
dino: Not in WebKit impl
jensimmons: Yes, read that
stuff
... Simlar, but not
<ChrisL> twitter points me to https://blogs.igalia.com/mrego/2014/12/10/web-engines-hackfest-2014/
glazou: We had something
approachingyour wishes
... Alan and I discusseddiscussed region chains
<ChrisL> "On the other hand, I’ve been talking with Mihnea Ovidenie about CSS Regions and how CSS Grid Layout could help to avoid the criticism regarding empty HTML elements required to create regions."
glazou: Much of this considered, and rejected
jensimmons: Yeah, read up on all
that. Was concerend of getting sam ersponse
... But we're also in a different place now than we were
then
glazou: THe proposals were made
to solve these issues
... Now we have a use case. At that time feedback was internal,
not pulled in from external world
... There was almost no progress on regions side... only one
implmenter of regions, only one for shapes
... Basically no interoperable progress in the browser
world
Florian: Quick point, I mostly
agree with you
... A subtle but important difference from before
<Rossen> q Florian
TabAtkins: Fourth point is that
region chain is identical to region chains from before, has
same problems as regions with later bits of dom and layout
effects
... Possible with heuristics or iterative layout, both bad
ideas.
... I think anything like region chains will be problematic
astearns: I think Tab is corret
that ordered chain in your proposal has all the problems Tab
described
... But grid-order pseudos don't have those problems
TabAtkins: Clarification, if
we're just handlign overflow-style regions, where something has
to be a set size and remainder after overflow is somewhere
else, theoretically more handeable
... Cannot reasonably do balancing across regions.
... Might not be enough power to do what you want
jensimmons: I think putting stuff
in a region in a differe tpart of the DOM is optional
... My instinct is that something is different here
... A lot of the questions, the naswers are handled by
grid
... This is about putting things into a layout, not calculating
the layout
... I read some of the earlier conversation... that allowed
regions to do any layout, abspos whatever
... Let's do xyz regions because grid takes longer...
... I think we should simplify regions to only work within
context of grid.
... Later, talk later
TabAtkins: I think the grid
layout algo still has those exact problems
... Very scary circularity issues around size of tracks
<Zakim> david_wood, you wanted to ask DPub folks whether Jen Simmon's proposal would offer a solution for pagination.
david_wood: Wanted to quckly ask
dpubig
... How does this affect pagination?
Rossen: Orthogonal
[nodding agreement from ? and dauwhe]
lrosenth: Flow is different
tzviya: lots of problems....
Florian: I agree with Tab's
concerna bout this not solving everything
... I think I have a propopsal for solving things
... Havne't studied your styling empty grid slots
proposal
... ... then maybe works
... Wrt fragmentation, don't see how it's orthogonal
... If you're using Grid to make your tmeplate, you want
different templates on different pages
... So this does interact with pagination to have a set of
templates, to ick one in each page
Rossen: We have a module for this -- page templates
Florian: Rehahs of that module is my idea for making this work
Rossen: One thing I wanted to
bring as part of conversation, I love the fact that everyone is
passionate about solving layout problem here
... Other side of equation is attaching event listeners and
interaction, so this needs to be solved as well
... We can have all of the event model into CSS... we can
reimplement HTML into CSS...
... But that point stands
jensimmons: Thought about that a lot
Rossen: This is a major sticking
point, for when we were implementing regions ths was one of the
first requirements
... app developer wnated specific event handlers per region
jensimmons: Style the region
<Zakim> Bert, you wanted to ask about region chains and pagination
Bert: My conern is related to
Florian's comments
... In template module, wanted to attach grid to a page, e.g.
left and right pages different
... If I have content goes into a slot, but second template
doesn't have a correspondign slot, where does the content
go?
glazou: I think that the rendering in iBooks solved that issue, not sure
jensimmons: This idea definitely
depends on grid
... Up to the author to create layout that they need with
grid
... This justgives author a way to flow into grid
Bert: page size is smaller.. content doesn't fit
SteveZ: Just wanted to see if I
understood what Tab said
... If layotu cna be done indpeendnetly of content, no problem
with region chains
... E.g. all fixed-size boxes
TabAtkins: Not no prolbems, just
less problems
... Have to lay out into varying-widht containers
fantasai: That exists in paged media, handled by css-break spec
SteveZ: If you estrict self to
grids whose layouts were defined before ocntent added
... No particular problem to regions that didn't exist with
fragmentation today
dauwhe: I'm hearing that this
might be hard, but it's absolutely worth doing
... What I see on this scren is beautiful, cuts right to the
heart of what we want to do in design
... Even first paragraph on first page being different size...
such a fundamental thing in our world
... These are the problems we are here to solve.
<TabAtkins> fantasai: One Q: agree that we need to style pieces of the grid, straightforward.
<TabAtkins> fantasai: How much of the regions stuff that you want to do here can we do with overflow:fragments?
<TabAtkins> fantasai: Has less problems than arbitrary regions.
<TabAtkins> jensimmons: Shoudl code up some examples and see what it's like.
<TabAtkins> jensimmons: Should choose something that'll seem elegant to authors.
<ChrisL> Would like to see more worked examples and get author feedback
<TabAtkins> tzviya: When you tell people about overflow:fragment, they don't want to do it.
<astearns> need a way to ensure that the overflow fragments can't be assigned grid slots that are not in grid order
<TabAtkins> fantasai: I mean, it's new. People have a way of doing grids right now that will be abandoned when they use Grid, it's revolutionary.
<TabAtkins> fantasai: I think this goes in line with what we want to do in CSS future.
markw: Try to introduce this
topic on 3h sleep! :D
... Doing a lot of work on HDR video
... Standard is luminous from 0 to 100?
... They would master video to look good in that range
... For HDR, available range is up to 100nits (candelas per
square meter)
... Wne tfrom content mastered to this new range
<pal> 0 to 10,000 nits for HDR
markw: Nobody has 10000nits
... Highest is 4000 range
... Consumer devices more like 1000
TabAtkins: What's 10000?
pal: sun on a chrome bumper
...
<ChrisL> https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-0-201607-I!!PDF-E.pdf
markw: Immediate question is how
do I define colors in CSS with colors that match the pixels in
my video
... Or perhaps have a still image
<pal> 10,000 candela/m^2 (or nits)
markw: want to make t match the
frame in the video / photo
... Looking at CSS work in Colros spec, great to se ethere are
more profiles in there
... BT.2020 profile are ones that people use for HDR
video
... Questio that came to mind which I raise don the list
is
... How do you signal that the colors you want are from this
wid eluinous range, and not from the 0-100nits or 0-80 of
sRGB
... The Bt220 was used earlier
... Not a lot of content, really, but it was created for
?]
... PPl use this with an HDR transfer function
... Specced in a diferent one, BT21
... Discussion of maybe using ICC profiles, to solve this
problem
... Not sure this solve sthe whole problem
... In problem because when I look at ICC stuff
... It focuses on reproducing on paper
... Peak whit eon paper is blank paper white
... Whereas peak white on HDR is very different, very different
of emitted light
... So the qustion that we struggle with is how, given sRGB
pixes and HDR pixels, what is the peak white of sRGB? Probably
what te user set it to
... But for specular highlights might need it to be
brighter
... That's my summary of the problem
... Wanted to get feedback
... At a high leve, probme is how do I take images out of vdieo
and get it into the graphic splane, draw things that look the
same oclor
dino: Said vido source has define dtranfer function
markw: Several
dino: Would it be nough for us to
point at that?
... So you coudl say color(bt020 transfer-function)
ChrisL: Not in the profile though
dino: You'd have to specify the ICC profile and the trnsfer function
ChrisL: CSS color is based on
ICC4, white is based on white paper
... HDR has much higher luminoance and shadow detail
... Theres's a new thing, ICC Max, which should handle that
pal: Mark provided uick overvie,w wanted to bring om some spiecific topics
<lrosenth> iccMAX - fantasai:
pal: FIrst one, expanding on combineing rec20202 with extended transfer fucntion (PQ)
<lrosenth> iccMAX - http://www.color.org/iccmax.xalter
pal: Tranfser function encodes absolutes absolute luminance values from 0 to 10K nits into 10-bit
<ChrisL> link to the spec being discussed: https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-0-201607-I!!PDF-E.pdf
pal: In that combination of
rec2020 and white point and transfer function
... ITU spec
... Supported today in consumer and professional montors
... This doens't solve the problem of how you composite
... But allows you to capture the most ocmmon wan of
distributing and representing HDR images
... Second point is that I noticed is DCI-P3
... It doens't really exist
... no such system define danywhere
... Ppl colloquially use it ot reference on of 2 things
... Diital cinema defines transfer function and quantiation
equation
... But doens't specify white point
... Or color primaries
... Maps absolute xyz value sonto integer code values
... ONly supports max of 50 nites
... Not useful for consumer applications
... For cinema, lower peak luminance
... For color primaries and whit epoint, need Reference digital
cinema projector
... The white point is avocado green, though
... So that's what digital cineam uses, but it's not good for
hte home
... That is the most correct definition of DCI-P3
... Other thing it might refer to is P3D65, which is ued for
mastering
... That uses the P3 primaries (same as referenc eprojector)
but uses D65 white point and PQ transfer function
... Same as REC2020
... Neithe rof these are used in consumer applciations
... What maeks it to the consumer is Rec.709 for SDR or
Rec.2100 for HDR
... I'm not sure that was intended, but wanted to bring some
specific comments to the spec
lrosenth: Amogn other things, I
represent Adobe at ICC so member of nterational color
consotium
... also iso standardiation of ICC
... ICC4 is used on the Web, is not enough for HD color
... ICC is working on addressing this
... Not just for Web, but also pritn, fabric, etc.
... Pasted a link to draft spec, about to become final spec at
ICC
... Other piece of work done at ICC
... As of last week, ISO committee met, work is moving to
ISO
... Rather than moving entire spec into ISO
... Entire spec is very large, addresses many things
... Rather than bringing many things, decided to create
profiels or subsets for individual uses
... So going to make individual profiles for speicfic use
cases
... Want to bring to this group, bring subset of ICC Max for
the web
... I would love help from the group
... Happy to work wth you in whatever is appropriate
fasion
... Obsvously need sto be a joint effort
<ChrisL> I volunteer to work with lrosenth on an ICCMax for Web profile
lrosenth: What I'd like to see
from directional perspective, move this forward
correctly.
... Adopt CSS color
TabAtkins: Given that we have video profiles that handle high luminance already, do those work for images already?
ChrisL: Undefined
... No way to say "preserve ths frame as an image"
TabAtkins: Separate point wrt css
colors
... LAB as it stands doens't have ability to do
luminances
... but can add on later
... So for CSS, can punt until ICC Max stabilizes
... Seems like for images will automatically work once browsers
update to color psace work
ChrisL: Not a CSS issue, but ppl i nthis group need to be aware to help drive this work
lrosenth: CSS Color would affect
SVG and other groups that work in colors
... You need to have one single coor space, color model, for
all that
TabAtkins: Yes
lrosenth: Assumi this group will influence the others
TabAtkins: We'll need a syntactic change in css colors, but in the future
SteveZ: The issue of compositing
seems to creep in here somehwere
... Whie it may be behind the scenes, seems like a fairly
significant change
ChrisL: Yes, once it lands
compsiting will need to be updated
... [...]
... This new stuff is input colors
... Like when you take a digital photo, map 14-bit range to
this
pal: REC2100 is
display-deferred
... The actual output level on the monitor
markw: With compositing, you've got PQ thing that says th output
<pal> REC2100PQ is display-referred
markw: You have sRGB that says
... but ppl don't do that because they make their screens
brighter
... Sometiems peak of display, sometimes 200 its
... Seems like can't address the problem untl pp play with
it
... Question of where is peak sRGB signal mapped to
... Otherwise whta you end up with is user has set their
display brightness so that their sRGB apps look comfortable, if
that determines brightness of HDR video
... Part of this problem of ppl boosting up brightness levesl
for years, to ...
pal: Added captions and subtitles
is an example
... If peak white is 10,000 nits, but on dark scene, don't want
to map white subtitels to 10,000nits cuz subtitles will be
painfully bright
... Have to composit intelligently so don't end up that
lrosenth: Shouldn't need to change the current spec, refere to profiles
pal: Right now have REC2020, but athat's SDR
Florian: You can also sideload profiles, can load an ICC Max profile
pal: Have to go into deail of
whether you can map 1-1
... thorugh an ICC profile
lrosenth: Right now can't do
that, without loss. Will clip
... Going forward d it's fine, no problem
... Instead o using PCS / LAB
... Use PCS, wide even more wide in terms of mapping
system
... Much richer model transform
pal: How doe sit work?
lr How you define your pfoile table
lrosenth: Can do math, formulas, lookup table
pal: Can you show a sample that
demonstrates round-tripping?
... We need to convince ourselves that this will work
... mastered in 2100, seems lots of work to map into this other
space and back
lrosenth: Handled by ...
... color management module
<ChrisL> ICCMax spec here http://www.color.org/iccmax-status.xalter
pal: What your'e sainding, color
spec would be the 3 10-bit component of the color , associated
with that would be mapping
... Up to 10000nits
lrosenth: Whatever you ask for
pal: Have to map the right xyz coordinates
lrosenth: I will work with committee to come up with that
Florian: Short point eralire, ISO
wnated to do subsets, and you were interested in subeset for
Web
... One tricky thing is that Web is fairly universal. Not sure
about txtiles, but e.g. we have to handle books as well as
screens
<Zakim> ChrisL, you wanted to wonder about viewing conditions
ChrisL: The DCI-P3 stuff was brought in because Apple was shipping displays descirbed as..
dino: Display P3
ChrisL: P3 primaries, but 2.2
transfer curve
... But ? is 2.6
pal: Yes
ChrisL: Because of dark
surround
... Presume that P3 is also ?
pal: No, 0-10Knits
... DCI-P3 is a misnomer here
... Transfer function is intended for displaying n the home
dino: The MQ that detects... that
doesn't need to change. Just saying "P3-ish"
... Speicfying color, need to be more precise
...
ChrisL: Latptop, phone, has what it calls a "movie mode", which is P3 with 2.6 curve
pal: Even though monitor is capable of P3, how much content is authored for that?
dino: Our devices generate content with that, we sell minions per day
millions
?
scribe:
dino: I would be overjoyed if keyword we chose was display-p3
Florian: apple-p3
dino: Asusming that when ICC max comes in, point to those profiles, possibly with new keywords, to profile HDR colors
pal: Also have to talk about
fallback, tho
... If yo ucan't get it, what happens?
dino: Spec says you can reference
one, but never want to do that
... Keyword is important
... browser knows what that profile is
... Choose small but useful set that will alllow 99% of what
ppl need
ChrisL: Question to lrosenth, ICC
Max is spec plus reference code
... Can we experiment with that now or too early?
lrosenth: Please try out reference implementation. It's fully complete
markw: Some kind of capability discover
ChrisL: Media Queries
dino: color-gamut media query has "good better best" values
<astearns> "good better best bestest" in the future
markw: Understanding profile is different from being able to display it
dino: MQ is for the whole stack
<br duration=20min>
<scribe> ScribeNick: TabAtkins
shane: translate/rotate/scale are in a l2 delta spec
shane: We did that because
Transforms 1 was gonna be stable Real Soon Now©
... So asking if we can move them to L1
dbaron: How many implementations?
shane: We have one behidn a flag.
dbaron: We had someone working on
it, but it was harder than I thought.
... To do animation, it needs to be plumbed all the way thru
the compositor. Seemed like too much effort.
shane: I think our impl doesn't
plumb; it pulls animations back to the main thread if you
animate one of the properties.
... Not a long-term plan, but there's a growing list of props
that need the same treatment. offset-* stuff too.
... So our intention was to do everything in one blast.
... Pulling things to compmositor isn't particularly expensive
anymore.
dbaron: I was concerned about the cost of new code needing to be written, not perf.
shane: I'd just say that an increased gamut of compositable properties is coming anyway. We're deferring that cost as well, but we'll have to go back and pay it too.
dino: So question is whether to
put them into Transforms 1.
... What's wrong with keeping it in level 2?
TabAtkins: CSSWG policy is to not ship publicly until it's stable; delta specs aren't.
dino: Problem remaning is some 3d issues, multiple impls that all disagree a bit.
ChrisL: How are people using 3d if browseers disagree?
shane: There's just a lot of content that works in only one browser.
ChrisL: So there's gonna be compat issues anyway?
shane: Yeah.
<fantasai> plinss: Days since the CSSWG has broken the Web: Zero
dino: I think Simon proposed something that required some tweaking from everyone. We were waiting for Roc, but that drove him from Mozilla.
TabAtkins: So split it back into 2d-transforms and 3d-transforms
<gregwhitworth> TabAtkins: this is partially the chicken and egg issue
Rossen: So thoughts?
fantasai: 2d transforms is done.
It can sail thru, then we do the translate/rotate/scale in
level 2, + 3d transforms.
... Tab can cut a version and make a DoC.
Rossen: Option 1 is do what Shane
is asking, pull translate rotate scale into level 1.
... Option 2 is split 3d transforms into level 2, and send 2d
transforms to Rec.
... Option 3 is do nothing.
<leaverou> how is Option 1 different than Option 3?
shane: I like option 2 better
dbaron: This feels like make-work without an editor.
TabAtkins: I can do it. Just mechanical shifts.
RESOLUTION: Punt 3d transforms to level 2, turn it into a real spec, quickly REC Transforms 1.
Action Tab to do the Transforms split/reform.
<trackbot> Created ACTION-792 - Do the transforms split/reform. [on Tab Atkins Jr. - due 2016-09-26].
dino: If we dont' want to have this discussion again in 7 years, I recommend browsers read the 3d stuff and figure out how 3d works.
dbaron: Can dino send a URL to the part you want feedback on?
dino: Yes. Not all of it is in the spec now.
<fantasai> ScribeNick: fantasai
TabAtkins: Easiest to hardest
order..
... How to store/serialize custom property values
... Specifically, when putting non-CSSy syntaxes into a custom
property, e.g. SVG path syntax
<TabAtkins> --path: m40.0,20.0;
TabAtkins: This is a single move
command
... This is a single move command
... From SVG perspective, this is an "m", a 40.0, a comma, and
a 20.0
... From CSS perspective, this is an ident m40, a number .0, a
comma, and a number.
<TabAtkins> --path: m40/**/0.0,20.0;
TabAtkins: ...
ChrisL: Can't you just put a space there?
TabAtkins: In this particular
case, yeah
... We don't keep around the original information
... so when we reserialize it, can parse out differently (see
above)
SimonSapin: What about having property as a single string?
TabAtkins: Suggestion is to carry the value as a single string, and then parse it into tokens when it is used.
leaverou: What is advantage of parsing it as a token stream?
TabAtkins: Simpler 'cuz it just
parses in as CSS.
... To parse it in as a string, would need to cross
tokenization/parser levels
dbaron: In Gecko and Servo, stores it as a string
Rossen: Observable through white space as well
shane: I think there's a strong author concern, to write in something that looks like an SVG path and get out a thing with a CSS comment in it
<ChrisL> yeah the unexpected blank comment is really unexpected and crufty
TabAtkins: CSS Syntax technically handles this by keeping around the original representation, but nobody does it anyway
<shane> :-P
TabAtkins: I would have to do some fixes to make this all work properly
SimonSapin: Could also punch a hole in the abstraction and say this is just a string.
TabAtkins: i don't know how to write that in specese
SimonSapin: Just specify normativively that it's parsed as a string.
fantasai: Spec is written in English. You can spec normatively anything you can explain to us
TabAtkins: So parse in as a string.
<AmeliaBR_> Re SVG path notation: I prefer to keep it as a string from CSS perspective, so that authors can still copy & paste SVG path data created by existing visual editors. But I also want to add functions to concatenate multiple path strings.
SimonSapin: Then preserve comments in the string?
TabAtkins: Eh, i guess I'll try
to spec this and then seen how it comes out
... Guess there's no objection to this, since y'all implement
it already
leaverou: Does this make it harder to have interpolable (animatable) values later?
TabAtkins: No, because that's for typed values anywya
leaverou: You don't want to just say "This is a color", want to be able to say "this is a color then a length then a number"
TabAtkins: I think we just give a string in the OM atm
RESOLUTION: Custom properties must preserve their input exactly for serialization
TabAtkins: Value-tainting
... in order to avoid weird behavior loops, if you use a var()
in a keyframes rule, we taint it so you can't use it in an
animation property
... Tainting applies globally, so if different libraries using
same name in different parts of the subtree, still
tainted
... However, (Shane can give more detail), we've experimented
with just tainting values directly
... And apparently this is extremely easy
<ChrisL> That sounds like a mystery debug session where some custom property suddenly stops being animatable
TabAtkins: Would like to, if possible, do value-based tainting instead of weird name-based tainting.
birtles: Does htis also cover the
dispaly property?
... Could you use a custom property to also animate
display?
TabAtkins: Only to go from none
to block
... Shouldn't bring up new issues
... Only 'display: none' has special animation behaviior
dbaron: I agree that fremy's case is an issue
<frremy> --foo: abc; animation: var(--foo); @keyframes abc { to { --foo: def } }
Tabatkins: This ties into the
next issue, which is about using var() in keyframes
... Several engines allow var() in keyframes even though I
didn't spec it that way
... Need to define doing var substitutions twice for this
... In this example, need to substitute var(foo) in the
animation, get the abc value
... Then run the keyframe, woudl transition to def value
... At which point you redo your vriable substutions, but not
in the keyframes
dbaron: That's painful for
dynamic changes
... If htere's a dynamic change, need to go back to the orginal
one...
... Or keep 2 sets of selectors for each element
heycam|away: You need to do that anyway
TabAtkins: Not generally, but if
you are doing var in keyframes, which apparently you do
... Then you do
dbaron: I'm not sure we did it intentionally
TabAtkins: var() in keyframes
takes the value from the element the animation is running
on
... To do that properl, need to do that once, then resolve,
then resubstitute
... Or just do it once and animate a property that doesn't get
reflected, very weird
dbaron: I feel like you're
crossing var() in keyframes and --custom-prop in
keyframes
... Problem you described is problem with having custom-prop in
keyframes, not having var()
TabAtkins: It's a problem with
having custom properties in keyframes that affect animations,
currently handled by tainting
... In ieal non-problematic case, have custom property defined
for element, animation of that property on keyframes rule
... var substitution hsould reflect the running animation, not
the base value
dbaron: Animations make you compute style
fantasai: How do you anmate a string?
TabAtkins: flip at 50%
<birtles> problem with display property: --foo: block; animation: yer 1s; display: var(--foo); @keyframes yer { from, to { --foo: none } }
fantasai: what's the use case for animating custom properties?
TabAtkins: Adding ability to type
custom properties in Houdini
... Lea also has some examples where it's useful to animate
keywords
dbaron: How does the global tainting work?
TabAtkins: If a custom propety is
animated in any keyframe
... That name is tainted, and becaomes an invalid reference in
an animation-* property
dbaron: I think global tainting is less disruptive cuz affects less stuff
shane: Can be bad because blow a way abunch of rules unexpectedly
dbaron: Can you do the other
tainting in both directions?
... Such that if you use a custom property in a keyframe then
you taint the value and it can't be used in an animation and...
that's harder though
... To solve frremy's case, need to also tain in other
direction
shane: For frremy's case
... You apply you static style
... That might tigger some animations
... And then you appy your animated style after that
... Don't update var references in animation properties
dbaron: As long as we don't send AnimationStart and AnimationEnd events each time
shane: You don't update animation-* properties EVER as a result of animated styles
dbaron: That's actually really
hard for us
... When we apply the animation style, we create a new style
context with a different rule, and th eold one is gone
now
... We're reying on the way cascading works that it has the
same animation values
... And this would mean sometme sthey don't
TabAtkins: Don't update them
dbaron: How do we not update them?
shane: You..
dbaron: We recompute the variable references because we created a new style context
Rossen: Our impl is fairly similar in that respect
frremy: You cannot animate custom
properties that are used in animation
... If you use somehting in animation, big red flag to not use
it
TabAtkins: One componaent might be using animation name for animation, another using it for something completely dfferent. They could be in different subtrees, b/c this is global
shane: Could maybe look into subtree-scoping... but need to inherit that down...
dbaron: I guess we could do it by
keeping the pre-animation style around and get the
non-animation properties from that
... Not that crazy
... We'd then end up... I just don't wnat ot use that trick
much
... Each time we use that trick, it's another power of 2 in
memory... already using it for :visited stuff
fantasai: power of 2 for whole tree?
dbaron: No just that element, but also adds lots of complexity
TabAtkins: Relatedly, I would
love to note any idea you have wrt handlign var in keyframes
today
... For that still need these multiple phases.
... Do need to run var substitution once to know what your'e
animating
... And then need tp ...
dbaron: We're just computing style twice
TabAtkins: That works, that' smulti-phase -- but nobody needs to remember what hte old style was in that case
dbaron: We're only doing it twice
when you initially do the animation
... or whenkeyframes applied are changed
... Otherwise we have right animation the first time
through.
... But also have the keyframe sthe first time through
TabAtkins: Ok, I would like to at
least jsut keep an issue on the name-tainting that we should
try to figure out something btter
... Works well for our impl, not so much for y'alls. Would like
something cleaner and safer
dbaron: I guess your proposal
isn't that horrible, just need to have the other style
around
... Might even be able to get away without it
TabAtkins: Alternative is to not
allow var() in animations ever
... Don't know what uses show up right now. But could restrict
it entirely.
birtles: Common to use variable for animation durations, to set it globally
TabAtkins: Makes sense
... So, dbaron, how much "not that horible" do you feel this
is.
... Should we switch the spec to value-tainting, or as an
issue
dbaron: Would prefer to keep as an issue until someone implements
gregwhitworth: Raised issue because we want to know what to o
TabAtkins: var in keyframes is a
separate issue
... This was just about animation-tainting
<leaverou> TabAtkins, I recently used var() in animation properties. The animation was simulating typing by animating width with steps(), so I used var(--length) in both steps(), and in animation-duration (multiplied by .2s)
TabAtkins: Let's talk about that
issue
... Proposed resolution is the var() function works in
@keyframes rules, and pulls its values from the element being
animated.
... Specifically, from the before-animations-run value.
Rossen: Any objections?
leaverou: If you use --foo in a keyframe, and var() in a keyframe, does it take its value from the elemtn or the keyframe?
TabAtkins: From the base value.
You set up the animation keyframes first, and then ????
... Everything else uses the animated value.
Everyone is confused
leaverou: var(--foo) will reflect the base value in the animation but not elsewhere? what?
TabAtkins: It'll work like Lea wants, where var() will be replaced based on custom property in the keyframe
fantasai: Which is not what you said in the beginning
<gregwhitworth> and I'm assuming that the --foo inside of the keyframe will update the values outside of the @keyframe correct?
TabAtkins: It is not
... Objections to proposed resolution?
... var() function works in keyframes, pulls its value from the
animated value of the custom property on the element
(proposed resolution)
RESOLUTION: var() function works in keyframes, pulls its value from the animated value of the custom property on the element
SimonSapin: So any cycles are resolved the usual way?
TabAtkins: Yeah
... Only remaining issue is, don't change animation-tainting
yet, but may want to change to value-tainting but too expensive
atm
dbaron: Might want to describe what value-tainting is in that note
birtles: display issue
TabAtkins: That's a separate
issue. Please file it.
... Always been ain issue
fantasai: Adding an issue or a note(prevoius issue, not display issue)
<dbaron> dbaron: ... been an issue since we added ability for keyframes to set non-animatable properties
<TabAtkins> ScribeNick: TabAtkins
birtles: We have level 2 specs
for animations and transitions, delta specs.
... They define some extra events - animationcancel,
transitioncancel, transitionstart (Edge and IE10 ship).
... I went to ship in Firefox, but spec and IE differ in delay.
After some discussion, I added transitionrun as well.
... Lets us tell if a transition actually fired or not.
... transitionstart in Edge fires at the end of the delay,
matching animationstart. Want to make the spec match.
... Then add transitionrun, which fires when a transition is
applied, even if it's in a delay period.
... So we were thinking that since Edge ships we can just impl
that, and do transitionrun at the same time. And then might as
well do the cancels.
... So should we go for it?
... Issue is the elapsedTime member, a little
complicated.
... elapsedTime wasn't clear, behavior or use-case. Was it for
syncing animations?
... The way it's specced ddoesn't let you do that. It gives you
the ideal time of when the event was fired, not the actual
time.
... But all browsers are consistent, and spec says that. I've
left it as it is.
... So should cancel events use the same thing - time when
animation was canceled? Or zero?
SimonSapin: If you're making it 0, does it need to be there at all?
birtles: It's on the interface
they all share.
... It's used enough in GitHub that we can't just remove
it.
<birtles> https://github.com/w3c/csswg-drafts/issues/68
TabAtkins: Is it used in a way that would break things if we just made it 0 all the time?
dino: Useful in iteration events, to know what iteration you're in.
TabAtkins: Maybe we can cheat and just return multiple of duration in the iteration event, zero elsewhere?
birtles: The start/end events do
so too, so you can just divide by duration.
... A lot of uses are just dumping to console for no obvious
benefit.
TabAtkins: So the cancels get fired if the transition property is removed?
birtles: Yeah.
TabAtkins: Or if the target-value is changed? WE cancel the current, start a new transition?
birtles: Yeah.
TabAtkins: Okay, then we probably
do want the elapsedTime, to know whether we were nearly done
with the transition or near the beginning.
... So we need a resolution - do we want to bless these four
events as shippable?
SimonSapin: Should we move them to the level 1 spec?
TabAtkins: What level is Trans/Anim at? WD?
[looks, they're both 2013 WDs]
RESOLUTION: move the four transition/animation new events to the level 1 specs
RESOLUTION: after edits, publish new WDS of transitions and animations?
<gregwhitworth> I would like to request a FPWD of tables, hopefully that's short
shane: The "revert" keyword is very very expensive to implement properly.
<fantasai> https://www.w3.org/TR/css-cascade-4/#valdef-all-revert
shane: Apple's impl isn't correct as far as we can tell.
https://drafts.csswg.org/indexes/
shane: It's supposed to set the
property to what it would be if there were no author
stylesheets.
... To do that you have to recompute the entire path from the
root to the node, because of inheritance.
fantasai: That's not right, the
spec shouldn't be affecting inheritance.
... It only blows away declarations from the cascade; it
doesn't touch inheritance. It's okay for the inherited value to
be set by author-level rules.
shane: If that's the case, then this is easy, never mind.
RESOLUTION: republish Cascade 4 as CR, with the additional note that inheritance isn't affected by "revert".
RESOLUTION: republish Cascade 4 as CR, with the additional note that inheritance isn't affected by "revert".
<fantasai> shane, is there a URL for your revert issue?
<ChrisL> is that the only change and have there been other comments on Cascade that need a DoC?
<shane> fantasai: no, sorry
SimonSapin: The definition of "revert" says "author-level". Does this mean "author origin"? And what about animations?
TabAtkins: Think the point is that everything from an author-level stylesheet, so animations may fall into that.
dbaron: Should just clear out animations/transitions entirely, always treat them as author-level.
<dbaron> and override
tantek: CR deadline for this year
is basically tomorrow.
... But also, editors should speak up if they think their specs
are near CR.
fantasai: Grid! I need some response from Mats and then we're done.
tantek: So this is our last
f2f.
... This year.
... And there's a pub moratorium sometime in Dec, need a staff
contact to tell us when it is.
<liam> [ December 19 - Jan 1 ]
Florian_: If we don't have a
plan, I'd like to put MQ4 on the CR list.
... Lots of things we want to punt from it.
<Bert> (Dec 14 = deadline for pub request)
tantek: Want to suggest Selectors 4.
TabAtkins: Can punt some stuff.
fantasai: There's some selectors interpretation issues that are harder.
tantek: Another is Box Align.
fantasai: Almost done - baseline is the big stuff.
tantek: I'm picking these because the issue list is small and the feature set seems frozen.
fantasai: Yeah, Box Align should
definitely be on the list.
... Tomorrow we can sort out a syntax issue and do the baseline
issues.
dbaron: Were my issues about property interaction resolved?
TabAtkins: I think so.
<tantek> Box Align issues: https://github.com/w3c/csswg-drafts/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+%22%5Bcss-align%5D%22
Rossen: So we have Grid, Selectors, Box Align, MQ.
Florian: Text 3?
fantasai: It's in Last Call, I'm working on it.
skk: What about Ruby?
fantasai: That still has a lot to
do, unfortunately.
... I'm working on Text 3 in my spare time.
... The Text 3 issues aren't super-complicated /
interconnected. They're nice and independent.
... Got some i18n issues, and then probably just push things to
telcons.
... There is a complete DoC, we just have to work thru it.
tantek: So for these, can you look thru these and make sure all issues are raised.
fantasai: And Scroll Snap is ready.
tantek: Now how many are gated on two people?
TabAtkins: Florian is on some of them.
ChrisL: During the rechartering,
got requests to say real status - "this is gonna wait for 4
years because it's complicated" or "this has X issues" or
something.
... Not huge detail, but better than "expect CR".
tantek: For those four or five specs, we can say "2016 Q4" and publicly commit
Florian: When we wrot ethe
charter, we focused on Rec, as it seemed to be a process
requirement.
... but the AC review seemed to show it's not - just put dates
on what can be predicted.
... If we can predict CR but not Rec, just put that.
... Some people still want Rec dates, but idea that it needs
Rec dates isn't valid.
... So next charter we can just put "Rec, unknown date, needs
tests"
<fantasai> ChrisL, Cascade 4 is ready for publication https://drafts.csswg.org/css-cascade-4/issues-cr-2016 with one editorial issue resolved and fixed.
<ChrisL> https://www.w3.org/Style/CSS/current-work.en.html
<fantasai> ChrisL, can you get it published? :)
tantek: So having CR dates is
valuable - we got that feedback.
... There's nothing between CR and PR - we're not communicating
when we have no idea about the test suite.
<ChrisL> fantasai, I asked about the DoC for Cascade
tantek: We should be transparent about that.
<fantasai> ChrisL, ? Link above?
<ChrisL> oh right
<ChrisL> excellent!
astearns: Maybe Bikeshed can track it?
TabAtkins: File me an issue?
fantasai: This should be the custom status, instead of the stupid boilerplate.
tantek: So for tomorrow's items - a lot that don't need to be in CR. If there are CR-blocking items, I'd like to prio them.
<ChrisL> fantasai, seems we could get a transition request for Cascading & Inheritance fairly quickly withthat tiny DoC
Florian: We have some MQ4 and 5 issues; the 5 are on the agenda.
tantek: So look thru MQ4 issues and see if any need to be raised.
<jensimmons> hi all — I just updated the slides at https://speakerdeck.com/jensimmons/proposal-to-csswg-sept-2016 to include the things I wrote up, but didn’t present — comparing my proposal to current Regions proposal, and comparing it to Slots, etc. Those slides are at the very end.
<astearns> jensimmons: add a link here as well? https://github.com/w3c/csswg-drafts/issues/499
Rossen: If you're an editor of one of those CR-ready specs, and you do or don't have agenda items for tomorrow, bring it now or email us and we'll make sure they're addressed tomorrow. Otherwise we'll do the agenda as stated.
tantek: And ask for horizontal review for these CR-ready specs?
fantasai: We've sent those out months ago.
tantek: So can we make an action to make sure those 5 specs ahve horizontal reviews?
Rossen: Yes.
gregwhitworth: I'd like to ask for an FPWD on Tables.
RESOLUTION: Publish Tables as FPWD.
dbaron: Make sure it's marked as not ready for implementation yet.
TabAtkins: In Bikeshed, use "Warning: not ready".
tantek: Speaking of, what about Filter Effects 2?
dino: No idea yet.
tantek: I'll ask again in January.
Rossen: So we've pencilled down
Seattle f2f for Jan 11-13.
... Which is mid-week - Wed-Fri.
... I'm working on getting Seattle space, so we don't ahve to
do it in Redmond (by popular demand)
... So feel free to book flights. In a week or two I'll have
the destination for your hotels.
... Might be a 1-day Houdini meeting on Jan 10 Tuesday.
... We have late April in Japan.
skk: I heard AC meeting in April is held 23-25.
dbaron: In Beijing, yes.
skk: And Tokyo is near. So I'd like to get our meeting before or after that.
Florian: After is about to hit Golden Week.
skk: Right, so maybe before is better. In the 17-21 week?
dbaron: Who's going to the AC Meeting?
<dbaron> How many people not based in East Asia would go to both the AC and CSS meetings?
Florian: dbaron, and maybe me?
dbaron: You're in Asia, ignore you.
<fantasai> dbaron, last day of exams is May 10th, so I could do Wed-Fri that week or anytie after without missing classes
Rossen: So 17-21 hits our bill -
late April - and avoids Golden Week
... Hiroshi might not be able to host in May in Tokyo
gsnedders: What about moving it earlier in April? Any easier?
fantasai: No idea right now. Right now it's 2 weeks before end of classes. We'll make it work somehow.
gsnedders: Note that April 16 is Easter.
dbaron: And if you celebrate it,
a 19-21 meeting means you have no jetlag day - you leave Monday
and land Tuesday.
... If we do a Houdini day before, you have to leave on
Easter.
[tons of unminuted discussion about spring/summer meetings]
<Rossen> adjourned
<Rossen> trackbot, end meeting
This is scribe.perl Revision: 1.144 of Date: 2015/11/17 08:39:34 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: RRSAgent_Text_Format (score 1.00) WARNING: Bad s/// command: s///???/jcraig/ Succeeded: s/???/jcraig/ Succeeded: s/for captions/for tables/ Succeeded: s/spec/side captions/ FAILED: s/be careful with anything you do wrt accessibility - captions are the unofficial accessible label for captions./be cautious how you announce any property changes with anything related to accessibility - caption is the official accessible labeling element for tables./ Succeeded: s/hide/collapse/ Succeeded: s/what about mark/what about marker/ Succeeded: s/add to it/extend it to, e.g. handle paint servers/ Succeeded: s/eae/esprehn/ Succeeded: s/isn't correct/redirects to a url with a fragment/ Succeeded: s/really// WARNING: Bad s/// command: s/think that Firefox is already solving this/didn't dbaron say that FF loads based on local vs non-local URL? That's less more straightforward than switching based on fragment/no-fragment/ Succeeded: s/SVG/SVG WG/ Succeeded: s/Chrome/chrome/ Succeeded: s/???/David_Wood/ Succeeded: s/???/David_Wood/ Succeeded: s/sz???/tzviya/ Succeeded: s/???/Bill_Kasdorf/ FAILED: s/Tzivia/Tzivia, Wiley/ Succeeded: s/Tzivia, Wiley/Tzviya, Wiley/ Succeeded: s/???/lrosenth/ Succeeded: s/???/lrosen/ Succeeded: s/based on textual/based on contextual/ Succeeded: s/???/Bill_Kasdorf/ Succeeded: s/???/David_wood/ Succeeded: s/force-quotes/first/ Succeeded: s/doc/book/ Succeeded: s/grids/cells/ Succeeded: s/?/lrosenth/ Succeeded: s/?/nots (candelas per square meter)/ Succeeded: s/nots/nits/ Succeeded: s/nots/nits/ Succeeded: s/bumber/bumper/ Succeeded: s/B2020/BT.2020/ Succeeded: s/Ma/Max/ Succeeded: s/white point and .../white point and transfer function/ Succeeded: s/REC7409 for ??/Rec.709 for SDR/ Succeeded: s/REC??? for/Rec.2100 for/ Succeeded: s/leave it as is/do what Shane is asking, pull translate rotate scale into level 1/ Succeeded: s/heycam|away/shane/ Succeeded: s/glazou/Tabatkins/ Succeeded: s/heycam|away/shane/ Succeeded: s/heycam|away/shane/ Succeeded: s/heycam|away/shane/ Succeeded: s/heycam|away/shane/ Succeeded: s/TabAtkins: I recently/TabAtkins, I recently/ Succeeded: s/var(foo)/var(--foo)/ Succeeded: s/dbaron/TabAtkins/ Succeeded: s/ChrisL:/ChrisL,/ Succeeded: s/later/again in January/ Found ScribeNick: shane Found ScribeNick: gregwhitworth Found ScribeNick: TabAtkins Found ScribeNick: fantasai Found ScribeNick: TabAtkins Found ScribeNick: fantasai Found ScribeNick: TabAtkins Inferring Scribes: shane, gregwhitworth, TabAtkins, fantasai Scribes: shane, gregwhitworth, TabAtkins, fantasai ScribeNicks: shane, gregwhitworth, TabAtkins, fantasai WARNING: Dash separator lines found. If you intended them to mark the start of a new topic, you need the -dashTopics option. For example: <Philippe> --- <Philippe> Review of Action Items Default Present: tantek, Rossen, dholbert, eae, jihye, gregwhitworth, glazou, dauwhe, bradk, Florian, antonp, myles, dael, Rossen__, dbaron, tgraham, myles_, antenna, astearns, plinss, alex_antennahouse, SteveZ, Bert, hober, iank_, rachelandrew, Rossen_, fantasai, fremy_, TabAtkins, vollick, ChrisL, smfr, zcorpan, antonp[, fremy, plh, SteveZ_, MaRakow, joone, Liam_Quin, bkardell_, gsnedders, jensimmons, leaverou, skk, ++++++++1, Guest, LiamQuin, p, tmichel, AndroUser, btw, liam, arybka, (finally), andrey-rybka, surma, skhrshin, tzviya, Charles_LaPierre, ivan_herman, David, Wood, Vlad, Karen, Leonard, Bill_Kasdorf, Paul_Belfanti, Heather_Flanagan Present: tantek Rossen dholbert eae jihye gregwhitworth glazou dauwhe bradk Florian antonp myles dael Rossen__ dbaron tgraham myles_ antenna astearns plinss alex_antennahouse SteveZ Bert hober iank_ rachelandrew Rossen_ fantasai fremy_ TabAtkins vollick ChrisL smfr zcorpan antonp[ fremy plh SteveZ_ MaRakow joone Liam_Quin bkardell_ gsnedders jensimmons leaverou skk ++++++++1 Guest LiamQuin p tmichel AndroUser btw liam arybka (finally) andrey-rybka surma skhrshin tzviya Charles_LaPierre ivan_herman David Wood Vlad Karen Leonard Bill_Kasdorf Paul_Belfanti Heather_Flanagan Liam WARNING: No meeting chair found! You should specify the meeting chair like this: <dbooth> Chair: dbooth Found Date: 19 Sep 2016 Guessing minutes URL: http://www.w3.org/2016/09/19-css-minutes.html People with action items: WARNING: IRC log location not specified! (You can ignore this warning if you do not want the generated minutes to contain a link to the original IRC log.)[End of scribe.perl diagnostic output]