- From: Phil Cupp <pcupp@microsoft.com>
- Date: Tue, 21 Feb 2012 17:59:40 +0000
- To: fantasai <fantasai.lists@inkedblade.net>, "www-style@w3.org" <www-style@w3.org>
I see... the new shorthand for grid-template, grid-rows and grid-columns you are saying is just plan "grid" and uses the inline sizing function syntax from Bert's spec. Your right I did miss that. Do you have any thoughts on how I'd specify named lines and differentiate those from the template strings? Maybe they should be idents instead of strings?
grid:
"ab" / minmax(min-content, 1fr) /* row 1 */
"ac" / minmax(min-content, 1fr) /* row 2 */
( minmax(min-content, 1fr) )[2]; /* 2 cols */
/* Also valid? */
grid:
start minmax(min-content, 1fr) middle minmax(min-content, 1fr) end, /* 2 rows with 3 named lines*/
start minmax(min-content, 1fr) middle minmax(min-content, 1fr) end; /* 2 cols with 3 named lines */
When not using the template syntax we need something to separate row definitions from column definitions. I used a comma. I think that's compatible with the template syntax as well and can eliminate the need for the trailing '/' which currently follows each row definition that receives a sizing function. Like this:
grid:
"ab" minmax(min-content, 1fr) /* row 1 */
"ac" minmax(min-content, 1fr), /* row 2 */
( minmax(min-content, 1fr) )[2]; /* 2 cols */
/* everything together (woof) */
grid:
"ab" start minmax(min-content, 1fr) /* row 1 and start line definition */
"ac" middle minmax(min-content, 1fr) /* row 2 and middle line definition */
end, /* end line definition */
start minmax(min-content, 1fr) middle minmax(min-content, 1fr) end; /* 2 cols with 3 line definitions*/
It's getting a little crowded but it can all work together. What do you think?
-Phil
-----Original Message-----
From: fantasai [mailto:fantasai.lists@inkedblade.net]
Sent: Tuesday, February 21, 2012 6:55 AM
To: www-style@w3.org
Subject: Re: [css3-grid-layout] [css3-layout] Grid-Template Declaration Merge
On 02/18/2012 04:56 AM, Phil Cupp wrote:
>
> Regarding grid-template being a shortcut that includes the ability to specify the sizes of each track, I'm not a fan of that syntax. Here's why:
>
> 1. Aligning columns with their sizing functions seems like it breaks up the template to the point to where tracking can become a problem and you lose the primary benefit of the template (seeing the shape and proportions of the grid via ascii-art).
> #grid {
> grid-template:
> "a b c"
> "a d d"
> "a e e"
> minmax(min-content, 1fr) minmax(min-content, 1fr)
> minmax(min-content, 1fr); }
>
> vs
>
> #grid {
> grid-template:
> "abc"
> "add"
> "aee";
> grid-columns: ( minmax(min-content, 1fr) )[3]; }
There's no reason why you couldn't write that first declaration as
grid: "abc"
"add"
"aee"
( minmax(min-content, 1fr) )[3];
If there's a shortcut, you have both options. Nothing requires you to space out the column sizes. The advantage of the shortcut is that the rows can be spliced in, e.g.
grid: "abc" / min-content
"add" / 1fr
"aee" / min-content;
which is equivalent to
grid-template: "abc"
"add"
"aee";
grid-rows: min-content 1fr min-content;
> 2. Having grid-template as a shortcut that includes grid-rows and
> grid-columns means it resets those properties even when you don't
> specify their values. I may be underestimating the typical author's
> understanding of shortcuts and specificity, but I anticipate confusion that:
I think you missed something here. I'm not proposing to make 'grid-template' a shorthand that resets everything -- I agree that would be bad! I'm suggesting to make a new property that's shorthand, that resets 'grid-template', 'grid-rows', and 'grid-columns'. (Note, I'm not suggesting that we get rid of any of those three sub-properties, or that we change their behavior!)
I think it's important to have a shorthand that resets everything, because as we add new functionality, the author should have a way of knowing for sure they're starting with a blank slate, regardless of what may have arrived through the cascade.
~fantasai
Received on Tuesday, 21 February 2012 18:00:30 UTC