A Swift command line tool for generating source code from sketch files
MIT License
snake_cased
, and camelCased
, UPPERCASED
, lowercased
, and Capitalized
namesSketchGen + Example/styles.sketch + Example/templates = Example/generated
After installation
git clone [email protected]:omaralbeik/SketchGen.git
cd SketchGen
sketchgen generate -s Example/styles.sketch ~/Desktop/Output Example/templates -v
open ~/Desktop/Output
Check generated source code in
Desktop/Output
brew tap omaralbeik/formulae
brew install sketchgen
mint install omaralbeik/SketchGen
git clone https://github.com/omaralbeik/SketchGen.git
cd SketchGen
make install
git clone https://github.com/omaralbeik/SketchGen.git
cd SketchGen
swift run sketchgen
Add the following to your Package.swift file's dependencies:
.package(url: "https://github.com/omaralbeik/SketchGen.git", from: "0.1.0"),
And then import wherever needed: import SketchGen
sketchkit parse <.sketch file path> <destination path>
# Example:
## Parse a a file named styles.sketch in Desktop and create a context.json in Desktop
sketchkit parse ~/Desktop/styles.sketch ~/Desktop
sketchkit generate -s <.sketch file path> <destination path> <templates folder path>
# Example:
## Parse a file named styles.sketch in Desktop and create source code
## in Desktop/generated, using templates in /Desktop/templates folder:
sketchkit generate -s ~/Desktop/styles.sketch ~/Desktop/generated ~/Desktop/templates
sketchkit generate -c <context.json file path> <destination path> <templates folder path>
# Example:
## Parse a context file named context.json in Desktop and create source code
## in Desktop/generated, using templates in /Desktop/templates folder:
sketchkit generate -c ~/Desktop/context.json ~/Desktop/generated ~/Desktop/templates
-v |
--verbose |
Log tech details for nerds |
-h |
--help |
Show help information |
SketchGen expect the followingin your Sketch file:
Layer Type | Prefix | Examples of Valid Names |
---|---|---|
Color |
gen_color_ |
gen_color_primary , gen_color_dark_blue
|
Shadow |
gen_shadow_ |
gen_shadow_small , gen_shadow_extra_large
|
Font |
gen_font_ |
gen_font_body , gen_font_heading_1
|
Border |
gen_border_ |
gen_border_small , gen_border_extra_large
|
Radius |
gen_radius_ |
gen_radius_small , gen_radius_extra_large
|
See Example/styles.sketch for an example.
Templates are written in Stencil templating language.
On top of Stencil's built-in filters, snakecased
and camelcased
filters are added for more flexible source code generation.
See Example/templates for examples for Swift, ObjC, CSS, and XML templates.
SketchGen is released under the MIT license. See LICENSE for more information.