Collaborate with Designers
Learn how to use Jux CLI to pull design tokens, themes, and React components created by product designers into your codebase.
Getting Started with Jux
-
Log into Jux
Before you can pull tokens, themes, or components, you need to authenticate with your Jux account using the CLI. If you don’t have an account yet, please visit Jux.io to sign up.
This will open a new browser window for authentication.Terminal npx jux login -
Configure directories
Before you can start pull, you need to configure Jux in your codebase and define where to pull design tokens or components. This is done through a configuration file named
jux.config.ts
in your project root:jux.config.ts import { defineConfig } from '@juxio/cli';export default defineConfig({/* ... */tokens_directory: './src/jux/tokens',components_directory: './src/jux/components',definitions_directory: './src/jux/types',/* ... */});tokens_directory
: Specifies where to pull design tokens. If not provided, Jux will use a default location (./src/jux/tokens
).components_directory
: Specifies where to pull generated components. If not provided, Jux will use a default location (./src/jux/components
).definitions_directory
: Specifies the directory where type definitions will be generated. If not provided, Jux will use a default location (./src/jux/types
).
Make sure to adjust these paths and imports according to your project structure.
Pull Tokens and Themes
Jux allows product designers to define and manage design tokens and themes in your organization account. You can easily pull these into your codebase using the Jux CLI, ensuring that you’re always working with the latest design system elements.
Once you’ve configured Jux and logged in, you can pull the tokens and themes defined by your design team. The CLI will use the directories specified in your jux.config.ts
file:
npx jux pull tokens [OPTIONS]
This command will retrieve the design tokens and themes from your Jux editor and save them in your project, making them available for immediate use in your development process.
Options
-d, --definitions
: Generate token definitions after pull.
After running the jux pull tokens -d
command, your project structure will be updated to include the pulled design tokens and generated type definitions. Here’s what you can expect:
- jux.config.ts
Directorysrc
Directoryjux
Directorytokens
- core.ts All core tokens, shared across themes
- light.ts
- dark.ts
- index.ts A helper file that exports all tokens
Directorytypes
- tokens.d.ts Type definitions for design tokens
- …
Using Pulled Tokens in jux.config.ts
After pulling tokens from your Jux editor, you can use them in jux config file to define your project’s core tokens and themes. This integration ensures that your Jux configuration reflects the latest design system created by your design team.
import { defineConfig } from '@juxio/cli';import * as tokens from './src/jux/tokens';
export default defineConfig({ /* ... */ core_tokens: tokens.core, themes: { light: tokens.light, dark: tokens.dark, my_custom_theme: tokens.my_custom_theme, }, /* ... */});
For more information on how to use design tokens in your project, refer to the Tokens & Themes guide.
Pull Components
Jux enables designers to create reusable components that you can directly pull into your codebase and start using immediately. Here’s how to use the Jux CLI to pull these components:
To pull components from your Jux account, use the following command:
npx jux pull components [OPTIONS]
Options
-c, --components <value>...
: Pull specific components. You can specify multiple components by separating them with a space.
Examples
npx jux pull -c navbar sidebar dialog
npx jux pull components
This command will retrieve the specified components (or all components if no flags are used) and their dependencies from your Jux editor and save them in your project. All components pulled from Jux are fully typed and connected to your design tokens and themes.
- jux.config.ts
Directorysrc
Directoryjux
Directorycomponents
- Navbar.tsx
- Sidebar.tsx
- Dialog.tsx
Directorytokens
- …
Directorytypes
- tokens.d.ts Type definitions for design tokens
- …
Next steps
Get familiar with some of the core concepts that make Jux different compared to other styling solutions.