@otovo/rainbow v4.18.0
🌈 Rainbow
Otovo's Design System
Getting started
- Install Rainbow and its peer dependencies
yarn add @otovo/rainbow @emotion/react @emotion/styled styled-system @styled-system/theme-get- Add the Rainbow theme your
app.js
import { ThemeProvider } from '@emotion/react';
import { theme } from '@otovo/rainbow';
/** Optionally add custom theme overrides */
const customTheme = {
...theme,
colors: {
...theme.colors,
blue_60: 'pink',
},
};
class App extends Component {
render() {
return (
<ThemeProvider theme={customTheme}>
<Page />
</ThemeProvider>
);
}
}- Go to town
import { H2, BodyM } from '@otovo/rainbow';
import styled from '@emotion/styled';
import { compose, color, space, border } from 'styled-system';
const CustomCard = styled.div`
${compose(color, space, border)}
`;
export default () => (
<CustomCard bg="green.10" p="4" mb="3" borderRadius="2">
<H2 color="green.4">Welcome...</H2>
<BodyM color="green.2">to Zombo.com</BodyM>
</CustomCard>
);
Bonus tip!
If your project already has babel set up, I highly recommend adding @emotion/babel-plugin to your project. It provides several benefits, such as added functionality, minification, dead code elimination, source maps. You can read more about it here.
- Add the dependency
yarn add --dev @emotion/babel-plugin- Add the following to
.babelrc
{
"plugins": ["@emotion"]
}Documentation 📚
To learn more about Rainbow, take a look at https://rainbow.otovo.com.
It might also be worth reading up on its dependencies, Emotion and Styled System.
Updates to Rainbow should be reflected in the rainbow-documentation repo.
Development 👩🏼💻
Before you start making changes to rainbow, you should set up a link to rainbow-documentation. This will make it a lot easier to test your changes. Linking the repo can be done as follows (assuming you have placed the repos in ~/projects):
cd ~/projects/rainbow
yarn link
cd ~/projects/rainbow-documentation
yarn link @otovo/rainbowAlternatively, if you're having trouble with yarn link (for instance when linking between a yarn@1.x repo with a yarn@2.x repo), you can check out yalc.
cd ~/projects/rainbow
yalc publish
cd ~/projects/rainbow-documentation
yalc add @otovo/rainbowGreat! You're almost set. To rebuild the distribution whenever you change something, run...
yarn devPsst! Remember to update the rainbow-documentation whenever you make changes to rainbow 🤓
Publishing 📦
To release a new version to NPM, run...
yarn run releaseThe script will hold your hand through the rest of the process. Remember to use semantic versioning.
Upgrade from v3.x to v4.x
Version 4 upgrades to emotion@11.x. This introduces some breaking changes. For instance @emotion/core is renamed to @emotion/react. Make sure to run:
yarn remove @emotion/core
yarn add @emotion/reactThen update all import statements in your project from @emotion/core to @emotion/react.
Also, get() is deprecated. Replace occurrences with alternative syntax:
/** Replace: */
css`
border-top: 1px solid ${get('colors.grey_1')};
`;
/** With: */
css`
border-top: 1px solid ${(props) => props.theme.colors.grey_1};
`;
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago