@ethereansos/interfaces-ui v0.4.34
Ethos UI
This package holds the design system and the complex components and widgets.
It should grow with all the components needed by the application.
Components
The available sample components are:
Styling
Styling
All the components are styled with postcss-modules.
Let's take the Button component as an example.
The stylesheet is in the button.modules.scss SASS file.
The name of all stylesheet files needs to be COMPONENT.modules.scss, where COMPONENT is the name of the component.
Every stylesheet should have a .root selector for the component, for example:
.root {
font-size: 15px;
font-weight: bold;
&.primary {
background-color: $color-primary;
}
&.secondary {
background-color: $color-secondary;
}
}To use this stylesheet, you need to import it and reference it as follows:
import classNames from 'classnames'
import style from './button.module.scss'
const Button = ({ text, onClick, variant, className }) => (
<button className={classNames(style['root'], style[variant], className)}>
Hello!
</button>
)To reference a stylesheet class from the component use style[CLASS].
The postcss-modules build will convert it into a class named 'dfo-ds_COMPONENT_CLASS, as defined in the rollup.config.js file.
So, for our button component, the name will be dfo-ds_button_root.
The classNames function imported by the classnames module converts the arguments into a string of space-separated classes.
The arguments can be of different types: see the module documentation for more information.
Storybook
Every component includes the stories for Storybook.
You can build Storybook with:
npm run build-storybookYou can launch Storybook with:
npm run storybookBuild
This package uses rollup to create the bundle.
To build the package, you can use the lerna scripts in the root project (build and build-dev), as stated in the root project documentation.
If you prefer to build only this package, just run:
npm run buildto simply build the package, or
npm run build:devto build and keep watching for changes.