@chakra-ui/cli
Version:
Generate theme typings for autocomplete
113 lines (78 loc) • 2.95 kB
Markdown
# @chakra-ui/cli
Generate TypeScript types to provide autocomplete for your custom theme and add
components and blocks to your project.
## Commands
### Type Generation
Generate TypeScript types for your custom theme:
```sh
npx @chakra-ui/cli tokens <path/to/your/theme.(js|ts)>
```
or
```sh
npx @chakra-ui/cli tokens <@your-org/chakra-theme-package>
```
```sh
$ npx @chakra-ui/cli tokens --help
Usage: chakra-cli tokens [options] <source>
Options:
--out <path> output file e.g. node_modules/@chakra-ui/styled-system/dist/declarations/src/theming.types.d.ts
--strict-component-types Generate strict types for props variant and size
--strict-token-types Generate strict types for theme tokens (e.g. color, spacing)
--no-format Disable auto formatting
--watch [path] Watch directory for changes and rebuild
--template <template> Choose the template to use for the generation (choices: "default", "augmentation", default: "default"
-h, --help display help for command
Example call:
$ chakra-cli tokens theme.ts
```
> Note 🚨: If you delete the `node_modules` directory, you'll need to re-run the
> command to get proper typings again.
For convenience, you can add a `postinstall` script to your `package.json`, so
you don't have to think about this every time you re-install your dependencies.
```json title="package.json"
"scripts": {
"gen:theme-typings": "chakra-cli tokens <path/to/your/theme.(js|ts)>",
"postinstall": "npm run gen:theme-typings"
}
```
### Snippets
Add community-driven snippets to your project:
```sh
# Add recommended snippets
npx @chakra-ui/cli snippet add
# Add specific snippets
npx @chakra-ui/cli snippet add provider toaster
# List available snippets
npx @chakra-ui/cli snippet list
```
### Pro Blocks
Add premium blocks from Chakra UI Pro to your project:
```sh
# Interactive block selection
npx @chakra-ui/cli blocks add
# Add all variants of a specific block
npx @chakra-ui/cli blocks add hero
# Add a specific variant of a block
npx @chakra-ui/cli blocks add hero --variant "simple"
# List available blocks
npx @chakra-ui/cli blocks list
# List blocks in a specific category
npx @chakra-ui/cli blocks list --category "marketing"
```
#### Pro Blocks Setup
To use Pro blocks, you need a Chakra UI Pro API key:
1. Get your API key from [Chakra UI Pro](https://pro.chakra-ui.com)
2. Set the environment variable:
```sh
export CHAKRA_UI_PRO_API_KEY="your-api-key"
```
Or create a `.env` file in your project root:
```env
CHAKRA_UI_PRO_API_KEY=your-api-key
```
#### Pro Blocks Options
- `--variant <variant>`: Add a specific variant instead of all variants
- `--outdir <dir>`: Specify output directory for blocks
- `--force`: Overwrite existing files
- `--dry-run`: Preview what will be downloaded without writing files
- `--tsx`: Force TypeScript JSX format (auto-detected by default)