- From: Matthew Ström via GitHub <sysbot+gh@w3.org>
- Date: Wed, 12 Jan 2022 20:05:11 +0000
- To: public-design-tokens-log@w3.org
As I dig through the discussions more and more, I'm seeing (just as you are, @mathieudutour) some convergence in the underlying intention of mixins, interfaces, components, and variants. Just like you said, they're _groups_ of tokens. ```json { "colors" : { "type": "group", "value": { "dark": { "type": "group", "value": { "foreground": { "type": "color", "value": "#ffffff" }, { "background": { "type": "color", "value": "#000000" } } }, { "light": { "type": "group", "value": { "foreground": { "type": "color", "value": "#000000" }, { "background": { "type": "color", "value": "#ffffff" } } } } } ``` This allows for a lot of flexibility in parsing. If a user wants all their tokens to be output a single js file, a token might end up with the name `colors.dark.foreground`. But if a user wants the tokens to be split up into separate files by group name and rendered to css, it might give you a `colors/dark.css` file with the token named `--foreground`. There's a second convergence around aliasing. In the example above, I have to write out `#ffffff` and `#000000` twice each. Aliases make this much easier to maintain. ```json { "colors" : { "type": "group", "value": { "base": { "type": "group", "value": { "white": { "type": "color", "value": "#ffffff" }, { "black": { "type": "color", "value": "#000000" } } }, "dark": { "type": "group", "value": { "foreground": { "type": "alias", "value": "colors.base.white" }, { "background": { "type": "alias", "value": "colors.base.black" } } }, { "light": { "type": "group", "value": { "foreground": { "type": "alias", "value": "colors.base.black" }, { "background": { "type": "alias", "value": "colors.base.white" } } } } } ``` I think the two concepts together neatly cover the use case of themeing in that they enable a lot of flexibility on the user side without sacrificing readability on the token file side. Additionally this approach keeps the grammar simple. What do you y'all think? -- GitHub Notification of comment by ilikescience Please view or discuss this issue at https://github.com/design-tokens/community-group/issues/2#issuecomment-1011406636 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 12 January 2022 20:05:13 UTC