- From: Michael Fitzgerald via GitHub <sysbot+gh@w3.org>
- Date: Thu, 23 Mar 2023 21:50:13 +0000
- To: public-design-tokens-log@w3.org
I really like this proposal and think building theming into the format will improve interoperability.
At Interplay, we use a very similar data structure internaly and get users to import/export specific themes to the token group format. The only difference is we use `$values` rather than `$modes`, and `$inherit` rather than `$fallback`
One suggestions I have is making `$fallback` an array instead of a single value.
Then users could define themes/modes for `compact`, `jumbo`, `dark` and `light`. Then they can combine these to create e.g. `dark-mobile`, `light-mobile`, etc. The value of the tokens would be determined by the order of the inherited themes.
This would save a lot of duplicate entry for values across themes.
```json
{
"$name": "UI Colors",
"$modes": {
"light": { },
"dark": { },
"compact": { },
"jumbo": { },
"dark-compact": { "$fallback": ["dark", "compact"] }
},
"font-size": {
"$type": "dimension",
"small": {
"$value": "1rem",
"$modes": {
"compact": "0.5rem",
"jumbo": "1.5rem",
}
}
},
"backgrounds": {
"$type": "color",
"base": {
"$value": "{colors.white}",
"$modes": {
"light": "{colors.white}",
"dark": "{colors.black}",
}
}
}
}
```
The values for these tokens in the `dark-compact` theme would be
`font-size.small: 0.5rem`
`background.base: {colors.black}`
--
GitHub Notification of comment by mkeftz
Please view or discuss this issue at https://github.com/design-tokens/community-group/issues/210#issuecomment-1481959623 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 23 March 2023 21:50:14 UTC