[CSSWG] Minutes and Resolutions Tokyo F2F Thurs: Page Breaking, GCPM, Image-Resolution, Multicol

Summary:

   - RESOLVED: Add page selector grouping to CSS3 Page as at-risk feature, if Melinda
               objects make it a note that we will add it in the future

   - RESOLVED: If a page-break-before, page-break-after, or use of named page
               forces a page break, then the margin top is preserved after the
               break.

   - DRAFTED: margin-break: [ auto | discard | keep ] to control margin-before at
              page-breaks. auto is behavior decribed above. Can add second value
              to control margin-after (defaults to discard).

   - RESOLVED: page-break-before, page-break-after: column to force column breaks,
               other values apply to column breaking as well as pages

   - RESOLVED: howcome to clearly distinguish GCPM features that are moving forward,
               then propose publishing a new WD

   - RESOLVED: New syntax is image-resolution: normal | [ <dpi> || auto ]
     RATIONALE: Removes unused combinations and unnecessary comma

   - RESOLVED: Replace image-resolution: auto; with image-resolution: from-image;
     RATIONALE: 'auto' vs. 'normal' is hard to understand. ('normal' is 1 pixel == 1px)

   - RESOLVED: URLs inside functional notation where URL is expected should be able
               to take either url() or bare strings (like @import), preference for
               examples is bare strings.

   - Discussed removing 'background-image-resolution' in favor of various options.
     So far idea is that 'image-resolution' applies to all images and we will
     introduce functional notation in the future to allow setting resolution on a
     per-image basis.

   - howcome to prepare css3-multicol for Last Call publication; expecting a long
     (8 weeks) LC period to elicit comments and clarifications

   - Margins of multicol element no longer collapse with first/last children

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

<RRSAgent> logging to http://www.w3.org/2009/03/05-css-irc
Meeting: Cascading Style Sheets (CSS) Working Group Meeting
Date: 05 March 2009

Attendees:
   David Baron
   John Daggett
   Elika Etemad
   Sylvain Galineau
   Håkon Wium Lie
   Shinyu Murakami
   Mike Smith
   Anne van Kesteren
   Steve Zilles

Chair: #css
Scribe: fantasai

Grouping Page Selectors
-----------------------

   howcome: With regular selectors you can group them by comma, but with page
            selectors you can't do that
   p, div { ... } is valid
   @page foo, bar { ... } is not
   Agreement that this is a sensible thing to do and we should add it to CSS
   fantasai: I'm not sure if Melinda would be ok with adding this to level 3
   Murakami-san: Our new version supports this
   RESOLVED: Add to CSS3 Page as at-risk feature, if Melinda objects make it a
             note that we will add it in the future

[[Values and Units Discussion, see next set of minutes]]

<MikeSmith> Present+ Masataka_Yakura

Page Breaking and Margins
-------------------------

   howcome draws three boxes side-by-side on the board
   The first box has an M followed by lines representing text
   The second box has lines of text followed by a return arrow sign
   The third box has an M followed by lines of text
   Howcome labels the boxes 1,2,3
   Howcome writes a small m at the top of 2 and crosses it out
   Howcome: I think we need to resolve the page issue before deciding on the
            column break properties
   howcome: The issue is, where to eliminate the top margin
   Howcome: I don't think it should be eliminated at the start of the document
   Howcome: The spec says the margins are eliminated at page breaks.
   Howcome: The question is should it be eliminated at forced breaks
   Steve: THere are three cases of page breaks.
   Steve: page-break-before, page-break-after, and named pages
   Howcome: I would be so confused by having different behavior for
            page-break-before and page-break-after
   Steve: I am convinced that we should preserve margin on page-break-before
   Steve: but not page-break-after
   fantasai agrees with howcome
   Murakami-san: I agree with howcome. Page-break-before and page-break-after
                should behave the same.
   * anne is not in favor of printing in general :)
   Steve: I want a use case for page-break-after
   fantasai: Suppose I want to print CSS2.1 with breaks between sections and
             chapters
   fantasai: I want page-break-before on each chapter, to separate out the
             chapters from each other and from the cover pages
   fantasai: but I select page-break-after for the sections, because the
             beginning of the chapter is usually so short, just a title and
             maybe a paragraph or two
   discussion of use cases and margins and breaking
   Steve: Ok, I can live with it
   Anne: It's really annoying for projection mode that the margin is collapsed
         at breaks
   RESOLVED: margins kept at forced breaks for page-break-before and
             page-break-after
   what about named pages?
   fantasai: if we collapse there, you always have the option of forcing the
             break to keep the margin
   fantasai: and you're not guaranteed a break, because elements assigned to
             the same name do not break in betweenm
   one of the main use cases for named pages is e.g. putting a wide table onto
     a landscape page
   RESOLVED: If a page-break-before, page-break-after, or use of named page
             forces a page break, then the margin top is preserved after the
             break.

   Discussion of use cases for preserving margins at unforced breaks
   there definitely seem to be some, e.g. for headings
   Murakami-san proposes margin-before-conditionality: auto | discard | retain
   howcome mentions that registration (preserving baseline grid alignment) might
     solve some of these problems
   general agreement that this problem exists and we should solve it, but not
     for 3.0
   margin-before-conditionality.. howcome objects to 'before'
   fnatasai: suggestion margin-conditionality, can be treated as shorthand
     later if we need separate controls
   Steve: 'conditionality' is hard to spell
   Howcome: 'keep' instead of 'retain'?
   seem to have agreement on that
   discard seems to be ok
   Other names: margin-collapse, margin-break
   dbaron suggests margin-break, since its behavior (controlling margin's
     existence at breaks) is similar to border-break
   Looking at margin-break: auto | discard | keep
   Murakami-san: what about the margin-after?
   fantasai draws margin-break: [ auto | discard | keep ] keep?
   (well, first draws margin-break: [ auto | discard | keep]{1,2} but refines
   to above since margin is always discarded at bottom by default )
   Second value applies to margin-after. Defaults to discarding margin if not
     specified.
   Murakami-san notes that this control also applies to the first margin in
     the document.
   ACTION howcome add to GCPM draft as a holding place until next Paged Media
     draft is started

   LUNCH BREAK

Column and Page Breaking
------------------------

   howcome: the page-break properties control breaking across pages
   howcome: the multicol draft has column-break properties to control breaking
             across columns
   howcome: Some people have suggested to just use the page-break properties
            to control column breaks
   howcome: this has two advantages. One it saves us two properties
   howcome: and second it avoids having to discuss what happens when they
            conflict
   fantasai: A third advantage is that the author only has to set things once
   fantasai: e.g. want to avoid breaking between header and 1st paragraph,
             only set page-break-after: avoid;
   howcome writes page-break-before: column
   howcome: my main objection to this is aesthetic
   howcome: so we could either have column break properties, or move to this
            here
   howcome: on the aesthetic side we also have everything match, since -inside
            is page-break-inside
   Murakami-san: avoid affects only page breaks?
   fantasai, howcome: should affect both column and page breaks
   fantasai: If we need more fine-tuned controls, then we can add e.g.
             avoid-page in the future to avoid page breaks but allow
             column breaks
   steve: don't like name 'avoid-page'
   howcome: 'column-only'
   howcome: page-break-inside: column-only
   not much happiness about this
   Steve brings up the XSL names
   keep-inside: page | column | spread | auto
   RESOLVED: page-break-before, page-break-after: column to force column breaks,
             other values apply to column breaking as well as pages

GCPM
----

   howcome: we have two implementations of a significant subset of GCPM
   howcome: there are certainly things that aren't implemented
   howcome: So I propose splitting out the implemented bits and creating
            something more formal
   howcome: named strings and leaders for example
   fantasai: we could cut down the css3-content draft into the minimum things,
             then add those two and create a module from that
   howcome: we need an editor
   fantasai: well, I have to finish css3-page first, but it's next on my list
   howcome: I'm not sure that's fast enough, prince and antenna house have
            shipping implementations
   howcome: maybe we need a new official working draft
   fantasai: How about marking the stable sections as stable, and the unstable
             experimental parts as such, and then publish it as a working draft
   howcome and Murakami-san seem ok with this
   RESOLVED: howcome to clearly distinguish features that are moving forward,
             then propose publishing a new WD
   howcome: It would be good to know which features are in Antenna House's
            latest beta
   Murakami-san: We implemented named strings, leaders, cross-references,
                 footnotes, hyphenation, new counter styles, character
                 substitution, image-resolution and background-image-resolution,
                 page-markes and bleed area, bookmarks, cmyk colors, page floats
                 but limited to value top bottom page and footnote and inside
                 and outside
   Murakami-san: named page lists
   Murakami-san: that's all

   howcome asks when fantasai can work on css3-content
   fantasai: Selectors and css3-background are almost done, css3-page will
             take awhile, maybe 3 weeks full-time.. but I have other things
             to work on too. Let's check back end of April?

Image-Resolution
----------------

   fantasai: wrt image-resolution, I think it should set the default image
             resolution for everything and not have background-image-resolution
   fantasai: we use images lots of places, not just backgrounds
   fantasai: border-image, list-style-image, content, etc.
   fantasai: this solution doesn't scale
   fantasai: if we need more fine-tuned control, then we can introduce a
             function
   fantasai: that takes an image url and an image-resolution value
   Steve doesn't understand the use cases
   howcome: I was compiling a document for a conference
   howcome: the images came from all over
   howcome: I needed some way to set the resolutions
   steve: So if you had a tool like Photoshop that lets you go in and set the
          resolutions
   howcome: but i don't want to edit the image file, I just want to make sure
            the dpi is
   dbaron: On the Web we pretty much have to ignore image data about resolution
   dbaron: Raster images on the web are 1 image pixel == 1px
   fantasai: I don't think this syntax makes much sense
   fantasai: The only value that can have a fallback is auto, the comma isn't
             much necessary
   fantasai: image-resolution: [ normal | <dpi> ] || auto
   Murakami-san: In our implementation the resolution can have two values,
                  horizontal and vertical
   fantasai proposes syntax:  [normal || <dpi> <dpi>?] || auto
   szilles: I do not like 'auto' here; the keyword should indicate the purpose
   anne: intrinsic ?
   fantasai: normal | [<dpi> <dpi>? || auto]
   * anne wonders how often this problem actually shows up
   howcome: do you often need two resolutions?
   Murakami-san: we have some, but I don't know how necessary it is
   howcome: would you like to see it in the spec?
   Murakami-san: we would have it in Antenna House's implementation
   general skepticism about whether images with non-square pixels are common
     enough
   <anne> and whether image-resolution is in fact needed
   <anne> i.e. the image itself could be fixed
   Murakami-san agrees with the syntax change
   RESOLVED: image-resolution: normal | [ <dpi> || auto ]
   Sylvain and Anne are confused about normal and auto as names
   Steve had suggested intrinsic
   Anne: if there's an auto value it's usually the initial value
   howcome: I could live with from-image instead of auto
   fantasai: internal?
   howcome: internal to what?
   howcome: so from-image?
   no comment

   fantasai: ok, wrt background-image-resolution
   howcome: it's there because prince implemented it. I agree it's not a
            scalable solution
   fantasai: Does image-resolution affect only images in the content, or also
             images specified in CSS?
   howcome: I don't know
   anne: what about video and stuff?
   * myakura heard that dvd-video uses non-square pixels, not sure if that's
             correct
   back to background-image-resolution
   <anne> url-with-resolution("url", <image-resolution>)
   fantasai: we dont' need a separate property for every CSS property that
             takes an image
   fantasai: one that affects content and one that affects all CSS-specified
             images would be enough
   suggestion to use a functional notation that would allow setting the dpi on
     a per-declaration level
   howcome writes image("http...", 94dpi)
   fantasai: my concern with the image() notation is that there are a lot of
             other things we've wanted to do with this, such as image slices
             and fallbacks
   fantasai and others: shouldn't require url() notation, string is enough,
                        for when you expect urls inside a function
   anne and others: can allow it, but just not require it, like for @import
   fantasai: but don't use it in any examples!
   discussion around other gcpm properties
   anne: it seems simpler to not allow it
   anne: but for consistency's sake, we should allow it
   RESOLVED: URLs inside functional notation where URL is expected should be
             able to take either url() or bare strings (like @import),
             preference for examples is bare strings

   Review of auto vs. from-image
   RESOLVED: image-resolution: from-image instead of auto

   Options for getting rid of the background-image-resolution approach of
     exploding properties
   1. image-resolution applies to both CSS images and content images
   2. image-resolution takes two sets of values, one for content images and
      one for CSS images
   3. create a new property that applies to all CSS-based images (not just
      backgrounds)
   4. create a value-based syntax (functional notation) that sets the dpi on
      a per-image basis
   5. Combine 4 with 1-3.
   discussion of various options and what they mean
   Straw poll:
   Mike: no opinion
   Anne: 4
   dbaron: 4
   howcome: anyone volunteering for 4 has to do the work :)
   jdaggett: no opinion
   Yakura-san: I like 3
   Yakura-san: You could expand the property by saying which properties it
               applies to
   fantasai: I like 3+4, where 3 sets the default
   discussion and whiteboard doodling
   image-resolution-content and image-resolution-decoration in place of
     image-resolution and background-image-resolution
   where image-resolution-decoration applies to all css-based images
   background images, border-image, list-style-image, etc.
   Proposal use 3 with 4 as the way forward
   Counter-proposal to use 1 with 4 as the way forward
   Murakami-san points out the distinction between list-style-image and
     ::marker { content: url(); }
   Then the distinction between ::marker { content: url(); } and
     img { content: attr(src, url); }
   There's no clear distinction between content and style
   howcome: Ok, so I think we're down to one image-resolution property and 4
            as the way forward
   howcome: Implementations will do background-image-resolution, but that will
            not be part of the spec
   Murakami-san: Prince's image-resolution only applies to content images
   Murakami-san: The image-resolution and background-image-resolution pair is
                 better for our implementation
   Murakami-san: The content property with url() that replaces the element
   Murakami-san: image-resolution-content applies to images specified by the
                 content property with image URI
   dbaron: There's also a distinction in CSS3 between a single image and
           multiple images for 'content'
   BREAK

Multicol
--------

   howcome: I propose publishing css3-multicol as LC
   fantasai: I would like to see the changes we agreed on in the spec first
   howcome: understandable. Would like to smoke out any comments, get a sense
            that everything is pretty good
   howcome: aside from today there've been no changes in syntax or
            functionality, just a lot of clarifications
   fantasai: I think the functionality is quite stable, but it needs another
             round of review for clarifications etc.
   fantasai: So if we're going to Last Call, then I would suggest at least
             8 weeks rather than 4
   howcome: ok
   howcome: I will make those changes, prepare the draft for Last Call, then
            we can make the final decision once that's done

   Murakami-san: I feel there's a problem with the margins in multicol
   A multi-column element establishes a new block formatting context, as per
     CSS 2.1 section 9.4.1. However, the top margin of the first element and
     the bottom margin of the last element collapse with the margins of the
     multi-column element as per the normal rules for collapsing.
   <myakura> http://dev.w3.org/csswg/css3-multicol/#the-multi-column-model
   ""
   Murakami draws on the board
   Murakami shows some examples
   He says that the margins should not collapse through the multicol element
   Sylvain: Alex was concerned about this, too.
   fantasai explains that this behavior was put there because in the past
     there was no value-based distinction between a multicol element with one
     column and a normal element, and we didn't want to introduce a
     discontinuity there but since there's now a default auto value for
     column-count instead of 1, this problem doesn't exist
   Editor's note: The above is wrong. There was always a value-based distinction
   between multicol and non-multicol, but there /was/ a stated desire for a single
   column multicol element to behave like a normal element. It seems this is no
   longer the case.
   General agreement to remove margin-collapsing exception and treat multicol as
   a normal BFC.
   <howcome> http://dev.w3.org/csswg/css3-gcpm/#creating

   sylvain: Alex had some concerns about overflow
   howcome: we discussed that at tpac
   howcome: resolved to keep things as-is, and discussed adding
            overflow-style: paged
   howcome: we also discussed creating stacks of column rows
   fantasai: e.g. with a column-length property
   fantasai: but we decided to defer that until later

[[ Continues with Media Queries, see next set of minutes ]]

Received on Monday, 9 March 2009 06:34:14 UTC