@bloom-housing/ui-components 4.2.2-alpha.12 → 4.2.2-alpha.13
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/CHANGELOG.md +8 -0
- package/README.md +10 -4
- package/package.json +4 -2
- package/src/actions/Button.docs.mdx +76 -0
- package/src/actions/Button.scss +58 -61
- package/src/global/app-css.scss +7 -0
- package/src/global/mixins.scss +66 -49
- package/src/global/tokens/borders.scss +15 -0
- package/src/global/tokens/colors.scss +64 -0
- package/src/global/tokens/fonts.scss +45 -0
- package/src/global/tokens/screens.scss +6 -0
- package/src/global/tokens/sizes.scss +48 -0
- package/src/headers/PageHeader.docs.mdx +45 -0
- package/src/headers/PageHeader.scss +30 -17
- package/src/headers/PageHeader.tsx +2 -10
- package/src/prototypes/Swatch.tsx +10 -0
- package/tailwind.config.js +76 -81
- package/tailwind.tosass.js +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.2.2-alpha.13](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@4.2.2-alpha.12...@bloom-housing/ui-components@4.2.2-alpha.13) (2022-04-22)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @bloom-housing/ui-components
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [4.2.2-alpha.12](https://github.com/bloom-housing/bloom/compare/@bloom-housing/ui-components@4.2.2-alpha.11...@bloom-housing/ui-components@4.2.2-alpha.12) (2022-04-22)
|
|
7
15
|
|
|
8
16
|
|
package/README.md
CHANGED
|
@@ -46,16 +46,22 @@ yarn test:a11y
|
|
|
46
46
|
|
|
47
47
|
## Tailwind
|
|
48
48
|
|
|
49
|
-
- We are using the [Tailwind](https://
|
|
49
|
+
- We are using the [Tailwind](https://v2.tailwindcss.com) framework to make use of their low-level utility classes in page-level markup and sometimes in components. We configure the settings in `tailwind.config.js`.
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
Vendor Plugins
|
|
51
|
+
## Vendor Plugins
|
|
54
52
|
|
|
55
53
|
- [AG Grid](https://www.ag-grid.com)
|
|
56
54
|
|
|
57
55
|
## Style Conventions
|
|
58
56
|
|
|
57
|
+
- Some styles live in a global folder, but for the most part our components are styled with isolated SCSS files located alongside React component TS files.
|
|
58
|
+
|
|
59
|
+
- We are currently in the process of migrating components to a second-generation styling convention which relies on CSS variables for design tokens and generally removes `@apply` Tailwind statements.
|
|
60
|
+
|
|
61
|
+
- Bloom design tokens include colors, typography settings, sizes, borders, and so forth. They're located in the `src/global/tokens` folder.
|
|
62
|
+
|
|
63
|
+
- More information on this process can be found in [Styling2ndGen.md](https://github.com/bloom-housing/bloom/blob/dev/docs/Styling2ndGen.md).
|
|
64
|
+
|
|
59
65
|
### Naming Conventions
|
|
60
66
|
|
|
61
67
|
- Our recommendation for class naming methodology is a modified version of BEM. It still uses blocks, sections within blocks and modifiers, but with a subclass syntax for modifiers.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bloom-housing/ui-components",
|
|
3
|
-
"version": "4.2.2-alpha.
|
|
3
|
+
"version": "4.2.2-alpha.13",
|
|
4
4
|
"author": "Sean Albert <sean.albert@exygy.com>",
|
|
5
5
|
"description": "Shared user interface components for Bloom affordable housing system",
|
|
6
6
|
"homepage": "https://github.com/bloom-housing/bloom/tree/master/shared/ui-components",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"@babel/preset-env": "^7.15.4",
|
|
25
25
|
"@emotion/core": "^10.0.35",
|
|
26
26
|
"@emotion/styled": "^10.0.27",
|
|
27
|
+
"@geometricpanda/storybook-addon-badges": "^0.2.1",
|
|
27
28
|
"@storybook/addon-a11y": "^6.3.8",
|
|
28
29
|
"@storybook/addon-actions": "^6.3.8",
|
|
29
30
|
"@storybook/addon-docs": "^6.3.8",
|
|
@@ -74,6 +75,7 @@
|
|
|
74
75
|
"@types/body-scroll-lock": "^2.6.1",
|
|
75
76
|
"@types/jwt-decode": "^2.2.1",
|
|
76
77
|
"@types/markdown-to-jsx": "^6.11.2",
|
|
78
|
+
"@types/mdx": "^2.0.1",
|
|
77
79
|
"@types/node": "^12.12.67",
|
|
78
80
|
"@types/node-polyglot": "^2.4.1",
|
|
79
81
|
"@types/react-beautiful-dnd": "^13.1.1",
|
|
@@ -100,5 +102,5 @@
|
|
|
100
102
|
"tailwindcss": "2.2.10",
|
|
101
103
|
"typesafe-actions": "^5.1.0"
|
|
102
104
|
},
|
|
103
|
-
"gitHead": "
|
|
105
|
+
"gitHead": "b9236b9c931e6dfbfab0552982f8589ec1badb85"
|
|
104
106
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Canvas, Story, Source, ArgsTable } from "@storybook/addon-docs"
|
|
2
|
+
import { Swatch } from "../prototypes/Swatch"
|
|
3
|
+
import { Button } from "./Button"
|
|
4
|
+
|
|
5
|
+
# Button
|
|
6
|
+
|
|
7
|
+
The button component offers flexible usage with a variety of different appearance options. Size, color, and shape can be controlled via standardized props.
|
|
8
|
+
|
|
9
|
+
<Canvas>
|
|
10
|
+
<Button>This is a Button</Button>
|
|
11
|
+
</Canvas>
|
|
12
|
+
|
|
13
|
+
## Variants
|
|
14
|
+
|
|
15
|
+
There are several props which accept enums to adjust style type, border, and size. For example, to choose the "primary" style and a "small" size, you would pass the `AppearanceStyleType.primary` enum to `styleType` prop and `AppearanceSizeType.small` enum to `size` prop.
|
|
16
|
+
|
|
17
|
+
<Canvas>
|
|
18
|
+
<Story id="actions-button--small-and-primary" />
|
|
19
|
+
</Canvas>
|
|
20
|
+
|
|
21
|
+
Other variants include appearances which aren't button-like such as `unstyled` and `inline`.
|
|
22
|
+
|
|
23
|
+
## Component Properties
|
|
24
|
+
|
|
25
|
+
<ArgsTable of={Button} />
|
|
26
|
+
|
|
27
|
+
## Theming Variables
|
|
28
|
+
|
|
29
|
+
You can apply CSS variables to the `.button` selector to customize the appearance of the component.
|
|
30
|
+
|
|
31
|
+
### Color Variables
|
|
32
|
+
|
|
33
|
+
| Name | Color | Description |
|
|
34
|
+
| --------------------------------------------- | ------------------------------------------------ | ------------------------------------ |
|
|
35
|
+
| `--primary-appearance-background-color` | <Swatch colorVar="--bloom-color-primary" /> | Primary background color |
|
|
36
|
+
| `--primary-appearance-border-color` | <Swatch colorVar="--bloom-color-primary" /> | Primary border color |
|
|
37
|
+
| `--primary-appearance-label-color` | <Swatch colorVar="--bloom-color-white" /> | Primary label color |
|
|
38
|
+
| `--primary-appearance-hover-background-color` | <Swatch colorVar="--bloom-color-primary-dark" /> | Hover state primary background color |
|
|
39
|
+
| `--primary-appearance-hover-border-color` | <Swatch colorVar="--bloom-color-primary-dark" /> | Hover state primary border color |
|
|
40
|
+
| `--primary-appearance-hover-label-color` | <Swatch colorVar="--bloom-color-white" /> | Hover state primary label color |
|
|
41
|
+
| `--success-appearance-background-color` | <Swatch colorVar="--bloom-color-success" /> | Success background color |
|
|
42
|
+
| `--success-appearance-border-color` | <Swatch colorVar="--bloom-color-success" /> | Success border color |
|
|
43
|
+
| `--success-appearance-label-color` | <Swatch colorVar="--bloom-color-white" /> | Success label color |
|
|
44
|
+
| `--success-appearance-hover-background-color` | <Swatch colorVar="--bloom-color-success-dark" /> | Hover state success background color |
|
|
45
|
+
| `--success-appearance-hover-border-color` | <Swatch colorVar="--bloom-color-success" /> | Hover state success border color |
|
|
46
|
+
| `--success-appearance-hover-label-color` | <Swatch colorVar="--bloom-color-white" /> | Hover state success label color |
|
|
47
|
+
| `--alert-appearance-background-color` | <Swatch colorVar="--bloom-color-alert" /> | Alert background color |
|
|
48
|
+
| `--alert-appearance-border-color` | <Swatch colorVar="--bloom-color-alert" /> | Alert border color |
|
|
49
|
+
| `--alert-appearance-label-color` | <Swatch colorVar="--bloom-color-white" /> | Alert label color |
|
|
50
|
+
| `--alert-appearance-hover-background-color` | <Swatch colorVar="--bloom-color-alert-dark" /> | Hover state alert background color |
|
|
51
|
+
| `--alert-appearance-hover-border-color` | <Swatch colorVar="--bloom-color-alert" /> | Hover state alert border color |
|
|
52
|
+
| `--alert-appearance-hover-label-color` | <Swatch colorVar="--bloom-color-white" /> | Hover state alert label color |
|
|
53
|
+
| `--warn-appearance-background-color` | <Swatch colorVar="--bloom-color-warn" /> | Warning background color |
|
|
54
|
+
| `--warn-appearance-border-color` | <Swatch colorVar="--bloom-color-warn" /> | Warning border color |
|
|
55
|
+
| `--warn-appearance-label-color` | <Swatch colorVar="--bloom-color-white" /> | Warning label color |
|
|
56
|
+
| `--warn-appearance-hover-background-color` | <Swatch colorVar="--bloom-color-warn-dark" /> | Hover state warning background color |
|
|
57
|
+
| `--warn-appearance-hover-border-color` | <Swatch colorVar="--bloom-color-warn" /> | Hover state warning border color |
|
|
58
|
+
| `--warn-appearance-hover-label-color` | <Swatch colorVar="--bloom-color-white" /> | Hover state warning label color |
|
|
59
|
+
|
|
60
|
+
### Typographic & Spacing Variables
|
|
61
|
+
|
|
62
|
+
| Name | Type | Description | Default |
|
|
63
|
+
| ------------------------ | ----------- | --------------------------------------------------- | --------------------------------------------------- |
|
|
64
|
+
| `--label-font` | Font | Font family of the button label | `--bloom-font-alt-sans` |
|
|
65
|
+
| `--label-transform` | Case | Text case of the button label | `uppercase` |
|
|
66
|
+
| `--label-letter-spacing` | Size | The average gap between letters of the button label | `--bloom-letter-spacing-widest` |
|
|
67
|
+
| `--label-weight` | Font Weight | Typographic weight of the button label | `bold` |
|
|
68
|
+
| `--normal-rounded` | Size | Border radius of a normal-size button | `--bloom-rounded` |
|
|
69
|
+
| `--normal-padding` | Size | Padding of the normal-size button interior | `--bloom-s4` (top/bottom) `--bloom-s6` (left/right) |
|
|
70
|
+
| `--normal-font-size` | Size | Font size of the normal-size button | `--bloom-font-size-sm` |
|
|
71
|
+
| `--small-rounded` | Size | Border radius of a small-size button | `--bloom-rounded` |
|
|
72
|
+
| `--small-padding` | Size | Padding of the small-size button interior | `--bloom-s3` (top/bottom) `--bloom-s6` (left/right) |
|
|
73
|
+
| `--small-font-size` | Size | Font size of the small-size button | `--bloom-font-size-xs` |
|
|
74
|
+
| `--big-rounded` | Size | Border radius of a large-size button | `--bloom-rounded` |
|
|
75
|
+
| `--big-padding` | Size | Padding of the large-size button interior | `--bloom-s6` |
|
|
76
|
+
| `--big-font-size` | Size | Font size of the large-size button | `--bloom-font-size-sm` |
|
package/src/actions/Button.scss
CHANGED
|
@@ -1,59 +1,58 @@
|
|
|
1
1
|
@import "../global/mixins.scss";
|
|
2
2
|
|
|
3
3
|
.button {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@apply font-bold;
|
|
16
|
-
@apply leading-snug;
|
|
4
|
+
position: relative;
|
|
5
|
+
border-radius: var(--normal-rounded, var(--bloom-rounded));
|
|
6
|
+
padding: var(--normal-padding, var(--bloom-s4) var(--bloom-s6));
|
|
7
|
+
text-align: center;
|
|
8
|
+
text-transform: var(--label-transform, uppercase);
|
|
9
|
+
font-family: var(--label-font, var(--bloom-font-alt-sans));
|
|
10
|
+
display: inline-block;
|
|
11
|
+
letter-spacing: var(--label-letter-spacing, var(--bloom-letter-spacing-widest));
|
|
12
|
+
font-size: var(--normal-font-size, var(--bloom-font-size-sm));
|
|
13
|
+
font-weight: var(--label-weight, bold);
|
|
14
|
+
line-height: var(--bloom-line-height-snug);
|
|
17
15
|
|
|
18
16
|
&:focus {
|
|
19
17
|
outline: none;
|
|
20
|
-
box-shadow: 0 0 0 2px #fff, 0 0 3px 4px
|
|
18
|
+
box-shadow: 0 0 0 2px #fff, 0 0 3px 4px var(--bloom-color-accent-cool);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
21
|
&:hover {
|
|
24
|
-
|
|
22
|
+
border-color: var(--bloom-color-primary-dark);
|
|
25
23
|
}
|
|
26
24
|
|
|
27
25
|
&:disabled {
|
|
28
26
|
pointer-events: none;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
background-color: var(--bloom-color-white);
|
|
28
|
+
border-color: var(--bloom-color-gray-450);
|
|
29
|
+
color: var(--bloom-color-gray-450);
|
|
32
30
|
}
|
|
33
31
|
|
|
34
32
|
&.is-secondary {
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
border-color: var(--bloom-color-gray-700);
|
|
34
|
+
color: var(--bloom-color-gray-700);
|
|
37
35
|
|
|
38
36
|
&:hover {
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
background-color: var(--bloom-color-gray-700);
|
|
38
|
+
color: var(--bloom-color-white);
|
|
41
39
|
}
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
&.is-small {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
border-radius: var(--small-rounded, var(--bloom-rounded));
|
|
44
|
+
padding: var(--small-padding, var(--bloom-s3) var(--bloom-s6));
|
|
45
|
+
font-size: var(--small-font-size, var(--bloom-font-size-xs));
|
|
48
46
|
}
|
|
49
47
|
|
|
50
48
|
&.is-big {
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
border-radius: var(--big-rounded, var(--bloom-rounded));
|
|
50
|
+
padding: var(--big-padding, var(--bloom-s6));
|
|
51
|
+
font-size: var(--big-font-size, var(--bloom-font-size-sm));
|
|
53
52
|
}
|
|
54
53
|
|
|
55
54
|
&.is-normal-case {
|
|
56
|
-
|
|
55
|
+
text-transform: none;
|
|
57
56
|
}
|
|
58
57
|
|
|
59
58
|
&.is-unstyled {
|
|
@@ -62,74 +61,72 @@
|
|
|
62
61
|
|
|
63
62
|
&.is-unstyled,
|
|
64
63
|
&.is-inline {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
64
|
+
text-transform: none;
|
|
65
|
+
border: none;
|
|
66
|
+
padding: 0;
|
|
67
|
+
font-family: var(--bloom-font-sans);
|
|
68
|
+
letter-spacing: normal;
|
|
69
|
+
font-weight: 400;
|
|
70
|
+
text-decoration: underline;
|
|
71
|
+
margin: var(--bloom-s4);
|
|
72
|
+
font-size: var(--bloom-font-size-tiny);
|
|
74
73
|
|
|
75
74
|
&:hover {
|
|
76
|
-
|
|
75
|
+
color: var(--bloom-color-primary);
|
|
77
76
|
background: transparent;
|
|
78
77
|
}
|
|
79
78
|
}
|
|
80
79
|
|
|
81
80
|
&.is-inline {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
color: var(--bloom-color-primary);
|
|
82
|
+
font-weight: 600;
|
|
83
|
+
font-size: var(--bloom-font-size-tiny);
|
|
84
|
+
margin: 0;
|
|
85
|
+
text-decoration: none;
|
|
87
86
|
|
|
88
87
|
&.has-icon-left {
|
|
89
88
|
.button__icon {
|
|
90
|
-
|
|
89
|
+
margin-right: var(--bloom-s1);
|
|
91
90
|
}
|
|
92
91
|
}
|
|
93
92
|
&.has-icon-right {
|
|
94
93
|
.button__icon {
|
|
95
|
-
|
|
94
|
+
margin-left: var(--bloom-s1);
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
}
|
|
99
98
|
|
|
100
99
|
&.has-icon-left {
|
|
101
100
|
.button__icon {
|
|
102
|
-
|
|
101
|
+
margin-right: var(--bloom-s3);
|
|
103
102
|
}
|
|
104
103
|
}
|
|
105
104
|
&.has-icon-right {
|
|
106
105
|
.button__icon {
|
|
107
|
-
|
|
106
|
+
margin-left: var(--bloom-s3);
|
|
108
107
|
}
|
|
109
108
|
}
|
|
110
109
|
|
|
111
110
|
&.is-text-caps {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
@apply text-tiny;
|
|
123
|
-
@apply block;
|
|
111
|
+
color: var(--bloom-color-primary-dark);
|
|
112
|
+
border: none;
|
|
113
|
+
padding: 0;
|
|
114
|
+
font-family: var(--bloom-font-sans);
|
|
115
|
+
letter-spacing: normal;
|
|
116
|
+
text-decoration: underline;
|
|
117
|
+
margin: var(--bloom-s4);
|
|
118
|
+
text-transform: uppercase;
|
|
119
|
+
font-size: var(--bloom-font-size-tiny);
|
|
120
|
+
display: block;
|
|
124
121
|
|
|
125
122
|
&:hover {
|
|
126
|
-
|
|
123
|
+
color: var(--bloom-color-primary-dark);
|
|
127
124
|
background: transparent;
|
|
128
125
|
}
|
|
129
126
|
}
|
|
130
127
|
|
|
131
128
|
&.is-fullwidth {
|
|
132
|
-
|
|
129
|
+
width: 100%;
|
|
133
130
|
}
|
|
134
131
|
|
|
135
132
|
&.is-loading {
|
package/src/global/app-css.scss
CHANGED
package/src/global/mixins.scss
CHANGED
|
@@ -13,42 +13,45 @@
|
|
|
13
13
|
|
|
14
14
|
// Adds full screen image to pseudo element
|
|
15
15
|
@mixin overlay-image() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
display: block;
|
|
17
|
+
position: absolute;
|
|
18
|
+
top: 0px;
|
|
19
|
+
right: 0px;
|
|
20
|
+
bottom: 0px;
|
|
21
|
+
left: 0px;
|
|
19
22
|
content: "";
|
|
20
23
|
z-index: 2;
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
@mixin clearfix() {
|
|
24
27
|
&::after {
|
|
25
|
-
|
|
26
|
-
|
|
28
|
+
display: table;
|
|
29
|
+
clear: both;
|
|
27
30
|
content: "";
|
|
28
31
|
}
|
|
29
32
|
}
|
|
30
33
|
|
|
31
34
|
@mixin has-toggle() {
|
|
32
35
|
&:after {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
font-weight: bold;
|
|
37
|
+
display: inline-block;
|
|
38
|
+
margin-left: var(--bloom-s2);
|
|
39
|
+
margin-right: var(--bloom-s2);
|
|
40
|
+
font-size: var(--bloom-font-size-sm);
|
|
38
41
|
content: "⌃";
|
|
39
42
|
transform: rotate(180deg) translateY(2px);
|
|
40
43
|
}
|
|
41
44
|
&[aria-expanded="true"]:after {
|
|
42
|
-
|
|
45
|
+
margin-right: var(--bloom-s5);
|
|
43
46
|
transform: rotate(0deg) translateY(2px);
|
|
44
47
|
}
|
|
45
48
|
}
|
|
46
49
|
|
|
47
50
|
@mixin has-image-skeleton() {
|
|
48
|
-
|
|
51
|
+
background-color: var(--bloom-color-gray-500);
|
|
49
52
|
|
|
50
53
|
&::before {
|
|
51
|
-
|
|
54
|
+
float: left;
|
|
52
55
|
content: "";
|
|
53
56
|
width: 1px;
|
|
54
57
|
margin-left: -1px;
|
|
@@ -58,104 +61,118 @@
|
|
|
58
61
|
|
|
59
62
|
&::after {
|
|
60
63
|
/* to clear float */
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
display: table;
|
|
65
|
+
clear: both;
|
|
63
66
|
content: "";
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
@mixin filled-appearances() {
|
|
68
71
|
&.is-primary {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
background-color: var(--primary-appearance-background-color, var(--bloom-color-primary));
|
|
73
|
+
border-color: var(--primary-appearance-border-color, var(--bloom-color-primary));
|
|
74
|
+
color: var(--primary-appearance-label-color, var(--bloom-color-white));
|
|
72
75
|
|
|
73
76
|
&:hover {
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
background-color: var(
|
|
78
|
+
--primary-appearance-hover-background-color,
|
|
79
|
+
var(--bloom-color-primary-dark)
|
|
80
|
+
);
|
|
81
|
+
border-color: var(--primary-appearance-hover-border-color, var(--bloom-color-primary-dark));
|
|
82
|
+
color: var(--primary-appearance-hover-label-color, var(--bloom-color-white));
|
|
76
83
|
}
|
|
77
84
|
}
|
|
78
85
|
|
|
79
86
|
&.is-success {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
background-color: var(--success-appearance-background-color, var(--bloom-color-success));
|
|
88
|
+
border-color: var(--success-appearance-border-color, var(--bloom-color-success));
|
|
89
|
+
color: var(--success-appearance-label-color, var(--bloom-color-white));
|
|
83
90
|
|
|
84
91
|
&:hover {
|
|
85
|
-
|
|
92
|
+
background-color: var(
|
|
93
|
+
--success-appearance-hover-background-color,
|
|
94
|
+
var(--bloom-color-success-dark)
|
|
95
|
+
);
|
|
96
|
+
border-color: var(--success-appearance-hover-border-color, var(--bloom-color-success));
|
|
97
|
+
color: var(--success-appearance-hover-label-color, var(--bloom-color-white));
|
|
86
98
|
}
|
|
87
99
|
}
|
|
88
100
|
|
|
89
101
|
&.is-alert {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
background-color: var(--bloom-color-alert);
|
|
103
|
+
border-color: var(--bloom-color-alert);
|
|
104
|
+
color: var(--bloom-color-white);
|
|
93
105
|
|
|
94
106
|
&:hover {
|
|
95
|
-
|
|
96
|
-
|
|
107
|
+
background-color: var(--bloom-color-alert-dark);
|
|
108
|
+
border-color: var(--bloom-color-alert-dark);
|
|
97
109
|
}
|
|
98
110
|
}
|
|
99
111
|
|
|
100
112
|
&.is-warning {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
113
|
+
background-color: var(--bloom-color-warn);
|
|
114
|
+
border-color: var(--bloom-color-warn);
|
|
115
|
+
color: var(--bloom-color-gray-800);
|
|
104
116
|
|
|
105
117
|
&:hover {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
118
|
+
color: var(--bloom-color-white);
|
|
119
|
+
background-color: var(--bloom-color-warn-dark);
|
|
120
|
+
border-color: var(--bloom-color-warn-dark);
|
|
109
121
|
}
|
|
110
122
|
}
|
|
111
123
|
|
|
112
124
|
&.is-borderless {
|
|
113
|
-
|
|
125
|
+
color: var(--bloom-color-primary-darker);
|
|
114
126
|
border-color: transparent;
|
|
115
127
|
background: transparent;
|
|
116
128
|
|
|
117
129
|
&:hover {
|
|
118
130
|
background: transparent;
|
|
119
|
-
|
|
131
|
+
border-color: transparent;
|
|
132
|
+
color: var(--bloom-color-primary-darker);
|
|
120
133
|
}
|
|
121
134
|
}
|
|
122
135
|
}
|
|
123
136
|
|
|
124
137
|
@mixin outlined-appearances() {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
138
|
+
background-color: var(--bloom-color-white);
|
|
139
|
+
color: var(--bloom-color-primary);
|
|
140
|
+
border-width: var(--bloom-border-2);
|
|
141
|
+
border-color: var(--bloom-color-primary);
|
|
129
142
|
|
|
130
143
|
&:hover {
|
|
131
|
-
|
|
132
|
-
|
|
144
|
+
background-color: var(
|
|
145
|
+
--outlined-appearance-hover-background-color,
|
|
146
|
+
var(--bloom-color-primary-dark)
|
|
147
|
+
);
|
|
148
|
+
border-color: var(--outlined-appearance-hover-border-color, var(--bloom-color-primary));
|
|
149
|
+
color: var(--outlined-appearance-hover-label-color, var(--bloom-color-white));
|
|
133
150
|
}
|
|
134
151
|
|
|
135
152
|
&.is-outlined {
|
|
136
153
|
background: transparent;
|
|
137
154
|
|
|
138
155
|
&.is-success {
|
|
139
|
-
|
|
156
|
+
color: var(--bloom-color-success);
|
|
140
157
|
|
|
141
158
|
&:hover {
|
|
142
|
-
|
|
159
|
+
color: var(--bloom-color-white);
|
|
143
160
|
}
|
|
144
161
|
}
|
|
145
162
|
|
|
146
163
|
&.is-alert {
|
|
147
|
-
|
|
164
|
+
color: var(--bloom-color-alert);
|
|
148
165
|
|
|
149
166
|
&:hover {
|
|
150
|
-
|
|
167
|
+
color: var(--bloom-color-white);
|
|
151
168
|
}
|
|
152
169
|
}
|
|
153
170
|
|
|
154
171
|
&.is-warning {
|
|
155
|
-
|
|
172
|
+
color: var(--bloom-color-gray-800);
|
|
156
173
|
|
|
157
174
|
&:hover {
|
|
158
|
-
|
|
175
|
+
color: var(--bloom-color-white);
|
|
159
176
|
}
|
|
160
177
|
}
|
|
161
178
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--bloom-rounded-sm: 0.125rem;
|
|
3
|
+
--bloom-rounded: 0.25rem;
|
|
4
|
+
--bloom-rounded-md: 0.375rem;
|
|
5
|
+
--bloom-rounded-lg: 0.5rem;
|
|
6
|
+
--bloom-rounded-xl: 0.75rem;
|
|
7
|
+
--bloom-rounded-2xl: 1rem;
|
|
8
|
+
--bloom-rounded-3xl: 1.5rem;
|
|
9
|
+
--bloom-rounded-full: 9999px;
|
|
10
|
+
|
|
11
|
+
--bloom-border-1: 1px;
|
|
12
|
+
--bloom-border-2: 2px;
|
|
13
|
+
--bloom-border-4: 4px;
|
|
14
|
+
--bloom-border-8: 8px;
|
|
15
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--bloom-color-white: #ffffff;
|
|
3
|
+
--bloom-color-black: #000000;
|
|
4
|
+
|
|
5
|
+
--bloom-color-red-800: #b21d38;
|
|
6
|
+
--bloom-color-red-700: #e41d3d;
|
|
7
|
+
--bloom-color-red-300: #f9d2d8;
|
|
8
|
+
|
|
9
|
+
--bloom-color-green-800: #216e1f;
|
|
10
|
+
--bloom-color-green-700: #2e8540;
|
|
11
|
+
--bloom-color-green-300: #b4e5be;
|
|
12
|
+
|
|
13
|
+
--bloom-color-blue-800: #205493;
|
|
14
|
+
--bloom-color-blue-700: #0067be;
|
|
15
|
+
--bloom-color-blue-600: #0077da;
|
|
16
|
+
--bloom-color-blue-300: #daeeff;
|
|
17
|
+
--bloom-color-blue-200: #f5f8f9;
|
|
18
|
+
|
|
19
|
+
--bloom-color-yellow-800: #e5a000;
|
|
20
|
+
--bloom-color-yellow-700: #fdb81e;
|
|
21
|
+
--bloom-color-yellow-300: #fee8b6;
|
|
22
|
+
|
|
23
|
+
--bloom-color-gray-950: #242c2e;
|
|
24
|
+
--bloom-color-gray-900: #222222;
|
|
25
|
+
--bloom-color-gray-850: #333333;
|
|
26
|
+
--bloom-color-gray-800: #30383a;
|
|
27
|
+
--bloom-color-gray-750: #555555;
|
|
28
|
+
--bloom-color-gray-700: #767676;
|
|
29
|
+
--bloom-color-gray-600: #999999;
|
|
30
|
+
--bloom-color-gray-550: #aaaaaa;
|
|
31
|
+
--bloom-color-gray-500: #cccccc;
|
|
32
|
+
--bloom-color-gray-450: #dedee0;
|
|
33
|
+
--bloom-color-gray-400: #efefef;
|
|
34
|
+
--bloom-color-gray-300: #f6f6f6;
|
|
35
|
+
--bloom-color-gray-200: #f7f7f7;
|
|
36
|
+
--bloom-color-gray-100: #f9f9f9;
|
|
37
|
+
|
|
38
|
+
--bloom-color-primary: var(--bloom-color-blue-600);
|
|
39
|
+
--bloom-color-primary-dark: var(--bloom-color-blue-700);
|
|
40
|
+
--bloom-color-primary-darker: var(--bloom-color-blue-800);
|
|
41
|
+
--bloom-color-primary-light: var(--bloom-color-blue-300);
|
|
42
|
+
--bloom-color-primary-lighter: var(--bloom-color-blue-200);
|
|
43
|
+
|
|
44
|
+
--bloom-color-secondary: var(--bloom-color-blue-700);
|
|
45
|
+
--bloom-color-alert: var(--bloom-color-red-700);
|
|
46
|
+
--bloom-color-alert-light: var(--bloom-color-red-300);
|
|
47
|
+
--bloom-color-alert-dark: var(--bloom-color-red-800);
|
|
48
|
+
--bloom-color-success: var(--bloom-color-green-700);
|
|
49
|
+
--bloom-color-success-light: var(--bloom-color-green-300);
|
|
50
|
+
--bloom-color-success-dark: var(--bloom-color-green-800);
|
|
51
|
+
--bloom-color-warn: var(--bloom-color-yellow-700);
|
|
52
|
+
--bloom-color-warn-light: var(--bloom-color-yellow-300);
|
|
53
|
+
--bloom-color-warn-dark: var(--bloom-color-yellow-800);
|
|
54
|
+
|
|
55
|
+
--bloom-color-accent-cool: #00bed5;
|
|
56
|
+
--bloom-color-accent-cool-light: #c8f1ff;
|
|
57
|
+
--bloom-color-accent-cool-dark: #009db0;
|
|
58
|
+
--bloom-color-accent-warm: #ff6627;
|
|
59
|
+
--bloom-color-accent-warm-dark: #d54309;
|
|
60
|
+
--bloom-color-accent-warm-light: #ffd2c0;
|
|
61
|
+
--bloom-color-accent-warm-lighter: #fff7f3;
|
|
62
|
+
|
|
63
|
+
--bloom-color-lush: #99cd00;
|
|
64
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--bloom-font-sans: "Open Sans", Helvetica, Arial, Verdana, sans-serif;
|
|
3
|
+
--bloom-font-serif: "Droid Serif", Georgia, Times, serif;
|
|
4
|
+
--bloom-font-alt-sans: Lato, Helvetica, Arial, Verdana, sans-serif;
|
|
5
|
+
--bloom-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
|
6
|
+
"Courier New", monospace;
|
|
7
|
+
|
|
8
|
+
--bloom-font-size-2xs: 0.6875rem;
|
|
9
|
+
--bloom-font-size-xs: 0.75rem;
|
|
10
|
+
--bloom-font-size-sm: 0.8125rem;
|
|
11
|
+
--bloom-font-size-tiny: 0.875rem;
|
|
12
|
+
--bloom-font-size-base: 1rem;
|
|
13
|
+
--bloom-font-size-lg: 1.25rem;
|
|
14
|
+
--bloom-font-size-xl: 1.375rem;
|
|
15
|
+
--bloom-font-size-2xl: 1.5rem;
|
|
16
|
+
--bloom-font-size-3xl: 1.625rem;
|
|
17
|
+
--bloom-font-size-4xl: 2rem;
|
|
18
|
+
--bloom-font-size-5xl: 2.5rem;
|
|
19
|
+
--bloom-font-size-6xl: 3rem;
|
|
20
|
+
--bloom-font-size-6_5xl: 4rem;
|
|
21
|
+
--bloom-font-size-7xl: 4.5rem;
|
|
22
|
+
|
|
23
|
+
--bloom-letter-spacing-tightest: -0.075em;
|
|
24
|
+
--bloom-letter-spacing-tighter: -0.05em;
|
|
25
|
+
--bloom-letter-spacing-tight: -0.025em;
|
|
26
|
+
--bloom-letter-spacing-wide: 0.025em;
|
|
27
|
+
--bloom-letter-spacing-wider: 0.05em;
|
|
28
|
+
--bloom-letter-spacing-widest: 0.12em;
|
|
29
|
+
--bloom-letter-spacing-ultrawide: 0.25em;
|
|
30
|
+
|
|
31
|
+
--bloom-line-height-3: 0.75rem;
|
|
32
|
+
--bloom-line-height-4: 1rem;
|
|
33
|
+
--bloom-line-height-5: 1.25rem;
|
|
34
|
+
--bloom-line-height-6: 1.5rem;
|
|
35
|
+
--bloom-line-height-7: 1.75rem;
|
|
36
|
+
--bloom-line-height-8: 2rem;
|
|
37
|
+
--bloom-line-height-9: 2.25rem;
|
|
38
|
+
--bloom-line-height-10: 2.5rem;
|
|
39
|
+
--bloom-line-height-none: 1;
|
|
40
|
+
--bloom-line-height-tight: 1.25;
|
|
41
|
+
--bloom-line-height-snug: 1.375;
|
|
42
|
+
--bloom-line-height-normal: 1.5;
|
|
43
|
+
--bloom-line-height-relaxed: 1.625;
|
|
44
|
+
--bloom-line-height-loose: 2;
|
|
45
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--bloom-s0_5: 0.125rem;
|
|
3
|
+
--bloom-s1: 0.25rem;
|
|
4
|
+
--bloom-s1_5: 0.375rem;
|
|
5
|
+
--bloom-s2: 0.5rem;
|
|
6
|
+
--bloom-s2_5: 0.625rem;
|
|
7
|
+
--bloom-s3: 0.75rem;
|
|
8
|
+
--bloom-s3_5: 0.875;
|
|
9
|
+
--bloom-s4: 1rem;
|
|
10
|
+
--bloom-s5: 1.25rem;
|
|
11
|
+
--bloom-s6: 1.5rem;
|
|
12
|
+
--bloom-s7: 1.75rem;
|
|
13
|
+
--bloom-s8: 2rem;
|
|
14
|
+
--bloom-s9: 2.25rem;
|
|
15
|
+
--bloom-s10: 2.5rem;
|
|
16
|
+
--bloom-s11: 2.75rem;
|
|
17
|
+
--bloom-s12: 3rem;
|
|
18
|
+
--bloom-s14: 3.5rem;
|
|
19
|
+
--bloom-s16: 4rem;
|
|
20
|
+
--bloom-s20: 5rem;
|
|
21
|
+
--bloom-s24: 6rem;
|
|
22
|
+
--bloom-s28: 7rem;
|
|
23
|
+
--bloom-s32: 8rem;
|
|
24
|
+
--bloom-s36: 9rem;
|
|
25
|
+
--bloom-s40: 10rem;
|
|
26
|
+
--bloom-s44: 11rem;
|
|
27
|
+
--bloom-s48: 12rem;
|
|
28
|
+
--bloom-s52: 13rem;
|
|
29
|
+
--bloom-s56: 14rem;
|
|
30
|
+
--bloom-s60: 15rem;
|
|
31
|
+
--bloom-s64: 16rem;
|
|
32
|
+
--bloom-s72: 18rem;
|
|
33
|
+
--bloom-s80: 20rem;
|
|
34
|
+
--bloom-s96: 24rem;
|
|
35
|
+
|
|
36
|
+
--bloom-width-xs: 20rem;
|
|
37
|
+
--bloom-width-sm: 24rem;
|
|
38
|
+
--bloom-width-md: 28rem;
|
|
39
|
+
--bloom-width-lg: 32rem;
|
|
40
|
+
--bloom-width-xl: 36rem;
|
|
41
|
+
--bloom-width-2xl: 42rem;
|
|
42
|
+
--bloom-width-3xl: 48rem;
|
|
43
|
+
--bloom-width-4xl: 56rem;
|
|
44
|
+
--bloom-width-5xl: 64rem;
|
|
45
|
+
--bloom-width-6xl: 72rem;
|
|
46
|
+
--bloom-width-7xl: 80rem;
|
|
47
|
+
--bloom-width-prose: 65ch;
|
|
48
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Canvas, Story, ArgsTable } from "@storybook/addon-docs"
|
|
2
|
+
import { PageHeader } from "./PageHeader"
|
|
3
|
+
|
|
4
|
+
# Page Header
|
|
5
|
+
|
|
6
|
+
The page header component displays a title, with an optional subtitle and/or arbitary children elements.
|
|
7
|
+
|
|
8
|
+
<Canvas>
|
|
9
|
+
<Story id="headers-page-header--with-content" />
|
|
10
|
+
</Canvas>
|
|
11
|
+
|
|
12
|
+
<br />
|
|
13
|
+
<br />
|
|
14
|
+
|
|
15
|
+
## Variants
|
|
16
|
+
|
|
17
|
+
### Inverse
|
|
18
|
+
|
|
19
|
+
Set the `inverse` property to `true`.
|
|
20
|
+
|
|
21
|
+
<Canvas>
|
|
22
|
+
<Story id="headers-page-header--inversed" />
|
|
23
|
+
</Canvas>
|
|
24
|
+
|
|
25
|
+
## Component Properties
|
|
26
|
+
|
|
27
|
+
<ArgsTable of={PageHeader} />
|
|
28
|
+
|
|
29
|
+
## Theming Variables
|
|
30
|
+
|
|
31
|
+
<Canvas>
|
|
32
|
+
<Story id="headers-page-header--style-overrides" />
|
|
33
|
+
</Canvas>
|
|
34
|
+
|
|
35
|
+
You can apply CSS variables to the `.page-header` selector to customize the appearance of the component.
|
|
36
|
+
|
|
37
|
+
| Name | Type | Description | Default |
|
|
38
|
+
| ---------------------------- | ----- | --------------------------------------------------------- | ------------------------------- |
|
|
39
|
+
| `--background-color` | Color | The background of the header | `--bloom-color-primary-lighter` |
|
|
40
|
+
| `--border-color` | Color | The color of the top border | `--bloom-color-gray-450` |
|
|
41
|
+
| `--text-color` | Color | The color of text inside the header | `inherit` |
|
|
42
|
+
| `--inverse-background-color` | Color | The `inverse` variant background | `--bloom-color-primary-darker` |
|
|
43
|
+
| `--inverse-border-color` | Color | The `inverse` variant color of the top border | `--bloom-color-primary` |
|
|
44
|
+
| `--inverse-text-color` | Color | The `inverse` variant color of text | `--bloom-color-white` |
|
|
45
|
+
| `--title-font-size` | Size | The font size of the title (only on medium+ size screens) | `--bloom-font-size-5xl` |
|
|
@@ -1,34 +1,47 @@
|
|
|
1
1
|
.page-header {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
/* Component Variables */
|
|
3
|
+
--background-color: var(--bloom-color-primary-lighter);
|
|
4
|
+
--border-color: var(--bloom-color-gray-450);
|
|
5
|
+
--text-color: inherit;
|
|
6
|
+
--inverse-background-color: var(--bloom-color-primary-darker);
|
|
7
|
+
--inverse-border-color: var(--bloom-color-primary);
|
|
8
|
+
--inverse-text-color: var(--bloom-color-white);
|
|
9
|
+
--title-font-size: var(--bloom-font-size-5xl);
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
/* Base Styles */
|
|
12
|
+
padding: var(--bloom-s8) 0;
|
|
13
|
+
background-color: var(--background-color);
|
|
14
|
+
border-top: var(--bloom-border-1) solid var(--border-color);
|
|
15
|
+
color: var(--text-color);
|
|
16
|
+
|
|
17
|
+
@media (min-width: $screen-sm) {
|
|
18
|
+
padding: var(--bloom-s10) 0;
|
|
8
19
|
}
|
|
9
20
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
21
|
+
/* Variants */
|
|
22
|
+
&.is-inverse {
|
|
23
|
+
--background-color: var(--inverse-background-color);
|
|
24
|
+
--border-color: var(--inverse-border-color);
|
|
25
|
+
--text-color: var(--inverse-text-color);
|
|
13
26
|
}
|
|
14
27
|
}
|
|
15
28
|
|
|
16
29
|
.page-header__group {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
padding: 0 var(--bloom-s5);
|
|
31
|
+
margin: auto;
|
|
32
|
+
max-width: var(--bloom-width-5xl);
|
|
20
33
|
}
|
|
21
34
|
|
|
22
35
|
.page-header__title {
|
|
23
|
-
|
|
36
|
+
text-align: center;
|
|
24
37
|
|
|
25
|
-
@screen
|
|
26
|
-
|
|
27
|
-
|
|
38
|
+
@media (min-width: $screen-md) {
|
|
39
|
+
font-size: var(--title-font-size);
|
|
40
|
+
text-align: left;
|
|
28
41
|
}
|
|
29
42
|
}
|
|
30
43
|
|
|
31
44
|
.page-header__lead {
|
|
32
|
-
|
|
33
|
-
|
|
45
|
+
margin: auto;
|
|
46
|
+
max-width: var(--bloom-width-5xl);
|
|
34
47
|
}
|
|
@@ -12,16 +12,8 @@ export interface PageHeaderProps {
|
|
|
12
12
|
|
|
13
13
|
const PageHeader = (props: PageHeaderProps) => {
|
|
14
14
|
const classNames = ["page-header"]
|
|
15
|
-
if (props.
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (props.inverse) {
|
|
20
|
-
classNames.push("bg-primary-dark")
|
|
21
|
-
classNames.push("text-white")
|
|
22
|
-
} else {
|
|
23
|
-
classNames.push("bg-primary-lighter")
|
|
24
|
-
}
|
|
15
|
+
if (props.inverse) classNames.push("is-inverse")
|
|
16
|
+
if (props.className) classNames.push(...props.className.split(" "))
|
|
25
17
|
|
|
26
18
|
return (
|
|
27
19
|
<header className={classNames.join(" ")}>
|
package/tailwind.config.js
CHANGED
|
@@ -12,106 +12,101 @@ module.exports = {
|
|
|
12
12
|
print: { raw: "print" },
|
|
13
13
|
},
|
|
14
14
|
fontSize: {
|
|
15
|
-
"2xs": "
|
|
16
|
-
xs: "
|
|
17
|
-
sm: "
|
|
18
|
-
tiny: "
|
|
19
|
-
base: "
|
|
20
|
-
lg: "
|
|
21
|
-
xl: "
|
|
22
|
-
"2xl": "
|
|
23
|
-
"3xl": "
|
|
24
|
-
"4xl": "
|
|
25
|
-
"5xl": "
|
|
26
|
-
"6xl": "
|
|
27
|
-
"6.5xl": "
|
|
28
|
-
"7xl": "
|
|
15
|
+
"2xs": "var(--bloom-font-size-2xs)",
|
|
16
|
+
xs: "var(--bloom-font-size-xs)",
|
|
17
|
+
sm: "var(--bloom-font-size-sm)",
|
|
18
|
+
tiny: "var(--bloom-font-size-tiny)",
|
|
19
|
+
base: "var(--bloom-font-size-base)",
|
|
20
|
+
lg: "var(--bloom-font-size-lg)",
|
|
21
|
+
xl: "var(--bloom-font-size-xl)",
|
|
22
|
+
"2xl": "var(--bloom-font-size-2xl)",
|
|
23
|
+
"3xl": "var(--bloom-font-size-3xl)",
|
|
24
|
+
"4xl": "var(--bloom-font-size-4xl)",
|
|
25
|
+
"5xl": "var(--bloom-font-size-5xl)",
|
|
26
|
+
"6xl": "var(--bloom-font-size-6xl)",
|
|
27
|
+
"6.5xl": "var(--bloom-font-size-6_5xl)",
|
|
28
|
+
"7xl": "var(--bloom-font-size-7xl)",
|
|
29
29
|
},
|
|
30
30
|
fontFamily: {
|
|
31
|
-
sans:
|
|
32
|
-
serif:
|
|
33
|
-
"alt-sans":
|
|
31
|
+
sans: "var(--bloom-font-sans)",
|
|
32
|
+
serif: "var(--bloom-font-serif)",
|
|
33
|
+
"alt-sans": "var(--bloom-font-alt-sans)",
|
|
34
34
|
},
|
|
35
35
|
colors: {
|
|
36
|
-
primary: "
|
|
37
|
-
"primary-dark": "
|
|
38
|
-
"primary-darker": "
|
|
39
|
-
"primary-light": "
|
|
40
|
-
"primary-lighter": "
|
|
41
|
-
secondary: "
|
|
42
|
-
alert: "
|
|
43
|
-
"alert-light": "
|
|
44
|
-
"alert-dark": "
|
|
45
|
-
success: "
|
|
46
|
-
"success-light": "
|
|
47
|
-
"success-dark": "
|
|
48
|
-
warn: "
|
|
49
|
-
"warn-light": "
|
|
50
|
-
"warn-dark": "
|
|
51
|
-
"accent-cool": "
|
|
52
|
-
"accent-cool-light": "
|
|
53
|
-
"accent-cool-dark": "
|
|
54
|
-
"accent-warm": "
|
|
55
|
-
"accent-warm-dark": "
|
|
56
|
-
"accent-warm-light": "
|
|
57
|
-
"accent-warm-lighter": "
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
lush: "#99CD00",
|
|
62
|
-
"lush-light": "#F2FFCD",
|
|
63
|
-
"lush-dark": "#7CA700",
|
|
64
|
-
white: "#FFFFFF",
|
|
65
|
-
black: "#000000",
|
|
36
|
+
primary: "var(--bloom-color-primary)",
|
|
37
|
+
"primary-dark": "var(--bloom-color-primary-dark)",
|
|
38
|
+
"primary-darker": "var(--bloom-color-primary-darker)",
|
|
39
|
+
"primary-light": "var(--bloom-color-primary-light)",
|
|
40
|
+
"primary-lighter": "var(--bloom-color-primary-lighter)",
|
|
41
|
+
secondary: "var(--bloom-color-secondary)",
|
|
42
|
+
alert: "var(--bloom-color-alert)",
|
|
43
|
+
"alert-light": "var(--bloom-color-alert-light)",
|
|
44
|
+
"alert-dark": "var(--bloom-color-alert-dark)",
|
|
45
|
+
success: "var(--bloom-color-success)",
|
|
46
|
+
"success-light": "var(--bloom-color-success-light)",
|
|
47
|
+
"success-dark": "var(--bloom-color-success-dark)",
|
|
48
|
+
warn: "var(--bloom-color-warn)",
|
|
49
|
+
"warn-light": "var(--bloom-color-warn-light)",
|
|
50
|
+
"warn-dark": "var(--bloom-color-warn-dark)",
|
|
51
|
+
"accent-cool": "var(--bloom-color-accent-cool)",
|
|
52
|
+
"accent-cool-light": "var(--bloom-color-accent-cool-light)",
|
|
53
|
+
"accent-cool-dark": "var(--bloom-color-accent-cool-dark)",
|
|
54
|
+
"accent-warm": "var(--bloom-color-accent-warm)",
|
|
55
|
+
"accent-warm-dark": "var(--bloom-color-accent-warm-dark)",
|
|
56
|
+
"accent-warm-light": "var(--bloom-color-accent-warm-light)",
|
|
57
|
+
"accent-warm-lighter": "var(--bloom-color-accent-warm-lighter)",
|
|
58
|
+
lush: "var(--bloom-color-lush)",
|
|
59
|
+
white: "var(--bloom-color-white)",
|
|
60
|
+
black: "var(--bloom-color-black)",
|
|
66
61
|
blue: {
|
|
67
|
-
800: "
|
|
68
|
-
700: "
|
|
69
|
-
600: "
|
|
70
|
-
300: "
|
|
71
|
-
200: "
|
|
62
|
+
800: "var(--bloom-color-blue-800)",
|
|
63
|
+
700: "var(--bloom-color-blue-700)",
|
|
64
|
+
600: "var(--bloom-color-blue-600)",
|
|
65
|
+
300: "var(--bloom-color-blue-300)",
|
|
66
|
+
200: "var(--bloom-color-blue-200)",
|
|
72
67
|
},
|
|
73
68
|
red: {
|
|
74
|
-
700: "
|
|
75
|
-
300: "
|
|
69
|
+
700: "var(--bloom-color-red-700)",
|
|
70
|
+
300: "var(--bloom-color-red-300)",
|
|
76
71
|
},
|
|
77
72
|
yellow: {
|
|
78
|
-
700: "
|
|
79
|
-
300: "
|
|
73
|
+
700: "var(--bloom-color-yellow-700)",
|
|
74
|
+
300: "var(--bloom-color-yellow-300)",
|
|
80
75
|
},
|
|
81
76
|
green: {
|
|
82
|
-
700: "
|
|
83
|
-
300: "
|
|
77
|
+
700: "var(--bloom-color-green-700)",
|
|
78
|
+
300: "var(--bloom-color-green-300)",
|
|
84
79
|
},
|
|
85
80
|
teal: {
|
|
86
|
-
700: "
|
|
87
|
-
300: "
|
|
81
|
+
700: "var(--bloom-color-green-700)",
|
|
82
|
+
300: "var(--bloom-color-green-300)",
|
|
88
83
|
},
|
|
89
84
|
gray: {
|
|
90
|
-
950: "
|
|
91
|
-
900: "
|
|
92
|
-
850: "
|
|
93
|
-
800: "
|
|
94
|
-
750: "
|
|
95
|
-
700: "
|
|
96
|
-
600: "
|
|
97
|
-
550: "
|
|
98
|
-
500: "
|
|
99
|
-
450: "
|
|
100
|
-
400: "
|
|
101
|
-
300: "
|
|
102
|
-
200: "
|
|
103
|
-
100: "
|
|
85
|
+
950: "var(--bloom-color-gray-950)",
|
|
86
|
+
900: "var(--bloom-color-gray-900)",
|
|
87
|
+
850: "var(--bloom-color-gray-850)",
|
|
88
|
+
800: "var(--bloom-color-gray-800)",
|
|
89
|
+
750: "var(--bloom-color-gray-750)",
|
|
90
|
+
700: "var(--bloom-color-gray-700)",
|
|
91
|
+
600: "var(--bloom-color-gray-600)",
|
|
92
|
+
550: "var(--bloom-color-gray-550)",
|
|
93
|
+
500: "var(--bloom-color-gray-500)",
|
|
94
|
+
450: "var(--bloom-color-gray-450)",
|
|
95
|
+
400: "var(--bloom-color-gray-400)",
|
|
96
|
+
300: "var(--bloom-color-gray-300)",
|
|
97
|
+
200: "var(--bloom-color-gray-200)",
|
|
98
|
+
100: "var(--bloom-color-gray-100)",
|
|
104
99
|
},
|
|
105
100
|
},
|
|
106
101
|
letterSpacing: {
|
|
107
|
-
tightest: "
|
|
108
|
-
tighter: "
|
|
109
|
-
tight: "
|
|
102
|
+
tightest: "var(--bloom-letter-spacing-tightest)",
|
|
103
|
+
tighter: "var(--bloom-letter-spacing-tighter)",
|
|
104
|
+
tight: "var(--bloom-letter-spacing-tight)",
|
|
110
105
|
normal: "0",
|
|
111
|
-
wide: "
|
|
112
|
-
wider: "
|
|
113
|
-
widest: "
|
|
114
|
-
ultrawide: "
|
|
106
|
+
wide: "var(--bloom-letter-spacing-wide)",
|
|
107
|
+
wider: "var(--bloom-letter-spacing-wider)",
|
|
108
|
+
widest: "var(--bloom-letter-spacing-widest)",
|
|
109
|
+
ultrawide: "var(--bloom-letter-spacing-ultrawide)",
|
|
115
110
|
},
|
|
116
111
|
extend: {
|
|
117
112
|
borderColor: (theme) => ({
|
package/tailwind.tosass.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-env node */
|
|
2
2
|
|
|
3
3
|
const tailwindToSassVars = (bloomTheme) => {
|
|
4
|
+
// TODO: we should remove this in favor of just using the new CSS variables
|
|
4
5
|
const bloomColorVars = Object.keys(bloomTheme.theme.colors).map((colorKey) => {
|
|
5
6
|
if (typeof bloomTheme.theme.colors[colorKey] == "object") {
|
|
6
7
|
// create a map variable that can be used by the map-get SCSS function
|
|
@@ -17,7 +18,7 @@ const tailwindToSassVars = (bloomTheme) => {
|
|
|
17
18
|
}
|
|
18
19
|
})
|
|
19
20
|
const bloomScreenVars = Object.keys(bloomTheme.theme.screens).map((screenKey) => {
|
|
20
|
-
return `$
|
|
21
|
+
return `$screen-${screenKey}: ${bloomTheme.theme.screens[screenKey]};`
|
|
21
22
|
})
|
|
22
23
|
|
|
23
24
|
// Uncomment this if you want to debug:
|