Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mitolog/dtcgen
a cli tool generating asset catalog for iOS project from figma.
https://github.com/mitolog/dtcgen
codegenerator figma ios swift typescript xcassets
Last synced: 4 months ago
JSON representation
a cli tool generating asset catalog for iOS project from figma.
- Host: GitHub
- URL: https://github.com/mitolog/dtcgen
- Owner: mitolog
- License: apache-2.0
- Created: 2019-07-04T06:55:06.000Z (over 5 years ago)
- Default Branch: dev
- Last Pushed: 2023-03-03T03:46:30.000Z (almost 2 years ago)
- Last Synced: 2024-10-05T08:12:41.232Z (4 months ago)
- Topics: codegenerator, figma, ios, swift, typescript, xcassets
- Language: TypeScript
- Homepage:
- Size: 15 MB
- Stars: 20
- Watchers: 5
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: Changelog.md
- License: LICENSE
Awesome Lists containing this project
README
dtcgen
Generate xcassets from Figma.
![](https://raw.githubusercontent.com/wiki/mitolog/dtcgen/images/dtcgen_cover_small.png)
## Requirements
- node version >= 14.15.4
- Figma design file
- Figma shared library ( for `dtcgen style` command )## Install
```zsh
yarn global add dtcgen
# or
npm install -g dtcgen
```## How to use
1. create config files with `dtcgen init` , then fill out required parameters in `.env` file
2. `dtcgen slice` to generate Image Set of xcassets
3. `dtcgen style` to generate Color Set of xcassets\*) If you installed locally, prepend `npx` before `dtcgen`.
## Available parameters on `dtc.config.json`
### slice
| prop name | type | description |
| -------------- | -------- | ------------------------------------------------------------------------- |
| caseSensitive | boolean | set true if you want keyword to be case sensitive. |
| keywords | string[] | multiple keywords included in components' names that you want to extract. |
| extension | string | the file extension to be extracted. currently supporting [pdf/svg/png]. |
| sliceAllImages | boolean | set true if you want to extract all images within a design file as png. |
| scales | number[] | set scales you want to extract. but it's valid only on 'png' extension. |numbers that you can specify to scales are as below:
| | scales |
| ----- | ---------- |
| figma | 1, 2, 3, 4 |#### more detail about `keywords` parameter
Assuming you want to retrieve icons as xcassets-ready files, and icons have defined under `Icons / ***` already. Then, you need to add `icons` or `Icons` (if caseSensitive) to keywords within `dtc.config.json` . So you can retrieve all icons under that.
\*) Spaces in between will be eliminated on generating assets. Then **`/` is treated as a folder on generation.**
### style
| prop name | type | description |
| --------------- | ------- | ------------------------------------------------------------ |
| color.isEnabled | boolean | set true if you want to extract and generate color xcassets. |## Templates
All templates use `namespace` . You can modify templates as you like once you get your own templates folder created automatically after first command execution. You can specify your own template folder by `.env` file.
### slice
- [iconName.imageset](https://github.com/mitolog/dtcgen/blob/master/templates/ios/XcodeProjectTemplate/projectName/Assets.xcassets/intermediateDirectory/iconName.imageset)
- universal
- if `extension` is png, create multiple scaled images from 1x to 4x as specified by `scales` .
- if `extension` is svg or pdf, it will check `Preserve Vector Data` .\*) If something wrong, deleting `OUTPUT_PATH/extracted` folder would fix the issue ( `OUTPUT_PATH` is defined in `.env` ).
### style
- [colorName.colorset](https://github.com/mitolog/dtcgen/tree/master/templates/ios/XcodeProjectTemplate/projectName/Assets.xcassets/intermediateDirectory/colorName.colorset)
- universal
- use srgb
- support Any appearance / Dark mode## Changelog
https://github.com/mitolog/dtcgen/blob/master/Changelog.md
## LICENSE
apache2.0