@paul-bfi/bfi-design-system v0.2.125
๐ฝ BFI Design Sytem
CURRENTLY IN BETA. SOME THINGS MIGHT NOT WORK
The next-gen design system for the British Film Institute.
๐ฟ Demo and docs
๐ BFI design system is here.
This is a living documentation powered by Storybook, where you can see all the available components and their variations.
๐ฌ Using the design system
npm install bfi-design-system
// Install peer dependencies
npm install react react-dom styled-components @reach/routerImport the components you'd like to use into your app. For example:
import React from "react"
import { Card } from "bfi-design-system"
const MyComponent = () =>
<Card>My content</Card>Each component has documentation in the design system explaining the avaliable props, how to use it, and any guidence on using it.
๐ป Developing the design system
You need node and npm installed.
- Clone the repo and
npm i npm run devwill start up the Storybook playground and startrollupwatching for changes.
If you want, you can also include this repo in another app as if it were an npm package using npm link. This is great for developing both side-by-side.
How to publish a new version to NPM
- Ensure all tests pass with
npm test - If the snapshot tests are out of date due to changes in the components then ensure all is working and update them with
npx jest --updateSnapshot - Increment the next version number in the
package.jsonfile. npm publish. This will:- Run the tests
- Bundle and transpile the code
- Create and publish a tarball to NPM
- If you are wanting to utilise the updated design system, for example in the BFI
web frontendyou will then need to update the version number of the design system in thepackage.jsonfile within that repo.
๐งช Testing
We use jest and react-test-renderer to run snapshot tests on all components.
npm test runs all the tests.
If you make changes to the output of components, you can regenerate the snapshot files with jest --updateSnaphot.
The snapshot test cases themselves come from the same stories.jsx file colocated with each component.
๐งผ Linting
We use eslint and jsx-a11y to detect potential accessibility issues. Some code editors will automatically pick up problems, and it runs automatically with the jest tests, but you can also lint manually with npm run lint.
To-do list
- Add more add-ons to the Storybook playground
- Typescript support?
- Update the
styled-componentsdependency to ~5.0.0
4 years ago