@cruk/cruk-react-components 6.2.3 → 7.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/README.md +185 -7
- package/lib/index.css +4248 -0
- package/lib/index.css.map +1 -0
- package/lib/node_modules/tslib/tslib.es6.js +1 -1
- package/lib/node_modules/tslib/tslib.es6.js.map +1 -1
- package/lib/src/components/AddressLookup/index.d.ts +8 -9
- package/lib/src/components/AddressLookup/index.js +1 -1
- package/lib/src/components/AddressLookup/index.js.map +1 -1
- package/lib/src/components/AllThemesWrapper.d.ts +3 -3
- package/lib/src/components/Avatar/index.d.ts +10 -8
- package/lib/src/components/Avatar/index.js +1 -1
- package/lib/src/components/Avatar/index.js.map +1 -1
- package/lib/src/components/Badge/index.d.ts +12 -16
- package/lib/src/components/Badge/index.js +1 -1
- package/lib/src/components/Badge/index.js.map +1 -1
- package/lib/src/components/Box/index.d.ts +7 -7
- package/lib/src/components/Box/index.js +1 -1
- package/lib/src/components/Box/index.js.map +1 -1
- package/lib/src/components/Button/index.d.ts +7 -16
- package/lib/src/components/Button/index.js +1 -1
- package/lib/src/components/Button/index.js.map +1 -1
- package/lib/src/components/Carousel/Dots.js +1 -1
- package/lib/src/components/Carousel/Dots.js.map +1 -1
- package/lib/src/components/Carousel/index.d.ts +23 -13
- package/lib/src/components/Carousel/index.js +1 -1
- package/lib/src/components/Carousel/index.js.map +1 -1
- package/lib/src/components/Checkbox/index.d.ts +7 -8
- package/lib/src/components/Checkbox/index.js +1 -1
- package/lib/src/components/Checkbox/index.js.map +1 -1
- package/lib/src/components/Collapse/index.d.ts +2 -2
- package/lib/src/components/Collapse/index.js +1 -1
- package/lib/src/components/Collapse/index.js.map +1 -1
- package/lib/src/components/DateField/index.d.ts +5 -6
- package/lib/src/components/DateField/index.js +1 -1
- package/lib/src/components/DateField/index.js.map +1 -1
- package/lib/src/components/ErrorText/index.d.ts +7 -6
- package/lib/src/components/ErrorText/index.js +1 -1
- package/lib/src/components/ErrorText/index.js.map +1 -1
- package/lib/src/components/Footer/index.d.ts +8 -6
- package/lib/src/components/Footer/index.js +1 -1
- package/lib/src/components/Footer/index.js.map +1 -1
- package/lib/src/components/Header/index.d.ts +19 -18
- package/lib/src/components/Header/index.js +1 -1
- package/lib/src/components/Header/index.js.map +1 -1
- package/lib/src/components/Heading/index.d.ts +5 -17
- package/lib/src/components/Heading/index.js +1 -1
- package/lib/src/components/Heading/index.js.map +1 -1
- package/lib/src/components/IconFa/index.d.ts +9 -9
- package/lib/src/components/IconFa/index.js +1 -1
- package/lib/src/components/IconFa/index.js.map +1 -1
- package/lib/src/components/InfoBox/index.d.ts +13 -16
- package/lib/src/components/InfoBox/index.js +1 -1
- package/lib/src/components/InfoBox/index.js.map +1 -1
- package/lib/src/components/LabelWrapper/index.js +1 -1
- package/lib/src/components/LabelWrapper/index.js.map +1 -1
- package/lib/src/components/LegendWrapper/index.js +1 -1
- package/lib/src/components/LegendWrapper/index.js.map +1 -1
- package/lib/src/components/Link/index.d.ts +6 -10
- package/lib/src/components/Link/index.js +1 -1
- package/lib/src/components/Link/index.js.map +1 -1
- package/lib/src/components/Loader/index.js +1 -1
- package/lib/src/components/Loader/index.js.map +1 -1
- package/lib/src/components/Modal/TestModalWithContent.d.ts +3 -1
- package/lib/src/components/Modal/TestModalWithState.d.ts +3 -1
- package/lib/src/components/Modal/index.d.ts +14 -17
- package/lib/src/components/Modal/index.js +1 -1
- package/lib/src/components/Modal/index.js.map +1 -1
- package/lib/src/components/Pagination/index.js +1 -1
- package/lib/src/components/Pagination/index.js.map +1 -1
- package/lib/src/components/PopOver/index.d.ts +1 -1
- package/lib/src/components/PopOver/index.js +1 -1
- package/lib/src/components/PopOver/index.js.map +1 -1
- package/lib/src/components/ProgressBar/index.d.ts +1 -1
- package/lib/src/components/ProgressBar/index.js +1 -1
- package/lib/src/components/ProgressBar/index.js.map +1 -1
- package/lib/src/components/Radio/index.js +1 -1
- package/lib/src/components/Radio/index.js.map +1 -1
- package/lib/src/components/RadioConsent/index.d.ts +8 -9
- package/lib/src/components/RadioConsent/index.js +1 -1
- package/lib/src/components/RadioConsent/index.js.map +1 -1
- package/lib/src/components/Select/index.js +1 -1
- package/lib/src/components/Select/index.js.map +1 -1
- package/lib/src/components/Step/index.d.ts +7 -8
- package/lib/src/components/Step/index.js +1 -1
- package/lib/src/components/Step/index.js.map +1 -1
- package/lib/src/components/Text/index.d.ts +7 -27
- package/lib/src/components/Text/index.js +1 -1
- package/lib/src/components/Text/index.js.map +1 -1
- package/lib/src/components/TextAreaField/index.d.ts +5 -6
- package/lib/src/components/TextAreaField/index.js +1 -1
- package/lib/src/components/TextAreaField/index.js.map +1 -1
- package/lib/src/components/TextField/index.d.ts +3 -1
- package/lib/src/components/TextField/index.js +1 -1
- package/lib/src/components/TextField/index.js.map +1 -1
- package/lib/src/components/Totaliser/index.d.ts +5 -6
- package/lib/src/components/Totaliser/index.js +1 -1
- package/lib/src/components/Totaliser/index.js.map +1 -1
- package/lib/src/components/UserBlock/index.d.ts +3 -1
- package/lib/src/components/UserBlock/index.js +1 -1
- package/lib/src/components/UserBlock/index.js.map +1 -1
- package/lib/src/components/index.d.ts +34 -10
- package/lib/src/components/index.js +1 -1
- package/lib/src/types.d.ts +45 -172
- package/lib/src/types.js +2 -0
- package/lib/src/types.js.map +1 -0
- package/lib/src/utils/Helper.d.ts +3 -0
- package/lib/src/utils/Helper.js +1 -1
- package/lib/src/utils/Helper.js.map +1 -1
- package/lib/src/utils/themeUtils.d.ts +4 -3
- package/lib/src/utils/themeUtils.js +1 -1
- package/lib/src/utils/themeUtils.js.map +1 -1
- package/package.json +11 -9
- package/lib/src/components/AddressLookup/styles.d.ts +0 -17
- package/lib/src/components/AddressLookup/styles.js +0 -2
- package/lib/src/components/AddressLookup/styles.js.map +0 -1
- package/lib/src/components/Avatar/styles.d.ts +0 -6
- package/lib/src/components/Avatar/styles.js +0 -2
- package/lib/src/components/Avatar/styles.js.map +0 -1
- package/lib/src/components/Badge/styles.d.ts +0 -10
- package/lib/src/components/Badge/styles.js +0 -2
- package/lib/src/components/Badge/styles.js.map +0 -1
- package/lib/src/components/Box/styles.d.ts +0 -9
- package/lib/src/components/Box/styles.js +0 -2
- package/lib/src/components/Box/styles.js.map +0 -1
- package/lib/src/components/Button/styles.d.ts +0 -13
- package/lib/src/components/Button/styles.js +0 -2
- package/lib/src/components/Button/styles.js.map +0 -1
- package/lib/src/components/Carousel/styles.d.ts +0 -30
- package/lib/src/components/Carousel/styles.js +0 -2
- package/lib/src/components/Carousel/styles.js.map +0 -1
- package/lib/src/components/Checkbox/styles.d.ts +0 -17
- package/lib/src/components/Checkbox/styles.js +0 -2
- package/lib/src/components/Checkbox/styles.js.map +0 -1
- package/lib/src/components/Collapse/styles.d.ts +0 -26
- package/lib/src/components/Collapse/styles.js +0 -2
- package/lib/src/components/Collapse/styles.js.map +0 -1
- package/lib/src/components/DateField/styles.d.ts +0 -25
- package/lib/src/components/DateField/styles.js +0 -2
- package/lib/src/components/DateField/styles.js.map +0 -1
- package/lib/src/components/Divider.d.ts +0 -5
- package/lib/src/components/Divider.js +0 -2
- package/lib/src/components/Divider.js.map +0 -1
- package/lib/src/components/ErrorText/styles.d.ts +0 -16
- package/lib/src/components/ErrorText/styles.js +0 -2
- package/lib/src/components/ErrorText/styles.js.map +0 -1
- package/lib/src/components/Flex.d.ts +0 -8
- package/lib/src/components/Flex.js +0 -2
- package/lib/src/components/Flex.js.map +0 -1
- package/lib/src/components/Fontface.d.ts +0 -4
- package/lib/src/components/Fontface.js +0 -2
- package/lib/src/components/Fontface.js.map +0 -1
- package/lib/src/components/Footer/styles.d.ts +0 -16
- package/lib/src/components/Footer/styles.js +0 -2
- package/lib/src/components/Footer/styles.js.map +0 -1
- package/lib/src/components/GlobalStyle.d.ts +0 -2
- package/lib/src/components/GlobalStyle.js +0 -2
- package/lib/src/components/GlobalStyle.js.map +0 -1
- package/lib/src/components/GlobalStyleNoFontFace.d.ts +0 -2
- package/lib/src/components/GlobalStyleNoFontFace.js +0 -2
- package/lib/src/components/GlobalStyleNoFontFace.js.map +0 -1
- package/lib/src/components/Header/styles.d.ts +0 -33
- package/lib/src/components/Header/styles.js +0 -2
- package/lib/src/components/Header/styles.js.map +0 -1
- package/lib/src/components/Heading/styles.d.ts +0 -17
- package/lib/src/components/Heading/styles.js +0 -2
- package/lib/src/components/Heading/styles.js.map +0 -1
- package/lib/src/components/IconFa/styles.d.ts +0 -7
- package/lib/src/components/IconFa/styles.js +0 -2
- package/lib/src/components/IconFa/styles.js.map +0 -1
- package/lib/src/components/InfoBox/styles.d.ts +0 -13
- package/lib/src/components/InfoBox/styles.js +0 -2
- package/lib/src/components/InfoBox/styles.js.map +0 -1
- package/lib/src/components/LabelWrapper/styles.d.ts +0 -16
- package/lib/src/components/LabelWrapper/styles.js +0 -2
- package/lib/src/components/LabelWrapper/styles.js.map +0 -1
- package/lib/src/components/LegendWrapper/styles.d.ts +0 -15
- package/lib/src/components/LegendWrapper/styles.js +0 -2
- package/lib/src/components/LegendWrapper/styles.js.map +0 -1
- package/lib/src/components/Link/styles.d.ts +0 -20
- package/lib/src/components/Link/styles.js +0 -2
- package/lib/src/components/Link/styles.js.map +0 -1
- package/lib/src/components/Loader/styles.d.ts +0 -7
- package/lib/src/components/Loader/styles.js +0 -2
- package/lib/src/components/Loader/styles.js.map +0 -1
- package/lib/src/components/Modal/styles.d.ts +0 -32
- package/lib/src/components/Modal/styles.js +0 -2
- package/lib/src/components/Modal/styles.js.map +0 -1
- package/lib/src/components/Pagination/styles.d.ts +0 -12
- package/lib/src/components/Pagination/styles.js +0 -2
- package/lib/src/components/Pagination/styles.js.map +0 -1
- package/lib/src/components/PopOver/styles.d.ts +0 -11
- package/lib/src/components/PopOver/styles.js +0 -2
- package/lib/src/components/PopOver/styles.js.map +0 -1
- package/lib/src/components/ProgressBar/styles.d.ts +0 -32
- package/lib/src/components/ProgressBar/styles.js +0 -2
- package/lib/src/components/ProgressBar/styles.js.map +0 -1
- package/lib/src/components/Radio/styles.d.ts +0 -21
- package/lib/src/components/Radio/styles.js +0 -2
- package/lib/src/components/Radio/styles.js.map +0 -1
- package/lib/src/components/RadioConsent/styles.d.ts +0 -10
- package/lib/src/components/RadioConsent/styles.js +0 -2
- package/lib/src/components/RadioConsent/styles.js.map +0 -1
- package/lib/src/components/Select/styles.d.ts +0 -9
- package/lib/src/components/Select/styles.js +0 -2
- package/lib/src/components/Select/styles.js.map +0 -1
- package/lib/src/components/Spacing/index.d.ts +0 -68
- package/lib/src/components/Spacing/index.js +0 -2
- package/lib/src/components/Spacing/index.js.map +0 -1
- package/lib/src/components/Step/styles.d.ts +0 -16
- package/lib/src/components/Step/styles.js +0 -2
- package/lib/src/components/Step/styles.js.map +0 -1
- package/lib/src/components/Text/styles.d.ts +0 -15
- package/lib/src/components/Text/styles.js +0 -2
- package/lib/src/components/Text/styles.js.map +0 -1
- package/lib/src/components/TextAreaField/styles.d.ts +0 -10
- package/lib/src/components/TextAreaField/styles.js +0 -2
- package/lib/src/components/TextAreaField/styles.js.map +0 -1
- package/lib/src/components/TextField/styles.d.ts +0 -18
- package/lib/src/components/TextField/styles.js +0 -2
- package/lib/src/components/TextField/styles.js.map +0 -1
- package/lib/src/components/ThemeCheatSheet.d.ts +0 -7
- package/lib/src/components/Totaliser/styles.d.ts +0 -27
- package/lib/src/components/Totaliser/styles.js +0 -2
- package/lib/src/components/Totaliser/styles.js.map +0 -1
- package/lib/src/components/UserBlock/styles.d.ts +0 -9
- package/lib/src/components/UserBlock/styles.js +0 -2
- package/lib/src/components/UserBlock/styles.js.map +0 -1
- package/lib/src/themes/bowelbabe.d.ts +0 -14
- package/lib/src/themes/bowelbabe.js +0 -2
- package/lib/src/themes/bowelbabe.js.map +0 -1
- package/lib/src/themes/cruk.d.ts +0 -14
- package/lib/src/themes/cruk.js +0 -2
- package/lib/src/themes/cruk.js.map +0 -1
- package/lib/src/themes/rfl.d.ts +0 -14
- package/lib/src/themes/rfl.js +0 -2
- package/lib/src/themes/rfl.js.map +0 -1
- package/lib/src/themes/su2c.d.ts +0 -14
- package/lib/src/themes/su2c.js +0 -2
- package/lib/src/themes/su2c.js.map +0 -1
- package/lib/vite.config.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,28 +1,35 @@
|
|
|
1
1
|
# cruk-react-components
|
|
2
2
|
|
|
3
|
-
React implementation of the CRUK design system.
|
|
3
|
+
React implementation of the CRUK design system using only React HTML and CSS.
|
|
4
|
+
Contains the following themes for all components
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
- CRUK
|
|
7
|
+
- RFL
|
|
8
|
+
- SU2C
|
|
9
|
+
- Bowelbabe
|
|
6
10
|
|
|
7
|
-
|
|
11
|
+
## View storybook
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
cruk-react-component storybook site demoing all the components with their different variants and themes:
|
|
14
|
+
https://master.d28a8la187lo73.amplifyapp.com/
|
|
10
15
|
|
|
11
|
-
|
|
16
|
+
## Getting Started
|
|
12
17
|
|
|
13
18
|
Add cruk-react-components and its peer dependencies react, react-dom and styled-components to your package.json file.
|
|
14
19
|
|
|
15
20
|
```sh
|
|
16
21
|
"dependencies": {
|
|
17
22
|
"react": "^19",
|
|
18
|
-
"react-dom": "^19"
|
|
19
|
-
"styled-components": "^6"
|
|
23
|
+
"react-dom": "^19"
|
|
20
24
|
}
|
|
21
25
|
```
|
|
22
26
|
|
|
23
27
|
After an `npm i @cruk/cruk-react-components --save`, you can start importing components from the library:
|
|
24
28
|
|
|
25
29
|
```js
|
|
30
|
+
// Ideally you would import the css on the top level entry point on you app
|
|
31
|
+
// because you only need to import this once
|
|
32
|
+
import "@cruk/cruk-react-components/lib/index.css";
|
|
26
33
|
import { Button } from "cruk-react-components";
|
|
27
34
|
|
|
28
35
|
const MyComponent = () => (
|
|
@@ -32,6 +39,177 @@ const MyComponent = () => (
|
|
|
32
39
|
);
|
|
33
40
|
```
|
|
34
41
|
|
|
42
|
+
## Extending your components with custom styles
|
|
43
|
+
|
|
44
|
+
### Using the style prop
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
import { Button } from "cruk-react-components";
|
|
48
|
+
|
|
49
|
+
const MyComponent = () => (
|
|
50
|
+
<div>
|
|
51
|
+
<Button style={{ color: "#ff0000" }} />
|
|
52
|
+
</div>
|
|
53
|
+
);
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Using your own css class
|
|
57
|
+
|
|
58
|
+
Lets say we want to preseve and use the API that exists on the component, we want to add our own CSS class but we don't want to overwrite the CSS class that already styles the component The solution is simple because each components CSS already exposed when you import the index css
|
|
59
|
+
|
|
60
|
+
```js
|
|
61
|
+
import "@cruk/cruk-react-components/lib/index.css";
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
The always follow the same naming convetion of
|
|
65
|
+
|
|
66
|
+
`.component-{componentName}`
|
|
67
|
+
|
|
68
|
+
For example
|
|
69
|
+
|
|
70
|
+
- `.component-button`
|
|
71
|
+
- `.component-link`
|
|
72
|
+
- `.component-text-field`
|
|
73
|
+
- `.component-textarea-field`
|
|
74
|
+
|
|
75
|
+
So we need to include the component class as well as our new CSS classes
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
import { Button } from "cruk-react-components";
|
|
79
|
+
|
|
80
|
+
const MyComponent = () => (
|
|
81
|
+
<div>
|
|
82
|
+
<Button
|
|
83
|
+
appearance="primary"
|
|
84
|
+
className={["component-button", "my-other-class-name"].join(" ")}
|
|
85
|
+
/>
|
|
86
|
+
</div>
|
|
87
|
+
);
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Utility classes
|
|
91
|
+
|
|
92
|
+
There are currently three utility CCS classes
|
|
93
|
+
|
|
94
|
+
- `color-props`
|
|
95
|
+
- `spacing-props`
|
|
96
|
+
- `text-props`
|
|
97
|
+
|
|
98
|
+
This utility CSS classes can be used like this
|
|
99
|
+
|
|
100
|
+
```js
|
|
101
|
+
const MyComponent = () => (
|
|
102
|
+
<div className="color-props" data-bg-color="primary">
|
|
103
|
+
<Button
|
|
104
|
+
appearance="primary"
|
|
105
|
+
className={["component-button", "spacing-props"].join(" ")}
|
|
106
|
+
data-margin-bottom="s"
|
|
107
|
+
/>
|
|
108
|
+
</div>
|
|
109
|
+
);
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
##### color-props
|
|
113
|
+
|
|
114
|
+
This CSS class will take names colours within the themes and applies them to the following data attributes
|
|
115
|
+
|
|
116
|
+
- `data-color`: the text and svg colour
|
|
117
|
+
- `data-bg-color`: the background colour
|
|
118
|
+
- `data-border-color`: the border colour
|
|
119
|
+
|
|
120
|
+
##### text-props
|
|
121
|
+
|
|
122
|
+
This CSS class will take theme values like named font weights (vlight, light, medum, normal, heavy), named font families (base, buttons, links, headings, labels) and named font sizes (xs, s, m, l, xl, xxl, xxxl ) specified in each theme, as well as word wrap, overflow wrap, text align etc following data attributes
|
|
123
|
+
|
|
124
|
+
- `data-word-break`: word-break
|
|
125
|
+
- `data-overflow-wrap`: overflow-wrßap
|
|
126
|
+
- `data-text-font-family`: sets font family using named font categories
|
|
127
|
+
- `data-text-weight`: sets font weight using names weight categories, matches HTML convention
|
|
128
|
+
- `data-text-size`: sets font size using named font sizes from themes
|
|
129
|
+
|
|
130
|
+
##### spacing-props
|
|
131
|
+
|
|
132
|
+
This CSS class will set the following named spacing values to different spacing CSS attributes.
|
|
133
|
+
The names spacing values are:
|
|
134
|
+
|
|
135
|
+
- `none`: 0;
|
|
136
|
+
- `auto`: auto;
|
|
137
|
+
- `xxxs`: 0.25rem; /_ 4px _/
|
|
138
|
+
- `xxs`: 0.5rem; /_ 8px _/
|
|
139
|
+
- `xs`: 1rem; /_ 16px _/
|
|
140
|
+
- `s`: 1.5rem; /_ 24px _/
|
|
141
|
+
- `m`: 2rem; /_ 32px _/
|
|
142
|
+
- `l`: 2.5rem; /_ 40px _/
|
|
143
|
+
- `xl`: 3rem; /_ 48px _/
|
|
144
|
+
- `xxl`: 3.5rem; /_ 56px _/
|
|
145
|
+
- `full`: 100%;
|
|
146
|
+
|
|
147
|
+
The attribute available are:
|
|
148
|
+
|
|
149
|
+
- `data-margin`: all margins
|
|
150
|
+
- `data-margin-vertical`: top and bottom margin
|
|
151
|
+
- `data-margin-horizontal`: left and right margin
|
|
152
|
+
- `data-margin-top`: top margin
|
|
153
|
+
- `data-margin-bottom`: bottom margin
|
|
154
|
+
- `data-margin-left`: left margin
|
|
155
|
+
- `data-margin-right`: right margin
|
|
156
|
+
- `data-padding`: all padding
|
|
157
|
+
- `data-padding-vertical`: top and bottom padding
|
|
158
|
+
- `data-padding-horizontal`: left and right padding
|
|
159
|
+
- `data-padding-top`: top padding
|
|
160
|
+
- `data-padding-bottom`: bottom padding
|
|
161
|
+
- `data-padding-left`: left padding
|
|
162
|
+
- `data-padding-right`: right padding
|
|
163
|
+
|
|
164
|
+
## Migration from V5 and V6 to V7
|
|
165
|
+
|
|
166
|
+
Styled Components has entered maintenance mode.
|
|
167
|
+
|
|
168
|
+
- The first phase was to uses CSS variables and data attributes on HTML elements for theming, instead of using Styled Components themes and ThemeProvider.
|
|
169
|
+
- The second phase was to convert components written in Styled Components into html and css modules and remove Styled Components.
|
|
170
|
+
|
|
171
|
+
### Themeing
|
|
172
|
+
|
|
173
|
+
So intstead of themeing like this
|
|
174
|
+
|
|
175
|
+
```tsx
|
|
176
|
+
import { Button, crukTheme } from "cruk-react-components";
|
|
177
|
+
import { ThemeProvider } from "styled-components";
|
|
178
|
+
|
|
179
|
+
const MyComponent = () => (
|
|
180
|
+
<ThemeProvider theme={crukTheme}>
|
|
181
|
+
<Button/>
|
|
182
|
+
<ThemeProvider />
|
|
183
|
+
);
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
you only need an html element with `data-theme="cruk"`, the inner most element with data-theme will override outer wrapping elements.
|
|
188
|
+
|
|
189
|
+
```tsx
|
|
190
|
+
const MyComponent = () => (
|
|
191
|
+
<span data-theme="su2c">
|
|
192
|
+
<Button/>
|
|
193
|
+
<span/>
|
|
194
|
+
);
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Components with theme dependent content
|
|
198
|
+
|
|
199
|
+
Because the new themeing strategy only effects CSS and not content, components which have theme specific content now have a required property of "themeName". This prop will have to be entered by the app that uses these components. The following components require the themeName prop:
|
|
200
|
+
|
|
201
|
+
- Avatar
|
|
202
|
+
- Header
|
|
203
|
+
- Footer
|
|
204
|
+
- UserBlock
|
|
205
|
+
- Modal\*
|
|
206
|
+
|
|
207
|
+
\* Modal is a special case, it needs themeName prop because the any theme provider will not work. Modals uses React Portals which places the elements in whole new html context.
|
|
208
|
+
|
|
209
|
+
### Theme variable naming conventions
|
|
210
|
+
|
|
211
|
+
Because the theme names now come from CSS variable instead of theme objects, the theme names that were camel cased, are now snake cased so `textDark` now becomes `text-dark`
|
|
212
|
+
|
|
35
213
|
## Migration from V4 to V5
|
|
36
214
|
|
|
37
215
|
Because Styped Components now manages its own types on stead of relying on the community efforts on the DefinitelyTyped project, you may need to use generics instead of inline prop type definition inside styledComponents componets.
|