Fractal is a tool to help you build and document web component libraries and design systems.
Read the full Fractal documentation
Component (or pattern) libraries are a way of designing and building websites in a modular fashion, breaking up the UI into small, reusable chunks that can then later be assembled in a variety of ways to build anything from larger components right up to whole pages.
Fractal helps you assemble, preview and document website component libraries, or even scale up to document entire design systems for your organisation.
Check out the documentation for more information.
You'll need a supported LTS version of Node. Fractal may work on unsupported versions, but there is no active support from Fractal and new features may not be backwards compatible with EOL versions of Node.
npm install @frctl/fractal --save-dev
Then create your fractal.config.js
file in the project root, and configure using the official documentation.
Then you can either run node_modules/.bin/fractal start
to start up the project, or create an alias under the scripts
section in your package.json as a shortcut.
e.g.
"scripts": {
"fractal:start": "fractal start --sync",
"fractal:build": "fractal build"
}
then
npm run fractal:start
npm i -g @frctl/fractal
This will also give you global access to the fractal
command which you can use to scaffold a new Fractal project with fractal new
.
The downside is that it's then difficult to use different Fractal versions on different projects.
This option is not recommended until a global Fractal install is capable of offloading to a project specific version.
There are currently known issues on Windows. See the following for more information and a temporary workaround:
- Note: If anyone uses Windows and wants to look into a more permanent fix, then PRs are welcome.
While there are no official examples or demo instances, there are lots of public examples on the Awesome Fractal repo.
Fractal has an active group of contributors but we are always looking for more help. If you are interested in contributing then please come and say hi on Fractal's Discord server.
Please note we have a code of conduct, please follow it in all your interactions with the project.
We use GitHub issues to track bugs and feature requests. Thank your for taking the time to submit your issue in one of our repositories.
If you rather have a question, please ask it on our Discord server.
We will always welcome pull requests on any of the frctl organisation repositories. Please submit PRs against master
branch with an explanation of your intention.
Fractal is a project that evolved rapidly and organically from a proof-of-concept prototype into a more stable, mature tool. Because of this it's currently pretty far behind where it should be in terms of test coverage. Any contributions on this front would be most welcome!
Existing tests can be run using the npm test
command.
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!