@ethereansos/interfaces-ui

This package holds the design system and the complex components and widgets.

Usage no npm install needed!

<script type="module">
  import ethereansosInterfacesUi from 'https://cdn.skypack.dev/@ethereansos/interfaces-ui';
</script>

README

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-storybook

You can launch Storybook with:

npm run storybook

Build

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 build

to simply build the package, or

npm run build:dev

to build and keep watching for changes.