- From: Jonathan Kingston <jonathan@jooped.co.uk>
- Date: Sun, 8 Mar 2015 23:08:21 +0000
- To: Marat Tanalin <mtanalin@yandex.ru>
- Cc: Jens Oliver Meiert <jens@meiert.com>, "L. David Baron" <dbaron@dbaron.org>, W3C WWW Style <www-style@w3.org>
- Message-ID: <CA+EVJMXVMkVMg7+7=nZCFCQpwv9eC9=YOfYRQ9Pi8U-+JOrbYA@mail.gmail.com>
> On scanning I wonder whether @document isn’t rather complicated, and
> would deem the @-rule format a bigger issue than the likely repetition
> of selectors as proposed with [host=]. @document doesn’t seem to be
> much of an advantage over just using a separate style sheet, an option
> always at our disposal, whereas [host=], as a selector, would allow
> for easy, DRY domain-specific adjustments.
Surely a more specific selector would increase the need for repetition, can
you expand on the meaning?
I'm not really sure on the use-case here much as the following code:
my-component {
color: red !important;
}
@document domain('domain.com') {
my-component {
color: blue;
}
}
The color would still be red.
The only use-case I can see it being used for is having code similar to
this:
my-component {
color: red;
}
@document domain('domain.com') {
my-component {
color: blue;
}
}
@document domain('other-domain.com') {
my-component {
color: yellow;
}
}
Then using a minifier to compile the code for other-domain down to:
my-component {
color: yellow;
}
However users who using development build tools for CSS are likely not to
need this.
On 8 March 2015 at 22:28, Marat Tanalin <mtanalin@yandex.ru> wrote:
> 09.03.2015, 01:02, "Jens Oliver Meiert" <jens@meiert.com>:
> > @document doesn’t seem to be
> > much of an advantage over just using a separate style sheet, an option
> > always at our disposal, whereas [host=], as a selector, would allow
> > for easy, DRY domain-specific adjustments.
>
> `[host="example.com"]` selects elements that have `host` attribute with `
> example.com` as its value.
>
> As an alternative selector syntax for your purpose, a function could be
> used instead of the attribute-selector syntax you've proposed:
>
> ::domain("example.com") .foo {
> /* Domain-specific styles for elements
> with the `foo` class. */
> }
>
> But this does not seem to have serious advantages (other than just
> somewhat simpler syntax thanks to less braces) over an at-rule like
> `@document`:
>
> @document domain("example.com") {
> .foo {
> /* Domain-specific styles for elements
> with the `foo` class. */
> }
> }
>
> Possible drawbacks of the `@document` at-rule in its current form are:
>
> * `@document domain("example.com")` selects not just `example.com`,
> but also its subdomains like `bar.example.com`. There should
> probably a way to select exact domains, e.g. `example.com` only,
> without its subdomains;
>
> * there is the `regexp()` function that may be considered
> "too complicated" or "too slow" by some people (not really an issue,
> but could easily be postponed to a next spec level).
>
> Some people also mention some security issues, but it's unclear what exact
> issues they mean.
>
>
Received on Sunday, 8 March 2015 23:08:49 UTC