The Accessible Foundation for React Apps and Design Systems.
kentcdodds and ryanflorence fix react-dom imports
react-dom does not use named exports and when rollup attempts to bundle
these files it gives the following error:

[!] Error: 'render' is not exported by ../../node_modules/react-dom/index.js
node_modules/@reach/alert/es/index.js (19:9)
18: import React from "react";
19: import { render } from "react-dom";
20: import Component from "@reach/component-component";
21: import VisuallyHidden from "@reach/visually-hidden";
Latest commit 2a20f45 Oct 4, 2018

Welcome to Reach UI Development ♿️

Thanks for getting involved with Reach UI development!

Looking for the documentation?

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

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