@inc2734/unitone-css 0.23.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.
Files changed (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -0
  3. package/dist/app.css +1 -0
  4. package/dist/app.js +1 -0
  5. package/dist/storybook.css +1 -0
  6. package/package.json +60 -0
  7. package/src/.DS_Store +0 -0
  8. package/src/app.js +21 -0
  9. package/src/app.scss +8 -0
  10. package/src/foundation/_foundation.scss +108 -0
  11. package/src/helper/_align-items.scss +7 -0
  12. package/src/helper/_align-self.scss +17 -0
  13. package/src/helper/_align.scss +14 -0
  14. package/src/helper/_fluid-typography.scss +7 -0
  15. package/src/helper/_gap.scss +7 -0
  16. package/src/helper/_gutters.scss +7 -0
  17. package/src/helper/_helper.scss +21 -0
  18. package/src/helper/_justify-content.scss +7 -0
  19. package/src/helper/_justify-self.scss +17 -0
  20. package/src/helper/_padding.scss +7 -0
  21. package/src/layout-primitives/_layout-primitives.scss +33 -0
  22. package/src/layout-primitives/both-sides/BothSides.jsx +22 -0
  23. package/src/layout-primitives/both-sides/README.md +54 -0
  24. package/src/layout-primitives/both-sides/_both-sides.scss +24 -0
  25. package/src/layout-primitives/both-sides/stories/index.jsx +51 -0
  26. package/src/layout-primitives/center/Center.jsx +18 -0
  27. package/src/layout-primitives/center/README.md +33 -0
  28. package/src/layout-primitives/center/_center.scss +17 -0
  29. package/src/layout-primitives/center/stories/index.jsx +39 -0
  30. package/src/layout-primitives/cluster/Cluster.jsx +21 -0
  31. package/src/layout-primitives/cluster/README.md +35 -0
  32. package/src/layout-primitives/cluster/_cluster.scss +22 -0
  33. package/src/layout-primitives/cluster/stories/index.jsx +79 -0
  34. package/src/layout-primitives/container/Container.jsx +23 -0
  35. package/src/layout-primitives/container/README.md +39 -0
  36. package/src/layout-primitives/container/_container.scss +18 -0
  37. package/src/layout-primitives/container/stories/index.jsx +65 -0
  38. package/src/layout-primitives/cover/Cover.jsx +30 -0
  39. package/src/layout-primitives/cover/README.md +54 -0
  40. package/src/layout-primitives/cover/_cover.scss +37 -0
  41. package/src/layout-primitives/cover/stories/index.jsx +140 -0
  42. package/src/layout-primitives/decorator/Decorator.jsx +49 -0
  43. package/src/layout-primitives/decorator/README.md +49 -0
  44. package/src/layout-primitives/decorator/_decorator.scss +54 -0
  45. package/src/layout-primitives/decorator/stories/index.jsx +190 -0
  46. package/src/layout-primitives/float/Float.jsx +24 -0
  47. package/src/layout-primitives/float/README.md +24 -0
  48. package/src/layout-primitives/float/_float.scss +29 -0
  49. package/src/layout-primitives/float/stories/index.jsx +78 -0
  50. package/src/layout-primitives/frame/Frame.jsx +19 -0
  51. package/src/layout-primitives/frame/README.md +7 -0
  52. package/src/layout-primitives/frame/_frame.scss +45 -0
  53. package/src/layout-primitives/frame/stories/index.jsx +50 -0
  54. package/src/layout-primitives/gutters/Gutters.jsx +17 -0
  55. package/src/layout-primitives/gutters/README.md +23 -0
  56. package/src/layout-primitives/gutters/_gutters.scss +12 -0
  57. package/src/layout-primitives/gutters/stories/index.jsx +48 -0
  58. package/src/layout-primitives/layers/Layers.jsx +18 -0
  59. package/src/layout-primitives/layers/README.md +32 -0
  60. package/src/layout-primitives/layers/_layers.scss +51 -0
  61. package/src/layout-primitives/layers/stories/index.jsx +133 -0
  62. package/src/layout-primitives/responsive-grid/README.md +11 -0
  63. package/src/layout-primitives/responsive-grid/ResponsiveGrid.jsx +22 -0
  64. package/src/layout-primitives/responsive-grid/_responsive-grid.scss +14 -0
  65. package/src/layout-primitives/responsive-grid/stories/index.jsx +65 -0
  66. package/src/layout-primitives/stack/README.md +24 -0
  67. package/src/layout-primitives/stack/Stack.jsx +22 -0
  68. package/src/layout-primitives/stack/_stack.scss +31 -0
  69. package/src/layout-primitives/stack/stories/index.jsx +123 -0
  70. package/src/layout-primitives/switcher/README.md +17 -0
  71. package/src/layout-primitives/switcher/Switcher.jsx +19 -0
  72. package/src/layout-primitives/switcher/_switcher.scss +19 -0
  73. package/src/layout-primitives/switcher/stories/index.jsx +50 -0
  74. package/src/layout-primitives/text/README.md +16 -0
  75. package/src/layout-primitives/text/Text.jsx +19 -0
  76. package/src/layout-primitives/text/_text.scss +80 -0
  77. package/src/layout-primitives/text/stories/index.jsx +112 -0
  78. package/src/layout-primitives/with-sidebar/README.md +36 -0
  79. package/src/layout-primitives/with-sidebar/WithSidebar.jsx +35 -0
  80. package/src/layout-primitives/with-sidebar/_with-sidebar.scss +58 -0
  81. package/src/layout-primitives/with-sidebar/stories/index.jsx +127 -0
  82. package/src/patterns/features/features-1/Features1.jsx +52 -0
  83. package/src/patterns/features/features-1/stories/index.jsx +68 -0
  84. package/src/patterns/features/features-2/Features2.jsx +33 -0
  85. package/src/patterns/features/features-2/stories/index.jsx +67 -0
  86. package/src/patterns/header/header-1/Header1.jsx +31 -0
  87. package/src/patterns/header/header-1/stories/index.jsx +44 -0
  88. package/src/patterns/header/header-2/Header2.jsx +33 -0
  89. package/src/patterns/header/header-2/stories/index.jsx +44 -0
  90. package/src/patterns/header/header-3/Header3.jsx +30 -0
  91. package/src/patterns/header/header-3/stories/index.jsx +43 -0
  92. package/src/patterns/header/header-4/Header4.jsx +25 -0
  93. package/src/patterns/header/header-4/stories/index.jsx +41 -0
  94. package/src/patterns/header/header-5/Header5.jsx +32 -0
  95. package/src/patterns/header/header-5/stories/index.jsx +43 -0
  96. package/src/patterns/header/header-6/Header6.jsx +34 -0
  97. package/src/patterns/header/header-6/stories/index.jsx +58 -0
  98. package/src/patterns/media-text/media-text-1/MediaText1.jsx +41 -0
  99. package/src/patterns/media-text/media-text-1/stories/index.jsx +34 -0
  100. package/src/patterns/media-text/media-text-2/MediaText2.jsx +39 -0
  101. package/src/patterns/media-text/media-text-2/stories/index.jsx +34 -0
  102. package/src/settings/_body.scss +8 -0
  103. package/src/settings/_html.scss +3 -0
  104. package/src/settings/_root.scss +152 -0
  105. package/src/settings/_settings.scss +3 -0
  106. package/src/stories/1.introduction.stories.mdx +27 -0
  107. package/src/stories/2.get-started.stories.mdx +23 -0
  108. package/src/stories/3.global-api.stories.mdx +57 -0
  109. package/src/storybook.scss +11 -0
  110. package/src/variables/_variables.scss +22 -0
@@ -0,0 +1,127 @@
1
+ import React from 'react';
2
+ import readme from '../README.md';
3
+
4
+ import { WithSidebar } from '../WithSidebar';
5
+
6
+ export default {
7
+ title: 'Layout Primitives/WithSidebar',
8
+ component: WithSidebar,
9
+ parameters: {
10
+ notes: { readme },
11
+ },
12
+ argTypes: {
13
+ alignItems: {
14
+ control: { type: 'inline-radio' },
15
+ description: '`--unitone--align-items`',
16
+ description:
17
+ 'Alignment of the row direction. Set by CSS var `--unitone--align-items` or `data-unitone-layout` attribute `-align-items:x`.',
18
+ options: ['start', 'center', 'end'],
19
+ table: { defaultValue: { summary: 'start' } },
20
+ type: { name: 'string', required: false },
21
+ },
22
+ contentMinWidth: {
23
+ control: { type: 'text' },
24
+ description: 'Min width of the content. Set by CSS var `--unitone--content-min-width`.',
25
+ table: { defaultValue: { summary: '50%' } },
26
+ type: { name: 'string', required: false },
27
+ },
28
+ gap: {
29
+ control: { type: 'inline-radio' },
30
+ description:
31
+ 'Gap. Set by CSS var `--unitone--gap` or `data-unitone-layout` attribute `-gap:x`.',
32
+ options: [-2, -1, 0, 1, 2, 3, 4, 5, 6, 7],
33
+ table: { defaultValue: { summary: 'var(--unitone--s1)' } },
34
+ type: { name: 'number', required: false },
35
+ },
36
+ revert: {
37
+ control: { type: 'inline-radio' },
38
+ description:
39
+ 'The way child elements are displayed is reversed. Set by `data-unitone-layout` attribute `-revert`.',
40
+ options: [false, true],
41
+ table: { defaultValue: { summary: 'false' } },
42
+ type: { name: 'boolean', required: false },
43
+ },
44
+ sidebar: {
45
+ control: { type: 'inline-radio' },
46
+ description:
47
+ 'Which sidebar should be treated as a sidebar, right or left? Set by `data-unitone-layout` attribute `-sidebar:x`.',
48
+ options: ['left', 'right'],
49
+ table: { defaultValue: { summary: 'right' } },
50
+ type: { name: 'string', required: false },
51
+ },
52
+ sidebarWidth: {
53
+ control: { type: 'text' },
54
+ description: 'Sidebar width. Set by CSS var `--unitone--sidebar-width`.',
55
+ table: { defaultValue: { summary: 'initial' } },
56
+ type: { name: 'string', required: false },
57
+ },
58
+ },
59
+ args: {
60
+ alignItems: 'start',
61
+ contentMinWidth: '50%',
62
+ gap: 1,
63
+ revert: false,
64
+ sidebar: 'right',
65
+ sidebarWidth: 'initial',
66
+ },
67
+ };
68
+
69
+ const content =
70
+ 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cill';
71
+
72
+ export const Default = (args) => {
73
+ return (
74
+ <WithSidebar {...args}>
75
+ <p>{content}</p>
76
+ <ul>
77
+ <li>Lorem</li>
78
+ <li>ipsum</li>
79
+ <li>dolor</li>
80
+ </ul>
81
+ </WithSidebar>
82
+ );
83
+ };
84
+
85
+ export const Revert = (args) => {
86
+ return (
87
+ <WithSidebar {...args}>
88
+ <p>{content}</p>
89
+ <ul>
90
+ <li>Lorem</li>
91
+ <li>ipsum</li>
92
+ <li>dolor</li>
93
+ </ul>
94
+ </WithSidebar>
95
+ );
96
+ };
97
+ Revert.storyName = 'Example : Revert';
98
+ Revert.args = {
99
+ revert: true,
100
+ };
101
+
102
+ export const Input = (args) => {
103
+ return (
104
+ <WithSidebar {...args}>
105
+ <input type="text" />
106
+ <button>Button</button>
107
+ </WithSidebar>
108
+ );
109
+ };
110
+ Input.storyName = 'Example : Input';
111
+ Input.args = {
112
+ gap: 1,
113
+ };
114
+
115
+ export const MediaText = (args) => {
116
+ return (
117
+ <WithSidebar {...args}>
118
+ <img src="https://placehold.jp/400x300.jpg" alt="" />
119
+ <p>{content}</p>
120
+ </WithSidebar>
121
+ );
122
+ };
123
+ MediaText.storyName = 'Example : Media and text';
124
+ MediaText.args = {
125
+ sidebar: 'left',
126
+ sidebarWidth: '300px',
127
+ };
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Center } from '../../../layout-primitives/center/Center';
5
+ import { Container } from '../../../layout-primitives/container/Container';
6
+ import { ResponsiveGrid } from '../../../layout-primitives/responsive-grid/ResponsiveGrid';
7
+ import { Gutters } from '../../../layout-primitives/gutters/Gutters';
8
+ import { Stack } from '../../../layout-primitives/stack/Stack';
9
+ import { Text } from '../../../layout-primitives/text/Text';
10
+
11
+ export const Feature1 = ({ items = [], ...props }) => (
12
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
13
+ <Gutters>
14
+ <Container>
15
+ <Stack gap={props.gap}>
16
+ {!!props.title && (
17
+ <Center>
18
+ <h2 style={{ '--unitone--font-size': 3 }}>{props.title}</h2>
19
+ </Center>
20
+ )}
21
+ {0 < items.length && (
22
+ <ResponsiveGrid columnMinWidth={props.columnMinWidth} gap={props.gap}>
23
+ {items.map((item, index) => (
24
+ <Stack key={index} gap={-1}>
25
+ {(!!item.src || !!item.title) && (
26
+ <Stack gap={-2}>
27
+ {!!item.src && (
28
+ <Center>
29
+ <img src={item.src} alt="" />
30
+ </Center>
31
+ )}
32
+ {!!item.title && (
33
+ <Center>
34
+ <h3 style={{ '--unitone--font-size': 1 }}>{item.title}</h3>
35
+ </Center>
36
+ )}
37
+ </Stack>
38
+ )}
39
+ {!!item.content && (
40
+ <Text style={{ '--unitone--font-size': -1 }}>
41
+ <p>{item.content}</p>
42
+ </Text>
43
+ )}
44
+ </Stack>
45
+ ))}
46
+ </ResponsiveGrid>
47
+ )}
48
+ </Stack>
49
+ </Container>
50
+ </Gutters>
51
+ </Decorator>
52
+ );
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+
3
+ import { Feature1 } from '../Features1';
4
+
5
+ export default {
6
+ title: 'Patterns/Features/Features-1',
7
+ component: Feature1,
8
+ argTypes: {
9
+ backgroundColor: {
10
+ control: { type: 'color' },
11
+ table: { defaultValue: { summary: 'transparent' } },
12
+ type: { name: 'string', required: false },
13
+ },
14
+ columnMinWidth: {
15
+ control: { type: 'text' },
16
+ description: '`--unitone--column-min-width`',
17
+ table: { defaultValue: { summary: '250px' } },
18
+ type: { name: 'string', required: false },
19
+ },
20
+ color: {
21
+ control: { type: 'color' },
22
+ table: { defaultValue: { summary: 'initial' } },
23
+ type: { name: 'string', required: false },
24
+ },
25
+ gap: {
26
+ control: { type: 'inline-radio' },
27
+ options: [1, 2, 3, 4],
28
+ table: { defaultValue: { summary: 2 } },
29
+ type: { name: 'number', required: false },
30
+ },
31
+ },
32
+ args: {
33
+ backgroundColor: 'transparent',
34
+ columnMinWidth: '250px',
35
+ color: 'initial',
36
+ gap: 2,
37
+ },
38
+ parameters: {
39
+ layout: 'fullscreen',
40
+ },
41
+ };
42
+
43
+ export const Default = (props) => (
44
+ <Feature1
45
+ backgroundColor={props.backgroundColor}
46
+ columnMinWidth={props.columnMinWidth}
47
+ color={props.color}
48
+ gap={props.gap}
49
+ title="Lorem ipsum dolor sit amet"
50
+ items={[
51
+ {
52
+ title: 'Lorem',
53
+ src: 'https://placehold.jp/600x800.jpg',
54
+ content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit',
55
+ },
56
+ {
57
+ title: 'ipsum',
58
+ src: 'https://placehold.jp/600x800.jpg',
59
+ content: 'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
60
+ },
61
+ {
62
+ title: 'dolor',
63
+ src: 'https://placehold.jp/600x800.jpg',
64
+ content: 'Ut enim ad minim veniam',
65
+ },
66
+ ]}
67
+ />
68
+ );
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Container } from '../../../layout-primitives/container/Container';
5
+ import { Frame } from '../../../layout-primitives/frame/Frame';
6
+ import { Layers } from '../../../layout-primitives/layers/Layers';
7
+ import { ResponsiveGrid } from '../../../layout-primitives/responsive-grid/ResponsiveGrid';
8
+ import { Gutters } from '../../../layout-primitives/gutters/Gutters';
9
+
10
+ export const Feature2 = ({ items = [], ...props }) => (
11
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
12
+ <Gutters>
13
+ <Container>
14
+ {0 < items.length && (
15
+ <ResponsiveGrid columnMinWidth={props.columnMinWidth} gap={props.gap}>
16
+ {items.map((item, index) => (
17
+ <Layers key={index}>
18
+ <Frame ratio="3/4">{!!item.src && <img src={item.src} alt="" />}</Frame>
19
+ {!!item.content && (
20
+ <div style={{ '--unitone--font-size': -1, '--unitone--align-self': 'end' }}>
21
+ <Decorator padding={1}>
22
+ <p>{item.content}</p>
23
+ </Decorator>
24
+ </div>
25
+ )}
26
+ </Layers>
27
+ ))}
28
+ </ResponsiveGrid>
29
+ )}
30
+ </Container>
31
+ </Gutters>
32
+ </Decorator>
33
+ );
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+
3
+ import { Feature2 } from '../Features2';
4
+
5
+ export default {
6
+ title: 'Patterns/Features/Features-2',
7
+ component: Feature2,
8
+ argTypes: {
9
+ backgroundColor: {
10
+ control: { type: 'color' },
11
+ table: { defaultValue: { summary: 'transparent' } },
12
+ type: { name: 'string', required: false },
13
+ },
14
+ columnMinWidth: {
15
+ control: { type: 'text' },
16
+ description: '`--unitone--column-min-width`',
17
+ table: { defaultValue: { summary: '250px' } },
18
+ type: { name: 'string', required: false },
19
+ },
20
+ color: {
21
+ control: { type: 'color' },
22
+ table: { defaultValue: { summary: '#fff' } },
23
+ type: { name: 'string', required: false },
24
+ },
25
+ gap: {
26
+ control: { type: 'inline-radio' },
27
+ options: [0, 1, 2, 3, 4],
28
+ table: { defaultValue: { summary: 0 } },
29
+ type: { name: 'number', required: false },
30
+ },
31
+ },
32
+ args: {
33
+ backgroundColor: 'transparent',
34
+ columnMinWidth: '250px',
35
+ color: '#fff',
36
+ gap: 0,
37
+ },
38
+ parameters: {
39
+ layout: 'fullscreen',
40
+ },
41
+ };
42
+
43
+ export const Default = (props) => (
44
+ <Feature2
45
+ backgroundColor={props.backgroundColor}
46
+ columnMinWidth={props.columnMinWidth}
47
+ color={props.color}
48
+ gap={props.gap}
49
+ items={[
50
+ {
51
+ title: 'Lorem',
52
+ src: 'https://placehold.jp/600x800.jpg',
53
+ content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit',
54
+ },
55
+ {
56
+ title: 'ipsum',
57
+ src: 'https://placehold.jp/600x800.jpg',
58
+ content: 'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
59
+ },
60
+ {
61
+ title: 'dolor',
62
+ src: 'https://placehold.jp/600x800.jpg',
63
+ content: 'Ut enim ad minim veniam',
64
+ },
65
+ ]}
66
+ />
67
+ );
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Center } from '../../../layout-primitives/center/Center';
5
+ import { Container } from '../../../layout-primitives/container/Container';
6
+ import { Cover, CoverContent } from '../../../layout-primitives/cover/Cover';
7
+ import { Layers } from '../../../layout-primitives/layers/Layers';
8
+ import { Stack } from '../../../layout-primitives/stack/Stack';
9
+ import { Text } from '../../../layout-primitives/text/Text';
10
+
11
+ export const Header1 = (props) => (
12
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
13
+ <Layers cover>
14
+ {!!props.src && <img src={props.src} alt="" />}
15
+ <Cover>
16
+ <CoverContent>
17
+ <Container gutters={0} maxWidth="var(--unitone--measure)">
18
+ <Stack gap={2}>
19
+ {!!props.title && (
20
+ <Center>
21
+ <h2 style={{ '--unitone--font-size': 5 }}>{props.title}</h2>
22
+ </Center>
23
+ )}
24
+ {!!props.children && <Text center>{props.children}</Text>}
25
+ </Stack>
26
+ </Container>
27
+ </CoverContent>
28
+ </Cover>
29
+ </Layers>
30
+ </Decorator>
31
+ );
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+
3
+ import { Header1 } from '../Header1';
4
+
5
+ export default {
6
+ title: 'Patterns/Header/Header-1',
7
+ component: Header1,
8
+ argTypes: {
9
+ backgroundColor: {
10
+ control: { type: 'color' },
11
+ table: { defaultValue: { summary: 'transparent' } },
12
+ type: { name: 'string', required: false },
13
+ },
14
+ color: {
15
+ control: { type: 'color' },
16
+ table: { defaultValue: { summary: '#fff' } },
17
+ type: { name: 'string', required: false },
18
+ },
19
+ },
20
+ args: {
21
+ backgroundColor: 'transparent',
22
+ color: '#fff',
23
+ },
24
+ parameters: {
25
+ layout: 'fullscreen',
26
+ },
27
+ };
28
+
29
+ export const Default = (props) => (
30
+ <Header1
31
+ src="https://placehold.jp/1280x1024.jpg"
32
+ title="Lorem ipsum dolor"
33
+ backgroundColor={props.backgroundColor}
34
+ color={props.color}
35
+ >
36
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
37
+ <p>
38
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
39
+ labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
40
+ laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
41
+ voluptate velit esse cill
42
+ </p>
43
+ </Header1>
44
+ );
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Center } from '../../../layout-primitives/center/Center';
5
+ import { Container } from '../../../layout-primitives/container/Container';
6
+ import { Gutters } from '../../../layout-primitives/gutters/Gutters';
7
+ import { Stack } from '../../../layout-primitives/stack/Stack';
8
+ import { Text } from '../../../layout-primitives/text/Text';
9
+
10
+ export const Header2 = (props) => (
11
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
12
+ <Gutters style={{ paddingBottom: 0 }}>
13
+ <Stack gap={2}>
14
+ <Container>
15
+ <Stack gap={2}>
16
+ {!!props.title && (
17
+ <Center>
18
+ <h2 style={{ '--unitone--font-size': 5 }}>{props.title}</h2>
19
+ </Center>
20
+ )}
21
+ {!!props.children && <Text center>{props.children}</Text>}
22
+ </Stack>
23
+ </Container>
24
+
25
+ {!!props.src && (
26
+ <Center>
27
+ <img src={props.src} alt="" style={{ marginBottom: 0 }} />
28
+ </Center>
29
+ )}
30
+ </Stack>
31
+ </Gutters>
32
+ </Decorator>
33
+ );
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+
3
+ import { Header2 } from '../Header2';
4
+
5
+ export default {
6
+ title: 'Patterns/Header/Header-2',
7
+ component: Header2,
8
+ argTypes: {
9
+ backgroundColor: {
10
+ control: { type: 'color' },
11
+ table: { defaultValue: { summary: 'transparent' } },
12
+ type: { name: 'string', required: false },
13
+ },
14
+ color: {
15
+ control: { type: 'color' },
16
+ table: { defaultValue: { summary: 'initial' } },
17
+ type: { name: 'string', required: false },
18
+ },
19
+ },
20
+ args: {
21
+ backgroundColor: 'transparent',
22
+ color: 'initial',
23
+ },
24
+ parameters: {
25
+ layout: 'fullscreen',
26
+ },
27
+ };
28
+
29
+ export const Default = (props) => (
30
+ <Header2
31
+ src="https://placehold.jp/1280x480.jpg"
32
+ title="Lorem ipsum dolor"
33
+ backgroundColor={props.backgroundColor}
34
+ color={props.color}
35
+ >
36
+ <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p>
37
+ <p>
38
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
39
+ labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
40
+ laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
41
+ voluptate velit esse cill
42
+ </p>
43
+ </Header2>
44
+ );
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Center } from '../../../layout-primitives/center/Center';
5
+ import { Container } from '../../../layout-primitives/container/Container';
6
+ import { Gutters } from '../../../layout-primitives/gutters/Gutters';
7
+ import { Stack } from '../../../layout-primitives/stack/Stack';
8
+ import { Text } from '../../../layout-primitives/text/Text';
9
+
10
+ export const Header3 = (props) => (
11
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
12
+ <Gutters>
13
+ <Container>
14
+ <Stack gap={2}>
15
+ <Container align="start" gutters={0} maxWidth="var(--unitone--measure)">
16
+ <Stack gap={2}>
17
+ {!!props.title && <h2 style={{ '--unitone--font-size': 3 }}>{props.title}</h2>}
18
+ {!!props.children && <Text>{props.children}</Text>}
19
+ </Stack>
20
+ </Container>
21
+ {!!props.src && (
22
+ <Center>
23
+ <img src={props.src} alt="" />
24
+ </Center>
25
+ )}
26
+ </Stack>
27
+ </Container>
28
+ </Gutters>
29
+ </Decorator>
30
+ );
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+
3
+ import { Header3 } from '../Header3';
4
+
5
+ export default {
6
+ title: 'Patterns/Header/Header-3',
7
+ component: Header3,
8
+ argTypes: {
9
+ backgroundColor: {
10
+ control: { type: 'color' },
11
+ table: { defaultValue: { summary: 'transparent' } },
12
+ type: { name: 'string', required: false },
13
+ },
14
+ color: {
15
+ control: { type: 'color' },
16
+ table: { defaultValue: { summary: 'initial' } },
17
+ type: { name: 'string', required: false },
18
+ },
19
+ },
20
+ args: {
21
+ backgroundColor: 'transparent',
22
+ color: 'initial',
23
+ },
24
+ parameters: {
25
+ layout: 'fullscreen',
26
+ },
27
+ };
28
+
29
+ export const Default = (props) => (
30
+ <Header3
31
+ src="https://placehold.jp/1280x1024.jpg"
32
+ title="Lorem ipsum dolor sit amet, consectetur adipisicing elit"
33
+ backgroundColor={props.backgroundColor}
34
+ color={props.color}
35
+ >
36
+ <p>
37
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
38
+ labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
39
+ laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
40
+ voluptate velit esse cill
41
+ </p>
42
+ </Header3>
43
+ );
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Container } from '../../../layout-primitives/container/Container';
5
+ import { Cover, CoverContent } from '../../../layout-primitives/cover/Cover';
6
+ import { Layers } from '../../../layout-primitives/layers/Layers';
7
+ import { Stack } from '../../../layout-primitives/stack/Stack';
8
+ import { Text } from '../../../layout-primitives/text/Text';
9
+
10
+ export const Header4 = (props) => (
11
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
12
+ <Layers cover>
13
+ {!!props.src && <img src={props.src} alt="" />}
14
+ <Cover>
15
+ <CoverContent></CoverContent>
16
+ <Container align="start" gutters={0} maxWidth="var(--unitone--measure)">
17
+ <Stack gap={2}>
18
+ {!!props.title && <h2 style={{ '--unitone--font-size': 4 }}>{props.title}</h2>}
19
+ {!!props.children && <Text>{props.children}</Text>}
20
+ </Stack>
21
+ </Container>
22
+ </Cover>
23
+ </Layers>
24
+ </Decorator>
25
+ );
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+
3
+ import { Header4 } from '../Header4';
4
+
5
+ export default {
6
+ title: 'Patterns/Header/Header-4',
7
+ component: Header4,
8
+ argTypes: {
9
+ backgroundColor: {
10
+ control: { type: 'color' },
11
+ table: { defaultValue: { summary: 'transparent' } },
12
+ type: { name: 'string', required: false },
13
+ },
14
+ color: {
15
+ control: { type: 'color' },
16
+ table: { defaultValue: { summary: '#fff' } },
17
+ type: { name: 'string', required: false },
18
+ },
19
+ },
20
+ args: {
21
+ backgroundColor: 'transparent',
22
+ color: '#fff',
23
+ },
24
+ parameters: {
25
+ layout: 'fullscreen',
26
+ },
27
+ };
28
+
29
+ export const Default = (props) => (
30
+ <Header4
31
+ src="https://placehold.jp/1280x1024.jpg"
32
+ title="Lorem ipsum dolor sit amet, consectetur adipisicing elit"
33
+ backgroundColor={props.backgroundColor}
34
+ color={props.color}
35
+ >
36
+ <p>
37
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
38
+ labore et dolore magna aliqua.
39
+ </p>
40
+ </Header4>
41
+ );
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+
3
+ import { Decorator } from '../../../layout-primitives/decorator/Decorator';
4
+ import { Container } from '../../../layout-primitives/container/Container';
5
+ import { Cover, CoverContent } from '../../../layout-primitives/cover/Cover';
6
+ import { Layers } from '../../../layout-primitives/layers/Layers';
7
+ import { Stack } from '../../../layout-primitives/stack/Stack';
8
+ import { Text } from '../../../layout-primitives/text/Text';
9
+
10
+ export const Header5 = (props) => (
11
+ <Decorator backgroundColor={props.backgroundColor} color={props.color}>
12
+ <Layers cover>
13
+ {!!props.src && (
14
+ <img src={props.src} alt="" style={{ width: 'var(--unitone--pg10)', left: 'auto' }} />
15
+ )}
16
+ <Cover>
17
+ <CoverContent>
18
+ <Container align="start" gutters={0} maxWidth="var(--unitone--measure)">
19
+ <Stack gap={2}>
20
+ {!!props.title && (
21
+ <Stack style={{ '--unitone--font-size': 5 }}>
22
+ <h2>{props.title}</h2>
23
+ </Stack>
24
+ )}
25
+ {!!props.children && <Text>{props.children}</Text>}
26
+ </Stack>
27
+ </Container>
28
+ </CoverContent>
29
+ </Cover>
30
+ </Layers>
31
+ </Decorator>
32
+ );