W3C home > Mailing lists > Public > public-css-commits@w3.org > September 2011

csswg/css-variables Overview.html,1.8,1.9 Overview.src.html,1.8,1.9

From: Tab Atkins Jr.. via cvs-syncmail <cvsmail@w3.org>
Date: Fri, 30 Sep 2011 20:31:34 +0000
To: public-css-commits@w3.org
Message-Id: <E1R9jk6-0004BR-Tk@lionel-hutz.w3.org>
Update of /sources/public/csswg/css-variables
In directory hutz:/tmp/cvs-serv16067

Modified Files:
	Overview.html Overview.src.html 
Log Message:
First draft of the simpler variables api.

Index: Overview.html
===================================================================
RCS file: /sources/public/csswg/css-variables/Overview.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- Overview.html	30 Sep 2011 19:51:44 -0000	1.8
+++ Overview.html	30 Sep 2011 20:31:32 -0000	1.9
@@ -336,8 +336,9 @@
    class=css>@var</code>&rsquo; rules attempt to define variables with the
    same name, the last one defined wins; the preceding &lsquo;<code
    class=css>@var</code>&rsquo; rules do not define a variable. For this
-   purpose, user-agent defined rules come before author-defined rules, which
-   come before user-defined rules. Within each of the preceding groups, the
+   purpose, user-agent defined variable rules come before author-defined
+   variable rules, which come before user-defined variable rules, which come
+   before override variable rules. Within each of the preceding groups, the
    ordering is document order.
 
   <div class=example>
@@ -464,8 +465,46 @@
 
   <h3 id=cssom-simple><span class=secno>4.1. </span> The Simple API</h3>
 
-  <p class=issue>Define the more convenient CSSOM API from <a
-   href="http://www.xanthir.com/blog/b4AD0">my blog post</a>.
+  <p class=issue>Not exactly sure how to define this, but I want to put a
+   &lsquo;<code class=property>css</code>&rsquo; property on
+   <code>document</code> (and hopefully <code>window</code>) as a hook for
+   this and other future CSS apis. <code>document.css</code> would then
+   expose a &lsquo;<code class=property>vars</code>&rsquo; property that
+   implements CSSOverrideVariablesMap. Variables are document-global, so they
+   need to be exposed at the document level, not the stylesheet level.
+
+  <p class=issue>Do I need to define the concept of the override stylesheet?
+   Several browsers already expose this concept of a script-only stylesheet
+   that overrides all other stylesheets.
+
+  <p>The CSSOverrideVariablesMap presents a simple interface to the variables
+   in the override stylesheet, which take precedence over variables defined
+   elsewhere in the document. As a convenience, it also allows reading normal
+   variables defined elsewhere in the document, as long as there is no
+   variable with the same name in the override stylesheet.
+
+  <pre class=idl>
+[NoInterfaceObject] CSSOverrideVariablesMap {
+  getter any (DOMString variableName);
+  setter void (DOMString variableName, any variableValue);
+  creator void (DOMString variableName, any variableValue);
+  deleter void (DOMString variableName);
+}</pre>
+
+  <p>On getting, if a variable named <var>variableName</var> exists in the
+   override stylesheet, return its value. Otherwise, if a variable named
+   <var>variableName</var> is defined in the document, return its value.
+   Otherwise, return null.
+
+  <p>On setting, find the variable named <var>variableName</var> in the
+   override stylesheet and set its value to <var>variableValue</var>.
+
+  <p>On creating, append a new variable rule to the override stylesheet, with
+   the variable name set to <var>variableName</var> and the value set to
+   <var>variableValue</var>.
+
+  <p>On deleting, remove the variable with the name <var>variableName</var>
+   from the override stylesheet.
 
   <h3 id=cssom-stylesheet><span class=secno>4.2. </span> Additions to the
    Stylesheet Interface</h3>

Index: Overview.src.html
===================================================================
RCS file: /sources/public/csswg/css-variables/Overview.src.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- Overview.src.html	30 Sep 2011 19:51:44 -0000	1.8
+++ Overview.src.html	30 Sep 2011 20:31:32 -0000	1.9
@@ -130,7 +130,7 @@
 
 	<p>If new ''@var'' rules are added to the document through any means, such as direct CSSOM manipulation or new stylesheets being added to the document, or if an <i>inactive</i> ''@var'' rule becomes <i>active</i>, they define variables.  Similarly, if ''@var'' rules are removed from the document or become <i>inactive</i>, they no longer define variables.</p>
 
-	<p>If multiple <i>active</i> ''@var'' rules attempt to define variables with the same name, the last one defined wins; the preceding ''@var'' rules do not define a variable.  For this purpose, user-agent defined rules come before author-defined rules, which come before user-defined rules.  Within each of the preceding groups, the ordering is document order.</p>
+	<p>If multiple <i>active</i> ''@var'' rules attempt to define variables with the same name, the last one defined wins; the preceding ''@var'' rules do not define a variable.  For this purpose, user-agent defined variable rules come before author-defined variable rules, which come before user-defined variable rules, which come before override variable rules.  Within each of the preceding groups, the ordering is document order.</p>
 
 	<div class='example'>
 		<p>Earlier declarations of the same variable have no effect, even if uses of the variable come between the earlier and final attempts to define the variable:</p>
@@ -205,7 +205,27 @@
 <h3 id='cssom-simple'>
 The Simple API</h3>
 
-	<p class='issue'>Define the more convenient CSSOM API from <a href="http://www.xanthir.com/blog/b4AD0">my blog post</a>.</p>
+	<p class='issue'>Not exactly sure how to define this, but I want to put a 'css' property on <code>document</code> (and hopefully <code>window</code>) as a hook for this and other future CSS apis.  <code>document.css</code> would then expose a 'vars' property that implements CSSOverrideVariablesMap.  Variables are document-global, so they need to be exposed at the document level, not the stylesheet level.</p>
+
+	<p class='issue'>Do I need to define the concept of the override stylesheet?  Several browsers already expose this concept of a script-only stylesheet that overrides all other stylesheets.</p>
+
+	<p>The CSSOverrideVariablesMap presents a simple interface to the variables in the override stylesheet, which take precedence over variables defined elsewhere in the document.  As a convenience, it also allows reading normal variables defined elsewhere in the document, as long as there is no variable with the same name in the override stylesheet.</p>
+
+	<pre class='idl'>
+[NoInterfaceObject] CSSOverrideVariablesMap {
+  getter any (DOMString variableName);
+  setter void (DOMString variableName, any variableValue);
+  creator void (DOMString variableName, any variableValue);
+  deleter void (DOMString variableName);
+}</pre>
+
+	<p>On getting, if a variable named <var>variableName</var> exists in the override stylesheet, return its value.  Otherwise, if a variable named <var>variableName</var> is defined in the document, return its value.  Otherwise, return null.</p>
+
+	<p>On setting, find the variable named <var>variableName</var> in the override stylesheet and set its value to <var>variableValue</var>.</p>
+
+	<p>On creating, append a new variable rule to the override stylesheet, with the variable name set to <var>variableName</var> and the value set to <var>variableValue</var>.</p>
+
+	<p>On deleting, remove the variable with the name <var>variableName</var> from the override stylesheet.</p>
 
 <h3 id='cssom-stylesheet'>
 Additions to the Stylesheet Interface</h3>
Received on Friday, 30 September 2011 20:31:41 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 30 September 2011 20:31:41 GMT