A toolkit for working with filesystem-based component libraries.
This branch is for development of the work-in-progress Fractal v2.0 release. Feel free to play around with it but be warned that breaking changes are likely to happen until we get to a stable release candidate 🚀
For the current v1.x release codebase please switch to the master branch.
If you are curious about the v2 beta then please read the overview first to get a feel for the scope and current status of the current beta release.
Please be aware that until the beta period is complete major (breaking) changes may still be made. Where possible we will of course try to avoid this but please do not yet start building your production codebase on these early v2 beta versions unless you are prepared to spend time and effort updating between potentially unstable releases.
To get up and running with a sample project then there is some early documentation available in the docs directory of this repository:
- v2 overview and current beta status
- Getting started
- Project configuration
- Components, variants and scenarios
- View templates
- Plugins and transforms
You may also want to check out the default starter project repo to get a feel for how some of the pieces fit together. (This repo is cloned when creating a new project via the fractal-beta new
command).
Fractal v2 requires Node v8.0+ (LTS) to run.
We are moving development of Fractal v2.0 and all first-party add-ons into a 'monorepo' format, using Lerna to help manage linking and publishing individual packages within the monorepo.
- Clone this repository
- Install dependencies -
npm install
- Bootstrap the packages together using Lerna -
npm run bootstrap
Code is linted via xo/eslint using the Fractal eslint config, and tests are written using Mocha & Chai.
Test can be run with npm test
. There are also NPM package scripts available for running subsets of the tests if required.
Fractal is developed and maintained by Danielle Huntrods, Mark Perkins and all our other excellent contributors.
Ongoing support by Clearleft makes this project possible. Thank you!