Skip to content
This repository has been archived by the owner on Mar 17, 2023. It is now read-only.

tenzir/ui-component-library

Tenzir UI Component Library

A ReasonML-first UI component library

Storybook CI NPM Version Development Status License

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.