@equinor/eds-tokens 2.3.2 → 3.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/package.json +10 -3
  2. package/src/tokens/css/color-scheme/dark.css +100 -0
  3. package/src/tokens/css/color-scheme/light.css +100 -0
  4. package/src/tokens/css/colors/default.css +212 -0
  5. package/src/tokens/css/density/comfortable.css +51 -0
  6. package/src/tokens/css/density/compact.css +51 -0
  7. package/src/tokens/css/density/relaxed.css +51 -0
  8. package/src/tokens/css/font/default.css +7 -0
  9. package/src/tokens/css/primitives/default.css +84 -0
  10. package/src/tokens/css/semantic/default.css +115 -0
  11. package/src/tokens/css/variables.css +772 -0
  12. package/src/tokens/dtcg/color-scheme/dark.json +1092 -0
  13. package/src/tokens/dtcg/color-scheme/light.json +1092 -0
  14. package/src/tokens/dtcg/colors/default.json +2344 -0
  15. package/src/tokens/dtcg/density/comfortable.json +748 -0
  16. package/src/tokens/dtcg/density/compact.json +748 -0
  17. package/src/tokens/dtcg/density/relaxed.json +748 -0
  18. package/src/tokens/dtcg/font/default.json +76 -0
  19. package/src/tokens/dtcg/primitives/default.json +1181 -0
  20. package/src/tokens/dtcg/semantic/default.json +1667 -0
  21. package/src/tokens/ts/color-scheme/dark.ts +119 -0
  22. package/src/tokens/ts/color-scheme/light.ts +119 -0
  23. package/src/tokens/ts/colors/default.ts +251 -0
  24. package/src/tokens/ts/density/comfortable.ts +102 -0
  25. package/src/tokens/ts/density/compact.ts +102 -0
  26. package/src/tokens/ts/density/relaxed.ts +102 -0
  27. package/src/tokens/ts/font/default.ts +18 -0
  28. package/src/tokens/ts/primitives/default.ts +171 -0
  29. package/src/tokens/ts/semantic/dark.ts +214 -0
  30. package/src/tokens/ts/semantic/light.ts +214 -0
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Do not edit directly — generated by scripts/generate-ts-tokens.mjs
3
+ * from the Tokens Studio DTCG + CSS exports.
4
+ */
5
+
6
+ export const colorScheme = {
7
+ accent: {
8
+ '1': '#121414',
9
+ '2': '#191d1d',
10
+ '3': '#3c6266',
11
+ '4': '#3e7378',
12
+ '5': '#41878e',
13
+ '6': '#3c6266',
14
+ '7': '#439199',
15
+ '8': '#6ec0c9',
16
+ '9': '#8cd2da',
17
+ '10': '#ace3e9',
18
+ '11': '#c7f1f6',
19
+ '12': '#bcebf1',
20
+ '13': '#f1ffff',
21
+ '14': '#2c3839',
22
+ '15': '#030303',
23
+ },
24
+ bgBackdrop: '#738696',
25
+ bgDisabled: '#525c65',
26
+ bgFloating: '#1b1c1d',
27
+ bgInput: '#131414',
28
+ borderDisabled: '#738696',
29
+ borderFocus: '#2d8bc5',
30
+ danger: {
31
+ '1': '#181212',
32
+ '2': '#221919',
33
+ '3': '#923a3c',
34
+ '4': '#b03940',
35
+ '5': '#d43745',
36
+ '6': '#923a3c',
37
+ '7': '#e53748',
38
+ '8': '#ff8182',
39
+ '9': '#ffa4a2',
40
+ '10': '#ffc4c1',
41
+ '11': '#ffdddb',
42
+ '12': '#ffd1ce',
43
+ '13': '#fff7f6',
44
+ '14': '#492d2c',
45
+ '15': '#040303',
46
+ },
47
+ info: {
48
+ '1': '#121416',
49
+ '2': '#191d1f',
50
+ '3': '#33607e',
51
+ '4': '#316f98',
52
+ '5': '#2e82b7',
53
+ '6': '#33607e',
54
+ '7': '#2d8bc5',
55
+ '8': '#5abbfb',
56
+ '9': '#82cdff',
57
+ '10': '#b0deff',
58
+ '11': '#c9edff',
59
+ '12': '#bfe7ff',
60
+ '13': '#eefeff',
61
+ '14': '#2a3741',
62
+ '15': '#030304',
63
+ },
64
+ neutral: {
65
+ '1': '#131414',
66
+ '2': '#1b1c1d',
67
+ '3': '#525c65',
68
+ '4': '#5d6b76',
69
+ '5': '#6b7d8b',
70
+ '6': '#525c65',
71
+ '7': '#738696',
72
+ '8': '#9fb4c6',
73
+ '9': '#b4c7d7',
74
+ '10': '#cadae7',
75
+ '11': '#deeaf4',
76
+ '12': '#d6e3ee',
77
+ '13': '#f8fcff',
78
+ '14': '#333639',
79
+ '15': '#030303',
80
+ },
81
+ success: {
82
+ '1': '#121512',
83
+ '2': '#191d19',
84
+ '3': '#3c673a',
85
+ '4': '#3e793c',
86
+ '5': '#418e3e',
87
+ '6': '#3c673a',
88
+ '7': '#449941',
89
+ '8': '#6eca6a',
90
+ '9': '#8cdb87',
91
+ '10': '#aceba8',
92
+ '11': '#c7f7c3',
93
+ '12': '#bcf2b8',
94
+ '13': '#f1ffef',
95
+ '14': '#2c392b',
96
+ '15': '#030303',
97
+ },
98
+ textDisabled: '#738696',
99
+ textLink: '#5abbfb',
100
+ warning: {
101
+ '1': '#161311',
102
+ '2': '#201b17',
103
+ '3': '#7e4e25',
104
+ '4': '#97571b',
105
+ '5': '#b46201',
106
+ '6': '#7e4e25',
107
+ '7': '#c26900',
108
+ '8': '#f99539',
109
+ '9': '#ffaf6b',
110
+ '10': '#ffcba2',
111
+ '11': '#ffdebe',
112
+ '12': '#ffd7b3',
113
+ '13': '#fff8e9',
114
+ '14': '#413226',
115
+ '15': '#040303',
116
+ },
117
+ } as const
118
+
119
+ export type ColorScheme = typeof colorScheme
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Do not edit directly — generated by scripts/generate-ts-tokens.mjs
3
+ * from the Tokens Studio DTCG + CSS exports.
4
+ */
5
+
6
+ export const colorScheme = {
7
+ accent: {
8
+ '1': '#eefbfd',
9
+ '2': '#ddeff1',
10
+ '3': '#cfe7e9',
11
+ '4': '#bbdbdf',
12
+ '5': '#a2cdd2',
13
+ '6': '#87c0c6',
14
+ '7': '#6cb2b9',
15
+ '8': '#3c959e',
16
+ '9': '#21767e',
17
+ '10': '#1f666d',
18
+ '11': '#20565c',
19
+ '12': '#20474b',
20
+ '13': '#1e383a',
21
+ '14': '#cae4e7',
22
+ '15': '#ffffff',
23
+ },
24
+ bgBackdrop: '#a4a4a4',
25
+ bgDisabled: '#e1e1e1',
26
+ bgFloating: '#ebebeb',
27
+ bgInput: '#f8f8f8',
28
+ borderDisabled: '#a4a4a4',
29
+ borderFocus: '#5cade5',
30
+ danger: {
31
+ '1': '#fff4f3',
32
+ '2': '#ffe1df',
33
+ '3': '#ffd4d2',
34
+ '4': '#ffc3c0',
35
+ '5': '#ffa7a5',
36
+ '6': '#ff8d8d',
37
+ '7': '#ff6d71',
38
+ '8': '#f12844',
39
+ '9': '#c5002e',
40
+ '10': '#ab0428',
41
+ '11': '#8e1525',
42
+ '12': '#721c22',
43
+ '13': '#571c1f',
44
+ '14': '#ffd0ce',
45
+ '15': '#ffffff',
46
+ },
47
+ info: {
48
+ '1': '#f2faff',
49
+ '2': '#d9efff',
50
+ '3': '#cae6fa',
51
+ '4': '#b5daf5',
52
+ '5': '#99cbf0',
53
+ '6': '#7bbceb',
54
+ '7': '#5cade5',
55
+ '8': '#1d8fcf',
56
+ '9': '#0070a7',
57
+ '10': '#006192',
58
+ '11': '#0e5279',
59
+ '12': '#164461',
60
+ '13': '#18364a',
61
+ '14': '#c5e3f9',
62
+ '15': '#ffffff',
63
+ },
64
+ neutral: {
65
+ '1': '#f8f8f8',
66
+ '2': '#ebebeb',
67
+ '3': '#e1e1e1',
68
+ '4': '#d4d4d4',
69
+ '5': '#c4c4c4',
70
+ '6': '#b4b4b4',
71
+ '7': '#a4a4a4',
72
+ '8': '#868686',
73
+ '9': '#696969',
74
+ '10': '#5b5b5b',
75
+ '11': '#4d4d4d',
76
+ '12': '#404040',
77
+ '13': '#333333',
78
+ '14': '#dedede',
79
+ '15': '#ffffff',
80
+ },
81
+ success: {
82
+ '1': '#eefeed',
83
+ '2': '#ddf2db',
84
+ '3': '#cfeacc',
85
+ '4': '#bbe0b8',
86
+ '5': '#a2d49e',
87
+ '6': '#87c783',
88
+ '7': '#6dba69',
89
+ '8': '#3c9e3b',
90
+ '9': '#227e22',
91
+ '10': '#206d1f',
92
+ '11': '#205c1f',
93
+ '12': '#214b1f',
94
+ '13': '#1e3b1d',
95
+ '14': '#cae8c7',
96
+ '15': '#ffffff',
97
+ },
98
+ textDisabled: '#a4a4a4',
99
+ textLink: '#1d8fcf',
100
+ warning: {
101
+ '1': '#fff6f0',
102
+ '2': '#ffe6d3',
103
+ '3': '#fbdac1',
104
+ '4': '#f6caaa',
105
+ '5': '#f0b689',
106
+ '6': '#eba267',
107
+ '7': '#e38d42',
108
+ '8': '#c86a00',
109
+ '9': '#9f5100',
110
+ '10': '#894700',
111
+ '11': '#753c00',
112
+ '12': '#603204',
113
+ '13': '#4a2a0e',
114
+ '14': '#fad6bc',
115
+ '15': '#ffffff',
116
+ },
117
+ } as const
118
+
119
+ export type ColorScheme = typeof colorScheme
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Do not edit directly — generated by scripts/generate-ts-tokens.mjs
3
+ * from the Tokens Studio DTCG + CSS exports.
4
+ */
5
+
6
+ export const colors = {
7
+ dark: {
8
+ blue: {
9
+ '1': '#121416',
10
+ '2': '#191d1f',
11
+ '3': '#33607e',
12
+ '4': '#316f98',
13
+ '5': '#2e82b7',
14
+ '6': '#33607e',
15
+ '7': '#2d8bc5',
16
+ '8': '#5abbfb',
17
+ '9': '#82cdff',
18
+ '10': '#b0deff',
19
+ '11': '#c9edff',
20
+ '12': '#bfe7ff',
21
+ '13': '#eefeff',
22
+ '14': '#2a3741',
23
+ '15': '#030304',
24
+ },
25
+ gray: {
26
+ '1': '#141414',
27
+ '2': '#1c1c1c',
28
+ '3': '#5b5b5b',
29
+ '4': '#696969',
30
+ '5': '#7a7a7a',
31
+ '6': '#5b5b5b',
32
+ '7': '#838383',
33
+ '8': '#b1b1b1',
34
+ '9': '#c4c4c4',
35
+ '10': '#d7d7d7',
36
+ '11': '#e8e8e8',
37
+ '12': '#e1e1e1',
38
+ '13': '#fcfcfc',
39
+ '14': '#353535',
40
+ '15': '#030303',
41
+ },
42
+ green: {
43
+ '1': '#121512',
44
+ '2': '#191d19',
45
+ '3': '#3c673a',
46
+ '4': '#3e793c',
47
+ '5': '#418e3e',
48
+ '6': '#3c673a',
49
+ '7': '#449941',
50
+ '8': '#6eca6a',
51
+ '9': '#8cdb87',
52
+ '10': '#aceba8',
53
+ '11': '#c7f7c3',
54
+ '12': '#bcf2b8',
55
+ '13': '#f1ffef',
56
+ '14': '#2c392b',
57
+ '15': '#030303',
58
+ },
59
+ mossGreen: {
60
+ '1': '#121414',
61
+ '2': '#191d1d',
62
+ '3': '#3c6266',
63
+ '4': '#3e7378',
64
+ '5': '#41878e',
65
+ '6': '#3c6266',
66
+ '7': '#439199',
67
+ '8': '#6ec0c9',
68
+ '9': '#8cd2da',
69
+ '10': '#ace3e9',
70
+ '11': '#c7f1f6',
71
+ '12': '#bcebf1',
72
+ '13': '#f1ffff',
73
+ '14': '#2c3839',
74
+ '15': '#030303',
75
+ },
76
+ northSea: {
77
+ '1': '#131414',
78
+ '2': '#1b1c1d',
79
+ '3': '#525c65',
80
+ '4': '#5d6b76',
81
+ '5': '#6b7d8b',
82
+ '6': '#525c65',
83
+ '7': '#738696',
84
+ '8': '#9fb4c6',
85
+ '9': '#b4c7d7',
86
+ '10': '#cadae7',
87
+ '11': '#deeaf4',
88
+ '12': '#d6e3ee',
89
+ '13': '#f8fcff',
90
+ '14': '#333639',
91
+ '15': '#030303',
92
+ },
93
+ orange: {
94
+ '1': '#161311',
95
+ '2': '#201b17',
96
+ '3': '#7e4e25',
97
+ '4': '#97571b',
98
+ '5': '#b46201',
99
+ '6': '#7e4e25',
100
+ '7': '#c26900',
101
+ '8': '#f99539',
102
+ '9': '#ffaf6b',
103
+ '10': '#ffcba2',
104
+ '11': '#ffdebe',
105
+ '12': '#ffd7b3',
106
+ '13': '#fff8e9',
107
+ '14': '#413226',
108
+ '15': '#040303',
109
+ },
110
+ red: {
111
+ '1': '#181212',
112
+ '2': '#221919',
113
+ '3': '#923a3c',
114
+ '4': '#b03940',
115
+ '5': '#d43745',
116
+ '6': '#923a3c',
117
+ '7': '#e53748',
118
+ '8': '#ff8182',
119
+ '9': '#ffa4a2',
120
+ '10': '#ffc4c1',
121
+ '11': '#ffdddb',
122
+ '12': '#ffd1ce',
123
+ '13': '#fff7f6',
124
+ '14': '#492d2c',
125
+ '15': '#040303',
126
+ },
127
+ },
128
+ light: {
129
+ blue: {
130
+ '1': '#f2faff',
131
+ '2': '#d9efff',
132
+ '3': '#cae6fa',
133
+ '4': '#b5daf5',
134
+ '5': '#99cbf0',
135
+ '6': '#7bbceb',
136
+ '7': '#5cade5',
137
+ '8': '#1d8fcf',
138
+ '9': '#0070a7',
139
+ '10': '#006192',
140
+ '11': '#0e5279',
141
+ '12': '#164461',
142
+ '13': '#18364a',
143
+ '14': '#c5e3f9',
144
+ '15': '#ffffff',
145
+ },
146
+ gray: {
147
+ '1': '#f8f8f8',
148
+ '2': '#ebebeb',
149
+ '3': '#e1e1e1',
150
+ '4': '#d4d4d4',
151
+ '5': '#c4c4c4',
152
+ '6': '#b4b4b4',
153
+ '7': '#a4a4a4',
154
+ '8': '#868686',
155
+ '9': '#696969',
156
+ '10': '#5b5b5b',
157
+ '11': '#4d4d4d',
158
+ '12': '#404040',
159
+ '13': '#333333',
160
+ '14': '#dedede',
161
+ '15': '#ffffff',
162
+ },
163
+ green: {
164
+ '1': '#eefeed',
165
+ '2': '#ddf2db',
166
+ '3': '#cfeacc',
167
+ '4': '#bbe0b8',
168
+ '5': '#a2d49e',
169
+ '6': '#87c783',
170
+ '7': '#6dba69',
171
+ '8': '#3c9e3b',
172
+ '9': '#227e22',
173
+ '10': '#206d1f',
174
+ '11': '#205c1f',
175
+ '12': '#214b1f',
176
+ '13': '#1e3b1d',
177
+ '14': '#cae8c7',
178
+ '15': '#ffffff',
179
+ },
180
+ mossGreen: {
181
+ '1': '#eefbfd',
182
+ '2': '#ddeff1',
183
+ '3': '#cfe7e9',
184
+ '4': '#bbdbdf',
185
+ '5': '#a2cdd2',
186
+ '6': '#87c0c6',
187
+ '7': '#6cb2b9',
188
+ '8': '#3c959e',
189
+ '9': '#21767e',
190
+ '10': '#1f666d',
191
+ '11': '#20565c',
192
+ '12': '#20474b',
193
+ '13': '#1e383a',
194
+ '14': '#cae4e7',
195
+ '15': '#ffffff',
196
+ },
197
+ northSea: {
198
+ '1': '#f5f9fc',
199
+ '2': '#e6ecf1',
200
+ '3': '#dbe2e8',
201
+ '4': '#ccd6dd',
202
+ '5': '#bac6d0',
203
+ '6': '#a7b7c3',
204
+ '7': '#95a7b6',
205
+ '8': '#74899b',
206
+ '9': '#596c7b',
207
+ '10': '#4d5d6a',
208
+ '11': '#424f59',
209
+ '12': '#374149',
210
+ '13': '#2d3439',
211
+ '14': '#d8dfe5',
212
+ '15': '#ffffff',
213
+ },
214
+ orange: {
215
+ '1': '#fff6f0',
216
+ '2': '#ffe6d3',
217
+ '3': '#fbdac1',
218
+ '4': '#f6caaa',
219
+ '5': '#f0b689',
220
+ '6': '#eba267',
221
+ '7': '#e38d42',
222
+ '8': '#c86a00',
223
+ '9': '#9f5100',
224
+ '10': '#894700',
225
+ '11': '#753c00',
226
+ '12': '#603204',
227
+ '13': '#4a2a0e',
228
+ '14': '#fad6bc',
229
+ '15': '#ffffff',
230
+ },
231
+ red: {
232
+ '1': '#fff4f3',
233
+ '2': '#ffe1df',
234
+ '3': '#ffd4d2',
235
+ '4': '#ffc3c0',
236
+ '5': '#ffa7a5',
237
+ '6': '#ff8d8d',
238
+ '7': '#ff6d71',
239
+ '8': '#f12844',
240
+ '9': '#c5002e',
241
+ '10': '#ab0428',
242
+ '11': '#8e1525',
243
+ '12': '#721c22',
244
+ '13': '#571c1f',
245
+ '14': '#ffd0ce',
246
+ '15': '#ffffff',
247
+ },
248
+ },
249
+ } as const
250
+
251
+ export type Colors = typeof colors
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Do not edit directly — generated by scripts/generate-ts-tokens.mjs
3
+ * from the Tokens Studio DTCG + CSS exports.
4
+ */
5
+
6
+ export const density = {
7
+ cornerRadius: {
8
+ none: 0,
9
+ pill: 9999,
10
+ rounded: 4,
11
+ roundedOuter: 6,
12
+ },
13
+ spacing: {
14
+ twoXl: 28,
15
+ twoXs: 6,
16
+ threeXl: 32,
17
+ threeXs: 4,
18
+ fourXs: 2,
19
+ lg: 20,
20
+ md: 16,
21
+ none: 0,
22
+ sm: 12,
23
+ xl: 24,
24
+ xs: 8,
25
+ },
26
+ typography: {
27
+ header: {
28
+ twoXl: {
29
+ fontSize: 24,
30
+ lineHeight: 28,
31
+ },
32
+ threeXl: {
33
+ fontSize: 24,
34
+ lineHeight: 32,
35
+ },
36
+ fourXl: {
37
+ fontSize: 32,
38
+ lineHeight: 32,
39
+ },
40
+ lg: {
41
+ fontSize: 18,
42
+ lineHeight: 24,
43
+ },
44
+ md: {
45
+ fontSize: 16,
46
+ lineHeight: 20,
47
+ },
48
+ sm: {
49
+ fontSize: 14,
50
+ lineHeight: 16,
51
+ },
52
+ xl: {
53
+ fontSize: 21,
54
+ lineHeight: 24,
55
+ },
56
+ xs: {
57
+ fontSize: 12,
58
+ lineHeight: 16,
59
+ },
60
+ },
61
+ ui: {
62
+ twoXl: {
63
+ fontSize: 21,
64
+ lineHeight: 28,
65
+ },
66
+ threeXl: {
67
+ fontSize: 24,
68
+ lineHeight: 32,
69
+ },
70
+ fourXl: {
71
+ fontSize: 28,
72
+ lineHeight: 32,
73
+ },
74
+ fiveXl: {
75
+ fontSize: 32,
76
+ lineHeight: 36,
77
+ },
78
+ lg: {
79
+ fontSize: 16,
80
+ lineHeight: 24,
81
+ },
82
+ md: {
83
+ fontSize: 14,
84
+ lineHeight: 20,
85
+ },
86
+ sm: {
87
+ fontSize: 12,
88
+ lineHeight: 16,
89
+ },
90
+ xl: {
91
+ fontSize: 18,
92
+ lineHeight: 24,
93
+ },
94
+ xs: {
95
+ fontSize: 10,
96
+ lineHeight: 16,
97
+ },
98
+ },
99
+ },
100
+ } as const
101
+
102
+ export type Density = typeof density
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Do not edit directly — generated by scripts/generate-ts-tokens.mjs
3
+ * from the Tokens Studio DTCG + CSS exports.
4
+ */
5
+
6
+ export const density = {
7
+ cornerRadius: {
8
+ none: 0,
9
+ pill: 9999,
10
+ rounded: 2,
11
+ roundedOuter: 4,
12
+ },
13
+ spacing: {
14
+ twoXl: 24,
15
+ twoXs: 4,
16
+ threeXl: 28,
17
+ threeXs: 2,
18
+ fourXs: 1,
19
+ lg: 16,
20
+ md: 12,
21
+ none: 0,
22
+ sm: 10,
23
+ xl: 20,
24
+ xs: 6,
25
+ },
26
+ typography: {
27
+ header: {
28
+ twoXl: {
29
+ fontSize: 21,
30
+ lineHeight: 24,
31
+ },
32
+ threeXl: {
33
+ fontSize: 24,
34
+ lineHeight: 28,
35
+ },
36
+ fourXl: {
37
+ fontSize: 28,
38
+ lineHeight: 32,
39
+ },
40
+ lg: {
41
+ fontSize: 16,
42
+ lineHeight: 20,
43
+ },
44
+ md: {
45
+ fontSize: 14,
46
+ lineHeight: 16,
47
+ },
48
+ sm: {
49
+ fontSize: 12,
50
+ lineHeight: 16,
51
+ },
52
+ xl: {
53
+ fontSize: 18,
54
+ lineHeight: 24,
55
+ },
56
+ xs: {
57
+ fontSize: 10,
58
+ lineHeight: 12,
59
+ },
60
+ },
61
+ ui: {
62
+ twoXl: {
63
+ fontSize: 18,
64
+ lineHeight: 24,
65
+ },
66
+ threeXl: {
67
+ fontSize: 21,
68
+ lineHeight: 28,
69
+ },
70
+ fourXl: {
71
+ fontSize: 24,
72
+ lineHeight: 32,
73
+ },
74
+ fiveXl: {
75
+ fontSize: 28,
76
+ lineHeight: 32,
77
+ },
78
+ lg: {
79
+ fontSize: 14,
80
+ lineHeight: 20,
81
+ },
82
+ md: {
83
+ fontSize: 12,
84
+ lineHeight: 16,
85
+ },
86
+ sm: {
87
+ fontSize: 10,
88
+ lineHeight: 16,
89
+ },
90
+ xl: {
91
+ fontSize: 16,
92
+ lineHeight: 24,
93
+ },
94
+ xs: {
95
+ fontSize: 9,
96
+ lineHeight: 12,
97
+ },
98
+ },
99
+ },
100
+ } as const
101
+
102
+ export type Density = typeof density