- From: Bramus via GitHub <sysbot+gh@w3.org>
- Date: Wed, 11 Dec 2024 17:32:51 +0000
- To: public-css-archive@w3.org
To summarize: I am proposing the `ident()` function to dynamically construct `<ident>`s. Authors would use this when they need to set idents for a bunch of elements in one go, instead of having to set all those idents individually. - The syntax for `ident()` looks like this: ``` <ident-fn> = ident(<ident-args>#); <ident-args> = [<string> | <ident>]+ ``` - Example usage: - Simple: ```css .item { view-timeline-name: ident("--item-tl-" attr(data-sequence)); /* E.g. --item-tl-1, --item-tl-2, --item-tl-3, … */ } ``` - More advanced: ```css .card[id] { --id: attr(id); /* E.g. card1, card2, card3, … */ view-transition-name: var(--id); view-transition-class: card; h1 { view-transition-name: ident(var(--id) "-title"); view-transition-class: card-title; } .content { view-transition-name: ident(var(--id) "-content"); view-transition-class: card-content; } } ``` - FAQ: - Q: Why not directly declare values? A: [Parsing Purposes](https://github.com/w3c/csswg-drafts/issues/9141#issuecomment-2044615510). - Q: Why not just `attr(foo type(<ident>))`? A: With `ident()` you can [glue things together](https://github.com/w3c/csswg-drafts/issues/9141#issuecomment-2344375005), e.g. `ident("view-" attr(data-type) "-" attr(data-sequence))`. The pieces that need to be glued can come from other elements as well _(see example with `.card` above)_ - Q: What about constructing dashed idents? A: Put `"--"` at the start, e.g. `ident("--item-tl-" attr(data-itemnum))` - Q: Doesn’t the `attr()` function need ` type(<ident>)` added to it (which now makes your examples look shorter)? A: No, when no `<attr-type>` is given, the `<attr-name>` gets parsed to a CSS string _(see [spec](https://drafts.csswg.org/css-values-5/#typedef-attr-type))_, so that works just fine. That should be it. Everything else mentioned in this issue but not in this comment falls outside of the scope of what is proposed. -- GitHub Notification of comment by bramus Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9141#issuecomment-2536648501 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 11 December 2024 17:32:52 UTC