├── .gitignore ├── .jshintrc ├── .netlify └── state.json ├── .tm_properties ├── README.md ├── assets └── favicon.ico ├── base ├── .jshintrc ├── base.css ├── boilerplate.js ├── fonts.css ├── init.js └── syntax-highlight.css ├── content ├── 404.hbs ├── api.hbs ├── extras.hbs ├── getting-started.hbs ├── index.hbs ├── modeling.hbs └── shapes.hbs ├── data └── made_with_examples.json ├── demos ├── .jshintrc ├── api-demos │ ├── anchor-copy-graph.js │ ├── anchor-copy.js │ ├── anchor-transform.js │ ├── dragger-rotate-sync.js │ ├── illo-drag-rotate-item.js │ ├── illo-element.js │ ├── illo-on-prerender.js │ ├── illo-resize.js │ ├── path-arc.js │ ├── path-bezier.js │ ├── shape-backface.js │ ├── shape-option.js │ ├── shape-update-path.js │ └── utils-ease-in-out.js ├── extras-demos │ ├── composite-scale-bug.js │ ├── kid-kit.js │ ├── one-pixel-gap-fix-zoom.js │ ├── one-pixel-gap-fix.js │ ├── z-fight-dot-cracker.js │ ├── z-fight-dot-sandwich.js │ └── z-fight-intro.js ├── modeling-demos │ ├── child-shapes.js │ ├── group-eye.js │ ├── group-wall.js │ ├── model-arms.js │ ├── model-body-core.js │ ├── model-head.js │ ├── model-legs.js │ ├── model-rotate-legs.js │ ├── model-rotate-spine.js │ └── tasty-burger.js └── starter-demos │ ├── starter-drag-rotate-spin.js │ ├── starter-drag-rotate.js │ ├── starter-initial.js │ ├── starter-rect.js │ └── starter-zoom.js ├── gulpfile.js ├── modules ├── .jshintrc ├── container │ └── container.css ├── docs │ ├── api-anchor.hbs │ ├── api-dragger.hbs │ ├── api-group.hbs │ ├── api-illo.hbs │ ├── api-shape.hbs │ ├── api-utils.hbs │ ├── api-vector.hbs │ ├── child-shapes-add-to.hbs │ ├── copy-example.hbs │ ├── copy-graph-example.hbs │ ├── group-concept.hbs │ ├── modeling-concepts.hbs │ ├── modeling-tutorial.hbs │ ├── shapes-basic.hbs │ ├── shapes-composite.hbs │ ├── shapes-shape.hbs │ └── vector-objects.hbs ├── edit-demo │ ├── edit-demo.css │ └── edit-demo.hbs ├── example │ ├── eval-shape-demo.js │ ├── eval-spin-demo.js │ └── example.css ├── gh-button │ ├── gh-button.css │ ├── gh-button.hbs │ └── gh-button.js ├── grid4 │ └── grid4.css ├── hashed-header │ └── hashed-header.css ├── hero │ ├── hero.css │ └── hero.hbs ├── illo-showcase │ ├── illo-showcase.css │ ├── illo-showcase.hbs │ └── illo-showcase.js ├── illo │ └── illo.css ├── made-with-showcase │ ├── made-with-showcase.css │ └── made-with-showcase.hbs ├── masthead │ └── masthead.css ├── nav │ └── nav.css ├── page-nav │ └── page-nav.css ├── site-footer │ ├── site-footer.css │ └── site-footer.hbs ├── site-nav │ ├── site-nav.css │ ├── site-nav.hbs │ └── site-nav.js ├── socks-promo │ ├── socks-promo.css │ └── socks-promo.hbs └── zdog-logo │ ├── zdog-logo.css │ ├── zdog-logo.hbs │ └── zdog-logo.js ├── netlify.toml ├── package-lock.json ├── package.json ├── tasks ├── assets.js ├── content.js ├── css.js ├── hint.js ├── js.js └── utils │ ├── get-glob-paths.js │ ├── highlight-code-block.js │ └── page-nav.js └── templates └── page.hbs /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | bower_components/ 3 | build/ 4 | **/fonts/* 5 | notes.md 6 | assets/img/* 7 | -------------------------------------------------------------------------------- /.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esversion": 6, 3 | "node": true, 4 | "undef": true, 5 | "unused": true 6 | } 7 | -------------------------------------------------------------------------------- /.netlify/state.json: -------------------------------------------------------------------------------- 1 | { 2 | "siteId": "a957cda4-9613-41ff-9b1d-b16843df6be8" 3 | } -------------------------------------------------------------------------------- /.tm_properties: -------------------------------------------------------------------------------- 1 | softTabs = true 2 | tabSize = 2 3 | excludeInFileChooser = "{$exclude,build,bower_components,node_modules}" 4 | excludeInFolderSearch = "{$exclude,build,bower_components,node_modules}" 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Zdog docs 2 | 3 | Documentation site for [Zdog](https://github.com/metafizzy/zdog) - Flat, round, designer-friendly pseudo 3D engine 4 | 5 | [zzz.dog](https://zzz.dog) 6 | 7 | ## Install 8 | 9 | Install dependencies with npm. 10 | 11 | ``` bash 12 | npm install 13 | ``` 14 | 15 | ## Tasks 16 | 17 | + `gulp` - build the production site, concatenate CSS and JS, minify JS 18 | + `gulp dev` - build the site, but use separate CSS and JS files for debugging 19 | + `gulp hint` - Lint JavaScript and JSON files 20 | 21 | ## Structure 22 | 23 | + `assets/` - files that get copied into `build/`. Fonts and images have been ignored from the repo 24 | + `base/` - boilerplate CSS and JS files 25 | + `build/` - where static site gets built 26 | + `content/` - page content 27 | + `data/` - site data 28 | + `demos/` - in-page demo modules, similar to modules 29 | + `modules/` - See Modules below 30 | + `tasks/` - Gulp tasks to build the site 31 | + `templates/` - page templates 32 | 33 | ## Modules 34 | 35 | Modules are re-usable components used throughout the site. A module may consist of template, JS, and CSS files. 36 | 37 | modules/ 38 | page-nav/ 39 | page-nav.css 40 | page-nav.js 41 | page-nav.hbs 42 | 43 | [BEM](https://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/) is used for CSS code style. 44 | 45 | ``` css 46 | .page-nav {} /* block */ 47 | .page-nav__item {} /* element, child */ 48 | .page-nav--dark {} /* modifier */ 49 | ``` 50 | 51 | JavaScript can be initialized for each element with `data-js` attribute. 52 | 53 | ``` html 54 |