@marigold/system 0.3.0 → 0.4.0

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.
@@ -1,499 +0,0 @@
1
- import { Meta, Story, Canvas } from '@storybook/addon-docs';
2
- import { Box, Column, Columns, Container, Text } from '@marigold/components';
3
-
4
- <Meta title="Tokens/Marigold Colours" />
5
-
6
- # Colours
7
-
8
- ## B2B Theme
9
-
10
- <Canvas>
11
- <Story name="B2B Theme">
12
- <Columns space={16}>
13
- <Column width={6}>
14
- <Text as="h2" variant="headline2">
15
- Gray
16
- </Text>
17
- <Box
18
- as={Container}
19
- bg="#ffffff"
20
- p="8px"
21
- display="flex"
22
- justifyContent="space-between"
23
- >
24
- <Text>Gray00</Text>
25
- <Text>#ffffff</Text>
26
- </Box>
27
- <Box
28
- as={Container}
29
- bg="#fafafa"
30
- p="8px"
31
- display="flex"
32
- justifyContent="space-between"
33
- >
34
- <Text>Gray10</Text>
35
- <Text>#fafafa</Text>
36
- </Box>
37
- <Box
38
- as={Container}
39
- bg="#f3f3f3"
40
- p="8px"
41
- display="flex"
42
- justifyContent="space-between"
43
- >
44
- <Text>Gray20</Text>
45
- <Text>#f3f3f3</Text>
46
- </Box>
47
- <Box
48
- as={Container}
49
- bg="#e3e3e3"
50
- p="8px"
51
- display="flex"
52
- justifyContent="space-between"
53
- >
54
- <Text>Gray30</Text>
55
- <Text>#e3e3e3</Text>
56
- </Box>
57
- <Box
58
- as={Container}
59
- bg="#cccccc"
60
- p="8px"
61
- display="flex"
62
- justifyContent="space-between"
63
- >
64
- <Text>Gray40</Text>
65
- <Text>#cccccc</Text>
66
- </Box>
67
- <Box
68
- as={Container}
69
- bg="#8d8d8d"
70
- p="8px"
71
- display="flex"
72
- justifyContent="space-between"
73
- >
74
- <Text>Gray50</Text>
75
- <Text>#8d8d8d</Text>
76
- </Box>
77
- <Box
78
- as={Container}
79
- css={{ color: 'white' }}
80
- bg="#6d6d6d"
81
- p="8px"
82
- display="flex"
83
- justifyContent="space-between"
84
- >
85
- <Text>Gray60</Text>
86
- <Text>#6d6d6d</Text>
87
- </Box>
88
- <Box
89
- as={Container}
90
- css={{ color: 'white' }}
91
- bg="#4b4b4b"
92
- p="8px"
93
- display="flex"
94
- justifyContent="space-between"
95
- >
96
- <Text>Gray70 (Text Black)</Text>
97
- <Text>#4b4b4b</Text>
98
- </Box>
99
- <Box
100
- as={Container}
101
- css={{ color: 'white' }}
102
- bg="#2b2b2b"
103
- p="8px"
104
- display="flex"
105
- justifyContent="space-between"
106
- >
107
- <Text>Gray80</Text>
108
- <Text>#2b2b2b</Text>
109
- </Box>
110
- <Box
111
- as={Container}
112
- css={{ color: 'white' }}
113
- bg="#0f0f0f"
114
- p="8px"
115
- display="flex"
116
- justifyContent="space-between"
117
- >
118
- <Text>Gray90</Text>
119
- <Text>#0f0f0f</Text>
120
- </Box>
121
- </Column>
122
- <Column width={6}>
123
- <Text as="h2" variant="headline2">
124
- Orange
125
- </Text>
126
- <Box
127
- as={Container}
128
- bg="#fff8f1"
129
- p="8px"
130
- display="flex"
131
- justifyContent="space-between"
132
- >
133
- <Text>Orange10</Text>
134
- <Text>#fff8f1</Text>
135
- </Box>
136
- <Box
137
- as={Container}
138
- bg="#fdcca0"
139
- p="8px"
140
- display="flex"
141
- justifyContent="space-between"
142
- >
143
- <Text>Orange20</Text>
144
- <Text>#fdcca0</Text>
145
- </Box>
146
- <Box
147
- as={Container}
148
- bg="#f8ac67"
149
- p="8px"
150
- display="flex"
151
- justifyContent="space-between"
152
- >
153
- <Text>Orange40</Text>
154
- <Text>#f8ac67</Text>
155
- </Box>
156
- <Box
157
- as={Container}
158
- bg="#fa8005"
159
- p="8px"
160
- display="flex"
161
- justifyContent="space-between"
162
- >
163
- <Text>Orange60 (Primary)</Text>
164
- <Text>#fa8005</Text>
165
- </Box>
166
- <Box
167
- as={Container}
168
- bg="#ea5200"
169
- p="8px"
170
- display="flex"
171
- justifyContent="space-between"
172
- >
173
- <Text>Orange70</Text>
174
- <Text>#ea5200</Text>
175
- </Box>
176
- <Box
177
- as={Container}
178
- css={{ color: 'white' }}
179
- bg="#ae440a"
180
- p="8px"
181
- display="flex"
182
- justifyContent="space-between"
183
- >
184
- <Text>Orange80</Text>
185
- <Text>#ae440a</Text>
186
- </Box>
187
- </Column>
188
- </Columns>
189
- <Columns space={16}>
190
- <Column width={6}>
191
- <Text as="h2" variant="headline2">
192
- Blue
193
- </Text>
194
- <Box
195
- as={Container}
196
- bg="#e8f4fa"
197
- p="8px"
198
- display="flex"
199
- justifyContent="space-between"
200
- >
201
- <Text>Blue10</Text>
202
- <Text>#e8f4fa</Text>
203
- </Box>
204
- <Box
205
- as={Container}
206
- bg="#c1f0fc"
207
- p="8px"
208
- display="flex"
209
- justifyContent="space-between"
210
- >
211
- <Text>Blue20</Text>
212
- <Text>#c1f0fc</Text>
213
- </Box>
214
- <Box
215
- as={Container}
216
- bg="#67dfff"
217
- p="8px"
218
- display="flex"
219
- justifyContent="space-between"
220
- >
221
- <Text>Blue40</Text>
222
- <Text>#67dfff</Text>
223
- </Box>
224
- <Box
225
- as={Container}
226
- bg="#3ab3d5"
227
- p="8px"
228
- display="flex"
229
- justifyContent="space-between"
230
- >
231
- <Text>Blue60</Text>
232
- <Text>#3ab3d5</Text>
233
- </Box>
234
- <Box
235
- as={Container}
236
- css={{ color: 'white' }}
237
- bg="#1d67b6"
238
- p="8px"
239
- display="flex"
240
- justifyContent="space-between"
241
- >
242
- <Text>Blue70</Text>
243
- <Text>#1d67b6</Text>
244
- </Box>
245
- <Box
246
- as={Container}
247
- css={{ color: 'white' }}
248
- bg="#fafafa"
249
- p="8px"
250
- display="flex"
251
- justifyContent="space-between"
252
- >
253
- <Text>Blue80</Text>
254
- <Text>#0c3a6b</Text>
255
- </Box>
256
- </Column>
257
- <Column width={6}>
258
- <Text as="h2" variant="headline2">
259
- Green
260
- </Text>
261
- <Box
262
- as={Container}
263
- bg="#f9fed0"
264
- p="8px"
265
- display="flex"
266
- justifyContent="space-between"
267
- >
268
- <Text>Green10</Text>
269
- <Text>#f9fed0</Text>
270
- </Box>
271
- <Box
272
- as={Container}
273
- bg="#e8f57b"
274
- p="8px"
275
- display="flex"
276
- justifyContent="space-between"
277
- >
278
- <Text>Green20</Text>
279
- <Text>#e8f57b</Text>
280
- </Box>
281
- <Box
282
- as={Container}
283
- bg="#bacb2a"
284
- p="8px"
285
- display="flex"
286
- justifyContent="space-between"
287
- >
288
- <Text>Green40</Text>
289
- <Text>#bacb2a</Text>
290
- </Box>
291
- <Box
292
- as={Container}
293
- bg="#8bbd26"
294
- p="8px"
295
- display="flex"
296
- justifyContent="space-between"
297
- >
298
- <Text>Green60</Text>
299
- <Text>#8bbd26</Text>
300
- </Box>
301
- <Box
302
- as={Container}
303
- bg="#44a112"
304
- p="8px"
305
- display="flex"
306
- justifyContent="space-between"
307
- >
308
- <Text>Green70</Text>
309
- <Text>#44a112</Text>
310
- </Box>
311
- <Box
312
- as={Container}
313
- css={{ color: 'white' }}
314
- bg="#215107"
315
- p="8px"
316
- display="flex"
317
- justifyContent="space-between"
318
- >
319
- <Text>Green80</Text>
320
- <Text>#215107</Text>
321
- </Box>
322
- </Column>
323
- </Columns>
324
- <Columns space={16}>
325
- <Column width={6}>
326
- <Text as="h2" variant="headline2">
327
- Red
328
- </Text>
329
- <Box
330
- as={Container}
331
- bg="#fff8f8"
332
- p="8px"
333
- display="flex"
334
- justifyContent="space-between"
335
- >
336
- <Text>Red10</Text>
337
- <Text>#fff8f8</Text>
338
- </Box>
339
- <Box
340
- as={Container}
341
- bg="#fec8c9"
342
- p="8px"
343
- display="flex"
344
- justifyContent="space-between"
345
- >
346
- <Text>Red20</Text>
347
- <Text>#fec8c9</Text>
348
- </Box>
349
- <Box
350
- as={Container}
351
- bg="#f38a8a"
352
- p="8px"
353
- display="flex"
354
- justifyContent="space-between"
355
- >
356
- <Text>Red40</Text>
357
- <Text>#f38a8a</Text>
358
- </Box>
359
- <Box
360
- as={Container}
361
- bg="#dd4142"
362
- p="8px"
363
- display="flex"
364
- justifyContent="space-between"
365
- >
366
- <Text>Red60</Text>
367
- <Text>#dd4142</Text>
368
- </Box>
369
- <Box
370
- as={Container}
371
- css={{ color: 'white' }}
372
- bg="#8b0027"
373
- p="8px"
374
- display="flex"
375
- justifyContent="space-between"
376
- >
377
- <Text>Red70</Text>
378
- <Text>#8b0027</Text>
379
- </Box>
380
- <Box
381
- as={Container}
382
- css={{ color: 'white' }}
383
- bg="#4d0419"
384
- p="8px"
385
- display="flex"
386
- justifyContent="space-between"
387
- >
388
- <Text>Red80</Text>
389
- <Text>#4d0419</Text>
390
- </Box>
391
- </Column>
392
- </Columns>
393
- </Story>
394
- </Canvas>
395
-
396
- ## Unicorn Theme
397
-
398
- <Canvas>
399
- <Story name="Unicorn Theme">
400
- <Columns space={16}>
401
- <Column width={6}>
402
- <Text as="h2" variant="headline2">
403
- Base Colours
404
- </Text>
405
- <Box
406
- as={Container}
407
- css={{ color: 'white' }}
408
- bg="#070708"
409
- p="8px"
410
- display="flex"
411
- justifyContent="space-between"
412
- >
413
- <Text>Text</Text>
414
- <Text>#070708</Text>
415
- </Box>
416
- <Box
417
- as={Container}
418
- bg="#fdfcfd"
419
- p="8px"
420
- display="flex"
421
- justifyContent="space-between"
422
- >
423
- <Text>Background</Text>
424
- <Text>#fdfcfd</Text>
425
- </Box>
426
- <Box
427
- as={Container}
428
- bg="#c9b1ff"
429
- p="8px"
430
- display="flex"
431
- justifyContent="space-between"
432
- >
433
- <Text>Primary</Text>
434
- <Text>#c9b1ff</Text>
435
- </Box>
436
- <Box
437
- as={Container}
438
- bg="#ffcaf2"
439
- p="8px"
440
- display="flex"
441
- justifyContent="space-between"
442
- >
443
- <Text>Secondary</Text>
444
- <Text>#ffcaf2</Text>
445
- </Box>
446
- <Box
447
- as={Container}
448
- bg="#e9e7eb"
449
- p="8px"
450
- display="flex"
451
- justifyContent="space-between"
452
- >
453
- <Text>Disabled</Text>
454
- <Text>#e9e7eb</Text>
455
- </Box>
456
- <Box
457
- as={Container}
458
- bg="#ffb2b1"
459
- p="8px"
460
- display="flex"
461
- justifyContent="space-between"
462
- >
463
- <Text>Error</Text>
464
- <Text>#ffb2b1</Text>
465
- </Box>
466
- <Box
467
- as={Container}
468
- bg="#fff3ad"
469
- p="8px"
470
- display="flex"
471
- justifyContent="space-between"
472
- >
473
- <Text>Warning</Text>
474
- <Text>#fff3ad</Text>
475
- </Box>
476
- <Box
477
- as={Container}
478
- bg="#a2edff"
479
- p="8px"
480
- display="flex"
481
- justifyContent="space-between"
482
- >
483
- <Text>Info</Text>
484
- <Text>#a2edff</Text>
485
- </Box>
486
- <Box
487
- as={Container}
488
- bg="#bcffbc"
489
- p="8px"
490
- display="flex"
491
- justifyContent="space-between"
492
- >
493
- <Text>Success</Text>
494
- <Text>#bcffbc</Text>
495
- </Box>
496
- </Column>
497
- </Columns>
498
- </Story>
499
- </Canvas>
@@ -1,57 +0,0 @@
1
- import React from 'react';
2
- import { render } from '@testing-library/react';
3
- import { ThemeProvider } from './useTheme';
4
-
5
- import { Global } from './Global';
6
-
7
- test('applies normlaization to html and body', () => {
8
- const root = render(<Global />);
9
-
10
- const html = window.getComputedStyle(root.baseElement.parentElement!);
11
- expect(html.height).toBe('100%');
12
- const body = window.getComputedStyle(root.baseElement);
13
- expect(body.height).toBe('100%');
14
- expect(body.lineHeight).toBe('1.5');
15
- });
16
-
17
- test('applies global styles for body and html based on `theme.root`', () => {
18
- const theme = {
19
- colors: {
20
- background: '#fff',
21
- },
22
- fonts: {
23
- body: 'Inter',
24
- },
25
- lineHeights: {
26
- body: 2.5,
27
- },
28
- fontWeights: {
29
- body: 500,
30
- html: 700,
31
- },
32
- root: {
33
- body: {
34
- fontFamily: 'body',
35
- lineHeight: 'body',
36
- fontWeight: 'body',
37
- },
38
- html: {
39
- bg: 'background',
40
- },
41
- },
42
- };
43
-
44
- const root = render(
45
- <ThemeProvider theme={theme}>
46
- <Global />
47
- </ThemeProvider>
48
- );
49
-
50
- const html = root.baseElement.parentElement;
51
- expect(html).toHaveStyle(`background: ${theme.colors.background}`);
52
-
53
- const body = root.baseElement;
54
- expect(body).toHaveStyle(`font-family: ${theme.fonts.body}`);
55
- expect(body).toHaveStyle(`line-height: ${theme.lineHeights.body}`);
56
- expect(body).toHaveStyle(`font-weight: ${theme.fontWeights.body}`);
57
- });
package/src/Global.tsx DELETED
@@ -1,34 +0,0 @@
1
- import React from 'react';
2
- import { Global as EmotionGlobal } from '@emotion/react';
3
- import { useTheme } from './useTheme';
4
-
5
- /**
6
- * CSS snippet and idea from:
7
- * https://css-tricks.com/revisiting-prefers-reduced-motion-the-reduced-motion-media-query/
8
- */
9
- const reduceMotionStyles = {
10
- '@media screen and (prefers-reduced-motion: reduce), (update: slow)': {
11
- '*': {
12
- animationDuration: '0.001ms !important',
13
- animationIterationCount: '1 !important',
14
- transitionDuration: '0.001ms !important',
15
- },
16
- },
17
- };
18
-
19
- export const Global = () => {
20
- const { css } = useTheme();
21
- const styles = css({
22
- html: {
23
- height: '100%',
24
- variant: 'root.html',
25
- },
26
- body: {
27
- height: '100%',
28
- lineHeight: 1.5,
29
- WebkitFontSmoothing: 'antialiased',
30
- variant: 'root.body',
31
- },
32
- });
33
- return <EmotionGlobal styles={{ reduceMotionStyles, ...styles }} />;
34
- };
@@ -1,55 +0,0 @@
1
- import { ArgsTable, Canvas, Meta, Story } from '@storybook/addon-docs';
2
- import { SVG } from './SVG';
3
-
4
- <Meta
5
- title="Components/SVG"
6
- argTypes={{
7
- variant: {
8
- control: {
9
- type: 'text',
10
- },
11
- table: {
12
- defaultValue: {
13
- summary: 'icon',
14
- },
15
- },
16
- },
17
- size: {
18
- control: {
19
- type: 'range',
20
- min: 0,
21
- max: 96,
22
- step: 2,
23
- },
24
- table: {
25
- defaultValue: {
26
- summary: 24,
27
- },
28
- },
29
- },
30
- fill: {
31
- control: {
32
- type: 'text',
33
- },
34
- table: {
35
- defaultValue: {
36
- summary: 'currentColor',
37
- },
38
- },
39
- },
40
- }}
41
- />
42
-
43
- # SVG
44
-
45
- export const Template = args => (
46
- <SVG {...args}>
47
- <path d="M9.9 20.113V13.8415H14.1V20.113H19.35V11.751H22.5L12 2.34375L1.5 11.751H4.65V20.113H9.9Z" />
48
- </SVG>
49
- );
50
-
51
- <Canvas>
52
- <Story name="Default">{Template.bind({})}</Story>
53
- </Canvas>
54
-
55
- <ArgsTable story="Default" />