- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Wed, 19 Feb 2014 16:18:17 -0800
- To: "www-style@w3.org" <www-style@w3.org>
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