[CSSWG] Minutes and Resolutions F2F Mountain View March 2011 Day 2: Layout specs, Tokyo Workshop, CSS2.1

Summary:

   - Reviewed Adobe's CSS Regions proposal for threaded regions and exclusions
       http://lists.w3.org/Archives/Public/www-archive/2011Mar/att-0011/CSS_Regions.pdf
     Many interesting ideas were presented and many good comments and suggestions
     made.

   - Reviewed Microsoft's CSS Grid Layout proposal, which incorporates most
     feedback from the last F2F.
   - RESOLVED: Publish Microsoft's proposal as css-grid-layout, i.e. CSS Grid
     Layout
   - Reviewed Tab's changes to Flexbox draft
   - RESOLVED: Publish updated draft of css3-flexbox
   - RESOLVED: Publish updated CR of css3-multicol
   - Discussed various issues with managing the test suites, particularly
     expanding to handle CSS3, especially CSS3 Multi-Column Layout.
   - RESOLVED: Use Bugzilla (instead of mailing list) for test suite bugs:
               one bug report per test unless there's a good reason not to.
   - RESOLVED: Tokyo workshop tentatively scheduled 31st and 1st: 31st as
               Japanese-only, 1st also in English with CSSWG. CSSWG F2F
               moved to Thursday-Saturday June 2-4.
   - Discussed line grid spec; Koji to write editor's draft after CSS3 Text
     and CSS3 Writing Modes winds down.
   - SVGWG will publish LCWD of their Compositing spec very soon.
   - RESOLVED: For CSS2.1 Issue 179, accept edit.
               http://wiki.csswg.org/spec/css2.1#issue-179
   - RESOLVED: For CSS2.1 Issue 225, no change.
               http://wiki.csswg.org/spec/css2.1#issue-225
   - RESOLVED: For CSS2.1 Issue 226, editorial deferred to CSS3.
               http://wiki.csswg.org/spec/css2.1#issue-226
   - RESOLVED: For CSS2.1 Issue 229, make situation undefined.
               http://wiki.csswg.org/spec/css2.1#issue-229
   - RESOLVED: For CSS2.1 Issue 273, editorial deferred to future version.
               http://wiki.csswg.org/spec/css2.1#issue-273
   - RESOLVED: For CSS2.1 Issue 274, accept dbaron's proposal.
               http://wiki.csswg.org/spec/css2.1#issue-274
   - RESOLVED: For CSS2.1 Issue 275, accept Bert's proposal.
               http://wiki.csswg.org/spec/css2.1#issue-275
   - RESOLVED: For CSS2.1 Issue 276, note that precise behavior of
               :first-letter, :first-line is not defined, may be defined
               in a future spec.
               http://wiki.csswg.org/spec/css2.1#issue-276
   - RESOLVED: For CSS2.1 Issue 277, deferred to errata.
               http://wiki.csswg.org/spec/css2.1#issue-277
   - RESOLVED: For CSS2.1 Issue 278, say "margin box of float"
               http://wiki.csswg.org/spec/css2.1#issue-278
   - RESOLVED: For CSS2.1 Issue 279, accept edit.
               http://wiki.csswg.org/spec/css2.1#issue-279
   - RESOLVED: For CSS2.1 Issue 280, change "to the right of it" to "next to it".
               http://wiki.csswg.org/spec/css2.1#issue-280
   - RESOLVED: For CSS2.1 Issue 281, accept fantasai's proposal.
               http://wiki.csswg.org/spec/css2.1#issue-281

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

<RRSAgent> logging to http://www.w3.org/2011/03/08-css-irc
http://krijnhoetmer.nl/irc-logs/css/20110308
http://krijnhoetmer.nl/irc-logs/css/20110309

Scribe: fantasai

Agenda
------

   Steve: Request toput tokyo workshop dates today
   howcome: multicol today
   glazou: module template tomorrow
   glazou: pull tokyo dates and multicol for today, keep rest for tomorrow
   glazou: Start with Adobe's proposal

Adobe's Regions Proposal
------------------------

   CSS Regions draft
   -> http://lists.w3.org/Archives/Public/www-archive/2011Mar/att-0011/CSS_Regions.pdf
   Arno: I'd like to talk to you a little bit about things we work on
         we're calling CSS "Regions"
   arno: Would like your feedback on whether it's interesting, going in
         an interesting direction, etc.
   arno: It started by us talking to our customers, especially print
         customers using InDesign to do fancy layouts
   arno: e.g. Conde Nast
   arno: They want to bring the experience ppl have on paper into digital media
   arno: We started experimenting, and some of those magazines are already
         available on the iPad
   arno: We very quickly ran into some limitations
   arno:  e.g. Wired has very complex layouts
   arno: We tried using various technologies to represent those layouts
   arno: But in this version we had to use images to represent each page
   arno: It's a lot of work, since the designers have to do layouts twice once
         for layout and portrait
   arno: With different device aspect ratios, it's even more work
   arno: Not a good solution
   arno: Not the case for everyone -- some customers have very simple layouts,
         close to templates, can use HTML to represent their ocntent
   arno: which has lots of benefits
   arno: We want to find the way to bridge the gap between HTML layouts you
         can do today, and what you can do on paper
   arno: You have very sophisticated layout of text, interaction of graphics
         and text
   arno shows pages with text flowing around contoured images, fitted to
        shaped regions
   arno: We want to be able to find ways to represent these sophisticated
         layouts in HTML and CSS
   arno: We studied these and came up with a proposal tha we think solves
         the problems.
   arno: We wanted to make sure what we were thinking about was implementable
   arno: So we started investigating implementing it
   arno: Btw, another use case is of course printing, which would benefit
         from sophisticated layouts
   arno: We started experimenting with WebKit
   arno: I'm going to show you some screenshots of some things, and then
         also live demos

   arno: Starting with very simple and basic things, it's columns
   arno shows a 3-col layout
   arno: You can do this with multicol
   arno: You have some fairly simple markup -- three divs and a heading
   The <div>s are labeled region1 through region3.
   Prior to that there's another div called article-content, which includes
     a heading and then the flow content (paragraphs).
   The regions are styled to be boxes floating side by side.
   article-content is assigned a "flow-thread: main;"
   The region3 divs are assigned "display: region; region-thread: main;"
   howcome: Those region elements are only there to give the layout
   Simon: What happens to the content of the region elements?
   jdaggett: It would be better to not put the layout structure as markup
             in the document.
   arno: Next example, we add an image sitting on top of the two first columns
   arno: You adjust the two columns to shorten them, and then place the image
   glazou: You cannot make content flow from one region to another, right?
   arno: correct
   * fantasai is confused about that, wasn't that the point?
   jdaggett: I'm wondering if you looked at some of the other proposals..
   plinss: This is not the interesting case. This is a very basic case.
   * Ms2ger is concerned about the number of layout specs
   jdaggett: But I think this is added semantics on top of one of the other
             layout approaches
   arno: One of the things you can do is to specify the order in which
         content flows
   arno: you do this by specifying region-index: <integer> on the region
         elements
   arno: Since the divs are just divs, you can also do more sophisticated
         things like applying transforms.

   arno: Another thing we've been talking about are exclusions
   arno: Which is saying "I want the text to avoid these areas"
   arno: So you can have images that encroach on the text
   arno: Our proposal is to use an exclusion-shape property that takes
         coordinates which you apply to an element, and then assign
         exclusions: "#idofelement" to the flow content
   <dbaron> ...could also use alpha area of image
   jdaggett: SVG path or mask would make more sense
   fantasai: There was a proposal from Bert for doing this by adding a
             single keyword to float.
   <fantasai> http://www.w3.org/blog/CSS/2007/07/03/rotations_and_non_rectangular_floats
   arno: also want to specify geometric shapes even if there's no image
   arno: You also want to do this for e.g. a circular pull-quote
   <Bert> (For the old, 1996(!) idea for flow around non-rectangular images:
          see 'contour' in
          https://www.w3.org/Style/Group/css3-src/css3-box/Overview.html#the-float-property)
   <Bert> (For an idea for non-rectangular/connected regions:
          https://www.w3.org/Style/Group/css3-src/css3-layout/Overview.html#chaining-slots-the-chains-property)
   <dbaron> [discussion of margin around the alpha shape]
   <Bert> (The "margin" around non-rect images in the contour idea is given
           by areas that are almost transparent, say 99%)
   <howcome> http://www.w3.org/TR/WD-layout

   arno: we just started with the coordinates since that was simple to
         implement and could do everything
   discussion of float intrusions that break a line in half
   plinss: We have a convention, starting with clip property, of using
           functional notation with shape e.g. rect(...)
   plinss: That would let you have different shapes
   plinss: more easily
   plinss: The other thing is you have a property linking from one to the other
   plinss: to define the exclusion
   plinss: What is the coordinates relative to?
   alex: What defines the tightwrap, content wants to tightwrap, or shape
         wants everything to wrap around it?
   alex: In CSS1, it was float requesting wrapping
   alex: So you could have a boolean, wrap around stuff, or don't wrap
         around stuff.
   alex: if you want to control, e.g. this bfc doesn't avoid floats, or
         this non-bfc avoids floats
   discussion of bfcs
   Steve: Think of the part that intrudes as being part of the bfc
   dbaron: Well, if we have a BFC due to scrolling, you don't want any
           floating content intruding into that content and forcing
           relayout on scroll
   alex: But that's a special case. overflow: hidden; it's totally reasonable
         to wrap around
   arno show s an example of columned text flowing around the coyote
   arno shows a page layout that uses this as a component

   arno pulls up a live demo
   arno: Here's the example with columns that have been transformed to be
         crooked
   arno edits the contenteditable content: the content flows from one column
        to the other
   plinss: What about property inheritance?
   plinss: Does content flowing into a region inherit from the region or
           its element tree parent?
   Steve: There is a desire to allow inheritance from regions (in its
          equivalent model)
   Steve: We have a special function, like inherit-from-region, that does that
   Steve: What's there doesn't quite match CSS's model
   plinss: I looked at that and couldn't figure out how it works
   Steve: This would be similar to the way ::first-line works
   fantasai: If you're doing inheritable properties, you'll probably want
             selectors too. So you can change not just the color of the
             text overall, but e.g. links inside the region
   fantasai: If you go down this route, people will want to go in that direction
   ...

   howcome: Have you shipped content with this?
   arno: No, just experimental
   howcome asks about resizing and reflow
   howcome: With multicol, you'd add a third column as the page gets wider
   howcome: what would you do here? is it tied only to two columns?
   Steve: This is with fixed regions, each explicitly specified.
   Steve: It needs to be adapted to work with multicol, flexbox, grid layout,
          etc.
   Steve: The key concept is the threads
   Steve: and the concept of exclusions
   jdaggett: So what you're saying is not the syntax that's important, but
             those two concepts that are important.
   Steve: Yes. There's still some work to do to make this fit into CSS well
   plinss: Another issue is that you're using 'display' to make something a
           region. You should use something else, so that we can control
           display of the regions
   <dbaron> maybe the 'content' property would work?
   <dbaron> e.g., content: flow(main), or content: flow(main, 2) to give
           indices
   plinss: In most cases, you want to use the other layout systems you have,
           and just have content flow differently through it
   Phil: What happens if you run out of content?
   <fantasai> or too much
   arno: It's a good question.
   fantasai: The other thing is that the regions shouldn't be empty elements
             in the document, they should be separate. So you don't have to
             build the layout into the document content
   Bert: César and I worked on some of this flow threading with his studies
         on the Template module
   Bert: One thing that became clear was that you need a baseline grid, so
         that the lines are consistently placed
   <dbaron> ...so that if you have two regions above each other (with
            different horizontal positions), you don't have a gap due to
            having half a line at the bottom of the first
   <stearns> need a baseline grid for content today (even if it's not all
             part of the same flow)
   Bert: Other comment, when you were moving the image in the demo, you
         have some cases where the content shows up in holes in the image.
         In howcome's proposal, the content always had to be on the outside
   Bert: So you wouldn't split the content into two columns
   glazou: You want to be able to flow text inside, e.g. a bowl
   fantasai: You're talking about two different things.
   glazou clarifies by drawing a picture of a bowl intruding into text
   11|222|33
   44\555/66
   777---888
   arno's example doesn't actually allow a line to be split by the float
     but it does allow the image to define the contour on both the left and
     right side of the line, if it's bowl-shaped
   glazou's example intrudes into the text splitting the line into multiple
     pieces
   <Bert> (Example XXII in
          https://www.w3.org/Style/Group/css3-src/css3-layout/Overview.html#chaining-slots-the-chains-property
          defines a reading order over partly side-by-side regions)
   * fantasai thinks Bert should put that on dev.w3.org
   * Ms2ger agrees with fantasai

   <hyatt> extend the slot concept from css3 template layout to allow for the
           specification of positioned slots
   <hyatt> css3 template layout defines a grid of anonymous slots.  you could
           imagine also allowing it to define anonymous positioned slots
           (that other content could then flow around/avoid)

   howcome: So what happens today if you have too much content for the regions?
   arno: It will not display
   smfr: What if you put overflow: scroll on the last region?
   Tab: Could think of this as a kind of overflow mode
   Tab: Would clarify what overflow: scroll means on the first region -- nothing
   * fantasai reads hyatts comments aloud
   peterl: (responding to hyatt's first comment) I'd actually like to see the
           other way - this replacing template's slot concept.
   <hyatt> div { positioned-slots: sidebar, masthead, body; }
           ::slot(sidebar) { position: absolute; left:100px; top:100px;
                             box-shape: <some path>; }
   howcome: We need to make sure this wokrs in a reusable way for longer
            articles, for printing
   <hyatt> css3 template layout supports per-page templates too
   peterl: I'd like to be able to define regions in an @page rule.
   Bert talks about his attempt to extend slots concept in template-layout
   <Bert> (Extend in the sense of automatic repeating the same layout
          template if there is more room, without need for media queries.)
   <hyatt> i would try to separate out all the concepts here.  there is
           (1) content flowing across linked regions,
           (2) the ability to define an irregular external shape that content
               flows around,
           (3) the ability do specify an irregular shape that content inside
               fits to, and
           (4) the definition of placed regions themselves that content can
               flow around

   glazou: Do you want to standardize this in CSSWG?
   arno: If you're interested in this, yes.
   jdaggett: Before we get to the stage of these guys spending time putting
             together a proposal
   jdaggett: I think it would make more sense for your group to start by
             reviewing the modules we already have, and see what you would
             need to /change/ to make them work for you
   jdaggett: The cases you're trying to solve are valid, but the syntax
             you're doing it with is grotty
   smfr: I agree, we should avoid adding another module and try to work this
         into e.g. Template Layout
   <stearns> linked regions might make sense in Template, but would exclusions?
   * fantasai thinks we need a Floats module
   howcome: We can't keep adding more and more advanced layout systems.
            We should try to merge them

   Steve: There are several key concepts here. One is the threading concept,
          which would fit well in many of our layout specs
   Steve: The other key piece is the exclusion piece, which is separate but
           also important
   dbaron: We could use 'content' property to assign content to a flow,
           e.g. with a flow() function
   Steve: That's a pull model, this is a push model.
   Steve: The third approach is to define a mapping between the twol.
   Steve: Those are 3 different ways of looking at the problem.
   Steve: Layout and grid are using a push model.
   Steve: I agree you could use a pull model as well
   Bert: There's a pull model in the cross-references in GCPM

   <hyatt> the concept of content flowing around a positioned shape and/or of
           irregular shapes is just new properties for positioned or floating
           elements (depending on what approach you decide to take)
   <hyatt> the concept of flow across containers should IMO be limited to
           anonymous models (multicol, template layout)
   <hyatt> i think just using positioned elements as the way to flow around
           content instead of floats, and then use positioned element z-index
           rules to say whether you avoid or not might work fine
   <hyatt> e.g,. establish a stacking context, then your internal stuff doesn't propagate out
   <hyatt> auto z-inxex it does, etc.

   Bert points to hyatt's comment above
   Bert: wrt #3, I was wondering if that should be extended to also make the
         text exactly fit a certain shape by e.g. making it smaller or larger
   Steve: That was in the proposal, too, arno just didn't mention it
   Steve: Classic example of pushing content into an external region that only
          shows up when needed is footnotes.
   Tab likes hyatt's comments and strongly agrees with using anonymous boxes
       instead of real elements to define the regions
   Tab: You can tell the region to only exist if it has content inside of it.

   <hyatt> @page { positioned-slots: header, sidebar, body(col1, col2)
             ::slot(col1) { ... }
             ::slot(col2) { ... }
           }
   <hyatt> You could imagine the "chains" linking being done without a property,
           e.g., in the specification of the template itself... see
           body(col1, col2) example

   glazou: Another way of specifying exclusions, used many years ago, is like
           background image
   glazou: You position the image and it defines an exclusion
   Tab says something that I didn't quite follow....
   ...
   Steve: In a gridlike or template-like layout you'd like to position to cell
          boundaries in that model, which doesn't quite fit into the bgpos model.
   glazou: Desktop publishing software can do that. What is the best option in
           terms of you for CSS to be able to translate those layouts into CSS
           layouts and vice versa?
   glazou: If we run into that, people are going to base layouts in CSS, so it
           needs to be compatible with desktop software
   Steve: FYI, glazou writes an editor
   glazou: Need to allow round-tripping
   arno: For us the key thing is to have the expressiveness. We are willing to
         take the cost on the tooling side.
   arno: round-tripping is a good point to bring up, though
   Tab: The only problem with defining exclusions purely on the content element
        is that it may then be difficult to position content that should sit
        in those exclusions (like a callout) in an appropriate manner.  But
        Positioned Layout, which I'll work on later this year, should be able
        to solve this - you can abspos an element relative to the content
        element, and specify the exclusion and callout using nearly identical
        rules as a bg-position and as top/right
   arno: want for an author to be able to us the tools, but more importantly
         the concepts they are used to

   <glazou> all applause Arno's pres and demo
   <arno1> Thanks everyone for the great feedback!

Grid Layout Proposal
--------------------

   <smfr> http://dev.w3.org/csswg/css3-grid-align/
   alex: What we have here in this version of the spec, it tries to roll into
         it all the feedback we've had so far
   alex: Doesn't necessarily mean we have the final overall picture
   alex: We're trying to be inclusive here, we wanted to produce a version of
         how it might work with the feedback
   alex: We're getting to the shape where we can think about how it integrates
         with other specs, e.g. merge with Template Layout
   alex: If there something we didn't get here, doesn't make sense to have
         there, let's discuss
   Markus: Our main goal was to address the feedback from the last F2F, align
           with Template Layout, figure out integration
   Markus: Also think more about print layout and lines

   Phil: Hi, my name is Phil and I'm from Microsoft, and I'm one of the editors
         on the CSS Grid specification
   Phil: Recap of feedback was to think in lines, not just thinking in rows
         and columns
   Phil: also think about naming lines to simplify maintenance so you don't
         have to renumber when you change things
   Phil: We also thought about naming regions of space.
   Phil: Template Layout does this, so we looked into incorporating that idea
   Phil: Also thought about ::slot() pseudo and putting multiple elements into
         a slot
   Phil: [...] a default slot
   Phil: I'll start by just walking through this and summarizing.

   Phil: Grid is not a table. Can do things tables can't do, e.g. hav cells
         overlap
   Phil: It's similar positioning in that regard; can be considered an alternate
         grid system for positioning
   Phil: We think people will use grid to do page layouts, form layouts, etc.
   Phil: We want layouts to be able to adapt to available space
   Phil: So we have some concepts
   Phil: auto sizing to the size of the content
   Phil: min/max functions
   Phil: fractional units, allocating remaining space
   Phil: You declare a grid by setting its display to grid

   Phil shows Example 1
   Phil: Declare a grid with "display: grid", set grid columns and rows,
         position to grid
   Phil moves to next section
   Phil shows template layout in grid
   Phil: assign into template regions with 'grid-cell' property
   Phil: We're not using the position property here
   Phil shows slider control example
   Phil: In this example we're using an alternative syntax that names the grid
         lines

   Phil: To name a grid line, you just specify a string before the measurement
   Phil: You can assign starting and ending lines to an element to position it
         in the grid
   Phil: There are tracks, lines, and cells in the grid model
   Phil: Tracks are the columns and rows of the grids
   Phil: grid-columns: 150px 1fr; creates two columns, a 150px column and a
         remaining space column
   Phil: This gives us 3 lines
   Phil: In old spec you would define cells implicitly by giving a span
         property, and then could align content within that cell (which could
         span multiple row-col intersections)
   Phil: in new spec you can define those cells explicitly
   ...
   Phil: grid-cell pseudo
   Phil: In template module you would define of the grid-cell with the
         template string
   Phil: Here you can create a grid-cell
   Phil: by using the grid-cell pseudo element, and giving it positions
   Phil: e.g. #grid::grid-cell("cell") { grid-column: .. ; grid-row: ...; }
   Phil: This creates a named cell, that you can then assign into just like
         you can assing into template-created named cells
   dbaron: maybe split this example using markup instead of a comment, it's
           not clear they are two different approaches to the same thing
   Steve: So you wanted to create a cell on the grid-line structure using
          pseudo-element
   sylvaing: That's similar to what hyatt proposed earlier, with the
             ::slot() syntax creating a flow target
   Brad: Can you assign other properties to a grid cell?
   Phil: Some, but mostly positioning stuff
   Tab: If you have a slot created by the template property, can you
        reposition it using grid-rows and grid-columns?
   Tab: I would prefer "no" :)
   Tab: I would not want a designer to be confused about their slot moving
        around because a later definition moved it
   plinss: I would prefer the cells to be defined where the template is defined.
   Markus: You could do that too
   plinss: I would prefer to have the template declaration to also include a
           list of defined cells
   plinss: You could then use ::grid-cell() to style the slot
   Phil: That starts making the template declaration really long and
         complicated.
   Phil: I like breaking it up into bite-sized chunks
   plinss: As a designer, I'd think of the template as a single thing. Don't
           like breaking it out like this.
   fantasai: You could use an @rule to put all the pieces together and give
             it a name @template mylayout { .... }

   <bradk> #grid::grid-cell("cell-start" "cell-end", "cell-start" "cell-end")
           { grid-cell-name: "cell" }

   plinss: I don't like the template ASCII art thing.
   various people object and declare their love for the ASCII art thing
   plinss: I think it's very 80s and very constrained and very silly
   Markus: I was exactly in your camp when I first looked at it. We want to
           make it cleaner, more industrial strength, etc.
   Markus: But then we started to try building something a little more
          complex with it
   Markus: But as you start to have more complex grid structures, the ASCII
           art structure very easily and clearly represents those layouts
   Markus: The problem is that it's not industrial strength. You run out of
           characters
   howcome: Can we get some from the Chinese? :)
   Markus: You have the power of both.
   Phil: grid cells is a superset of template since you can do overlapping cells
   * hober never wants to see slots named U+1F4A9 in ascii art
   plinss:  What happens if the "d"s in a template don't form rectangles?
   Tab: You can't do that
   Tab: They have to be rectangles
   plinss: I have to draw rectangles in ASCII art?
   glazou: It's ugly
   Tab: As someone who edits CSS in a plaintext editor, I love this.
   glazou: My goal is to make CSS editable without a text editor.
   glazou: Without knowing about CSS.
   Tab: It is really easy to create a UI for the ASCII art.
   Markus: We are open to either way.
   Steve: I agree with what Markus just said, which is that the argument is
          a red herring, provided that there is a clear relationship among
          each method of specifying the grid
   Steve: and that you cand round-trip between the two
   fantasai: well, ascii art is a subset of the functionality of the other
             method, so you can't round-trip but there is a clear mapping
             between the two
   Steve: yes
   Steve: that satisfies my requirements
   <Bert> (The "ASCII art" was inspired by proprietary WYSIWYG template
          editors used by two mobile companies; although their output
          was HTML tables, not CSS.)
   <Bert> (Cesar has a WYSIWYG editor for templates themselves, made by a student.)

   Steve: talks about assinging multiple inlines into a single slot
   Phil: I wasn't too clear on that point
   Phil: If I were to float: left something I positioned into slot A, and
         positioned something else into slot A, would it flow around the float?
   Bert: That was the intention, yes
   something about overlapping
   Tab: You could create multiple slots in the same place
   Alex: Not sure you want to mix unrelated content from various pieces of
         the dom into a single flow
   Bert: run-in has a similar problem, taking an element out of here and
         putting it there where it has to be reflowed
   fantasai: run-in has other problems...
   Steve: You're just creating a shadow element that's the combination of
          all the things you're flowing into the slot
   Steve: and then you flow that
   Alex: Yes, it's possible, but it becomes more complicated
   Alex: If you really need it we could do it
   Steve: The example from the spec is footnotes
   Phil: Ok, let's note that and move on.

   Phil: You declare a grid using the display property -- could be inline
         or block
   Phil: We have a definition of grid items
   Phil: You can put inline-blocks, block-level elements, various other items
   Phil: These are wrapped in an anonymous block
   Tab: We have more precise terminology for this stuff
   <fantasai> (probably should look at 9.2 etc.)
   Phil: You can name lines, or not name lines. They have an implicit name
         which is a number
   Steve: Do you use direction and writing mode to determine these?
   Phil: Yes

   Phil: I can put names by putting strings before the grid measurements.
   Phil: I can put multiple names before a measurement, that gives it aliases
   Phil: depending on your naming convention, this might be convenient
   Phil: You specify a start and end line
   Phil: There are also start and end lines predefined, which are keywords
         rather than strings.
   glazou: I don't like that. A lot of authors are going to use the terms
           start and end
   Phil: Not a syntactic conflict. There might be mental conflict. I've
         heard that several times...
   fantasai: Can you count the numbers from the end rather than from the
             beginning?
   Steve: e.g., if you allow negatives to count from end, 1 to -1 would be
          start to end

   Phil: We also introduced syntax we borrowed from grid spec for repeating
         rows or columns patterns
   Phil: You might want, e.g. a content space and a gutter, content space,
         gutter.
   Phil: We have a concept of repeating patterns for that
   Phil: You can name the pattern, that applies to the first line in the pattern
   Phil: This is useful for noting the start of the repeating run.
   Phil: grid-columns: 10px ("content" 250px 10px)[4];
   Steve: If I have this repeating pattern, and I shrink the window size,
          is there a way to drop columns?
   Phil: Not in this spec. Although we have a concept of automatic columns
         and rows.
   Alex: With grid positioning, repeat meant repeat this combination until
         you run out of space.
   Phil: That's something you could add.
   Steve: There's an interesting interaction between fractional space and
          that concept
   Alex: Yeah, you can't combine them.
   Alex: I think we resolved them to zero or something.
   Tab: You could have repeating pattern, and fractional space on either side.
   Tab: I think that's the only case it would make sense.
   Alex: You could repeat fractions, but you'd wnat to resolve those first
         before repeating them.
   Steve: You want an integral number of columns, use flex space algo to
          adjust columns or gaps as specified
   <hober> repeat("content" 250px 10px, 4)
   fantasai: Syntax comment -- we're trying to avoid using additional
             punctuation for something specific, in case we want to do
             something generic with it later. So I would suggest to use
             a functional notation, e.g. repeat(). Also more clear what
             it's doing.

   Phil: We have some different sizing functions for tracks
   Phil: Lengths, percentages resolved against grid element size
   Phil: Fractional values, which are resolved against the remaining space
         proportional to the number (relative to total of fractional values)
   Phil: max-content, min-content keywords
   Phil: fit-content
   Phil: minmax() defines a size range
   Phil: auto keyword is equivalent to fit-content
   Phil: Any questions on these?
   Simon: Did you consider a comma-separated syntax?
   Phil: We played with various syntaxes, but tried to avoid adding
         unnecessary characters
   dbaron: If you have commas, you have lines and you have things for the
           spaces in between them. You have to then figure out where the
           commas would go.
   Steve: good point
   simon is concerned about readability with multiple names
   fantasai: You could use line breaks, since it's space-separated,
             which let's you break wherever you (the author) think makes sense.

   Steve asks about flex vs fractional notation
   Alex: Aiming to get flex and grid to have same sizing capabilities
   Steve: My impression was that it's easier to use flex.
   Steve: To get an equivalent mapping, it takes several nested minmax()
          functions
   Steve: A 5-tuple as a set of constraints is simple
   Tab: Let's talk about that [later]
   Phil: Just a note on how values are computed.
   Phil: You might have the same name appear multiple times in the grid value ...
   * scribe isn't getting this

   Phil: auto grid column and row generation in case you refer to a gridline
         that doesn't exist

   Phil talks about used value serialization
   CSSOM results
   glazou: Computed Value is extremely painful to parse
   Simon: What's the alternative?
   glazou: parsing the repeat notation is problematic
   Simon: Thinking about gradients, how could that have been better?
   glazou: For gradients need a better CSSOM
   glazou: Think about users of getComputedStyle, expand everything
   Phil: We wanted to be able to re-assign the value back into the OM and
         get the same result
   Phil explains a complicated example
   dbaron: I think it's important that it be round-trippable
   dbaron: I think expanding it beyond what it was is causing it to be
           non-round-trippable.
   dbaron: If you read in the grid , and there's an element that
           auto-generates lines, and you write back, and then you read in
           and remove the element, you wind up wit lots of extra grid lines
           that weren't there before

   Phil: The grid-column and grid-row properites are used for positioning
         children of the grid
   Phil shows the syntax propdef tables
   Phil: If you don't specify ? you get an implicit end line
   Phil: We said that items are placed in a cell.
   Phil: That doesn't necessarily mean the element stretches to fill the cell
   Phil: The cell is just a containing block
   Phil: There's also the concept of explicitly defining the grid cells,
         which we covered before
   Phil: with that name you can place more than one item into a cell
   Steve: What do you mean by placing more than one item into a cell?

   Phil: The default behavior is for these items to stack, one after
         the other in a flow
   Phil: whereas positioning them makes them overlap
   Steve: That seems a little subtle
   Phil: There's a property to control this, grid-cell-stacking
   Phil: You can have things stack in rows or columns directions, or layer them
   Phil: Perhaps the initial value here should be layer for ocnsistency
   Steve: That would be better
   Simon: [...]
   Phil: We intend that they are block-level or inline-block elements.
   Phil: if they are valid grid items
   Phil: There is also special sizing behavior, where the alignment
         properties for when you put an element into a grid-cell include
         stretch, start, end, and center
   Phil: There's a row alignment and a column alignment
   Phil: If you take a block-level element and assign it a grid-column-align
         property other than stretch, then it will align to one of the edges
         of its grid-cell and size itself shrink-to-fit
   Phil: relationship between that and stacking items in a grid cell
   Phil: default is to stretch
   Phil: so it stretches to occupy the whole cell
   Phil: But if you're stacking, the elements will size shrink-to-fit so you
         can put one on top of the other
   Phil explains something more about sizing, several people look confused
   Phil talks too fast to minute.

   Steve: Sounds sort of like each of these cells is a flexbox in what you're
          doing, with the flex direction being either rows or columns
   Phil: No flex, but yes similar
   Steve: Each item that's stacked is being handled as if it were a flex
          item whose size is based on its content. I.e. it beocmes a BFC,
          there's no margin collapsing, etc.
   Phil scans through sections of the draft defining the various properites
   fantasai: What if grid-row specifies and a start and an end line, and
             grid-row-span also specifies a span?  Could have a cascading
             problem too.
   Phil: We should make it clear that an ending line has priority over a span.
   Phil: We left in grid-row-span, grid-column-span, because we liked that
         ability more

   Phil: There's a concept of implicit columns or rows
   Phil: You create auto tracks as needed
   Phil: There's a property to control what size track gets created, so that
         they're not always auto-sized

   Phil: Lastly, concept of automatically placing items in the gird.
   Phil: There's a concept of grid-flow, which creates more rows (or columns)
         as needed.
   Phil: Would take awhile to explain, take a look at the draft
   Steve: this is for indefinite numer of coluns?
   Phil: Yeah. I have a form with lots of fields, as an author just want to
         define a grid for your fields
   Phil: I create three columns, and then tell the forms to find an auto row
   Phil: Here are the grid alignment properites, discusses writing mode
         interactions, etc.

   Phil: Drawing order of grid items is not changed; got some feedback on
         using z-index, haven't incorporated yet
   Phil: Concern is wanting to drop things behind other things, but not
         behind the grid element background
   Phil talks about stacking contexts
   Phil: Need an easy send-to-back functionality
   dbaron: A full stacking context would do that
   Phil: Not sure we really want to prevent z-ordering behind the grid
         element just because we want easy send-to-back
   dbaron: You don't have to do that by default, but the author could
           specify it themselves
   dbaron: That makes the send-to-back scenario work
   Phil: Stacking contexts are complicated, I'm concerned about making
         authors understand them and z-index in order to make this work.
   Alex explains something about making all form controls relpos just
        to get z-index working

   fantasai: What is the relationship of this to existing grid module?
   Alex: Positioning is really interesting in concept of page layouts,
         and we have some ideas on how to integrate them
   fantasai: It seems this module folds in a lot of that functionality,
             so you could publish this as an update to that module.
   Alex: Grid positioning deals with other content, not necessarily your
         immediate children
   Alex: One thing that needs to be defined is element sizing, and how
         do you define a positioning container ... where grid is applicable
   Alex: Once we figures out where grid position is applicable, who is
         the grid positioning container, and how is the grid defined on
         that, we can easily merge these specs together
   Alex: So that everything here contributes to grid definition.
   Markus: We still need a lot of the concepts from that spec to integrate.
   Alex: I think the main use case for grid positioning is page floats
   Alex: I don't think page floats is quite as ready
   fantasai: Ok, I understand why they are separate and I agree that makes sense.
   * fantasai suggests css3-grid-layout :)

   <br type="lunch">
   * Ms2ger suggests css3-kitchen-sink-layout :)
   * fantasai thinks that's an accurate description :P
   </br>

   Markus: Wanted to follow up on discussion from before-lunch meeting
   Markus: Would like to advance grid layout spec from editor's draft to WD
   jdaggett: For FPWD, there are special requirements
   howcome asks if we can merge grid layout and grid positioning
   fantasai: From what Alex was saying, I think it makes sense for the modules
             to be separate
   fantasai: And publish this as grid-layout

   jdaggett: What are the requirements?
   glazou: Has to be in the charter
   fantasai: It is, since it's closely related to existing css3-grid
   fantasai: need permission from plh to publish FPWD, but nothing else
   RESOLVED: Publish as css-grid-layout, i.e. CSS Grid Layout
   ACTION Bert make publication
   <trackbot> Created ACTION-312
   fantasai: (It would be a Level 1 of this module, so not using Level 3 in
              title.)

Flexbox
-------

   plinss: Deferring line grid, since it's marked as "if time allowed"
   plinss: Flexbox?
   Tab: ???
   Alex: Wouldn't you like to present the changes in your latest draft?
   Tab: I could?
   Tab goes up to present
   Tab gives overview of flexbox
   <smfr> http://dev.w3.org/csswg/css3-flexbox/
   Tab: Current editor's draft of flexbox is much closer to my draft,
        and to suggestions we've made so far
   Tab loads page with lots of red

   Tab: Using term flexbox consistently, instead of box which is too generic

   Tab: Flex-direction says which directions the boxes flow in
   Tab: Have physical and logical directions
   Alex: If we had a multiline flexbox, how would we extend flex direction
         for it?
   ISSUE ^
   Alex: One approach would be to use existing writing mode
   Alex: There is no logical equivalent of those
   Alex: Maybe do come up with eight logical abbreviation directions
   fantasai: How about combining keywords with spaces, e.g. tb lr ?
   Tab: flex-order lets you reorder items

   Tab: Flexible lengths is where it really changes.
   Tab: Old draft used a flex property that took an integer, and then
        keywords for alignment
   Tab: I'm going with a different approach here,
   Tab: Got feedback from daniel and web authors that "width" being an
        input in to the flex algo and not really the width was confusing
   Tab: Using now a flex() function, which takes 3 args, first one is
        positive flex, second is negative flex --
   Tab: Established at F2F that negative and positive flex should be
        distinguished, otherwise you get unintuitive results, ie. largest
        thing becoming smallest
   Tab: Third arg is the starting width.
   Tab: auto gives previous behavior; it's always additive flex, but by
        default this arg is zero so you get absolute flex if you don't specify

   Tab: flex-order allows you to reorder items
   Phil asks about having the reordering be a more generic concept, since
        it's useful in many layout models not just for flexbox
   Tab: Ok, could have that be a generic mechanism for rewriting source order
   Steve: ...
   Phil: Template layout had an area that used source order for flowing
         items, might want to reorder in that as well
   dbaron: Do people have positive experiences using an integer-ordering
           property like this?
   dbaron: or does this get unweildy with more content?
   Tantek: numbering BASIC worked so well!
   Steve: Might want to reorder columns
   Steve: in that case maybe using names
   Tab: fantasai brought up case of tabbed layouts, where active tab is always
        in front
   Tab: I'm certain like many of our advanced tools it can be abused
   Tab: Like we shouldn't be sorting lists with this
   Tab: But I'm not sure how else to get the functionality we need here
   dbaron: Wrt usefulness of order, Gecko has implemented box-ordinal-group
           for around a decade now.
   dbaron: But it's used so rarely that we're still getting very fundamental
           bugs filed on it

   Tab returns to flex()
   Tab: The old flex property and box-align properties are replaced with
        flex() notation

   Tab: Then we have the flex-pack property, which determines the
        distribution of content within the flex direction
   Tab: It works similar to text-align
   Tab: justify evenly spaces out the flexboxes, aligning them flush
   fantasai: I would suggest to look at ruby-align property, esp distribute
             (which seems like a better name here) and distribute-space
   Tab: flex-align property..
   Tab: Normally use flex to do alignment, but couldn't figure out how to
        do baseline alignment
   Tab: Not totally clear on the use cases, so still haven't fully specc'ed
        it out.
   Tab: auto just means normal flex distribution, baseline means
        currently-undefined magic
   Tab: That's pretty much it, rest is algorithms
   * fantasai notes that flex-align could get a generic name and solve some
     other important problems like vertical alignment of boxes

   Tab: We've established that for flex, we want positive flexibility,
        negative flexibility, and a starting width. These are all important
        pieces of information we need to flex correctly.
   Markus asks why there's flex() instead of 'flex'
   Tab: The original approach of having two different properties that have
        to be thought of together to get a single effect was confusing
   Tab: And with negative flex we needed yet another one
   Alex: My concern is that it makes absolute flex easier but relative flex
         harder
   Alex: The main working mode of the whole spec becomes absolute flex,
         which is not the previous system
   Alex: I expected default starting width to be auto
   Alex: Have padding initial be zero, width initial be auto
   Markus: ...
   Tab: Talking to authors playing with old spec, they're confused.
   Tab: Having flex: 1; on multiple elements result in different sizes
        confuses them
   Alex: If you're working on top-level page layout, absolute flex is more
         useful
   Alex: If you're laying out form controls or menus, then additive flex
         is more useful.
   Tab: I have to make one shorter syntax than the other
   Alex: Let's look at other options

   Tab talks about terminology for width and height algos
   Markus: Is your motivation that this would replace existing flexbox spec?
   Tab: Yes, replace
   Markus: Despite existing implementations?
   Tab: Yes. I think this is sufficiently better that it should replace.
   Tab: Working with chrome devs, they are enthusiastic about replacing it
   Alex: Is Mozilla going to move to the new syntax?
   dbaron: We'd definitely like to have a standard version of flexbox.
   dbaron: It's hard to tell how quickly it would happen.
   Alex: would it make a difference if it stayed closer to the old syntax?
   dbaron: I think the syntax is less of a big deal than the concepts
   dbaron: A lot of the stuff we use flexbox for now is stuff we want
           additive flex for now.
   dbaron: potentially harder to convert existing content
   Tab: I don't buy the conversion argument
   dbaron: But it seems like a lot of typing
   <dbaron> people might not know what flex(1, 0, auto) means
   dbaron: And I don't think people will know what flex(1,0,auto) means
   <dbaron> (which they'll be using a lot)
   Markus: Shouldn't we standardize the current spec now?
   Markus: And make this the next level?
   Tab: You can't really do that. They're not compatible, not without some
        really hacky stuff
   Tab: Also my experience talking with authors is that the current spec
        is really confusing
   Markus: Yeah, it's not that great, but we have implementations
   Tab: I'm not in favor of standardizing something that's bad.
   dbaron: I think you're getting different feedback because the web authors
           you're talking with are trying flexbox for something it wasn't
           designed for
   <glazou> standardization is always bad because it is always a compromise
   fantasai: So, my position is that the changes Tab have made make this
             spec much better, and we should go in this direction. With
             regards to implementation, I don't think changing syntax is a
             significant cost: the hard part is the layout code. Which has
             to change to handle negative flex and other concepts we're all
             agreed are important to have.

   Tab: If it's a question of which (additive vs absolute) is easier, I'm
        not concerned about that question
   Tab: What's important to me is breaking with the previous syntax.
   Markus: We have implementations coming, and it's used.
   Tab: But not on the Web
   Tab: And our implementation at least is very buggy.
   Tab: It's a minority prefixed thing.
   glazou: Current implementations are too weak and too buggy for use
   Tantek: That's the point of prefixes -- they allow us to experiment.
   fantasai expounds on this topic, but doesn't have time to type it.
   dbaron: I don't think negative flex is the hardest thing here, it's
           adding flex to margins and padding
   dbaron: ...and as a value to existing properties
   fantasai: But thats needed if you want to apply this to HTML, because
             in XUL you have to use <spacer> elements, and we don't want
             to add those in HTML documents.

   Steve: ...
   Steve: This in my mind has the level of flexibility that you need
   Steve: It's also a lot easier to explain to people than the other one
   Steve: It would work perfectly well within the grid layout model
   Steve: I think Tab's choice of using the zero-width thing is more
          appropriate there
   Tab: For the most common case, of starting flex from the auto width
        and using single flex, you can just use 'auto'
   Tab: That's equal to flex(1,0,auto)
   Tab: We can still talk about how to make them easy, but there are ways
        to make both common cases easy
   dbaron: Shouldn't the width value come first?
   Tab: I had that first, and it makes it easier to do relative flex, but
        it doesn't work so well for absolute flex
   Tab: Alex suggested swapping the order

   fantasai asks about making flex() detect whether it's aboslute or
            relative based on whether it's a length or an integer
   Steve: ...
   Tab: I had flex units be additive and flex() be absolute before
   Steve: The flex unit is confusing if grow and shrink are given in one
          set of units, and different in another
   ...
   Tab: The idea of what's the best way to present this concept to authors
        is something we should talk about
   Steve: Btw I'm not disputng the 5-tuples
   Steve: Just discussing syntax
   Tab: I think this is the best option, though I'm open to other options.
   Tab: Main question is whether we go forward with this or revert to the
        old draft.
   Alex: We want draft to become stable and move forward
   Alex: I don't see a way to get there without having a new draft
   plinss asked for objections to moving forward with this draft
   RESOLVED: Publish updated draft of css3-flexbox

CSS MultiCol
------------

   howcome: Multicol is in CR. We have a couple of issues, but close to
            getting a new version
   howcome: Would like to publish another CR
   howcome: Big issue was pseudo-algorithm
   howcome: In previous versions the pseudo-algorithm tried to reduce the
            number of columns
   howcome: Seems to be consensus on not doing that, and relying on authors
            setting column-width to give the columns a minimum width
   howcome: here's what I suggest to edit the pseudo-algorithm
   fantasai: Can we get comments in the pseudo-algorithm?
   howcome: maybe
   howcome: I think my proposal is correct, put a max fuction to make sure
            width doesn't go negative
   howcome: The prose says that if both 'column-width' and 'column-count'
            have non-auto values, the integer value describes the maximum
            number of columns
   howcome: fantasai noted this in the minutes
   howcome: But this prose is not included in the pseudo-algorithm
   Sylvain: Fix the pseudo-algorithm
   Discussion of use cases for column-count
   howcome: btw, my proposal for fixing this should use min() instead of max() ...
   fantasai makes an argument that the combination of column-width and
            column-count is the most useful way of specifying column-count,
            and this behavior is not provided by any of the alternative
            proposals for how it should behave; and the behavior of the
            alternative proposals can be gotten in other ways
   Simon: Should we rename it to column-min-width?
   howcome: we'd have to go back to last call
   no strong opinions in favor of renaming
   howcome: Can we update the CR?
   plinss wants to be more verbose and have it column-min-width
   fantasai disagrees
   Brad: If there's only one thing to set the width, it should just be width
   RESOLVED: Publish updated CR of css3-multicol

   dbaron: test suite?
   howcome: I'm working on the test suite
   dbaron: we have 22 reftests for columns
   fantasai: bunch more in pagination
   dbaron: we'd need to go back and check that the tests match the current spec
   howcome: how do we go forward with the tests

Segue: Testing
--------------

   johnjan: I have some ideas
   johnjan: We should take what we learned about CSS2.1 and apply to CSS3
   johnjan: I think first we should map every test to the part of the spec's
            testing
   dbaron, fantasai: We have links to section headings already
   arron: That's not very specific
   fantasai: css3 specs have more fine-grained subsections than CSS2.1
   johnjan, fantasai: ideally would do per-paragraph anchors
   fantasai: And Bert's postprocessor script supports this
   fantasai: but it's hard to have stable anchors per-paragraph
   <dbaron> http://test.csswg.org/suites/css2.1/20110111/xhtml1/toc.xht
   johnjan talks about testing
   keeping track of which sections are tested, not tested,
   how many tests are for each section
   <alexmog> what if test ID used a section URL plus the text of the
             paragraph? then mapping can use simple search to map. when
             paragraph moves it is still mapped to. when the pargraph
             changes the tests have to be updated anyway...

   johnjan: we're not interested in implementation testing, but in
            implementability testing
   dbaron: We need a test suite to enter PR, but that shouldn't be the only
           purpose of the test suite.
   dbaron: I think we should be developing the test suite for interop
   dbaron: We want the test suite to solve real problems for authors, not
           just get us to PR
   dbaron: Authors have problems when impls don't do the same thing
   dbaron: And we want to test things that will have bugs that bother them
   <dbaron> It's not about proving interop... it's about improving interop.
   johnjan: proving compliance and interop are two different
   dbaron: It's not about proving interop, it's about IMproving it
   ...
   johnjan: There's no motivation for making test suites other than going
            to CR
   sylvaing: You could say that you need an implementation report to drop
             your prefixes
   sylvaing: Today, we allow dropping prefixes as soon as we go to CR.
   sylvaing: If we require tests, that gets us tests and it makes sure that
             impls dropping prefixes implemented it correctly
   johnjan: I think testing has to drive the process more

   some questions about logistics
   fantasai: public-css-testsuite and the svn repo are available to all css
             modules, not just 2.1
   fantasai and arronei review the review process
   http://wiki.csswg.org/test
   howcome: Do they have to be reftests?
   Tab: There should be an excuse to why it's not a reftest

   dbaron: Did we adopt the scripted reftest conventions?
   fantasai: Not yet, we'd have to do so
   dbaron explains reftest-wait convention: a reftest with
     <html class="reftest-wait"> tells the harness it needs to wait, so it
     adds a mutation listener to HTML and does the comparison when the
     "reftest-wait" class is removed.
   howcome: do we need scripted tests for multicol?
   dbaron: Yes, changing pagination points
   johnjan: resizing the window

   howcome: Safari?
   Simon: We have 50-60 tests in our test suite
   Simon: But they're not really suitable for test suite tests in their
          current incarnation

   howcome: What about multi-col in vertical text?
   Alex: It should just work :)

   johnjan: what about prefixes?
   Arron: No prefixes in the test suites
   johnjan: So we can't test until we drop prefixes
   dbaron: Could add prefixes with regexp
   fantasai: Current build system has concept of output formats, would be
             easy to build regexp into that

   Arron: Another issue is tracking issues on the testcases
   Arron: Using the mailing list is really really unweildy
   Arron: Can we use bugzilla?
   johnjan: The mailing list is really going to be hard to manage
   dbaron: Bugzilla is too heavyweight
   plinss: we have a design for a system, just need to build it
   johnjan: We need something now
   Arron: May not be perfect solution, but Bugzilla gives us something for now
   fantasai: So I think we should adopt Bugzilla, one bug report per test
             unless you have a really good reason not to.
   RESOLVED: Use Bugzilla for test suite bugs, one bug report per test
             unless there's a good reason not to
   * mollydotcom says yay, that's good news

   howcome: So we put tests in contributors directory, and if I review and
            approve them I move them to the approved/ directory
   fantasai, arron: right

<br/>

Tokyo Workshop
--------------

   <plinss> http://wiki.csswg.org/planning/tokyo-workshop-2011
   Koji: There is a group in Japan supported by Japanese government trying
         to host forum or workshop
   Koji: I'm the liaison to the CSSWG
   Jay: My name is Jay Kishigami
   Jay: I am going to make a presentation for the upcoming Tokyo workshop
   Jay: This is a good opportunity to discuss with Japanese publishers and
        other users of vertical writing.
   Jay: But it's not only in Japan, but also in other countries.
   Jay: Old Korean was written in vertically
   Jay: Newspapers in Korea were in vertical up until 1996 or so
   Jay: And also Chinese write in vertical
   Jay: Chinese, Japanese, and Mongolian all currently write in vertical
   Jay: Maybe this community discuss the real requirements
   Jay: Publishers and software vendors are very interested in ths workshop
   Jay: Maybe some presentation from Asian layout implementers and device
        vendors, authors
   <kojiishi> You can find Korean newspaper archives by date at http://dna.naver.com

   Jay: I just wanted to confirm dates for workshop
   Jay: Before or after
   Jay: I heard that fantasai cannot attend before, but others are better before
   Jay: before is also good if items come up for WG discussion, can be
        discussed at F2F after
   Jay: Is there any objections or comments on the date?
   glazou: How many days do you plan to have the workshop?
   Koji: I don't think we have finalized this yet
   glazou: I think one day is probably enough
   glazou: Since we are meeting W-F for CSSWG F2F
   glazou: So Tuesday is best especially for people travelling from far away
   Bert: How many people should come to the workshop?
   Koji: It depends if you want a small group, then we can have such a meeting,
         or if you want to have a bigger meeting we can do that.
   glazou: We can have both.
   glazou: Most of the WG will be present.
   glazou: We can have panels with questions where WG interact with audience,
           split into tables for lunch

   glazou: The only problem in smaller groups is your last line, the language
   Jay: Atm we have two solutions for the language.
   Jay: one is to have basic language be English
   Jay: But for some people they're not comfortable to speak English
   Jay: So we can have simultaneous language
   glazou: Japanese is probably best for main language, but we need English :)
   Jay: So proposal is May 31st Tuesday from 9 or 10am through the evening,
        with lunch session
   Jay: We can have tables with discussions at the tables
   glazou: That's doable if we have one person per table able to translate
           between English and japanese
   glazou: That's the only trouble we have

   Peter: One other thought about the dates is that we could push our meeting
          back by a day or shorten it by a day
   jdaggett: I think we definitely shouldn't shorten our meeting
   plinss: We could also push back our meeting by a day, T-S
   fantasai and Steve can't make Tuesday
   ?: Tab, can you host on Saturday?
   Tab: difficult, since Google employees won't be there
   jdaggett: We could host on Saturday
   <Bert> (So how big will the ftf be, again 25, or less?)

Scribe: Tab Atkins

   jdaggett: I'm concerned that if it's only publishing/gov people, we
             (CSS) aren't really capturing the main audience for this,
              which is people designing for the web.
   jdaggett: It's good to consider the use-cases the publishers have,
             but that tends to be a relaitvely limited set of uses
             compared to everyone designing webpages.
   Jay: The participants here may be from the publishing area, but will
        include the web designers.
   Jay: Maybe the signage designers would be able to offer useful feedback
        as well
   jdaggett: We're designing CSS here, and the focus is on designing CSS,
             not necessarily on how Japanese text works.
   Jay: The goal of this workshop is understanding how to handle vertical text.

   <mollydotcom> John's concerns are very real, and of course this is an
                 ongoing issue
   <mollydotcom> as the person who acts as developer liaisons, we have to
                 engage designers more
   <mollydotcom> but Japanese text is part of that too - designers designing
                 Japanese sites need the technology
   <mollydotcom> I'm just repeating my old mantra: Engage designers somehow
   <mollydotcom> It's very difficult, not our fault, but it's necessary

   jdaggett: It would be useful to have a workshop on CSS and how Japanese
             fits into that context, rather than how publishing works in Japan.
   Koji: I think we tried to make the participant list take into account
         input from the WG, including you.
   <mollydotcom> +1 That's the point, is it not? John. At least as I see it
   jdaggett: I think it seems that this is trying to be everything to everyone,
             and it needs some clear themes.  What are the problems we're
             trying to discuss.
   jdaggett: My concern is that people are just going to get up and talk about
             things that they think are important.
   * mollydotcom says isn't that what happens anyway?

   Markus: So you want to frame it as "How can we help", action items that
           the WG can take away to work on.
   jdaggett: Right; we need to think about it in terms of CSS and the web,
             not just about the difficulties of publishing.
   plinss: I think CSS is becoming more and more important in publishing.
   jdaggett: Right, but we need to ensure that it's both about the web and
             publishing.
   Markus: If you explain what is the delta between what you see on the Web
           and what you would want to see
   Markus: I think it's easiest to phrase things as a delta between what
           currently exists and what is lacking that is needed.
   <mollydotcom> I agree - but any focus on publishing and not the Web
                 pisses off a lot of developers and designers. Who is using
                 CSS more today?
   Jay: We want to intentionally produce just such a productive and tangible
        result from the discussions.
   Markus: Every time you have a speaker, elicit a summary so we can walk
           away with an understanding of what we need to work on.
   Jay: Though, perhaps the older publishing people won't fully grasp what
        is "CSS".
   Jay: So some interpretation may be required.
   <mollydotcom> it sounds unfocused to me
   <mollydotcom> what is the end goal?
   <mollydotcom> in one sentence

Scribe: fantasai

   Steve: Are you looking at this as a meeting as a way for CSSWG to present
          what we're doing and get comments and questions back?
   Steve: Or are we sitting through presentations where japanese people
          explain what they need?
   Steve: I don't have a particular preference, but from the CSS viewpoint
          it seems to make more sense for us to present what we are doing,
          since that's what we are expert in
   Steve: But it would also be relevant to hear what other people think we
          /should/ be doing
   <hyatt> "what they need" is already described really well by the amazing
           http://www.w3.org/TR/jlreq/ document
   <glazou> hyatt: yes that document is amazing
   <hyatt> glazou: that's really what we've been using in webkit to guide our implementation
   <glazou> hyatt: how suprising :-)

   Koji: Is there anyone who can give an overview of what's going on in CSSWG?
   fantasai: you? :)
   <mollydotcom> How about focus sessions on each then? "Hear from the CSS WG"
                 and "Hear from the attendees" which could be very compelling
                 if well described
   fantasai: Could hve two days, one in Japanese, one with the WG in English
   fantasai: Japanese can use the first day to interact with and learn from
             each other, and organize what they want to present to us, ask us,
             request from us
   Koji: Could have first day Japanese learning, second day presenting to WG
   Jay: So could have second day be workshop, with English support, first day
        be preparation for/by/in Japanese
   Jay reads out name of government org that will be co-organizing with W3C

   glazou: When do you think the organizing committee is going to release a
           schedule for the day?
   Jay: Need to coordinate with Japanese government and W3C
   Koji: SVGWG is also interested in participating in this forum
   Steve: They have their F2F the next week
   Steve: I think Chris favored having the workshop beforehand as well
   Steve: He also talked about having a joint SVG-CSS meeting
   Koji: Should be able to get back to everyone within 2-3 weeks
   Steve: Asap, so people can get airline tickets
   RESOLVED: Tokyo workshop tentatively scheduled 31st and 1st, 31st as
             Japanese-only, 1st also in English with CSSWG; CSSWG F2F
             moved to Thursday-Saturday June 2-4

CSS3 Line Grid
--------------

   plinss: anything to discuss here?
   John: I don't think we should be discussing things where we don't have
         anything written down. I think that should be a prereq for discussing
         at an F2F
   jdaggett: I'm a little confused why we're talking about this as a separate
             spec
   jdaggett: This was in a previous CSS3 Text draft
   jdaggett: I think it's peculiar to be creating modules here
   fantasai recaps history of CSS3 Text
   jdaggett: Given everything we have on our plate here, I think it's a little
             premature to work on a spec here
   jdaggett: Were there implementers on the CSSWG who wanted to implement this?
   Koji: Apple
   fantasai: We need 2 implementers to take on a module
   Koji: CSS3 Text was born 12-13 yrs ago as International Text Layout spec
         from stuff at Microsoft
   Koji: The Japanese portion of that spec was mostly written by me, brought
         from MS Word features
   Koji: Line grid one of the features Word implemented in 97 and tried to
         bring into IE
   Koji: Nobody has been showing much interest since IE
   Koji: Not sure what happend after, but it was decided to split up
   jdaggett: What needs to happen first is Apple need to say they're
             interested in this
   jdaggett: And then we can assess whether this is something we wan
             to take on
   jdaggett: We have a very full charter
   jdaggett: Seems like something that should be starting after we finish
             CSS3 Text and CSS3 Writing Modes
   jdaggett: Talking about it now seems premature
   Alex: We started that set of specs in IE6 time to reflect what we had
         in IE and what we wanted to have in IE
   Alex: line-grid itself is largely driven by Japanese publishing but it
         is also line alignment that typography, in particular multicol,
         that is used in desktop publishing
   Alex: We are glad that somebody else is interested
   Alex: We had a hard time last 12 years in promoting this
   Alex: We should create a spec that a new implementer like us can agree on
   Alex: Not sure what we do if Apple goes to implement line grid without a spec
   jdaggett: If both Apple and Microsoft are interested, then we should have
             them write down what they're interested in implementing
   jdaggett: Let's have a written proposal that describes what they're
             interested in
   Simon: for the record, we weren't aware of this, so we need to talk with
          hyatt and find out more
   Koji: I prioritize writing mode and text higher, but expect to get to line
         grid in a few  months.
   jdaggett: So we can talk about it then
   Alex: What do you propose for start making changes to the spec
   jdaggett: first, I think we should have a written proposal of what we want
             to take on,
   jdaggett: second, group reviews this and decides whether this is something
             we want to take on
   jdaggett: It's largely a matterof editor's time, but also discussions at
             F2F and telecons, so impacts groups time
   Koji: It's not a new spec, it already exists in 2003 CR
   jdaggett: So point to the spec sections
   <fantasai> http://www.w3.org/TR/2003/CR-css3-text-20030514/#document-grid
   jdaggett: Do you want all of this?
   jdaggett: What is the exact set of features from that spec that you are
             talking about?
   Koji: My approach was to write an editor's draft and ask people for review
   jdaggett: Usually people write a rough draft of what they want
   Steve: I think there are two points going around here.
   Steve: One is, we get regularly beat up from W3CM about having too many
          irons in the fire and not finishing anything
   Steve: We did a priority review at the last charter, and concluded this
          was not at all a priority
   Steve: Since then priorities have changed, especially due to EPUB
   Steve: So one issue is what are we giving up to work on this
   Steve: Second is, if we are going to work on this, is how to go about
          doing it.
   Steve: Adobe and Microsoft both put proposals on the table to discuss
   Arron: You mean a proposal other than the current spec?
   Steve: Could just be updated copy of old spec
   jdaggett: I also think along with the proposal, an indication of what set
             of features implementers are interested in implementing from
             that proposal, is also important.
   jdaggett: My concern is that you and fantasai are editors of the CSS3 Text
             spec
   jdaggett: And I don't see that as being stable, there's a lot of work
             remaining there.
   jdaggett: My concern is that we shouldn't be talking about priorities
             until we get through whatever has to happen for that
   Koji: So when the time arrives I should copy from 2003 CR and put on my
         own site?
   jdaggett: Just put it on dev.w3.org
   fantasai: I think that was all he was asking permission for.
   Bert: Putting it in the charter is a separate matter, but dev.w3.org
         is available.

Compositing
-----------

   plinss: SVGWG will publish Last Call of their Compositing spec.
   plinss: They plan to set a 4-week LC period, until april 7
   plinss: They are asking us if that's sufficient time
   <plinss> http://dev.w3.org/SVG/modules/compositing/master/
   plinss: Ok, nobody seems to be asking for more time.

CSS2.1 Issues
-------------

   plinss: That's most of what we preplanned out for today. Also have
           the elephant in the room of CSS2.1 issues
   plinss: Daniel and I suggest tackling those
   * Bert would like to see Daniel and Peter tackle an elephant. :-)
   plinss: Plan for rest of day is to work on CSS2.1 issues.
   plinss: If people want to leave, feel free to leave. We are not working
           on anything else today.

   plinss: One quick thing to discuss, over lunch we talked about keeping
           the editorial issues we don't want to deal with now
   plinss: but that we think are valid
   plinss: Several options are making a CSS2.1.1 or CSS2.1
   plinss: or slip them in between PR and REC
   plinss: Advantage is that we can tell people that we accept their issue
           just not right now and it will show up in a future revision
   Arron: My concern with the last one is that we accidentally introduce
          a substantive change.
   plinss: Other thoughts?
   <mollydotcom> this is to ensure that we can shelf 2.1 or does it still
                 remain in limbo

   dbaron: So, it's somewhat dangerous from an editing perspective to branch
           if you're going to make substantial changes to both halves of a
           branch
   <dbaron> ...and then want to merge them
   fantasai: I don't think the merge is going to be that difficult, because
             CSS2.1 has short lines and we aren't making that many changes
             at this point.
   plinss: So what are we going to do?
   fantasai: I don't care, as long as I have some place to put the edits so
             I never have to look at these emails again.
   dbaron: Should consider which branch is going to get served off the server,
           if you're going to branch
   <mollydotcom> it's been suggested from the design community to add an
                 intermediary css2.1.1 or somesuch. I don't know if that
                 helps or hurts us, but that's the general sentiment

   <plinss> http://wiki.csswg.org/spec/css2.1/anton-lc-2010
   plinss: I'm looking for resolution to accept the recommendations on the
           wiki page where Arron and fantasai analyzed Anton's comments.
   arron: Stuff we didn't have a no-change conclusion on has been filed in
          the wiki as issues
   fantasai reviews the wiki doc
   CL3 could add a more explicit reference to other section, but there's
     a link already
   <dbaron> http://dbaron.org/css/test/2011/css21-issue-280 is a testcase
            for issue 280
   fantasai: I basically have three levels of suggestion:
             1. Change now
             2. Change in errata
             3. Editorial for some undetermined future revision.
             (and of course 0. No change)

Scribe: Tab Atkins

   plinss: First open issue is 179.
   dbaron: Has an action to Bert.
   dbaron: So what do we need to do?
   plinss: Do we need to make this change?
   fantasai: Yes, it's currently wrong.  It's an example, but it's wrong.
   RESOLVED: Accept the edit for 179.

   plinss: Issue 225
   dbaron: I don't understand "the top of the parent box" in this proposal.
   dbaron: In the text he's quoting, the conditions for top and bottom are
           different, and I think they need to be.
   arronei: I think the current text is fine, personally.
   dbaron: This proposal looks like a substantive change.
   dbaron: I don't understand why this is saying "top of the parent box"
           instead of using the same language for top and bottom in each
           list item.
   dbaron: What's the parent box?
   arronei: It should be the top border edge of ???
   dbaron: If it has a previous sibling, the top of the parent isn't what
           you want.
   dbaron: And a lot of this section is dealing with situations where the
           first child may be outside of the element's own height, because
           margins are collapsing through that first child.
   dbaron: Anton is correct that the current spec is wrong.
   dbaron: It was written at a time when we assumed there was no in-flow
           content that would inhibit margin collapsing ??? [maybe never
           mind, the text may be right]
   dbaron: Never mind, I don't see anything that needs changing here.
           Certainly don't see what's wrong with the second sentence.
   plinss: So, do we think the spec is fine?
   dbaron: Yeah, I think so.
   RESOLVED: No change for issue 225.

   plinss: Issue 226
   fantasai: I need to write text.
   plinss: Do we agree that this is a necessary change?
   fantasai: Don't remember.
   <johnjan> http://wiki.csswg.org/spec/css2.1#issue-226
   arronei: let's look at it and see.
   RESOLVED: 226 is editorial, deferred to CSS3.  No change to CSS2.

   plinss: 229.
   dbaron: This is a case where no impls match the spec, I think.
   <fantasai> 
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cdiv%20style%3D%22border%3A%20solid%20magenta%22%3E%0A%20%20%3Cdiv%20style%3D%27float%3A%20left%3B%20border%3A%20solid%20green%3B%20%27%3EA%3C%2Fdiv%3E%20aaaa%0A%3C%2Fdiv%3E%0A%3Cdiv%20style%3D%22border%3A%20solid%20blue%3B%20margin%3A%20-2em%22%3E%0A%20%20%3Civ%20style%3D%22float%3A%20left%3B%20border%3A%20solid%20yellow%3B%20%22%3EB%3C%2Fdiv%3E%20bbbbbbb%0A%3C%2Fdiv%3E
   <fantasai> 
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cdiv%20style%3D%22border%3A%20solid%20magenta%22%3E%0A%20%20%3Cdiv%20style%3D%27float%3A%20left%3B%20border%3A%20solid%20green%3B%20%27%3EA%3C%2Fdiv%3E%20aaaa%0A%3C%2Fdiv%3E%0A%3Cdiv%20style%3D%22border%3A%20solid%20blue%3B%20margin%3A%20-2em%22%3E%0A%20%20%3Civ%20style%3D%22float%3A%20left%3B%20border%3A%20solid%20yellow%3B%20%22%3EB%3C%2Fdiv%3E%20bbbbbbb%0A%3C%2Fdiv%3E
   fantasai: The "aaa"s don't move to make room for the "bbbb".
   <johnjan> if the tests are right, looks like everyone is interop, but
             no one is compliant.
   dbaron: If there's a float between two blocks, does the placeholder
           get wrapped?
   fantasai: No, placeholders only get created for tables.
   dbaron: But I thought we needed it for containing block?
   dbaron: The reason the spec is wrong is the wording we used to work
           around the fact that the float's placeholder isn't in a block.
   fantasai: ????
   dbaron: There is some wording about "the float can't be below the
           bottom of the previous block"
   dbaron: Either the person who wrote that assumed that the previous
           block is clearly the lowest block, or they assumed that you
           should also check all the previous blocks, but no implementor
           picked up on that.
   dbaron: In some ways the spec is maybe better, but we have no
           implementations of that, because nobody ever pointed out this
           issue before #229.
   Bert: I wrote those rules 15 years ago, and I definitely didn't want
         floats to move up when their containing block moved up.
   Bert: The intention was definitely to check for the lowest thing of
         *everything* that came before.
   Bert: I imagined keeping a running track of what is currently the
         lowest element.
   fantasai: I think most impls do that, but also move it up if you
             have a negative margin.
   dbaron: We do the same thing for floats, we just don't do it for blocks.
           We track the top of the last float.
   dbaron: In rule 4, we already have this condition...
   dbaron: It helps, because we already have the hypothetical that we need.
   dbaron: [something about rule 5, strike the "block or"]
   dbaron: And then in rule 6, you'd only count the linebox containing the
           float, and not lineboxes earlier than that one.
   dbaron: [something about negative margins]
   [unminuted discussion]
   plinss: I think at this point we should lean toward undefined.
   fantasai: We can't undefine the whole floats section!
   fantasai: And fixing this is probably about as much effort as carefully
             undefining just the behavior we're talking about.
   arronei: I'm up for a note.  We have no testcases.
   fantasai: What are you going to do?  Report that we resolved this by
             noting that the spec is in error?
   plinss: I like David's suggestion - the spec is correct.  In the future
           we'll create a testcase to identify impl issues, and address
           them at that time (possibly with spec issues).
   * fantasai suspects there might be a web compat behavior
   plinss: If we can do this by simply saying the interaction with negative
           margins is undefined, that's fine too.
   dbaron: I think that is making too much undefined.
   dbaron: We definitely want to limit it to negative vertical margins in
           the containing block prior to that float.
   <fantasai> If, within the BFC, there is a negative margin such that it
              moves the float up from the position it would be at were the
              negative margin(s) set to zero, the position of the float is
              undefined
   plinss: Objections?
   arronei: I'm concerned there may be more interactions, but I'm okay.
   <johnjan> agree with fantasai's proposal.
   <johnjan> that seems to describe interop behavior.
   fantasai revises
   <fantasai> If, within the BFC, there is an in-flow negative margin such
              that the float's position is above the position it would be
              at were all such negative margins set to zero, the position
              of the float is undefined.
   RESOLVED: Accept fantasai's edits for issue 229.

   plinss: Issue 239.
   <johnjan> http://lists.w3.org/Archives/Public/www-style/2010Oct/0750.html
   <dbaron> was 239 the right number?  Issue is currently marked closed.
   <dbaron> johnjan, ^
   <johnjan> checking my list
   <johnjan> 239 is the correct issue. I didn't think we closed on Body
             propogating to HTML based on Alex's comments.
   <johnjan> if we did, then my mistake.

   plinss: Issue 242.
   <dbaron> re-resolved to accept proposal for 241 in case we didn't accept
             it already

   RESOLVED: Defer 273 to future version, editorial.

   plinss: issue 274.
   fantasai: 274 is related to the earlier one we discussed.
   plinss: Did we undefine this one implicitly?
   fantasai: No.
   dbaron: [something about lineboxes next to floats]
   dbaron: Lineboxes are not shortened by a float that occurs after them.
   <dbaron> which we could note can only occur under the undefined behavior
            we just added
   RESOLVED: Accept dbaron's edit for 274.

   plinss: Issue 275
   dbaron: This is saying that if you're in a 500px wide block, and you
           have a 490px wide float, and you're trying to place a word
           next to that float, which is more than 10px wide.
   dbaron: It doesn't fit, so you push that linebox down until it's past
           the float, or there aren't any floats next to you and you just
           have an overflow.
   Bert: But do you move the line box, or do you move the word?
   Bert: and have empty line boxes all the way down?
   dbaron: i remember discussing this in a meeting when tantek was on macIE.
   dbaron: I think this was an intentional decision (to allow the gap to be
           a non-integral multiple of line-height)
   dbaron: So the issue is that 9.4.2 says that lineboxes are stacked with
           no vertical separation.
   dbaron: I'll say that 9.5 overrides 9.4.2 and we can just live with it.
   dbaron: Or we can say in 9.4.2 "except as described in 9.5".
   Bert: Kind of ugly, because it can mess up the vertical rhythm.
   TabAtkins: Many things can do that; we shouldn't worry about that until
              we have a spec that can solve it properly.
   plinss: So what's the resolution?  Fix, or leave spec as it is?
   plinss: There are many places where one piece of prose overrides another.
           Let's just leave it.
   <johnjan> leave as is.
   <johnjan> note that 9.5 overrides 9.4.2
   <johnjan> on the list
   Bert: add "(except as specified elsewhere)"
   RESOLVED: accept Bert's proposal for 275.

   plinss: Issue 276
   dbaron: I'm okay with the proposal.
   fantasai: It's in CSS Selectors, though it's not better defined there.
   <johnjan> that's OK, selectors has time to get it right.
   fantasai: I think we should add a note that the precise behavior is
             undefined, and may be defined in a future version.
   <dbaron> johnjan, not really, since it's ahead of 2.1...
   <johnjan> good point...
   RESOLVED: Note that :first-letter, :first-line are underdefined, to resolve
             issue 276.

   plinss: Issue 277.
   arronei: This is a terminology issue.  We should get it right, but it's
            editorial.
   dbaron: Though it may or may *have* confused conversations or DOM APIs... :)
   <dbaron> since CSSOM misuses declaration
   <bradk> A rule set (also called "rule") consists of a selector followed
           by a set of rules (also called "declaration blocks").
   RESOLVED: Defer issue 277 for errata.

   plinss: Issue 278.
   dbaron: This is saying we should exlicitly say "margin box" to be clearer?
           Seems good.
   RESOLVED: Accept edit for 278.

   plinss: Issue 279.
   <johnjan> http://lists.w3.org/Archives/Public/www-style/2010Sep/0130.html
   RESOLVED: Accept edit for 279.

   plinss: Issue 280.
   dbaron: I believe 280 is an error in the spec, where the impls got it
           right and the spec is wrong.
   <dbaron> http://dbaron.org/css/test/2011/css21-issue-280
   dbaron: The question is whether fuchsia starts within or below the purple
            box.
   fantasai: We have full interop.
   dbaron: ...which disagrees with the spec.
   dbaron: I think the problem is that the spec can be taken more literally
           than intended.
   dbaron: The spec says that [omg rule 3].
   dbaron: But this neglects the possibility that the right-floating box may
           be at the same vertical postion as the left float, but be entirely
           to its left.
   dbaron: Which is this testcase.
   dbaron: The change is to make the spec say "when they overlap in vertical
           position".
   dbaron: But the spec literally says something to the right.
   dbaron: so the implementations implemented what Bert meant to say, and
           Anton has noticed that this is not what was actually said
   dbaron: "next to it" works.
   <dbaron> Bert proposed "next to it"
   RESOLVED: Change "to the right of it" into "next to it".

   glazou: Issue 281.
   <johnjan> no change necessary for 2.1 here.... errata
   fantasai: I think we should fix this.  It's just wrong.
   dbaron: You could change it to "not a position derived from the line-height".
   <dbaron> maybe change "not the 'line-height'" to "not a position derived
            from the 'line-height'"
   fantasai: or just replace the clause with "and has nothing to do with the
             'line-height'"
   RESOLVED: Accept fantasai's edit for 281.
   <johnjan> I can buy that

Meeting closed.

<RRSAgent> http://www.w3.org/2011/03/08-css-minutes.html

Received on Sunday, 13 March 2011 20:19:16 UTC