PLASMA by WeWork
Plasma is a design system for creating sensible, modern interfaces.
Component docs at http://plasma.guide
Storybook at http://plasma.guide/dev/storybook
Select and Datepicker components do not work right now. Use react-select and datepicker directly in Spacestation.
Running Storybook
- Run the Plasma Webpack dev server: 
yarn start - Run the Storybook server: 
yarn storybook - Go to http://localhost:6006/ to view the Storybook
 
Developing with Storybook
- Follow steps above "Running Storybook"
 - Create a new dev branch: 
git checkout -b mybranch - Add / update as necessary
 - Add stories to the 
stories/directory as you add / update components! 
- Run 
yarn run styleguide. - Load up http://0.0.0.0:6060
 
- Run 
yarn run styleguide:build - Files output to /styleguide
 
- Run 
yarn flow:buildTypeDefs 
This will output flow-typed compatible definitions of Flow types for Plasma. For Spacestation, you likely want to yarn flow:buildTypeDefs | pbcopy (if on Mac) and paste the contents to the plasma_vx.x.x.js under flow-typed/
- Run 
./docs/publish.shfrom the root dir. This will update the docs, commit to gh-pages, and push to github (updating http://plasma.guide) 
Info here: https://react-styleguidist.js.org/docs/documenting.html
- When you're ready, push your branch to Github and create a pull request.
 - If you've made visual changes, include screenshots.
 - If you've made implementation changes, run 
yarn test:updateto update jest snapshots. - PR will be reviewed
 - When PR is accepted, it will be merged into master.
 - (Optional) If you also need to publish a new Plasma version, read that section.
 
- Create a separate PR or bump the npm version in the feature branch, do not publish from master.
 - Run 
yarn run packto bundle the .js and .css file into/distfolder. - Run 
npm version patch. This will bump the version in package.json and create a new tag and push the tag to Github. - Make sure you're logged in to NPM via 
npm login. login is in 1password, when prompted for email please use: [email protected] - Run 
npm publishfrom the root directory to publish to NPM registry. - Check https://www.npmjs.com/~wework-dev to make sure package is updated.
 
- In your terminal, 
cdto local Plasma repo. - Run 
yarn link. cdto local Spacestation repo.- Run 
yarn link @wework-dev/plasma. This creates a symlink in Spacestation'snode_modules/@wework-dev/plasmafolder that points to local Plasma repo. - (Optional) If you need to, you can unlink at any time with 
yarn unlink @wework-dev/plasma 
- Create a new Plasma dev branch: 
cd /plasmagit checkout -b mybranch - Run the Plasma dev server with watch: 
yarn watch - Save any changes in Plasma, webpack should bundle changes in 
/dist - Run Spacestion: 
cd /spacestationyarn start - Changes you make in Plasma should automatically be picked up by Spacestation
 - Follow "Creating a Pull Request / Publishing"
 
- 
Run
yarn add @wework-dev/plasmain your project. - 
Include the Plasma object (or individual components) in your Javascript. Plasma object example:
import Plasma from '@wework-dev/plasma'; <Plasma.Button label="Click it" />;
Individual components example:
import { Button } from '@wework-dev/plasma'; <Button label="Click it" />;
 
For testing, Plasma uses Jest (https://facebook.github.io/jest/) with Enzyme (http://airbnb.io/enzyme/).
Tests are located in src/tests.
Flow coverage can be checked via yarn flow:coverage.
- Run 
yarn testfor a single run oryarn test:watchto watch for changes.