The Helios Design System provides the building blocks to design and implement consistent, accessible, and delightful product experiences across HashiCorp.
For guidelines on how to use Helios, see our documentation website.
Design System components in Ember.js
- npm package:
@hashicorp/design-system-components
- website: https://helios.hashicorp.design/components
- more info: see components/README and components/CONTRIBUTING.
Ember.js addon with <FlightIcon />
component
- npm package:
@hashicorp/ember-flight-icons
- website: https://helios.hashicorp.design/icons/library
- more info: see ember-flight-icons/README and ember-flight-icons/CONTRIBUTING for details on how to build and test the Ember.js addon.
Flight icons in different formats (SVG/SVG Sprite/React)
- npm package:
@hashicorp/flight-icons
- more info: see flight-icons/README and flight-icons/CONTRIBUTING for details on how to use the "sync/build" scripts that export the assets from Figma and generate a bundle of standalone SVG files.
Design tokens
- npm package:
@hashicorp/design-system-tokens
- website: https://helios.hashicorp.design/foundations/tokens
- more info: see tokens/README and tokens/CONTRIBUTING for details on how to update the design tokens.
This monorepo uses yarn workspaces to manage dependencies for all packages.
Run this command from the monorepo root:
yarn workspace <workspace-npm-package> add --dev <npm-package>
e.g. yarn workspace @hashicorp/design-system-components add --dev ember-cli-flash
Run this command from the monorepo root:
yarn workspace <workspace-npm-package> run ember install <npm-package>
e.g. yarn workspace @hashicorp/design-system-components run ember install ember-a11y-refocus
This project uses changesets to manage how changes will be released. Each user-facing change to a package should come with a changeset for each package that has changed.
To create a changeset, run and follow the prompts in your terminal:
yarn changeset
See the changeset docs for more information.
Note: If you want to ignore a changeset bump in terminal (e.g. major bump for selected "package x" is N/A, want a patch release), press return on the command line to skip that step. Press the spacebar to select that step.
Release PRs are created and automatically updated on every PR merge by the changeset GitHub action. Once we are ready to do a release, the PR – titled Version Packages
– can be approved and merged to main
, and the changes will be released to npm automatically.
You can simulate the versioning experience locally with this command:
yarn changeset version
For this step to complete successfully you'll need to keep in mind the following:
First, create a personal access token in GitHub. The name could be anything e.g. design-system
, with read:user
and repo:status
scopes, and then add the token to a .env
file in the project's root.
GITHUB_TOKEN=YOUR-TOKEN-HERE
Second, because this command relies on reading information about the change from GitHub, it only works if the changeset files already exist in PRs there. The best option for this is to target an existing PR branch (with a changeset) and run the command against that branch locally.
This project is licensed under the Mozilla Public License 2.0.
We use SemVer for versioning.