Re: [css-cascade] Allowing @import to be conditional on @supports queries

On Thu, Mar 19, 2015 at 4:00 PM, fantasai <fantasai.lists@inkedblade.net> wrote:
> On 01/15/2015 07:38 PM, Bjoern Hoehrmann wrote:
>>
>> * Tab Atkins Jr. wrote:
>>>
>>> I propose that we allow this by adding a
>>> "supports(<supports-condition>)" function to the end @import grammar,
>>> like:
>>>
>>> ```
>>> @import [ <url> | <string> ] [ <media-query-list> ||
>>> supports(<supports-condition>) ]? ;
>>> ```
>>
>>
>> If I am not mistaken, that would not really be at the end, and I am not
>> thrilled about
>>
>>    @import url(...) a, b supports(...);
>>    @import url(...) supports(...) a, b;
>>
>> since white space usually binds more tightly than the comma, so it looks
>> as though `supports` binds to the `b` in the first example and to `a` in
>> the second example. Also
>>
>>    @import url(...) not screen supports(...);
>>
>> seems awkward at first glance, and people might then be tempted to write
>>
>>    @import url(...) not supports(...);
>>
>> which looks plausible but does not seem supported by the proposal.
>
>
> I think this is a fair point. Do you have an alternate suggestion for
> syntax?

We decided on:
@import <url> [ supports(<supports-condition>) ]? <media-query-list>? ;

This uses positioning to keep them clearer, and keeps all the
space-delimited bits together, so the MQ can trail off at the end on
its own, similar to the font shorthand.

~TJ

Received on Friday, 20 March 2015 00:08:25 UTC