Skip to content

Commit 9097483

Browse files
feat(tokens): add primitive size tokens (#1031)
* feat: add primitive size tokens * fix: use size variable tokens in storybook * fix: add whitespace at bottom of size token file * chore: update sizes to use base 16 * chore: use sizing tokens in borders * fix: add 3 and 1200 sizes * chore: update fonts to use size tokens * chore: use size tokens in spacing * chore: se size tokens in viewport * fix: space between constants in size story * chore: add changeset * fix: make slice const name more explicit * fix: use size 1 for border 200 Co-authored-by: Robert Niznik <rniznik@launchdarkly.com> --------- Co-authored-by: Robert Niznik <rniznik@launchdarkly.com>
1 parent 435161e commit 9097483

File tree

7 files changed

+172
-25
lines changed

7 files changed

+172
-25
lines changed

.changeset/sweet-wolves-pay.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@launchpad-ui/tokens': patch
3+
'@launchpad-ui/core': patch
4+
---
5+
6+
Add size primitive tokens

packages/tokens/src/border.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
border:
22
radius:
33
regular:
4-
value: 0.188rem
4+
value: '{ size.3.value }'
55
medium:
6-
value: 0.375rem
6+
value: '{ size.6.value }'
77
large:
8-
value: 1rem
8+
value: '{ size.16.value }'
99
width:
1010
100:
11-
value: 0rem
11+
value: '{ size.0.value }'
1212
200:
13-
value: 0.063rem
13+
value: '{ size.1.value }'
1414
300:
15-
value: 0.125rem
15+
value: '{ size.2.value }'

packages/tokens/src/font.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ font:
66
value: SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace
77
size:
88
100:
9-
value: 0.75rem
9+
value: '{ size.12.value }'
1010
200:
11-
value: 0.875rem
11+
value: '{ size.14.value }'
1212
300:
13-
value: 1rem
13+
value: '{ size.16.value }'
1414
400:
15-
value: 1.125rem
15+
value: '{ size.18.value }'
1616
500:
17-
value: 1.25rem
17+
value: '{ size.20.value }'
1818
600:
19-
value: 1.563rem
19+
value: '{ size.24.value }'
2020
700:
21-
value: 2rem
21+
value: '{ size.32.value }'
2222
800:
23-
value: 2.875rem
23+
value: '{ size.44.value }'
2424
weight:
2525
light:
2626
value: 300

packages/tokens/src/size.yaml

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
size:
2+
0:
3+
value: 0.0rem
4+
1:
5+
value: 0.0625rem
6+
2:
7+
value: 0.125rem
8+
3:
9+
value: 0.1875rem
10+
4:
11+
value: 0.25rem
12+
6:
13+
value: 0.375rem
14+
8:
15+
value: 0.5rem
16+
10:
17+
value: 0.625rem
18+
12:
19+
value: 0.75rem
20+
14:
21+
value: 0.875rem
22+
16:
23+
value: 1.0rem
24+
18:
25+
value: 1.125rem
26+
20:
27+
value: 1.25rem
28+
24:
29+
value: 1.5rem
30+
28:
31+
value: 1.75rem
32+
32:
33+
value: 2.0rem
34+
36:
35+
value: 2.25rem
36+
40:
37+
value: 2.5rem
38+
44:
39+
value: 2.75rem
40+
48:
41+
value: 3.0rem
42+
56:
43+
value: 3.5rem
44+
64:
45+
value: 4.0rem
46+
72:
47+
value: 4.5rem
48+
80:
49+
value: 5.0rem
50+
96:
51+
value: 6.0rem
52+
112:
53+
value: 7.0rem
54+
128:
55+
value: 8.0rem
56+
144:
57+
value: 9.0rem
58+
160:
59+
value: 10.0rem
60+
176:
61+
value: 11.0rem
62+
192:
63+
value: 12.0rem
64+
208:
65+
value: 13.0rem
66+
224:
67+
value: 14.0rem
68+
240:
69+
value: 15.0rem
70+
256:
71+
value: 16.0rem
72+
320:
73+
value: 20.0rem
74+
400:
75+
value: 25.0rem
76+
480:
77+
value: 30.0rem
78+
560:
79+
value: 35.0rem
80+
640:
81+
value: 40.0rem
82+
720:
83+
value: 45.0rem
84+
800:
85+
value: 50.0rem
86+
960:
87+
value: 60.0rem
88+
1120:
89+
value: 70.0rem
90+
1200:
91+
value: 75.0rem
92+
1280:
93+
value: 80.0rem
94+
1440:
95+
value: 90.0rem

packages/tokens/src/spacing.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
spacing:
22
100:
3-
value: 0rem
3+
value: '{ size.0.value }'
44
200:
5-
value: 0.25rem
5+
value: '{ size.4.value }'
66
300:
7-
value: 0.5rem
7+
value: '{ size.8.value }'
88
400:
9-
value: 0.75rem
9+
value: '{ size.12.value }'
1010
500:
11-
value: 1rem
11+
value: '{ size.16.value }'
1212
600:
13-
value: 1.25rem
13+
value: '{ size.20.value }'
1414
700:
15-
value: 1.5rem
15+
value: '{ size.24.value }'
1616
800:
17-
value: 1.75rem
17+
value: '{ size.28.value }'
1818
900:
19-
value: 2rem
19+
value: '{ size.32.value }'

packages/tokens/src/viewport.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
viewport:
22
mobile:
3-
value: 0
3+
value: '{ size.0.value }'
44
tablet:
55
value: 740px
66
desktop:
77
value: 992px
88
wide:
9-
value: 1200px
9+
value: '{ size.1200.value }'
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { CopyToClipboard } from '@launchpad-ui/clipboard';
2+
3+
import tokens from '../dist/default.json';
4+
5+
export default {
6+
title: 'Tokens/Size',
7+
};
8+
9+
const sizes = tokens.size;
10+
11+
const valueInPx = (value: string) => {
12+
const removeRemChars = value.slice(0, -3); // remove 'rem' from string
13+
const stringToNumber = parseFloat(removeRemChars.toString());
14+
15+
return `(${stringToNumber * 16}px)`;
16+
};
17+
18+
export const Size = {
19+
render: () => (
20+
<div
21+
style={{
22+
display: 'grid',
23+
gridTemplateColumns: 'max-content auto max-content',
24+
alignItems: 'center',
25+
gap: 'var(--lp-size-24)',
26+
}}
27+
>
28+
{Object.entries(sizes).map(([key, value]) => (
29+
<>
30+
<CopyToClipboard text={`--lp-size-${key}`}>{`--lp-size-${key}`}</CopyToClipboard>
31+
<div>
32+
{value}
33+
{valueInPx(value)}
34+
</div>
35+
<div
36+
style={{
37+
backgroundColor: 'var(--lp-color-system-green-500)',
38+
width: value,
39+
height: 'var(--lp-size-16)',
40+
}}
41+
/>
42+
</>
43+
))}
44+
</div>
45+
),
46+
};

0 commit comments

Comments
 (0)