@integrigo/integrigo-ui 1.1.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.
- package/lib/components/atoms/Button/Button.d.ts +7 -0
- package/lib/components/atoms/Button/Button.stories.d.ts +6 -0
- package/lib/components/atoms/Button/index.d.ts +1 -0
- package/lib/components/atoms/Card/Card.d.ts +3 -0
- package/lib/components/atoms/Card/Card.stories.d.ts +11 -0
- package/lib/components/atoms/Card/index.d.ts +1 -0
- package/lib/components/atoms/Input/Input.d.ts +1 -0
- package/lib/components/atoms/Input/Input.stories.d.ts +4 -0
- package/lib/components/atoms/Input/index.d.ts +1 -0
- package/lib/components/atoms/Pill/Pill.d.ts +5 -0
- package/lib/components/atoms/Pill/index.d.ts +1 -0
- package/lib/components/atoms/Typography/Body.d.ts +4 -0
- package/lib/components/atoms/Typography/Body.stories.d.ts +8 -0
- package/lib/components/atoms/Typography/Hero.d.ts +5 -0
- package/lib/components/atoms/Typography/Hero.stories.d.ts +9 -0
- package/lib/components/atoms/Typography/Label.d.ts +4 -0
- package/lib/components/atoms/Typography/Label.stories.d.ts +8 -0
- package/lib/components/atoms/Typography/index.d.ts +3 -0
- package/lib/components/atoms/index.d.ts +5 -0
- package/lib/components/molecules/InfoCard/InfoCard.d.ts +7 -0
- package/lib/components/molecules/InfoCard/InfoCard.stories.d.ts +6 -0
- package/lib/components/molecules/InfoCard/index.d.ts +1 -0
- package/lib/components/molecules/index.d.ts +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.esm.js +93 -0
- package/lib/index.esm.js.map +1 -0
- package/lib/index.js +110 -0
- package/lib/index.js.map +1 -0
- package/lib/styles/colors.d.ts +8 -0
- package/lib/styles/global.d.ts +1 -0
- package/lib/styles/index.d.ts +2 -0
- package/package.json +46 -0
- package/rollup.config.js +32 -0
- package/src/.storybook/main.js +12 -0
- package/src/.storybook/preview.js +20 -0
- package/src/components/atoms/Button/Button.stories.tsx +29 -0
- package/src/components/atoms/Button/Button.tsx +54 -0
- package/src/components/atoms/Button/index.ts +1 -0
- package/src/components/atoms/Card/Card.stories.tsx +20 -0
- package/src/components/atoms/Card/Card.tsx +11 -0
- package/src/components/atoms/Card/index.ts +1 -0
- package/src/components/atoms/Input/Input.stories.tsx +16 -0
- package/src/components/atoms/Input/Input.tsx +19 -0
- package/src/components/atoms/Input/index.ts +1 -0
- package/src/components/atoms/Pill/Pill.stories.tsx +27 -0
- package/src/components/atoms/Pill/Pill.tsx +17 -0
- package/src/components/atoms/Pill/index.ts +1 -0
- package/src/components/atoms/Typography/Body.stories.tsx +36 -0
- package/src/components/atoms/Typography/Body.tsx +12 -0
- package/src/components/atoms/Typography/Hero.stories.tsx +36 -0
- package/src/components/atoms/Typography/Hero.tsx +21 -0
- package/src/components/atoms/Typography/Label.stories.tsx +36 -0
- package/src/components/atoms/Typography/Label.tsx +12 -0
- package/src/components/atoms/Typography/index.ts +3 -0
- package/src/components/atoms/index.ts +5 -0
- package/src/components/molecules/InfoCard/InfoCard.stories.tsx +25 -0
- package/src/components/molecules/InfoCard/InfoCard.tsx +69 -0
- package/src/components/molecules/InfoCard/index.tsx +1 -0
- package/src/components/molecules/index.ts +1 -0
- package/src/index.ts +4 -0
- package/src/styles/colors.ts +8 -0
- package/src/styles/global.ts +75 -0
- package/src/styles/index.ts +2 -0
- package/tsconfig.json +32 -0
@@ -0,0 +1,54 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import styled from 'styled-components';
|
3
|
+
|
4
|
+
export interface ButtonProps extends React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> {
|
5
|
+
primary?: boolean;
|
6
|
+
ghost?: boolean;
|
7
|
+
size?: 'small' | 'medium' | 'large';
|
8
|
+
}
|
9
|
+
|
10
|
+
export const Button = styled.button<Omit<ButtonProps, 'label'>>`
|
11
|
+
background-color: transparent;
|
12
|
+
border: none;
|
13
|
+
border-radius: var(--padding-l);
|
14
|
+
padding: var(--padding-s) var(--padding-l);
|
15
|
+
font-weight: var(--font-bold);
|
16
|
+
font-size: var(--font-size-l);
|
17
|
+
cursor: pointer;
|
18
|
+
overflow: hidden;
|
19
|
+
position: relative;
|
20
|
+
|
21
|
+
&:before {
|
22
|
+
content: '';
|
23
|
+
position: absolute;
|
24
|
+
left: 0;
|
25
|
+
top: 0;
|
26
|
+
width: calc(100% - 4px);
|
27
|
+
height: calc(100% - 4px);
|
28
|
+
background-color: ${p => p.primary && !p.ghost ? 'var(--color-orange)' : 'transparent'};
|
29
|
+
border: ${p => p.ghost ? 'none' : '2px solid var(--color-orange)'};
|
30
|
+
border-radius: var(--padding-l);
|
31
|
+
z-index: -1;
|
32
|
+
transition: opacity var(--transition-speed);
|
33
|
+
}
|
34
|
+
|
35
|
+
&:focus, &:active {
|
36
|
+
color: ${p => p.primary && !p.ghost ? 'var(--color-white)' : 'var(--color-navy)'};
|
37
|
+
outline: none;
|
38
|
+
}
|
39
|
+
|
40
|
+
&:focus:before, &:active:before {
|
41
|
+
background-color: ${p => p.primary && !p.ghost ? 'var(--color-green)' : 'transparent'};
|
42
|
+
border: ${p => p.ghost ? 'none' : '2px solid var(--color-green)'};
|
43
|
+
}
|
44
|
+
|
45
|
+
&:hover:before {
|
46
|
+
opacity: 0.5;
|
47
|
+
}
|
48
|
+
|
49
|
+
&:hover:focus:before, &:hover:active:before {
|
50
|
+
opacity: 1
|
51
|
+
}
|
52
|
+
`
|
53
|
+
|
54
|
+
Button.displayName = 'Button'
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Button } from './Button'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { Card } from './Card';
|
5
|
+
|
6
|
+
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
7
|
+
export default {
|
8
|
+
title: 'Atoms/Card',
|
9
|
+
component: Card,
|
10
|
+
} as ComponentMeta<typeof Card>;
|
11
|
+
|
12
|
+
const Template: ComponentStory<typeof Card> = (args) => <Card {...args}>Content</Card>;
|
13
|
+
|
14
|
+
export const Basic = Template.bind({});
|
15
|
+
Basic.args = {};
|
16
|
+
|
17
|
+
export const Inversed = Template.bind({});
|
18
|
+
Inversed.args = {
|
19
|
+
inverse: true
|
20
|
+
};
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import styled from 'styled-components'
|
2
|
+
|
3
|
+
export const Card = styled.div<{inverse?: boolean}>`
|
4
|
+
background-color: ${p => p.inverse ? 'var(--color-navy)' : 'var(--color-white)'};
|
5
|
+
box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
|
6
|
+
color: ${p => p.inverse ? 'var(--color-white)' : 'var(--color-navy)'};
|
7
|
+
padding: var(--padding-xl);
|
8
|
+
border-radius: 24px;
|
9
|
+
`
|
10
|
+
|
11
|
+
Card.displayName = 'Card'
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Card } from './Card'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { Input } from './Input';
|
5
|
+
|
6
|
+
export default {
|
7
|
+
title: 'Atoms/Input',
|
8
|
+
component: Input,
|
9
|
+
} as ComponentMeta<typeof Input>;
|
10
|
+
|
11
|
+
const Template: ComponentStory<typeof Input> = (args) => <Input {...args}/>;
|
12
|
+
|
13
|
+
export const Basic = Template.bind({});
|
14
|
+
Basic.args = {
|
15
|
+
placeholder: "Start"
|
16
|
+
};
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import styled from 'styled-components'
|
2
|
+
|
3
|
+
export const Input = styled.input`
|
4
|
+
background-color: var(--color-orange-transparent);
|
5
|
+
border: 2px solid transparent;
|
6
|
+
border-radius: var(--padding-xl);
|
7
|
+
padding: var(--padding-l);
|
8
|
+
position: relative;
|
9
|
+
overflow: hidden;
|
10
|
+
color: var(--color-navy);
|
11
|
+
font-weight: var(--font-bold);
|
12
|
+
|
13
|
+
&:focus, &:active {
|
14
|
+
outline: none;
|
15
|
+
border: 2px solid var(--color-green);
|
16
|
+
}
|
17
|
+
`
|
18
|
+
|
19
|
+
Input.displayName = 'Input'
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Input } from './Input'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { Pill } from './Pill';
|
5
|
+
|
6
|
+
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
7
|
+
export default {
|
8
|
+
title: 'Atoms/Pill',
|
9
|
+
component: Pill,
|
10
|
+
} as ComponentMeta<typeof Pill>;
|
11
|
+
|
12
|
+
const Template: ComponentStory<typeof Pill> = (args) => <Pill {...args}>Tag</Pill>;
|
13
|
+
|
14
|
+
export const Orange = Template.bind({});
|
15
|
+
Orange.args = {
|
16
|
+
variant: 'orange'
|
17
|
+
};
|
18
|
+
|
19
|
+
export const Green = Template.bind({});
|
20
|
+
Green.args = {
|
21
|
+
variant: 'green'
|
22
|
+
};
|
23
|
+
|
24
|
+
export const Red = Template.bind({});
|
25
|
+
Red.args = {
|
26
|
+
variant: 'red'
|
27
|
+
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import styled from 'styled-components'
|
2
|
+
|
3
|
+
interface PillProps {
|
4
|
+
variant: 'orange' | 'green' | 'red'
|
5
|
+
}
|
6
|
+
|
7
|
+
export const Pill = styled.div<PillProps>`
|
8
|
+
background-color: ${p => `var(--color-${p.variant})`};
|
9
|
+
border-radius: var(--padding-l);
|
10
|
+
color: var(--color-white);
|
11
|
+
font-weight: var(--font-bold);
|
12
|
+
font-size: var(--font-size-m);
|
13
|
+
padding: var(--padding-s) var(--padding-xxl);
|
14
|
+
width: min-content;
|
15
|
+
`
|
16
|
+
|
17
|
+
Pill.displayName = 'Pill'
|
@@ -0,0 +1 @@
|
|
1
|
+
export { Pill } from './Pill'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { Body } from './Body';
|
5
|
+
|
6
|
+
export default {
|
7
|
+
title: 'Atoms/Typography/Body',
|
8
|
+
component: Body,
|
9
|
+
} as ComponentMeta<typeof Body>;
|
10
|
+
|
11
|
+
const Template: ComponentStory<typeof Body> = (args) => <Body {...args}>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque pharetra urna non purus convallis dignissim. Sed lobortis sem molestie est euismod, euismod aliquet dolor ullamcorper. Vivamus nisl metus, ultricies ac pharetra vel, faucibus vel lacus. Vestibulum eget nisi laoreet, dignissim urna sit amet, pretium arcu. Sed non diam dictum, sollicitudin orci et, ultricies nunc. Suspendisse ultrices mi tincidunt efficitur tristique. Vivamus fringilla condimentum tempus. Aliquam varius quam sit amet nunc iaculis, finibus dictum leo tincidunt.</Body>;
|
12
|
+
|
13
|
+
export const XXL = Template.bind({});
|
14
|
+
XXL.args = {
|
15
|
+
size: 'xxl'
|
16
|
+
};
|
17
|
+
|
18
|
+
export const XL = Template.bind({});
|
19
|
+
XL.args = {
|
20
|
+
size: 'xl'
|
21
|
+
};
|
22
|
+
|
23
|
+
export const L = Template.bind({});
|
24
|
+
L.args = {
|
25
|
+
size: 'l'
|
26
|
+
};
|
27
|
+
|
28
|
+
export const M = Template.bind({});
|
29
|
+
M.args = {
|
30
|
+
size: 'm'
|
31
|
+
};
|
32
|
+
|
33
|
+
export const S = Template.bind({});
|
34
|
+
S.args = {
|
35
|
+
size: 's'
|
36
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import styled from "styled-components";
|
2
|
+
|
3
|
+
export interface BodyProps {
|
4
|
+
size?: 's' | 'm' | 'l' | 'xl' | 'xxl'
|
5
|
+
}
|
6
|
+
|
7
|
+
export const Body = styled.p<BodyProps>`
|
8
|
+
font-size: ${p => `var(--font-size-${p.size || 'm'})`};
|
9
|
+
line-height: ${p => `calc(1.5*var(--font-size-${p.size || 'm'}))`};
|
10
|
+
`
|
11
|
+
|
12
|
+
Body.displayName = 'Body'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { Hero } from './Hero';
|
5
|
+
|
6
|
+
export default {
|
7
|
+
title: 'Atoms/Typography/Hero',
|
8
|
+
component: Hero,
|
9
|
+
} as ComponentMeta<typeof Hero>;
|
10
|
+
|
11
|
+
const Template: ComponentStory<typeof Hero> = (args) => <Hero {...args}>Title</Hero>;
|
12
|
+
|
13
|
+
export const XXL = Template.bind({});
|
14
|
+
XXL.args = {
|
15
|
+
size: 'xxl'
|
16
|
+
};
|
17
|
+
|
18
|
+
export const XL = Template.bind({});
|
19
|
+
XL.args = {
|
20
|
+
size: 'xl'
|
21
|
+
};
|
22
|
+
|
23
|
+
export const L = Template.bind({});
|
24
|
+
L.args = {
|
25
|
+
size: 'l'
|
26
|
+
};
|
27
|
+
|
28
|
+
export const M = Template.bind({});
|
29
|
+
M.args = {
|
30
|
+
size: 'm'
|
31
|
+
};
|
32
|
+
|
33
|
+
export const S = Template.bind({});
|
34
|
+
S.args = {
|
35
|
+
size: 's'
|
36
|
+
};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import styled from "styled-components";
|
3
|
+
|
4
|
+
export interface HeroProps {
|
5
|
+
size?: 's' | 'm' | 'l' | 'xl' | 'xxl'
|
6
|
+
}
|
7
|
+
|
8
|
+
const SIZE_MAP: Record<string, 'h1' | 'h2' | 'h3' | 'h4' | 'h5'> = {
|
9
|
+
's': 'h5',
|
10
|
+
'm': 'h4',
|
11
|
+
'l': 'h3',
|
12
|
+
'xl': 'h2',
|
13
|
+
'xxl': 'h1',
|
14
|
+
}
|
15
|
+
|
16
|
+
export const Hero: React.FC<HeroProps> = ({ size = 'l', children }) => (
|
17
|
+
<Header as={SIZE_MAP[size]}>{children}</Header>
|
18
|
+
)
|
19
|
+
|
20
|
+
const Header = styled.h1``
|
21
|
+
Header.displayName = 'Header'
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { Label } from './Label';
|
5
|
+
|
6
|
+
export default {
|
7
|
+
title: 'Atoms/Typography/Label',
|
8
|
+
component: Label,
|
9
|
+
} as ComponentMeta<typeof Label>;
|
10
|
+
|
11
|
+
const Template: ComponentStory<typeof Label> = (args) => <Label {...args}>The label text</Label>;
|
12
|
+
|
13
|
+
export const XXL = Template.bind({});
|
14
|
+
XXL.args = {
|
15
|
+
size: 'xxl'
|
16
|
+
};
|
17
|
+
|
18
|
+
export const XL = Template.bind({});
|
19
|
+
XL.args = {
|
20
|
+
size: 'xl'
|
21
|
+
};
|
22
|
+
|
23
|
+
export const L = Template.bind({});
|
24
|
+
L.args = {
|
25
|
+
size: 'l'
|
26
|
+
};
|
27
|
+
|
28
|
+
export const M = Template.bind({});
|
29
|
+
M.args = {
|
30
|
+
size: 'm'
|
31
|
+
};
|
32
|
+
|
33
|
+
export const S = Template.bind({});
|
34
|
+
S.args = {
|
35
|
+
size: 's'
|
36
|
+
};
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import styled from "styled-components";
|
2
|
+
|
3
|
+
export interface LabelProps {
|
4
|
+
size?: 's' | 'm' | 'l' | 'xl' | 'xxl'
|
5
|
+
}
|
6
|
+
|
7
|
+
export const Label = styled.span<LabelProps>`
|
8
|
+
font-size: ${p => `var(--font-size-${p.size || 'm'})`};
|
9
|
+
font-weight: var(--font-medium);
|
10
|
+
`
|
11
|
+
|
12
|
+
Label.displayName = 'Label'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ComponentStory, ComponentMeta } from '@storybook/react';
|
3
|
+
|
4
|
+
import { InfoCard } from './InfoCard';
|
5
|
+
|
6
|
+
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
7
|
+
export default {
|
8
|
+
title: 'Molecules/InfoCard',
|
9
|
+
component: InfoCard,
|
10
|
+
} as ComponentMeta<typeof InfoCard>;
|
11
|
+
|
12
|
+
const Template: ComponentStory<typeof InfoCard> = (args) => <InfoCard {...args}>Tag</InfoCard>;
|
13
|
+
|
14
|
+
export const Basic = Template.bind({});
|
15
|
+
Basic.args = {
|
16
|
+
title: "Title",
|
17
|
+
body: 'This is body'
|
18
|
+
};
|
19
|
+
|
20
|
+
export const WithBackground = Template.bind({});
|
21
|
+
WithBackground.args = {
|
22
|
+
title: "Title",
|
23
|
+
body: 'This is body',
|
24
|
+
background: <div style={{ width: '100%', height: '240px', backgroundColor: 'var(--color-ecru)'}}/>
|
25
|
+
};
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import styled from 'styled-components'
|
3
|
+
import { Card } from '../../atoms/Card'
|
4
|
+
import { Hero } from '../../atoms/Typography/Hero'
|
5
|
+
import { Body } from '../../atoms/Typography/Body'
|
6
|
+
|
7
|
+
export interface InfoCardProps {
|
8
|
+
title: string
|
9
|
+
body: React.ReactNode
|
10
|
+
background?: React.ReactNode
|
11
|
+
}
|
12
|
+
|
13
|
+
export const InfoCard: React.FC<InfoCardProps> = ({ title, body, background }) => {
|
14
|
+
return (
|
15
|
+
<Root>
|
16
|
+
<Background>
|
17
|
+
{background}
|
18
|
+
</Background>
|
19
|
+
<CardBody>
|
20
|
+
<Hero size="l">{title}</Hero>
|
21
|
+
<Body size="l">{body}</Body>
|
22
|
+
</CardBody>
|
23
|
+
</Root>
|
24
|
+
)
|
25
|
+
}
|
26
|
+
|
27
|
+
const Root = styled.div`
|
28
|
+
padding: 0;
|
29
|
+
position: relative;
|
30
|
+
|
31
|
+
& > ${Card} {
|
32
|
+
|
33
|
+
}
|
34
|
+
|
35
|
+
& > ${Card} > * {
|
36
|
+
}
|
37
|
+
|
38
|
+
& > ${Card} > p {
|
39
|
+
margin: 0;
|
40
|
+
}
|
41
|
+
`
|
42
|
+
|
43
|
+
Root.displayName = 'Root'
|
44
|
+
|
45
|
+
const CardBody = styled(Card)`
|
46
|
+
position: relative;
|
47
|
+
|
48
|
+
& > * {
|
49
|
+
margin: 0;
|
50
|
+
margin-bottom: var(--padding-m);
|
51
|
+
}
|
52
|
+
|
53
|
+
& > p {
|
54
|
+
margin: 0;
|
55
|
+
}
|
56
|
+
`
|
57
|
+
|
58
|
+
CardBody.displayName = 'CardBody'
|
59
|
+
|
60
|
+
const Background = styled(Card)`
|
61
|
+
border-radius: 24px 24px 0px 0px;
|
62
|
+
position: relative;
|
63
|
+
height: 100%;
|
64
|
+
margin-bottom: -24px;
|
65
|
+
padding: 0;
|
66
|
+
overflow: hidden;
|
67
|
+
`
|
68
|
+
|
69
|
+
Background.displayName = 'Background'
|
@@ -0,0 +1 @@
|
|
1
|
+
export { InfoCard } from './InfoCard'
|
@@ -0,0 +1 @@
|
|
1
|
+
export { InfoCard } from './InfoCard'
|
package/src/index.ts
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
import { createGlobalStyle } from 'styled-components'
|
2
|
+
import { Color } from './colors'
|
3
|
+
|
4
|
+
export const GlobalStyles = createGlobalStyle`
|
5
|
+
@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,200;0,300;0,600;0,800;1,200;1,300;1,600;1,800&display=swap');
|
6
|
+
|
7
|
+
html {
|
8
|
+
--color-white: ${Color.White};
|
9
|
+
--color-ecru: ${Color.Ecru};
|
10
|
+
--color-navy: ${Color.Navy};
|
11
|
+
--color-orange: ${Color.Orange};
|
12
|
+
--color-red: ${Color.Red};
|
13
|
+
--color-green: ${Color.Green};
|
14
|
+
|
15
|
+
--color-orange-translucent: ${Color.Orange}80;
|
16
|
+
--color-orange-transparent: ${Color.Orange}33;
|
17
|
+
|
18
|
+
--padding-s: 8px;
|
19
|
+
--padding-m: 16px;
|
20
|
+
--padding-l: 24px;
|
21
|
+
--padding-xl: 32px;
|
22
|
+
--padding-xxl: 48px;
|
23
|
+
|
24
|
+
--font-bold: 800;
|
25
|
+
--font-medium: 600;
|
26
|
+
--font-thin: 300;
|
27
|
+
|
28
|
+
--font-size-s: 10px;
|
29
|
+
--font-size-m: 16px;
|
30
|
+
--font-size-l: 20px;
|
31
|
+
--font-size-xl: 32px;
|
32
|
+
--font-size-xxl: 40px;
|
33
|
+
|
34
|
+
--header-size-s: 16px;
|
35
|
+
--header-size-m: 24px;
|
36
|
+
--header-size-l: 32px;
|
37
|
+
--header-size-xl: 48px;
|
38
|
+
--header-size-xxl: 80px;
|
39
|
+
|
40
|
+
--transition-speed: .3s;
|
41
|
+
}
|
42
|
+
|
43
|
+
* {
|
44
|
+
box-sizing: border-box;
|
45
|
+
color: var(--color-navy);
|
46
|
+
font-family: Raleway, Arial, Helvetica, Sans-Serif;
|
47
|
+
font-size: var(--font-size-m);
|
48
|
+
font-weight: var(--font-thin);
|
49
|
+
}
|
50
|
+
|
51
|
+
h1 {
|
52
|
+
font-size: var(--header-size-xxl);
|
53
|
+
font-weight: var(--font-bold);
|
54
|
+
}
|
55
|
+
|
56
|
+
h2 {
|
57
|
+
font-size: var(--header-size-xl);
|
58
|
+
font-weight: var(--font-bold);
|
59
|
+
}
|
60
|
+
|
61
|
+
h3 {
|
62
|
+
font-size: var(--header-size-l);
|
63
|
+
font-weight: var(--font-bold);
|
64
|
+
}
|
65
|
+
|
66
|
+
h4 {
|
67
|
+
font-size: var(--header-size-m);
|
68
|
+
font-weight: var(--font-bold);
|
69
|
+
}
|
70
|
+
|
71
|
+
h5 {
|
72
|
+
font-size: var(--header-size-s);
|
73
|
+
font-weight: var(--font-bold);
|
74
|
+
}
|
75
|
+
`
|
package/tsconfig.json
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"compilerOptions": {
|
3
|
+
"target": "es5",
|
4
|
+
"outDir": "lib",
|
5
|
+
"lib": [
|
6
|
+
"dom",
|
7
|
+
"dom.iterable",
|
8
|
+
"esnext"
|
9
|
+
],
|
10
|
+
"declaration": true,
|
11
|
+
"declarationDir": "lib",
|
12
|
+
"allowJs": true,
|
13
|
+
"skipLibCheck": true,
|
14
|
+
"esModuleInterop": true,
|
15
|
+
"allowSyntheticDefaultImports": true,
|
16
|
+
"strict": true,
|
17
|
+
"forceConsistentCasingInFileNames": true,
|
18
|
+
"module": "esnext",
|
19
|
+
"moduleResolution": "node",
|
20
|
+
"resolveJsonModule": true,
|
21
|
+
"isolatedModules": true,
|
22
|
+
"noEmit": true,
|
23
|
+
"jsx": "react"
|
24
|
+
},
|
25
|
+
"include": [
|
26
|
+
"src"
|
27
|
+
],
|
28
|
+
"exclude": [
|
29
|
+
"node_modules",
|
30
|
+
"lib"
|
31
|
+
]
|
32
|
+
}
|