Tenzir UI Component Library
A ReasonML-first UI component library
Introduction — Getting Started — Contributing Guidelines — License
Introduction
Most UI-Libraries for use with ReasonML have bindings to existing UI-Libraries. Wanting to be fully type-safe without outdated component bindings, leveraging things like pattern-matching along the way, we decided to build our own UI-Library, ReasonML-first. We will continually build on this and add components as we need them. This means components may be missing, or lack support of all the web API's needed in your specific use-case. We encourage contribution (Contributing Guidelines) in these cases.
Components
The following components are currently built.
- Button
- Card (optionally with a tabbed header)
- Checkbox
- Icons - A script generates bindings for React Icons. We currently generate bindings to a subset that includes just the Feather Icons (MIT licensed).
- Input
- Textarea
- Loader
- Alert
- Dropdown
- Dropdown with Action Button
- Segment
- Notifications
- Slider
- Tabs
Preview here: Tenzir-Ui-Component-Library
Getting Started
Installation
Add dependency:
yarn add tenzir-ui-component-library
Add the library to the bs-dependencies
in your bsconfig.json
:
{
...
"bs-dependencies": ["tenzir-ui-component-library"]
}
Contributing / Development
We develop the components application agnostically with the help of Storybook. The ReasonML code is compiled first and is then imported as plain Javascript in the Storybook stories.
Install dependencies:
yarn
Start ReasonML compiler with file-watcher:
yarn start
Start Storybook server (should be ran simultaniously):
yarn server
License
Tenzir UI-Component Library comes with a 3-clause BSD license.