The Accessible Foundation for React Apps and Design Systems
reach-ui
The Accessible Foundation for React Apps and Design Systems.
Getting Started
This project uses
- Lerna to manage multiple libs
- Storybook for a great development experience
- Gatsby for a blazing fast website.
- Jest for painless testing.
Before doing anything else, run these commands:
git clone git@github.com:reach/reach-ui.git
cd reach-ui
yarn install
yarn bootstrap
yarn build
Root Repo Scripts:
yarn bootstrap # bootstraps lerna so all dependencies get
# linked for cross-component development
yarn start # starts storybook server
yarn test # runs tests in all packages
yarn build # builds all packages
yarn release # publishes changed packages
www
directory scripts
The website uses Gatsby v2 with Gatsby MDX powering most of the pages. It is deployed with now
yarn start # starts the website
yarn build # builds the production site to "public/"
yarn stage # deploys the site with now.sh
yarn deploy # alias the latest deploy to production
Running / Writing Examples
First do the steps in "Getting started", then start the Storybook server:
yarn start
Next, put a file in packages/<component-dir>/examples/<name>.example.js
and make it look like this:
import React from "react";
// The name of the example, you must export it as `name`
export let name = "Basic";
// The example to render, you must name it `Example`
export let Example = () => <div>Cool cool cool</div>;
Now you can edit the files in packages/*
and storybook will automatically reload your changes.
Note: If you change an internal dependency you will need to run yarn build
again. For example, if working on MenuButton
requires a change to Rect
(an internal dependency of MenuButton
), you will need to run yarn build
for the changes to Rect
to show up in your MenuButton
example.
Running / Writing Tests
First do the steps in "Getting Started", then:
yarn test
Or if you want to run the tests as you edit files:
yarn test --watch
Often you'll want to just test the component you're working on:
cd packages/<component-path>
yarn test --watch