[CSSWG] Minutes Seattle F2F Wed 2014-01-29 AM I: Page Selectors and Groups, CSS2.1, Region Styling

Page Selectors and Page Groups
------------------------------

   RESOLVED: 'page: name' is not inheritable, creates a group, but does
             not force page breaks between groups of the same name (for
             compat). First page of the group might be the last of another
             group. Delete the page-group property.

   RESOLVED: keep :nth() as the name, but extend functionality like L4
             :nth-child() to solve the "first of group" problem

   RESOLVED: add :first(A) to select first page of an A group. (A:first
             only selects a first page of the doc that also happens to
             be named A)

Seoul F2F
---------

   Dates are May 19 to 21 hosted by Samsung. Meetup on May 22.

CSS2.1
------

   RESOLVED: Change to MAY on default object size shrinking from 300x150
             for small devices

Region Styling
--------------

   RESOLVED: Shift Region Styling out of Regions, merge with page-based and
             overflow-fragment-based styling (which will all use the same
             basic syntax and cascade rules), put into css4-cascade for now

====== Full minutes below ======

Page Selectors and Page Groups
------------------------------
Scribe: SimonSapin

   dauwhe: Talk about page selectors
   dauwhe: Simple HTML (projecting) with <section>
   dauwhe: When paged, the first page of the chapter is special
   dauwhe: Several kinds of pages: left/right, start of sections, …
   dauwhe: special graphics, bg images, colors, etc.
   dauwhe: CSS Paged Media defines ways to select :left/:right/:first
           (of the document) and :blank
   dauwhe: When we demand starting on a left page, we may create a blank
           right page

   dauwhe: In particular, first page of chapters
   dauwhe: In previous GCPM drafts and some impl… Prince has idea of page
           groups
   dauwhe: <section> element creates pages, forming one group
   dauwhe: The page group is the fragmentation container of the pages
   dauwhe: Prince has a 'page-group' property

   dauwhe: :first will apply to the first page of a group
   dauwhe: conflicts with 2.1 where :first is only the first of the document
   dauwhe: also :nth() selector for pages
   dauwhe: concerned about terminology, others have nth-something
   dauwhe: proposing :nth-page() to clarify

   dauwhe: This is not about styling the content of the page, only the
           @page rule, headers, footers, etc.
   dauwhe: if you assign an element to a named page, haven’t figured out
           why not automatically create page groups
   (projecting an example)
   dauwhe: :nth-page() on a named page, selecting withing that page group
   dauwhe: would help to style first page of chapters

   <dbaron> A:nth-page(1) being nth within the context of A isn't how
            selectors normally work...
   <fantasai> right, I think that's a syntactic mistake
   <fantasai> it's like expecting foo:nth-child(even) to select every
              other "foo"
   <fantasai> but we're solving that with :nth-child(even of foo), maybe
              we could tweak the syntax here similarly

   astearns: How there are two page group cases?
   dauwhe: I create a page group on a <div> element. Every new <div>
           creates a new page group
   dbaron: Any div that create page groups has page breaks before and after?
   dauwhe: yes

   fantasai: You’re proposing that giving a page name should automatically
             create a group
   dauwhe: yes
   fantasai: that’s better. No awkward binding between properties.
   fantasai: but backward compat with existing impl of css-page. If you
             give the same page name to sibling elements, if the fit they
             can be on the same page
   fantasai: we can’t have 'page' cause a new page break every time
   fantasai: we can still have it create a page group. But not force a break
   fantasai: whatever page it starts on will be the first of that group
   dbaron: how would selectors work?
   fantasai: Match multiple page names/selectors
   SimonSapin notes that 'page' does create breaks when elements are
              assigned different page names

   astearns: I understand why page 6 does not match A:nth-page(1)
   dauwhe: the element that created everything here is the ancestor
   dbaron: A:nth-page(1) is not how selectors work usually
   dbaron: people want p:nth-child(4) to match the 4th p, but it’s the
           4th child
   fantasai: we extended :nth-child() in Selectors 4, :nth-child(4 of p)
   dauwhe: it’s hard to know what pages are, they’re not elements in the DOM

   dauwhe: do we like :nth-page() better than :nth()?
   SimonSapin: yes
   fantasai: In @page context, :nth() is clear enough
   fantasai: :first is not :first-page
   fantasai: not sure it should be -page
   dauwhe: I’d be fine with that, whatever the group thinks is reasonable
   SimonSapin: One issue with :nth() as it's currently specified
   SimonSapin: or maybe as implemented in Prince
   SimonSapin: Usually selectors are independent of each other, this is
               why we have :nth-child(.. of ..)
   fantasai: note also space is optional: can write @page:nth()
             cmp @page:nth-page()

   fantasai: do we have a :last selector?
   dauwhe: no. People want that. See requests all the time
   dbaron: what happens when the special style make it no longer the last
           page?
   dauwhe: usually it’s about margin boxes, not affecting page count
   SimonSapin: we still have to define what happens in "bad" cases
   dbaron: It might make sense disallow changing page margins in :last
   fantasai: or borders, or …
   dauwhe: makes sense

   dauwhe: objections to :nth() rather than :nth-page()?
   dbaron: I’m fine with that, more concerned about the context thing
   dbaron: that A:nth(1) with the first A page, rather than the first page
           that is also A
   fantasai: We're solving the same problem with :nth-child() in selectors4;
             we should do the same thing here.

   fantasai: Sounds like if ppl are ok with having 'page: name' be
             non-inheritable, creating a group
   fantasai: and have :nth(An+B of name)
   fantasai: I’d have to take an action item to update css-page
   fantasai: and you to delete the page-group property
   fantasai: do we want to add :first(A) ?
   RESOLVED: 'page: name' is not inheritable, creates a group, but does
             not force page breaks between groups of the same name (for
             compat). First page of the group might be the last of another
             group. Delete the page-group property.
   RESOLVED: keep :nth() as the name, but extend functionality like L4
             :nth-child() to solve the "first of group" problem
   RESOLVED: add :first(A)

   [some concern wrt reusing :nth() for non-page selectors]
   fantasai: within @page context there is no ambiguity in :nth()
   heycam: is :nth() valid in style rules?
   fantasai: no
   SimonSapin: page selectors are completely separate from Selectors

   heycam: I want to have the full page figure on a separate landscape
           page
   dauwhe: It’s an issue I want to address at some point, but need input
           from implementers
   dauwhe: being able to switch to a different named page without breaking
           the flow would enable all sorts of stuff

   SimonSapin: I think page selectors belong in Paged Media spec, except
               that nobody's really working on that atm
   SimonSapin: don't know if it's better to move them out
   fantasai: I think we can work on it in GCPM, then move it over once
             closer to done

Seoul F2F May 2014
------------------

   glazou: May CSS meeting, dates are firm now. Co-hosted by Samsung and
           W3C Korean office
   glazou: Request to have a meetup on Thursday morning. First time working
           group meeting in Korea, it’s a big deal
   glazou: Suggest booking flight as soon as possible, esp. from Europe;
           direct flights sell out fast
   plh: What do you want to do at this meetup?
   glazou: they are interested in our view of the future of CSS, and new
           industries we start touching
   F2F dates: May 19 to 21
   meetup on May 22
   glazou: you need a passport valid 6 months after leaving Korea
   glazou: you may not need a visa, but immigration can be tough

CSS2.1
------
Scribe: fantasai

   SimonSapin: When image has no size specified and has no intrinsic size,
               the default size is 300x150 px
   SimonSapin: except if that doesn't fit the device width, in which case
               it is the largest 2:1 rectangle that fits the device width
   SimonSapin: One issue is that it says device rather than viewport
   SimonSapin: It's such a rare case that I think it's not worth the
               complexity
   SimonSapin: Would like to simplify this to be just 300x150
   * fantasai thinks receipt printers might fall into this category :P
   SimonSapin: I couldn't get a testcase on a small enough device
   SimonSapin: Some implementations do 300x150, some do completely different
   SimonSapin: Don't understand Chrome's behvior, e.g.
   SimonSapin: They seem to use size of viewport?

   fantasai: Did you test the correct case -- no intrinsic size or aspect
             ratio?
   dbaron: normal case for that is an <iframe>
   http://lists.w3.org/Archives/Public/www-style/2014Jan/0310.html
   body:after {
      content: url('data:image/svg+xml,\
        <svg xmlns="http://www.w3.org/2000/svg">\
          <rect width="100%" height="100%"/>\
        </svg>\
      ');
   }
   SimonSapin: This is my testcase, maybe someone has a better one
   http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Ciframe%20border%3E
   florian: Your proposal makes sense to me

   <SimonSapin> "Otherwise, if 'width' has a computed value of 'auto',
                 but none of the conditions above are met, then the used
                 value of 'width' becomes 300px. If 300px is too wide to
                 fit the device, UAs should use the width of the largest
                 rectangle that has a 2:1 ratio and fits the device instead."
                 http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-width

   smfr: iframe gives 300x150. I think SVG case is a bit special
   dbaron: Or it could be that the iframe case is special :)
   fantasai: I don't have a problem with making this change, does anyone
             object or need more time?
   Bert: It's not unreasonable,
   fantasai: Does anyone care besides Bert and Simon?
   florian: I agree with Simon
   dbaron: I remember the intent being optional rather than required
   dbaron: The other option is that the spec could say that user agents
           designed for smaller devices may use a smaller size
   Bert: I think that would solve it
   RESOLVED: Change to MAY on this issue

   smfr: Another replaced element sizing thing
   smfr: One very common issue we see is that authors include images with
         very large heights and widths, with different aspect ratios
   smfr: We don't have a way to resize these images in CSS
   fantasai: Use max-width/max-height
   smfr: It doesn't work for different aspect ratio images
   fantasai: Why does "max-width: 100vw; max-height: 100vh" not work?
   glazou: I don't understand the issue
   smfr: Sometimes have margins, captions, also want them to fit
   dau: [agrees, gives examples]
   fantasai: Use flexbox, put max-size on the flexbox, and caption +
             image inside.

Regions
-------

   astearns: fantasai proposed last night to shift region styling out of
             Regions into a separate module
   astearns: This seems a good idea to me
   astearns: Region styling mechanism works for page-based styling, which
             print industry is much more excited about
   astearns: and would probably help drive forward
   astearns: What remains in Regions after shifting this out, is enough
             to work on at the moment
   astearns: Once page styling is defined, region styling would use the
             same syntax  with like s/page/region/

   dauwhe: where would this go?
   astearns: Paged Media?
   fantasai: Not really. That module is focused on box model of pages
   ?: GCPM?
   dauwhe: Maybe for level 4?
   Bert: No objection to that. It sounds that cascading and inheritance
         would be a better home for it.
   Bert: That's the most difficult part of it. Other part is just syntax
   fantasai: Cascading 3 is in CR, so we could start an L4 draft.

   SimonSapin: Same mechanism used for overflow: fragment, too
   fantasai: yes, all of these things will use the same mechanism, just
             with different idents
   fantasai: who would take this on? Alan, would you take this on as well?
   astearns: would certainly help, but can't focus on it
   dauwhe: I'd want help with the cascade part

   Bert: Where did :first-line and :first-letter go?
   fantasai: We need a new pseudo-elements draft
   <SimonSapin> http://wiki.csswg.org/spec/css-pseudo-4
   glazou: It was originally in Selectors, but there are more layout stuff
           so...
   plinss: Did we have an ED of the pseudos?
   fantasai: Yes, but the new stuff that was proposed wasn't received very
             well
   fantasai: Probably next draft should just focus on defining existing
             things better, e.g. :first-letter and ::selection

   astearns: Sounds like this would go into Cascading L4
   astearns: Is there any other content that needs to go into Cascading L4?
   astearns: Seems that we need someone to own Cascading L4
   TabAtkins: that would be me and fantasai
   astearns: Or resolve to put it into its own module, to be shifted around
              at a later date
   TabAtkins: Cascading is fine
   ACTION TabAtkins: Create Cascading L4 draft via copy-pasted of css3-cascade
                     and region styling chapter
   <trackbot> Created ACTION-614
   RESOLVED: Shift Region Styling out of Regions, merge with page-based and
             overflow-fragment-based styling, put into css4-cascade for now

Received on Thursday, 20 February 2014 00:18:46 UTC