- From: Ryan Johnson via GitHub <sysbot+gh@w3.org>
- Date: Mon, 07 Nov 2022 19:29:25 +0000
- To: public-design-tokens-log@w3.org
Are all properties of a composite `typography` token required?
I'd like to define _partial_ token definitions so that I can compose more complex styles after translation?
```
{ fontFamily, fontWeight }
+ { fontSize, lineHeight, letterSpacing }
-----------------------------------------
{ fontFamily, fontWeight, fontSize, lineHeight, letterSpacing }
```
-----
### Context
I've got a slew of various font + style combinations for my typography styles (3 different fonts, 10 different styles/font), and I'd like to minimize the amount of duplicate definitions.
I'm thinking that I could define a "base" token, that defines common styles among typography tokens for a particular font, so that I can compose a final value out of `base` + `style`, as follows...
```json5
{
"type": {
"base": {
"$type": "typography",
"$value": {
"fontFamily": [ "Arial", "sans-serif" ],
"fontWeight": 400,
}
},
"heading1": {
"$value": {
"fontSize": "48px",
"lineHeight": "1.25",
"letterSpacing": "0px",
}
}
}
}
```
When I apply this to Sass, I should then be able to compose a final definition as follows...
```scss
@use "sass:map";
// generated from tokens.json
$type-base: (
"fontFamily": (Arial, sans-serif),
"fontWeight": 400
);
$type-heading1: (
"fontSize": 48px,
"lineHeight": 1.25,
"letterSpacing": 0px
);
// manually composed style Map
$heading1: map.merge($type-base, $type-heading1);
// ^^ should be equivalent to...
$heading1: (
"fontFamily": (Arial, sans-serif),
"fontWeight": 400,
"fontSize": 48px,
"lineHeight": 1.25,
"letterSpacing": 0px
);
```
--
GitHub Notification of comment by CITguy
Please view or discuss this issue at https://github.com/design-tokens/community-group/issues/102#issuecomment-1306087455 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 7 November 2022 19:29:27 UTC