Thank you very much for trying to improve our design system! To get you up on lightning speed with your contribution, here are some requirements that are needed for getting started.
- install Node.js
- start coding 🚀
To start contributing you need Node.js installed on your machine. For macOS users, we recommend doing that with nvm a node version manager. While Windows users should go with the LTS version of Node.js.
npm (Node Package Manager) is shipped with Node.js.
- Install npm dependencies
npm install
- Build the Barista components library
npm run build
The Barista repository has the following structure:
- apps:
- barista-design-system: the Barista design system.
- components-e2e: test app to run UI/e2e tests.
- demos: The preview app that includes all examples that get compiled and bundled for the Barista design system.
- dev: local development app to test components.
- fluid-dev: local development app to test web-components.
- universal: an app to verify that the components can be used in a serverside rendered context.
- concepts: describes some of the underlying concepts which are applied or will be applied in our Barista design system.
- documentation: additional documentation files.
- libs:
- barista-components: the Barista components library source code. There's a separate library for each component.
- examples: contains all examples of components which are used by the demo and the Barista design system app.
- fluid-elements: The new web components.
- shared: various shared libraries.
- testing: helpers for writing tests.
- tools: tooling- and ecosystem-related code like linting, releasing, etc.
- workspace: builders, schematics and scripts needed to build libraries, create them and run them in our CI environment.
- tools: more tooling- and ecosystem-related code for GitHub actions, style linting, etc.
Use the dev app (located in apps/dev
) for development of Barista components.
Start it using one of the following commands
npm run dev
Preferrably, let the CI run all of the checks for consistency. If you really need to run these locally make sure if it needs to be run with nx by investigating the library package.
Run unit tests for the parts that are affected by your changes
# Runs affected test files:
npm run test
Unit tests with watcher for local testing
npm run nx run alert:test -- --watch
UI Tests
npm run e2e
Universal build
npm run universal
Lint
npm run lint
A11y
nx run demos:a11y
To run the Barista examples app with all examples that will be used inside the Barista design system run
npm run demos
which generates all examples and starts the demos app.
If you want to run the design system itself including the demos embedded use
npm run barista