- From: David Singer <singer@apple.com>
- Date: Thu, 17 Feb 2011 14:58:44 +0800
- To: www-style list <www-style@w3.org>
On Feb 17, 2011, at 13:59 , Tab Atkins Jr. wrote: > On Wed, Feb 16, 2011 at 8:15 PM, David Singer <singer@apple.com> wrote: >> On Feb 17, 2011, at 9:11 , Tab Atkins Jr. wrote: >>> Something like what I called Modules in >>> <http://www.xanthir.com/blog/b49w0>. That proposal is essentially >>> just brainstorming, as we don't have immediate plans to even try an >>> experimental implementation, but it roughly outlines our thinking on >>> this matter. >>> >>> Scoped stylesheets may also be used to contain variables if you really >>> don't want to leak them out to the global scope. >> >> But if module names are global (as I suspect they have to be), it seems like you have swapped a potential problem of unintended clashes of variable names, into a potential problem of unintended clashes of module names. Which is a smaller problem, to be sure, and to be a real problem, you'd have to have both the module name and a variable in that module unintentionally collide, which also reduces the likelihood. But it doesn't appear to close the door, as it were. > > That doesn't appear to be a problem in languages like Python, so I > won't worry about it for CSS. ^_^ Maybe we don't need to be rat-holing on this now, but what's on your blog (admittedly brief, and I may be mis-reading) doesn't seem to match Python's modules, which don't have this problem. That's because in any document (module in python terms, stylesheet in CSS terms) I choose what modules to import, under what names, and what items (variables) from them. Under these circumstance I think the logo example would look something like this as: @import url('corporate.css') .logo { content: $corporate.logoURL; } you could even write @import url('corporate.css') @var $logo $corporate.logoURL .logo { content: $logo } which would be the similar action to 'from corporate import logoURL'. We would need to decide, if I wrote: @var $foo 10px @import url('inner.css') whether the variable $foo can be used in inner.css. I suspect yes, because either a) inner.css says @var $foo red which will locally (within inner.css) shadow the definition of foo or b) inner.css uses $foo without defining it, whereupon it must have been written expecting a definition to come in from above, so it's not a surprise. (see, I bottom-posted for you :-)) David Singer Multimedia and Software Standards, Apple Inc.
Received on Thursday, 17 February 2011 06:59:50 UTC