If I&#x27;d done what everyone keeps saying I should have done and just used $foo, then Sass would have gotten angry at me, because we&#x27;d be sharing syntax for different features.  We already tweaked CSS a little to avoid that in another case (when specifying grid line names in Grid, you surround the names with []; it was originally (), but Sass asked us to change it because they use that for their list syntax).<p>We could only have used $foo if we hewed very close to Sass&#x27;s functionality - global macros that operate at the stylesheet&#x27;s lexical level.  That wasn&#x27;t what we wanted to do, though, either at the time (considering only the variables use-case) or looking forward (to the use of custom properties as the generic &quot;inject info into your page via the CSS engine&quot;, a la data attributes for HTML).<p>By avoiding global macros, we also get context sensitivity - we can actually offer APIs for this stuff that are smarter than &quot;here&#x27;s the string you set&quot;.  When we add custom pseudoclasses, custom media queries, etc they&#x27;ll all get their own useful APIs.  Sass is stuck with string manipulation, because you can use a Sass var <i>anywhere</i>, so it&#x27;s impossible to infer anything about it.