Re: [css-grid] auto-repeat inside grid-template shorthand

On Mon, May 23, 2016 at 2:40 AM, Manuel Rego Casasnovas <rego@igalia.com> wrote:
> Hi,
>
> this is a similar mail to the previous one.
>
> In the current syntax for grid-template [1] we have:
>   [ <line-names>? <string> <track-size>? <line-names>? ]+
>   [ / <track-list> ]?
>
> This means that the following declaration would be invalid:
>   grid-template: "a b"
>                  "a b" / repeat(auto-fill, 100px);
>
> I guess that as you are defining the grid areas,
> you know the number of columns and don't need auto-repeat.
>
> However, you can do something like this:
>   grid-template: "a b"
>                  "a b" / repeat(5, 100px);
> Or:
>   grid-template: "a b"
>                  "a b" / 400px 200px 100px 50px;
>
> And this is valid from the syntax point of view.
>
> Do we really want to have an exception for auto-repeat here or not?
>
> FWIW, right now it's valid in all auto-repeat implementations (Blink,
> Webkit and Firefox).
>
> Bye,
>   Rego
>
> [1] https://www.w3.org/TR/css-grid-1/#explicit-grid-shorthand

The whole point of that branch of the grid-template grammar is to make
things line up ASCII-art-style.  Allowing repeat() in the column sizes
violates that; columns either don't get a corresponding size in the
track list, or line up badly.  Also, it's *really* nonsensical to
allow repeat() in the row-sizing part of the grammar, and it's bad to
be inconsistent and allow things in one spot but not the other.
Allowing the auto-repeat things in either of those makes even *less*
sense.

If it's an implementation burden, we can allow it, but I'd prefer to disallow.

(And we messed up - fixed-reps repeat() *shouldn't* be allowed in the
column-sizing part; we just referred to <track-list> without paying
enough attention.)

~TJ

Received on Monday, 23 May 2016 17:19:09 UTC