- From: CSS Meeting Bot via GitHub <noreply@w3.org>
- Date: Thu, 13 Nov 2025 00:37:08 +0000
- To: public-css-archive@w3.org
The CSS Working Group just discussed `[css-scoping] Scoping of functions, other name-defining at-rules and custom idents`.
<details><summary>The full IRC log of that discussion</summary>
<ydaniv> kizu: a lot of issue with naming, everything is mostly global<br>
<ydaniv> ... not accessible to shadow DOM<br>
<ydaniv> ... not handy for authors of libraries<br>
<ydaniv> ... things clash together, different libraries and comps<br>
<ydaniv> ... some tools have solutions, like PostCSS, nothing in CSS<br>
<ydaniv> ... if you want to build a library you need to handle names yourself<br>
<ydaniv> ... this is an issue about brainstorming about what can be done, like scoping<br>
<ydaniv> ... if we do it with scoping it will be attached to trees, and this is not good for perfomance in some engines<br>
<TabAtkins> q+<br>
<ydaniv> ... maybe reuse the ... namespace<br>
<ydaniv> ... have some namepsacing for anything nested<br>
<lea> q+<br>
<ydaniv> ... there was a question about being able to namespace some of the things<br>
<ydaniv> ... maybe use ident() or other<br>
<ydaniv> ... maybe expose it via CSSOM, or shadow roots<br>
<ydaniv> TabAtkins: this looks good overall<br>
<astearns> q+<br>
<astearns> ack TabAtkins<br>
<ydaniv> ... we need to see what things are scoped<br>
<ydaniv> ... requires some reviews, but looks fine<br>
<ydaniv> ... I think we'll allow namespaces,<br>
<ydaniv> ... looks like a good approach<br>
<lea> q?<br>
<lea> q-<br>
<lea> q+<br>
<ydaniv> kizu: also anonymous namespace would be useful for small components if you don't want to share anything<br>
<TabAtkins> s/allow namespaces/need to allow nested namespaces, which will require chaining the namespace component/<br>
<ydaniv> astearns: I support this, but whatever we call it should probably not be "CSS modules"<br>
<lea> q-<br>
<ydaniv> ... to not mistake it with other stuff<br>
<astearns> ack astearns<br>
<miriam> +1 to the idea<br>
<ydaniv> fantasai: I support just "namespacing"<br>
<lea> q+<br>
<ydaniv> plinss: not happy with overloading @namespace<br>
<emilio> q+<br>
<ydaniv> ... we should define a new namespace, but concept is fine<br>
<astearns> ack lea<br>
<TabAtkins> @name-scope or something<br>
<ydaniv> lea: are there impl. concerns currently?<br>
<ydaniv> ... even tree scoping is not implemented<br>
<astearns> +1 to some other @rule name<br>
<ydaniv> ... when inheriting now values will change?<br>
<ydaniv> TabAtkins: purely lexical thing<br>
<ydaniv> ... things will bounce from the @-rule<br>
<ydaniv> ... custom properties will not, but other things will have {missed}<br>
<astearns> ack fantasai<br>
<ydaniv> ... trying to avoid complexities of that<br>
<ydaniv> fantasai: what if the spacing mechanism would work same as @namespace?<br>
<lea> q+<br>
<adamargyle> @realm? @prefix?<br>
<ydaniv> plinss: my concern is that the original name was used for something else<br>
<ydaniv> ... may not be used much anymore<br>
<lea> q- (sorry)<br>
<lea> q-<br>
<ydaniv> fantasai: it's just binding of a name to a string<br>
<ydaniv> TabAtkins: it is semantically related but substentialy different<br>
<ydaniv> astearns: it would be good to have a new name that doesn't bump up against docs of the old @namespace<br>
<ydaniv> ... would be good to have a new one even if hard<br>
<astearns> ack emilio<br>
<ydaniv> emilio: a bit of concern of how it interacts with custom properties<br>
<ydaniv> ... you're parsing a value like @keyfarmes name, becomes an identifier<br>
<ydaniv> ... if you specify from there it also get queued up<br>
<ydaniv> ... but as soon as you do via custom properites, you lose context, like when you apply it<br>
<ydaniv> ... I wonder how we'll do it in practice, I fear that recovering context will be hard<br>
<ydaniv> ... have an example to show<br>
<emilio> @namespace foo { @keyframes my-ident { ... } div { --custom: my-ident; animation-name: my-ident; /* works */; animation-name: var(--custom); /* ? */ }<br>
<ydaniv> ... this is one of the things we'll need to figure out<br>
<ydaniv> kizu: good thing think about<br>
<ydaniv> ... if you define as property and not [missed]<br>
<ydaniv> ... maybe we need somthing more explicit<br>
<TabAtkins> Could have a function form of the scoped name *as well*, which is processed as substitution function, so eagerly even inside of custom props.<br>
<ydaniv> ... for that namespace or another<br>
<TabAtkins> `scoped-name(foo, my-ident)`<br>
<ydaniv> ... maybhave somthing like a namespace function<br>
<ydaniv> ... that says this is for this namespace or another<br>
<ydaniv> astearns: so let's take that back to issue<br>
<astearns> q?<br>
<ydaniv> ... so we're looking for a resolution to start working on that, taking back to issue?<br>
<ydaniv> kizu: yes<br>
</details>
--
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/11798#issuecomment-3524538444 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 13 November 2025 00:37:09 UTC