The Handoff cli allows you to interact with your Figma file and Handoff app via the command line. It allows you to run handoff in any folder with no other configuration or setup.
The CLI will allow you to fetch all data from Figma, build the documentation app and run a local dev site. For these use the build, fetch, and serve commands documented below.
The CLI will allow you to build the various kinds of configurations that you will need for interacting with Figma. Handoff has sane configuration defaults but the various kinds of configurations can be tailored or extended.
Handoff has 4 configuration files -
handoff.config.json
- Defines the general handoff configuration.
pages
- Markdown files that will create or customize pages in the documentation
app
exportables
- JSON schemas for each component in your figma file that you
want to pull into handoff.
integration
- scss mappings and html templates for making it easy to map
handoff tokens to your frontend framework.
The CLI exposes two ways to manage the config - make
and eject
.
Eject commands will take the default configuration and eject them into the current working directory. If you customize these configurations, then run handoff commands in that directory, these configs will be executed. Make commands will generate a boilerplate configuration in the current working directory. This is useful for extending handoff for different components or integrations.
Node 16+
npm install -g handoff-app
handoff-app --help
Usage: handoff-app
Commands: fetch [opts] - Fetches the design tokens from the design system
build - Using the current tokens, build various outputs build:app [opts] - Builds the design system static application build:integration [opts] - Builds current selected integration, styles and previews
start [opts] - Starts the design system in development mode
make
make:exportable
eject - Ejects the default entire configuration to the current directory eject:config [opts] - Ejects the default configuration to the current directory eject:integration [opts] - Ejects the default integration to the current directory eject:exportables [opts] - Ejects the default exportables to the current directory eject:pages [opts] - Ejects the default pages to the current directory
Options: -c, --config [file] Define the path to the config file -d, --debug Show debug logs -h, --help Show this help message -v, --version Show the handoff version number