- From: fantasai <fantasai.lists@inkedblade.net>
- Date: Sun, 13 Mar 2011 13:18:27 -0700
- To: "www-style@w3.org" <www-style@w3.org>
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