├── .gitignore ├── .gitmodules ├── .npmignore ├── Gemfile ├── Gemfile.lock ├── Kickstart.otf ├── README.md ├── bower.json ├── build.rb ├── config.rb ├── core └── js-alc │ ├── app.js │ ├── buffer.js │ ├── buttons.js │ ├── debouncer.js │ ├── docs.js │ ├── dropdown.js │ ├── growl.js │ ├── icons.js │ ├── index.js │ ├── ks.js │ ├── modal.js │ ├── navbar.js │ ├── status.js │ ├── tabs.js │ ├── tests.js │ └── throttler.js ├── gulp ├── tasks │ ├── browserSync.js │ ├── browserify.js │ ├── build.js │ ├── bundle-tests.js │ ├── coffee.js │ ├── default.js │ ├── docs │ │ ├── browserSync.js │ │ ├── browserify.js │ │ ├── bundle-kickstart.js │ │ ├── bundle-tests.js │ │ ├── coffee.js │ │ ├── icons.js │ │ ├── iframes.js │ │ ├── images.js │ │ ├── jade.js │ │ ├── minify.js │ │ ├── rails.js │ │ ├── sass.js │ │ ├── setWatch.js │ │ ├── test.js │ │ ├── todo.js │ │ └── watch.js │ ├── images.js │ ├── jade.js │ ├── minify.js │ ├── sass.js │ ├── setWatch.js │ ├── test.js │ ├── todo.js │ └── watch.js └── util │ ├── bundleLogger.js │ └── handleErrors.js ├── gulpfile.js ├── lib-core ├── coffee │ ├── app.coffee │ ├── buffer.coffee │ ├── buttons.coffee │ ├── debouncer.coffee │ ├── docs.coffee │ ├── dropdown.coffee │ ├── growl.coffee │ ├── icons.coffee │ ├── index.coffee │ ├── ks.coffee │ ├── modal.coffee │ ├── navbar.coffee │ ├── status.coffee │ ├── tabs.coffee │ ├── tests.coffee │ └── throttler.coffee ├── jade │ ├── index.jade │ ├── layout.jade │ ├── mixins.jade │ └── tests │ │ └── index.jade ├── readme.md ├── sass │ ├── core │ │ ├── _animations.sass │ │ ├── _base.sass │ │ ├── _base_components.sass │ │ ├── _dependent_components.sass │ │ ├── _direct-apply.sass │ │ ├── _grid.sass │ │ ├── _icons.sass │ │ ├── _index.sass │ │ ├── _mixins.sass │ │ ├── _normalize.sass │ │ ├── _root-element.sass │ │ ├── _typography.sass │ │ └── components │ │ │ ├── _alerts.sass │ │ │ ├── _buttons.sass │ │ │ ├── _containers.sass │ │ │ ├── _dropdown_menu.sass │ │ │ ├── _forms.sass │ │ │ ├── _growls.sass │ │ │ ├── _hr.sass │ │ │ ├── _labels.sass │ │ │ ├── _modals.sass │ │ │ ├── _navbar.sass │ │ │ ├── _notifications.sass │ │ │ ├── _pagination.sass │ │ │ ├── _progress.sass │ │ │ ├── _tables.sass │ │ │ ├── _tabs.sass │ │ │ └── _tooltips.sass │ ├── themes │ │ └── default │ │ │ └── theme.sass │ └── vendor │ │ └── _index.sass ├── svgs │ ├── lg │ │ ├── bar.svg │ │ ├── fizz.svg │ │ ├── foo.svg │ │ └── house.svg │ ├── rg │ │ ├── bar.svg │ │ ├── fizz.svg │ │ ├── foo.svg │ │ └── house.svg │ └── sm │ │ ├── bar.svg │ │ ├── fizz.svg │ │ ├── foo.svg │ │ └── house.svg └── tests │ ├── buffer.coffee │ ├── debouncer.coffee │ ├── default.coffee │ ├── dropdown-buttons.coffee │ ├── growl.coffee │ ├── modal.coffee │ ├── navbar.coffee │ ├── post.coffee │ ├── status.coffee │ └── tabs.coffee ├── lib-docs ├── coffee │ ├── app.coffee │ ├── docs.coffee │ ├── markdown.js │ ├── navbar-fixer.coffee │ └── tests.coffee ├── icons.fog ├── icons │ ├── apple-touch-icon-114x114.png │ ├── apple-touch-icon-120x120.png │ ├── apple-touch-icon-144x144.png │ ├── apple-touch-icon-152x152.png │ ├── apple-touch-icon-180x180.png │ ├── apple-touch-icon-57x57.png │ ├── apple-touch-icon-60x60.png │ ├── apple-touch-icon-72x72.png │ ├── apple-touch-icon-76x76.png │ ├── apple-touch-icon-precomposed.png │ ├── apple-touch-icon.png │ ├── favicon-160x160.png │ ├── favicon-16x16.png │ ├── favicon-192x192.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── favicon.ico │ ├── mstile-144x144.png │ ├── mstile-150x150.png │ ├── mstile-310x150.png │ ├── mstile-310x310.png │ └── mstile-70x70.png ├── iframes │ ├── buffer │ │ ├── buffer.html │ │ ├── buffer_edge.js │ │ ├── buffer_edgeActions.js │ │ ├── buffer_edgePreload.js │ │ ├── images │ │ │ ├── cloud-down.png │ │ │ ├── cloud-up.png │ │ │ └── rocket.png │ │ └── js │ │ │ └── jquery-2.0.3.min.js │ ├── debouncer │ │ ├── debouncer.html │ │ ├── debouncer_edge.js │ │ ├── images │ │ │ ├── cloud-down.png │ │ │ ├── cloud-up.png │ │ │ └── rocket.png │ │ └── js │ │ │ └── jquery-2.0.3.min.js │ ├── layout-fixed │ │ ├── fixed.html │ │ ├── fixed_edge.js │ │ ├── fixed_edgeActions.js │ │ └── fixed_edgePreload.js │ ├── layout-fluid-fixed │ │ ├── fluid-fixed.html │ │ ├── fluid-fixed_edge.js │ │ ├── fluid-fixed_edgeActions.js │ │ └── fluid-fixed_edgePreload.js │ ├── layout-fluid │ │ ├── fluid.html │ │ ├── fluid_edge.js │ │ ├── fluid_edgeActions.js │ │ └── fluid_edgePreload.js │ └── throttler │ │ ├── throttler.html │ │ ├── throttler_edge.js │ │ ├── throttler_edgeActions.js │ │ └── throttler_edgePreload.js ├── img │ ├── Untitled-Regular.otf │ ├── arrow.png │ ├── everythingio.svg │ ├── framework_logos.ai │ ├── framework_logos.jpg │ ├── hero.jpg │ ├── html5css3.jpg │ ├── icon.png │ ├── jekyll.png │ ├── jscss.jpg │ ├── jscss.png │ ├── kickstart-black.png │ ├── kickstart-k.svg │ ├── kickstart.png │ ├── kickstart.svg │ ├── maxcdn.png │ ├── mountains.png │ ├── nav_fluid-fixed.png │ ├── nav_fluid.png │ ├── nav_none.png │ ├── nodejs.png │ ├── preview.png │ ├── rubyonrails.png │ ├── spain.png │ ├── steps │ │ ├── 1.png │ │ ├── 10.png │ │ ├── 11.png │ │ ├── 12.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── 7.png │ │ ├── 8.png │ │ └── 9.png │ └── ui.png ├── jade │ ├── 3.x-layouts │ │ ├── _fullpage-layout.jade │ │ ├── _header.jade │ │ └── _layout.jade │ ├── 4.x-layouts │ │ ├── _fullpage-layout.jade │ │ ├── _header.jade │ │ └── _layout.jade │ ├── _mixins.jade │ ├── about │ │ └── index.jade │ ├── amadeus │ │ └── index.jade │ ├── docs │ │ ├── 1.x │ │ │ └── index.jade │ │ ├── 2.x │ │ │ └── index.jade │ │ ├── 3.x │ │ │ ├── _header.jade │ │ │ ├── _includes │ │ │ │ ├── grid │ │ │ │ │ └── _responsive.jade │ │ │ │ ├── layout │ │ │ │ │ └── _blocks_and_components.jade │ │ │ │ ├── navigation │ │ │ │ │ ├── _coloring.jade │ │ │ │ │ ├── _dropdowns.jade │ │ │ │ │ └── _responsive.jade │ │ │ │ ├── quickstart │ │ │ │ │ ├── _firing_on_ready.jade │ │ │ │ │ ├── _jekyll.jade │ │ │ │ │ └── _quickstart_header.jade │ │ │ │ └── typography │ │ │ │ │ └── _sizes.jade │ │ │ ├── _layout.jade │ │ │ ├── adding-extensions │ │ │ │ └── index.jade │ │ │ ├── creating-extensions │ │ │ │ └── index.jade │ │ │ ├── fullpage-layout.jade │ │ │ ├── functions │ │ │ │ ├── element-selector │ │ │ │ │ └── index.jade │ │ │ │ ├── extend │ │ │ │ │ └── index.jade │ │ │ │ ├── index.jade │ │ │ │ └── throttling │ │ │ │ │ └── index.jade │ │ │ ├── grid │ │ │ │ └── index.jade │ │ │ ├── index.jade │ │ │ ├── theming │ │ │ │ └── index.jade │ │ │ └── ui │ │ │ │ ├── alerts │ │ │ │ └── index.jade │ │ │ │ ├── buttons │ │ │ │ └── index.jade │ │ │ │ ├── containers │ │ │ │ └── index.jade │ │ │ │ ├── forms │ │ │ │ └── index.jade │ │ │ │ ├── icons-hidden │ │ │ │ └── index.jade │ │ │ │ ├── icons │ │ │ │ └── index.jade │ │ │ │ ├── index.jade │ │ │ │ ├── labels │ │ │ │ └── index.jade │ │ │ │ ├── modals │ │ │ │ └── index.jade │ │ │ │ ├── navigation │ │ │ │ └── index.jade │ │ │ │ ├── notifications │ │ │ │ └── index.jade │ │ │ │ ├── tables │ │ │ │ └── index.jade │ │ │ │ ├── tabs │ │ │ │ └── index.jade │ │ │ │ ├── tooltips │ │ │ │ └── index.jade │ │ │ │ └── typography │ │ │ │ └── index.jade │ │ ├── 4.x │ │ │ ├── _layout.jade │ │ │ ├── advanced │ │ │ │ ├── adding-extensions │ │ │ │ │ └── index.jade │ │ │ │ ├── creating-extensions │ │ │ │ │ └── index.jade │ │ │ │ ├── functions │ │ │ │ │ ├── extend │ │ │ │ │ │ └── index.jade │ │ │ │ │ ├── index.jade │ │ │ │ │ └── throttling │ │ │ │ │ │ └── index.jade │ │ │ │ ├── index.jade │ │ │ │ └── theming │ │ │ │ │ └── index.jade │ │ │ ├── fullpage-layout.jade │ │ │ ├── headers │ │ │ │ ├── _advanced.jade │ │ │ │ ├── _page-generator.jade │ │ │ │ └── _ui_library.jade │ │ │ ├── index.jade │ │ │ ├── page-generator │ │ │ │ └── index.jade │ │ │ ├── tutorial │ │ │ │ └── layout │ │ │ │ │ └── index.jade │ │ │ └── ui │ │ │ │ ├── components │ │ │ │ ├── alerts │ │ │ │ │ └── index.jade │ │ │ │ ├── buttons │ │ │ │ │ └── index.jade │ │ │ │ ├── containers │ │ │ │ │ └── index.jade │ │ │ │ ├── forms │ │ │ │ │ └── index.jade │ │ │ │ ├── icons-hidden │ │ │ │ │ └── index.jade │ │ │ │ ├── icons │ │ │ │ │ └── index.jade │ │ │ │ ├── labels │ │ │ │ │ └── index.jade │ │ │ │ ├── modals │ │ │ │ │ └── index.jade │ │ │ │ ├── navigation │ │ │ │ │ └── index.jade │ │ │ │ ├── notifications │ │ │ │ │ └── index.jade │ │ │ │ ├── tables │ │ │ │ │ └── index.jade │ │ │ │ ├── tabs │ │ │ │ │ └── index.jade │ │ │ │ └── tooltips │ │ │ │ │ └── index.jade │ │ │ │ ├── index.jade │ │ │ │ ├── layout │ │ │ │ └── grid │ │ │ │ │ └── index.jade │ │ │ │ ├── tutorial │ │ │ │ └── .keep │ │ │ │ └── typography │ │ │ │ └── index.jade │ │ └── index.jade │ ├── index.jade │ └── tests │ │ ├── index.jade │ │ ├── layout.jade │ │ └── static.jade ├── rails │ ├── Gemfile │ ├── LICENSE │ ├── README.md │ ├── Rakefile │ ├── app │ │ └── assets │ │ │ ├── javascripts │ │ │ ├── kickstart_rails.js │ │ │ └── kickstart_rails │ │ │ │ └── .keep │ │ │ └── stylesheets │ │ │ ├── index.scss │ │ │ └── kickstart_rails.scss │ ├── kickstart_rails.gemspec │ └── lib │ │ ├── kickstart_rails.rb │ │ └── kickstart_rails │ │ └── version.rb ├── readme.md ├── sass │ ├── chosen-theme.sass │ ├── docs.sass │ ├── fullpage.sass │ ├── kickstart.sass │ ├── pages │ │ ├── docs │ │ │ ├── form.sass │ │ │ ├── grid.sass │ │ │ ├── index.sass │ │ │ └── ui │ │ │ │ ├── alerts.sass │ │ │ │ ├── buttons.sass │ │ │ │ ├── containers.sass │ │ │ │ ├── forms.sass │ │ │ │ ├── icons.sass │ │ │ │ ├── labels.sass │ │ │ │ ├── modals.sass │ │ │ │ ├── navigation.sass │ │ │ │ ├── notifications.sass │ │ │ │ ├── tables.sass │ │ │ │ ├── tabs.sass │ │ │ │ ├── tooltips.sass │ │ │ │ └── typography.sass │ │ └── index.sass │ ├── themes │ │ └── default │ │ │ └── theme.sass │ └── vendor │ │ └── _index.sass └── tests │ └── default.coffee ├── lib ├── coffee │ ├── app.coffee │ ├── myscript.coffee │ ├── tests.coffee │ └── vendor │ │ └── index.coffee ├── img │ └── .keep ├── jade │ ├── index.jade │ ├── layout.jade │ └── tests │ │ └── index.jade ├── js │ └── .keep ├── readme.md ├── sass │ ├── style.sass │ ├── themes │ │ └── default │ │ │ └── theme.sass │ └── vendor │ │ └── _index.sass └── tests │ └── default.coffee ├── makefile ├── package.json ├── raw ├── Illustrations │ └── nav.ai ├── Kickstart.fog ├── animation.antmpl ├── buffer.an ├── buffer.html ├── buffer_edge.js ├── buffer_edgeActions.js ├── buffer_edgePreload.js ├── debouncer.an ├── debouncer.html ├── debouncer_edge.js ├── debouncer_edgeActions.js ├── debouncer_edgePreload.js ├── edge_includes │ └── edge.5.0.0.min.js ├── fixed.an ├── fixed.html ├── fixed_edge.js ├── fixed_edgeActions.js ├── fixed_edgePreload.js ├── fluid-fixed.an ├── fluid-fixed.html ├── fluid-fixed_edge.js ├── fluid-fixed_edgeActions.js ├── fluid-fixed_edgePreload.js ├── fluid.an ├── fluid.html ├── fluid_edge.js ├── fluid_edgeActions.js ├── fluid_edgePreload.js ├── images │ ├── cloud-down.png │ ├── cloud-up.png │ └── rocket.png ├── js │ └── jquery-2.0.3.min.js ├── throttler.an ├── throttler.html ├── throttler_edge.js ├── throttler_edgeActions.js └── throttler_edgePreload.js └── rsync-exclude.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /public 3 | /docs 4 | npm-debug.log 5 | node_modules 6 | /raw/publish 7 | bower_components 8 | .sass-cache 9 | *.gem 10 | *.bundle 11 | *.so 12 | *.o 13 | *.a 14 | /rails 15 | mkmf.log 16 | kickstart.js 17 | kickstart.min.js 18 | kickstart.css 19 | kickstart.min.css 20 | 21 | lib-docs/sass/themes/serenity 22 | lib-docs/sass/themes/strands 23 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/sass/vendor/switch"] 2 | path = lib/sass/vendor/switch 3 | url = https://github.com/adamjgrant/switch.git 4 | [submodule "lib-docs/sass/vendor/switch"] 5 | path = lib-docs/sass/vendor/switch 6 | url = https://github.com/adamjgrant/switch.git 7 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | /public 2 | /rails 3 | /docs 4 | /lib-docs 5 | node_modules 6 | /raw/publish 7 | bower_components 8 | .sass-cache 9 | *.gem 10 | *.bundle 11 | *.so 12 | *.o 13 | *.a 14 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'sass', '= 3.4.5' 4 | gem 'fssm' 5 | gem 'gem-release' 6 | # gem 'compass', '>= 1.0.0.rc.1' 7 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | fssm (0.2.10) 5 | gem-release (0.7.3) 6 | sass (3.4.5) 7 | 8 | PLATFORMS 9 | ruby 10 | 11 | DEPENDENCIES 12 | fssm 13 | gem-release 14 | sass (= 3.4.5) 15 | -------------------------------------------------------------------------------- /Kickstart.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/Kickstart.otf -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kickstart", 3 | "version": "3.1.1", 4 | "homepage": "https://github.com/adamjgrant/kickstart", 5 | "authors": [ 6 | "Adam Grant " 7 | ], 8 | "description": "The CSS Library that Loves to Be Extended", 9 | "license": "MIT", 10 | "ignore": [ 11 | "**/.*", 12 | "node_modules", 13 | "bower_components", 14 | "test", 15 | "tests" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /config.rb: -------------------------------------------------------------------------------- 1 | # Compass Config 2 | preferred_syntax = :sass 3 | http_path = '/' 4 | css_dir = 'public/css/' 5 | sass_dir = 'lib/sass' 6 | images_dir = 'lib/images' 7 | fonts_dir = 'public/fonts' 8 | relative_assets = true 9 | line_comments = true 10 | -------------------------------------------------------------------------------- /core/js-alc/app.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var Buffer, Buttons, Debounce, Dropdown, Growl, Icons, KS, Modal, Navbar, Status, Tabs, Throttler; 3 | 4 | KS = require('./ks'); 5 | 6 | Modal = require('./modal'); 7 | 8 | Navbar = require('./navbar'); 9 | 10 | Debounce = require('./debouncer'); 11 | 12 | Icons = require('./icons'); 13 | 14 | Status = require('./status'); 15 | 16 | Tabs = require('./tabs'); 17 | 18 | Throttler = require('./throttler'); 19 | 20 | Buttons = require('./buttons'); 21 | 22 | Buffer = require('./buffer'); 23 | 24 | Growl = require('./growl'); 25 | 26 | Dropdown = require('./dropdown'); 27 | 28 | k$.ready = function() { 29 | var $navbar, $tabSet, i, j, len, len1, ref, ref1, results; 30 | k$.icons(); 31 | k$.button(); 32 | k$.dropdown(); 33 | ref = k$.$$('[data-ks-navbar]'); 34 | for (i = 0, len = ref.length; i < len; i++) { 35 | $navbar = ref[i]; 36 | k$.nav($navbar); 37 | } 38 | ref1 = k$.$$('[data-ks-tabs]'); 39 | results = []; 40 | for (j = 0, len1 = ref1.length; j < len1; j++) { 41 | $tabSet = ref1[j]; 42 | results.push(k$.tabs($tabSet)); 43 | } 44 | return results; 45 | }; 46 | 47 | document.addEventListener('DOMContentLoaded', function() { 48 | return k$.ready(); 49 | }); 50 | 51 | }).call(this); 52 | -------------------------------------------------------------------------------- /core/js-alc/buffer.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var buffer; 3 | 4 | buffer = function(fn, delay) { 5 | var i; 6 | k$.bufferArray = k$.bufferArray || new Array(); 7 | if (!k$.bufferArray.length) { 8 | k$.bufferArray = new Array(); 9 | delay = delay || 500; 10 | i = 1; 11 | k$.bufferInterval = setInterval(function() { 12 | if (k$.bufferArray[i]) { 13 | k$.bufferArray[i](); 14 | } 15 | i++; 16 | if (i >= k$.bufferArray.length) { 17 | clearInterval(k$.bufferInterval); 18 | k$.bufferArray = void 0; 19 | return i = 1; 20 | } 21 | }, delay); 22 | } 23 | k$.bufferArray.push(fn); 24 | if (k$.bufferArray.length === 1) { 25 | k$.bufferArray[0](); 26 | } 27 | return console.info("Function queued (" + k$.bufferArray.length + " in queue)"); 28 | }; 29 | 30 | k$.buffer = buffer; 31 | 32 | module.exports = buffer; 33 | 34 | }).call(this); 35 | -------------------------------------------------------------------------------- /core/js-alc/buttons.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var button; 3 | 4 | button = function() { 5 | var $button, $buttonDropdown, i, j, len, len1, ref, ref1, results; 6 | ref = k$.$$("button"); 7 | for (i = 0, len = ref.length; i < len; i++) { 8 | $button = ref[i]; 9 | if ($button.querySelectorAll('ul').length) { 10 | $button.classList.add('menu-item'); 11 | } 12 | } 13 | ref1 = k$.$$('.button-dropdown'); 14 | results = []; 15 | for (j = 0, len1 = ref1.length; j < len1; j++) { 16 | $buttonDropdown = ref1[j]; 17 | results.push($buttonDropdown.parentNode.classList.add('menu-item')); 18 | } 19 | return results; 20 | }; 21 | 22 | k$.button = button; 23 | 24 | module.exports = button; 25 | 26 | }).call(this); 27 | -------------------------------------------------------------------------------- /core/js-alc/debouncer.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var debounce; 3 | 4 | debounce = function(fn, id, delay, args, that) { 5 | delay = delay || 1000; 6 | that = that || this; 7 | args = args || new Array; 8 | if (typeof k$.debounceQueue[id] !== "object") { 9 | k$.debounceQueue[id] = new Object(); 10 | } 11 | if (typeof k$.debounceQueue[id].debounceTimer !== "undefined") { 12 | clearTimeout(k$.debounceQueue[id].debounceTimer); 13 | } 14 | return k$.debounceQueue[id] = { 15 | fn: fn, 16 | id: id, 17 | delay: delay, 18 | args: args, 19 | debounceTimer: setTimeout(function() { 20 | k$.debounceQueue[id].fn.apply(that, k$.debounceQueue[id].args); 21 | return k$.debounceQueue[id] = void 0; 22 | }, delay) 23 | }; 24 | }; 25 | 26 | k$.debounce = debounce; 27 | 28 | module.exports = debounce; 29 | 30 | }).call(this); 31 | -------------------------------------------------------------------------------- /core/js-alc/dropdown.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var dropdown; 3 | 4 | dropdown = function() { 5 | return document.body.addEventListener('click', function(e) { 6 | var $menuItem, closeAllMenus, openMenu; 7 | $menuItem = null; 8 | closeAllMenus = function() { 9 | var _$menuItem, i, len, ref, results; 10 | ref = k$.$$('.menu-item'); 11 | results = []; 12 | for (i = 0, len = ref.length; i < len; i++) { 13 | _$menuItem = ref[i]; 14 | results.push(_$menuItem.classList.remove('open')); 15 | } 16 | return results; 17 | }; 18 | openMenu = function() { 19 | if ($menuItem.classList.contains('open')) { 20 | $menuItem.classList.remove('open'); 21 | } else { 22 | closeAllMenus(); 23 | $menuItem.classList.add('open'); 24 | } 25 | return e.stopPropagation(); 26 | }; 27 | if (e.target.classList.contains('menu-item')) { 28 | $menuItem = e.target; 29 | return openMenu(); 30 | } else if (e.target.parentNode.classList.contains('menu-item')) { 31 | $menuItem = e.target.parentNode; 32 | return openMenu(); 33 | } else { 34 | closeAllMenus(); 35 | } 36 | }); 37 | }; 38 | 39 | k$.dropdown = dropdown; 40 | 41 | module.exports = dropdown; 42 | 43 | }).call(this); 44 | -------------------------------------------------------------------------------- /core/js-alc/growl.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var growl; 3 | 4 | growl = function(params) { 5 | return k$.buffer(function() { 6 | var className, content, defaults, delay, growlContainer, id; 7 | defaults = { 8 | title: void 0, 9 | text: void 0, 10 | delay: 2000, 11 | type: 'growl-warn', 12 | id: Date.now() 13 | }; 14 | params = k$.extend(defaults, params); 15 | if (!k$.$$('.growl_container').length) { 16 | growlContainer = document.createElement('div'); 17 | growlContainer.className = 'growl_container'; 18 | document.body.appendChild(growlContainer); 19 | } 20 | growl = document.createElement('div'); 21 | className = "alert growl show " + params.type + " growl-" + params.id; 22 | growl.className = className; 23 | content = ""; 24 | if (params.title) { 25 | content += "

" + params.title + "

"; 26 | } 27 | if (params.text) { 28 | content += "

" + params.text + "

"; 29 | } 30 | growl.innerHTML = content; 31 | k$.$('.growl_container').appendChild(growl); 32 | delay = params.delay; 33 | id = params.id; 34 | if (delay > 0) { 35 | return (function(delay, id) { 36 | return setTimeout(function() { 37 | var $growl, $newGrowl; 38 | $growl = k$.$(".growl-" + id); 39 | $growl.classList.remove('show'); 40 | $newGrowl = $growl.cloneNode(true); 41 | $growl.parentNode.replaceChild($newGrowl, $growl); 42 | $newGrowl.classList.add('hide'); 43 | return (function(delay, id) { 44 | return setTimeout(function() { 45 | if (!k$.$$('.growl.show').length) { 46 | return k$.$('.growl_container').parentNode.removeChild(k$.$('.growl_container')); 47 | } 48 | }, 500); 49 | })(delay, id); 50 | }, delay); 51 | })(delay, id); 52 | } 53 | }); 54 | }; 55 | 56 | k$.growl = growl; 57 | 58 | module.exports = growl; 59 | 60 | }).call(this); 61 | -------------------------------------------------------------------------------- /core/js-alc/index.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var $button, slide1, slide2, slide3, typeOut; 3 | 4 | $button = k$.$('#preview-button'); 5 | 6 | typeOut = function(str, container, cb, startWith) { 7 | var _str, i; 8 | i = 0; 9 | _str = ""; 10 | return this.interval = setInterval(function() { 11 | i++; 12 | _str = str.substr(0, i); 13 | container.innerHTML = startWith + _str.replace(/&/g, '&').replace(//g, '>').replace(/\|/g, '
').replace(/\+/g, '').replace(/\*/g, '').replace(/%/g, ' '); 14 | if (i > str.length - 1) { 15 | clearInterval(this.interval); 16 | return cb(); 17 | } 18 | }, 75); 19 | }; 20 | 21 | slide3 = function() { 22 | var slide3TO; 23 | $button.classList.add('button'); 24 | $button.classList.add('button-primary'); 25 | return slide3TO = setTimeout(function() { 26 | $button.classList.remove('button'); 27 | $button.classList.remove('button-primary'); 28 | clearTimeout(slide3TO); 29 | return slide1(); 30 | }, 1200); 31 | }; 32 | 33 | slide2 = function() { 34 | var slide2TO; 35 | $button.classList.add('button'); 36 | $button.classList.add('button-primary'); 37 | return slide2TO = setTimeout(function() { 38 | $button.classList.remove('button'); 39 | $button.classList.remove('button-primary'); 40 | typeOut('||.+cta* {|%%@include button($primary-color);|}', k$.$('#source'), slide3, "<!-- OR define your own -->

"); 41 | return clearTimeout(slide2TO); 42 | }, 1200); 43 | }; 44 | 45 | slide1 = function() { 46 | return typeOut('', k$.$('#source'), slide2, "<!-- Use predefined classes -->

"); 47 | }; 48 | 49 | slide1(); 50 | 51 | }).call(this); 52 | -------------------------------------------------------------------------------- /core/js-alc/ks.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | global.k$ = new Object(); 3 | 4 | k$.$$ = function(el) { 5 | return document.querySelectorAll(el); 6 | }; 7 | 8 | k$.$ = function(el) { 9 | return k$.$$(el)[0]; 10 | }; 11 | 12 | k$.extend = function(destination, source) { 13 | var property; 14 | for (property in source) { 15 | if (source[property] && source[property].constructor && source[property].constructor === Object) { 16 | destination[property] = destination[property] || {}; 17 | arguments.callee(destination[property], source[property]); 18 | } else { 19 | destination[property] = source[property]; 20 | } 21 | } 22 | return destination; 23 | }; 24 | 25 | k$.debounceQueue = new Object; 26 | 27 | module.exports = k$; 28 | 29 | }).call(this); 30 | -------------------------------------------------------------------------------- /core/js-alc/modal.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var modal; 3 | 4 | modal = function(el) { 5 | var iOS = /(iPad|iPhone|iPod)/g.test( navigator.userAgent ); 6 | if (iOS) { 7 | document.body.classList.add('dismiss-modal'); 8 | } 9 | (function(el) { 10 | var $closer, $hideModal; 11 | $hideModal = function() { 12 | return k$.$(el).style.display = 'none'; 13 | }; 14 | document.body.addEventListener('click', function() { 15 | return $hideModal(); 16 | }); 17 | k$.$(el).addEventListener('click', function(e) { 18 | return e.stopPropagation(); 19 | }); 20 | $closer = k$.$(el).querySelector('a[data-modal-close]'); 21 | if ($closer) { 22 | return $closer.addEventListener('click', function() { 23 | return $hideModal(); 24 | }); 25 | } 26 | })(el); 27 | return k$.$(el); 28 | }; 29 | 30 | k$.modal = modal; 31 | 32 | module.exports = modal; 33 | 34 | }).call(this); 35 | -------------------------------------------------------------------------------- /core/js-alc/navbar.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var nav; 3 | 4 | nav = function(el) { 5 | var $button, $menuItem, $menuItems, $navbar, _$menuItems, e, i, j, len, len1; 6 | $navbar = typeof el === 'string' ? k$.$(el) : el; 7 | try { 8 | $menuItems = $navbar.querySelectorAll('ul > li'); 9 | _$menuItems = new Array(); 10 | for (i = 0, len = $menuItems.length; i < len; i++) { 11 | $menuItem = $menuItems[i]; 12 | if ($menuItem.querySelectorAll('ul').length && !$menuItem.querySelectorAll('[role="button"]').length) { 13 | _$menuItems.push($menuItem); 14 | } 15 | } 16 | $menuItems = _$menuItems; 17 | for (j = 0, len1 = $menuItems.length; j < len1; j++) { 18 | $menuItem = $menuItems[j]; 19 | $menuItem.classList.add('menu-item'); 20 | } 21 | } catch (_error) { 22 | e = _error; 23 | console.error("Could not instantiate as a nav.", e.message); 24 | } 25 | $button = $navbar.querySelector('.navbar-title button'); 26 | if ($button) { 27 | return $button.addEventListener('click', function() { 28 | var $nav; 29 | $nav = $navbar.querySelector('nav'); 30 | if ($nav.classList.contains('expand')) { 31 | return $nav.classList.remove('expand'); 32 | } else { 33 | return $nav.classList.add('expand'); 34 | } 35 | }); 36 | } 37 | }; 38 | 39 | k$.nav = nav; 40 | 41 | module.exports = nav; 42 | 43 | }).call(this); 44 | -------------------------------------------------------------------------------- /core/js-alc/status.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var status; 3 | 4 | status = function(opts) { 5 | var $status, $statusBar, defaults, hideStatusBar; 6 | defaults = { 7 | type: 'status-yellow', 8 | delay: 2000 9 | }; 10 | status = k$.extend(defaults, opts); 11 | if (!k$.$$('#status_bar').length) { 12 | $statusBar = document.createElement('div'); 13 | $statusBar.id = 'status_bar'; 14 | $statusBar.className = 'status_bar'; 15 | $statusBar.innerHTML = "
"; 16 | document.body.appendChild($statusBar); 17 | } 18 | $statusBar = k$.$('#status_bar'); 19 | hideStatusBar = function() { 20 | $statusBar.classList.add('hide'); 21 | return setTimeout(function() { 22 | $statusBar.classList.remove('hide'); 23 | return $statusBar.parentNode.removeChild($statusBar); 24 | }, 250); 25 | }; 26 | if (status.delay > 0) { 27 | k$.debounce(hideStatusBar, 'hideStatusBar', status.delay); 28 | } 29 | $status = k$.$("#status_bar-status"); 30 | $status.innerHTML = status.text; 31 | return $status.dataset.type = status.type; 32 | }; 33 | 34 | k$.status = status; 35 | 36 | module.exports = status; 37 | 38 | }).call(this); 39 | -------------------------------------------------------------------------------- /core/js-alc/tabs.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var tabs; 3 | 4 | tabs = function(el) { 5 | var $_tab, $id, $pane, $paneSet, $tab, $tabContainer, $tabLink, $tabSet, i, j, k, len, len1, len2, results; 6 | $tabContainer = typeof el === 'string' ? k$.$(el) : el; 7 | $tabSet = $tabContainer.querySelectorAll('li'); 8 | for (i = 0, len = $tabSet.length; i < len; i++) { 9 | $tab = $tabSet[i]; 10 | $tab.classList.add('tab-item'); 11 | } 12 | $paneSet = new Array(); 13 | for (j = 0, len1 = $tabSet.length; j < len1; j++) { 14 | $_tab = $tabSet[j]; 15 | $id = $_tab.querySelector('a').getAttribute('href'); 16 | $pane = k$.$("article" + $id); 17 | if ($_tab.classList.contains('open')) { 18 | $pane.classList.add('open'); 19 | } 20 | $paneSet.push($pane); 21 | $pane.setAttribute('data-panel', true); 22 | } 23 | results = []; 24 | for (k = 0, len2 = $tabSet.length; k < len2; k++) { 25 | $tab = $tabSet[k]; 26 | $tabLink = $tab.querySelector('a'); 27 | $tabLink.setAttribute('data-link', $tabLink.getAttribute('href')); 28 | $tabLink.href = 'javascript:void(0);'; 29 | results.push((function($tab, $tabLink, $paneSet) { 30 | return $tab.addEventListener('click', function() { 31 | var _$tab, l, len3, len4, m; 32 | for (l = 0, len3 = $paneSet.length; l < len3; l++) { 33 | $pane = $paneSet[l]; 34 | $pane.classList.remove('open'); 35 | } 36 | for (m = 0, len4 = $tabSet.length; m < len4; m++) { 37 | _$tab = $tabSet[m]; 38 | _$tab.classList.remove('open'); 39 | } 40 | k$.$("article" + ($tabLink.getAttribute('data-link'))).classList.add('open'); 41 | return $tab.classList.add('open'); 42 | }); 43 | })($tab, $tabLink, $paneSet)); 44 | } 45 | return results; 46 | }; 47 | 48 | k$.tabs = tabs; 49 | 50 | module.exports = tabs; 51 | 52 | }).call(this); 53 | -------------------------------------------------------------------------------- /core/js-alc/tests.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var App, testBuffer, testDebouncer, testDef, testDropdownButtons, testGrowl, testModal, testNavbar, testPost, testStatus, testTabs; 3 | 4 | App = require('./app'); 5 | 6 | testDef = require('./tests/default'); 7 | 8 | testModal = require('./tests/modal'); 9 | 10 | testNavbar = require('./tests/navbar'); 11 | 12 | testGrowl = require('./tests/growl'); 13 | 14 | testDropdownButtons = require('./tests/dropdown-buttons'); 15 | 16 | testTabs = require('./tests/tabs'); 17 | 18 | testStatus = require('./tests/status'); 19 | 20 | testDebouncer = require('./tests/debouncer'); 21 | 22 | testBuffer = require('./tests/buffer'); 23 | 24 | testPost = require('./tests/post'); 25 | 26 | }).call(this); 27 | -------------------------------------------------------------------------------- /core/js-alc/throttler.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | var throttle; 3 | 4 | throttle = function(fn, id, delay) {}; 5 | 6 | k$.throttle = throttle; 7 | 8 | module.exports = throttle; 9 | 10 | }).call(this); 11 | -------------------------------------------------------------------------------- /gulp/tasks/browserSync.js: -------------------------------------------------------------------------------- 1 | var browserSync = require('browser-sync'); 2 | var gulp = require('gulp'); 3 | 4 | gulp.task('browserSync', ['build'], function() { 5 | browserSync.init(['./public/**'], { 6 | server: { 7 | baseDir: ['public', 'lib'] 8 | } 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /gulp/tasks/browserify.js: -------------------------------------------------------------------------------- 1 | var browserify = require('browserify'); 2 | var watchify = require('watchify'); 3 | var bundleLogger = require('../util/bundleLogger'); 4 | var gulp = require('gulp'); 5 | var handleErrors = require('../util/handleErrors'); 6 | var source = require('vinyl-source-stream'); 7 | 8 | // Bundle's the end user's scripts with kickstart.js 9 | gulp.task('browserify', function() { 10 | var bundler = browserify({ 11 | // Required watchify args 12 | cache: {}, packageCache: {}, fullPaths: true, 13 | // Specify the entry point of your app 14 | entries: ['./lib/coffee/app.coffee'], 15 | // Add file extentions to make optional in your requires 16 | extensions: ['.coffee'], 17 | // Enable source maps! 18 | debug: true 19 | }); 20 | 21 | var bundle = function() { 22 | // Log when bundling starts 23 | bundleLogger.start(); 24 | 25 | return bundler 26 | .bundle() 27 | // Report compile errors 28 | .on('error', handleErrors) 29 | // Use vinyl-source-stream to make the 30 | // stream gulp compatible. Specifiy the 31 | // desired output filename here. 32 | .pipe(source('script.js')) 33 | // Specify the output destination 34 | .pipe(gulp.dest('./public/js/')) 35 | // Log when bundling completes! 36 | .on('end', bundleLogger.end); 37 | }; 38 | 39 | if(global.isWatching) { 40 | bundler = watchify(bundler); 41 | // Rebundle with watchify on changes. 42 | bundler.on('update', bundle); 43 | } 44 | 45 | return bundle(); 46 | }); 47 | -------------------------------------------------------------------------------- /gulp/tasks/build.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | // Build the core Kickstart components 4 | gulp.task('build', ['browserify', 'jade', 'images', 'sass', 'coffee', 'minify']); 5 | 6 | // Build the getkickstart.com documentation 7 | gulp.task('build:docs', ['bundleKickstart', 'docs:icons', 'docs:jade', 'docs:browserify', 'docs:images', 'docs:sass', 'docs:coffee', 'docs:rails', 'docs:iframes', 'docs:minify']); 8 | -------------------------------------------------------------------------------- /gulp/tasks/bundle-tests.js: -------------------------------------------------------------------------------- 1 | var mocha = require('gulp-mocha'); 2 | var gutil = require('gulp-util'); 3 | var browserify = require('browserify'); 4 | var watchify = require('watchify'); 5 | var bundleLogger = require('../util/bundleLogger'); 6 | var gulp = require('gulp'); 7 | var handleErrors = require('../util/handleErrors'); 8 | var source = require('vinyl-source-stream'); 9 | var todo = require('gulp-todos'); 10 | 11 | // Bundles tests with kickstart.js 12 | gulp.task('bundle-tests', function() { 13 | var bundler = browserify({ 14 | // Required watchify args 15 | cache: {}, packageCache: {}, fullPaths: true, 16 | // Specify the entry point of your app 17 | entries: ['./lib/coffee/tests.coffee'], 18 | // Add file extentions to make optional in your requires 19 | extensions: ['.coffee'], 20 | // Enable source maps! 21 | debug: true 22 | }); 23 | 24 | var bundle = function() { 25 | // Log when bundling starts 26 | bundleLogger.start(); 27 | return bundler 28 | .bundle() 29 | // Report compile errors 30 | .on('error', handleErrors) 31 | // Use vinyl-source-stream to make the 32 | // stream gulp compatible. Specifiy the 33 | // desired output filename here. 34 | // Specify the output destination 35 | .pipe(source('test.js')) 36 | .pipe(gulp.dest('./public/js/')) 37 | // Log when bundling completes! 38 | .on('end', bundleLogger.end); 39 | }; 40 | 41 | if(global.isWatching) { 42 | bundler = watchify(bundler); 43 | // Rebundle with watchify on changes. 44 | bundler.on('update', bundle); 45 | } 46 | 47 | return bundle(); 48 | }); 49 | -------------------------------------------------------------------------------- /gulp/tasks/coffee.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | gulpif = require('gulp-if'), 3 | uglify = require('gulp-uglify'), 4 | coffee = require('gulp-coffee'); 5 | 6 | gulp.task('coffee', function() { 7 | // Regular JS copying 8 | gulp.src(['./lib/js/**/*.js']) 9 | .pipe(gulp.dest('./public/js')) 10 | 11 | // Use this space to compile one-off coffeescript files instead of using require. 12 | }); 13 | -------------------------------------------------------------------------------- /gulp/tasks/default.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp') 2 | 3 | gulp.task('default', ['watch']); 4 | -------------------------------------------------------------------------------- /gulp/tasks/docs/browserSync.js: -------------------------------------------------------------------------------- 1 | var browserSync = require('browser-sync'); 2 | var gulp = require('gulp'); 3 | 4 | gulp.task('docs:browserSync', ['build:docs'], function() { 5 | browserSync.init(['./docs/**'], { 6 | server: { 7 | baseDir: ['docs', 'lib-docs'] 8 | } 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /gulp/tasks/docs/browserify.js: -------------------------------------------------------------------------------- 1 | var browserify = require('browserify'); 2 | var watchify = require('watchify'); 3 | var bundleLogger = require('../../util/bundleLogger'); 4 | var gulp = require('gulp'); 5 | var handleErrors = require('../../util/handleErrors'); 6 | var source = require('vinyl-source-stream'); 7 | 8 | gulp.task('docs:browserify', function() { 9 | var bundler = browserify({ 10 | // Required watchify args 11 | cache: {}, packageCache: {}, fullPaths: true, 12 | // Specify the entry point of your app 13 | entries: ['./lib-docs/coffee/app.coffee'], 14 | // Add file extentions to make optional in your requires 15 | extensions: ['.coffee'], 16 | // Enable source maps! 17 | debug: true 18 | }); 19 | 20 | var bundle = function() { 21 | // Log when bundling starts 22 | bundleLogger.start(); 23 | 24 | return bundler 25 | .bundle() 26 | // Report compile errors 27 | .on('error', handleErrors) 28 | // Use vinyl-source-stream to make the 29 | // stream gulp compatible. Specifiy the 30 | // desired output filename here. 31 | .pipe(source('docs.js')) 32 | // Specify the output destination 33 | .pipe(gulp.dest('./docs/js/')) 34 | // Log when bundling completes! 35 | .on('end', bundleLogger.end); 36 | }; 37 | 38 | if(global.isWatching) { 39 | bundler = watchify(bundler); 40 | // Rebundle with watchify on changes. 41 | bundler.on('update', bundle); 42 | } 43 | 44 | return bundle(); 45 | }); 46 | -------------------------------------------------------------------------------- /gulp/tasks/docs/bundle-kickstart.js: -------------------------------------------------------------------------------- 1 | var browserify = require('browserify'); 2 | var watchify = require('watchify'); 3 | var bundleLogger = require('../../util/bundleLogger'); 4 | var gulp = require('gulp'); 5 | var handleErrors = require('../../util/handleErrors'); 6 | var source = require('vinyl-source-stream'); 7 | 8 | // Bundles kickstart.js 9 | gulp.task('bundleKickstart', function() { 10 | var bundler = browserify({ 11 | // Required watchify args 12 | cache: {}, packageCache: {}, fullPaths: true, 13 | // Specify the entry point of your app 14 | entries: ['./lib-core/coffee/app.coffee'], 15 | // Add file extentions to make optional in your requires 16 | extensions: ['.coffee'], 17 | // Enable source maps! 18 | debug: true 19 | }); 20 | 21 | var bundle = function() { 22 | // Log when bundling starts 23 | bundleLogger.start(); 24 | 25 | return bundler 26 | .bundle() 27 | // Report compile errors 28 | .on('error', handleErrors) 29 | // Use vinyl-source-stream to make the 30 | // stream gulp compatible. Specifiy the 31 | // desired output filename here. 32 | .pipe(source('kickstart.js')) 33 | // Specify the output destination 34 | .pipe(gulp.dest('./docs/js/')) 35 | // Log when bundling completes! 36 | .on('end', bundleLogger.end); 37 | }; 38 | 39 | if(global.isWatching) { 40 | bundler = watchify(bundler); 41 | // Rebundle with watchify on changes. 42 | bundler.on('update', bundle); 43 | } 44 | 45 | return bundle(); 46 | }); 47 | -------------------------------------------------------------------------------- /gulp/tasks/docs/bundle-tests.js: -------------------------------------------------------------------------------- 1 | var mocha = require('gulp-mocha'); 2 | var gutil = require('gulp-util'); 3 | var browserify = require('browserify'); 4 | var watchify = require('watchify'); 5 | var bundleLogger = require('../../util/bundleLogger'); 6 | var gulp = require('gulp'); 7 | var handleErrors = require('../../util/handleErrors'); 8 | var source = require('vinyl-source-stream'); 9 | var todo = require('gulp-todos'); 10 | 11 | gulp.task('docs:bundle-tests', function() { 12 | var bundler = browserify({ 13 | // Required watchify args 14 | cache: {}, packageCache: {}, fullPaths: true, 15 | // Specify the entry point of your app 16 | entries: ['./lib-docs/coffee/tests.coffee'], 17 | // Add file extentions to make optional in your requires 18 | extensions: ['.coffee'], 19 | // Enable source maps! 20 | debug: true 21 | }); 22 | 23 | var bundle = function() { 24 | // Log when bundling starts 25 | bundleLogger.start(); 26 | return bundler 27 | .bundle() 28 | // Report compile errors 29 | .on('error', handleErrors) 30 | // Use vinyl-source-stream to make the 31 | // stream gulp compatible. Specifiy the 32 | // desired output filename here. 33 | // Specify the output destination 34 | .pipe(source('test.js')) 35 | .pipe(gulp.dest('./docs/js/')) 36 | // Log when bundling completes! 37 | .on('end', bundleLogger.end); 38 | }; 39 | 40 | if(global.isWatching) { 41 | bundler = watchify(bundler); 42 | // Rebundle with watchify on changes. 43 | bundler.on('update', bundle); 44 | } 45 | 46 | return bundle(); 47 | }); 48 | -------------------------------------------------------------------------------- /gulp/tasks/docs/coffee.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | gulpif = require('gulp-if'), 3 | uglify = require('gulp-uglify'), 4 | coffee = require('gulp-coffee'); 5 | 6 | gulp.task('docs:coffee', function() { 7 | gulp.src(['./lib-docs/coffee/navbar-fixer.coffee', './lib-docs/coffee/index.coffee', './lib-docs/js/**/*.js']) 8 | .pipe(gulpif(/[.]coffee$/, coffee())) 9 | .pipe(gulp.dest('./docs/js')); 10 | }) 11 | -------------------------------------------------------------------------------- /gulp/tasks/docs/icons.js: -------------------------------------------------------------------------------- 1 | var newer = require('gulp-newer'); 2 | var gulp = require('gulp'); 3 | 4 | gulp.task('docs:icons', function() { 5 | var dest = './docs/'; 6 | 7 | gulp.src('./lib-docs/icons/**/*') 8 | .pipe(newer(dest)) // Ignore unchanged files 9 | .pipe(gulp.dest(dest)); 10 | 11 | dest = './docs/svgs/'; 12 | 13 | return gulp.src('./lib-core/svgs/**/*') 14 | .pipe(gulp.dest(dest)); 15 | }); 16 | -------------------------------------------------------------------------------- /gulp/tasks/docs/iframes.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | gulp.task('docs:iframes', function() { 4 | gulp.src(['./lib-docs/iframes/**']) 5 | .pipe(gulp.dest('./docs/iframes')); 6 | }) 7 | -------------------------------------------------------------------------------- /gulp/tasks/docs/images.js: -------------------------------------------------------------------------------- 1 | var newer = require('gulp-newer'); 2 | var gulp = require('gulp'); 3 | var imagemin = require('gulp-imagemin'); 4 | 5 | gulp.task('docs:images', function() { 6 | var dest = './docs/img'; 7 | 8 | return gulp.src('./lib-docs/img/**/*') 9 | .pipe(newer(dest)) // Ignore unchanged files 10 | .pipe(gulp.dest(dest)); 11 | }); 12 | -------------------------------------------------------------------------------- /gulp/tasks/docs/jade.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | jade = require('gulp-jade'), 3 | icons = require('../../../docs/icons.js'), 4 | changed = require('gulp-cached'), 5 | fs = require('fs'); 6 | 7 | var dest = './docs'; 8 | 9 | gulp.task('docs:jade', function() { 10 | return gulp.src(['./lib-docs/jade/**/*.jade']) 11 | .pipe(changed(dest)) 12 | .pipe(jade({ 13 | locals: { 14 | currentVersion: '3.2 beta', 15 | docsVersion: '3.x', 16 | nextDocsVersion: '4.x', 17 | fs: fs, 18 | icons: icons 19 | } 20 | }) 21 | ) 22 | .pipe(gulp.dest(dest)); 23 | }); 24 | -------------------------------------------------------------------------------- /gulp/tasks/docs/minify.js: -------------------------------------------------------------------------------- 1 | // Create minified versions of js and css. 2 | 3 | var gulp = require('gulp'), 4 | rename = require('gulp-rename'), 5 | minify = require('gulp-minify-css'), 6 | changed = require('gulp-cached'), 7 | uglify = require('gulp-uglify'); 8 | 9 | gulp.task('docs:minify', ['docs:coffee', 'docs:browserify', 'docs:sass'], function() { 10 | var dest = './docs/js'; 11 | gulp.src(['./docs/js/**/*.js', '!./docs/js/**/*.min.js']) 12 | .pipe(changed(dest)) 13 | .pipe(uglify()) 14 | .pipe(rename(function(path) { 15 | path.basename += ".min" 16 | })) 17 | .pipe(gulp.dest(dest)); 18 | 19 | var dest = './docs/css'; 20 | gulp.src(['./docs/css/**/*.css', '!./docs/css/**/*.min.css']) 21 | .pipe(changed(dest)) 22 | .pipe(minify()) 23 | .pipe(rename(function(path) { 24 | path.basename += ".min" 25 | })) 26 | .pipe(gulp.dest(dest)); 27 | }) 28 | -------------------------------------------------------------------------------- /gulp/tasks/docs/rails.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | rename = require('gulp-rename'), 3 | mustache = require('gulp-mustache'); 4 | 5 | gulp.task('docs:rails', ['browserify', 'sass'], function() { 6 | gulp.src(['./lib-core/sass/**']) 7 | // Copy Sass library to rails-style directories. 8 | .pipe(gulp.dest('./rails/app/assets/stylesheets/kickstart_rails')); 9 | 10 | gulp.src(['./public/js/kickstart.js']) 11 | // Copy Sass library to rails-style directories. 12 | .pipe(gulp.dest('./rails/app/assets/javascripts/kickstart_rails')); 13 | 14 | }) 15 | -------------------------------------------------------------------------------- /gulp/tasks/docs/sass.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | sass = require('gulp-ruby-sass'), 3 | browserSync = require('browser-sync'), 4 | changed = require('gulp-cached'), 5 | purge = require('gulp-css-purge'), 6 | prefix = require('gulp-autoprefixer'); 7 | 8 | gulp.task('docs:sass', ['docs:images'], function() { 9 | var dest = './docs/css' 10 | return gulp.src(['lib-docs/sass/**/*.{sass, scss}', '!lib-docs/sass/vendor', '!lib-docs/sass/vendor/**']) 11 | .pipe(changed(dest)) 12 | .pipe(sass({ 13 | sourcemapPath: process.cwd() + './lib-docs/sass', 14 | loadPath: [ 15 | process.cwd() + '/lib-docs/sass', 16 | process.cwd() + '/lib-core/sass' 17 | ] 18 | })) 19 | .pipe(prefix('last 2 versions')) 20 | .pipe(purge()) 21 | .pipe(gulp.dest(dest)); 22 | }); 23 | -------------------------------------------------------------------------------- /gulp/tasks/docs/setWatch.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | gulp.task('docs:setWatch', function() { 4 | global.isWatching = true; 5 | }); 6 | -------------------------------------------------------------------------------- /gulp/tasks/docs/test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Additional test for PhantomJS. 3 | */ 4 | var gulp = require('gulp'); 5 | var mochaPhantomJS = require('gulp-mocha-phantomjs'); 6 | var coffee = require('gulp-coffee'); 7 | var expect = require('gulp-expect-file'); 8 | 9 | gulp.task('docs:test', ['docs:bundle-tests', 'docs:jade'], function() { 10 | var files = ['docs/tests/index.html'] 11 | gulp.src(files) 12 | .pipe(mochaPhantomJS({reporter: 'list'})) 13 | }); 14 | -------------------------------------------------------------------------------- /gulp/tasks/docs/todo.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | todo = require('gulp-todos'); 3 | 4 | gulp.task('todo', function() { 5 | return gulp.src(['./lib/coffee/**']) 6 | .pipe(todo()) 7 | .pipe(gulp.dest('./')); 8 | }); 9 | -------------------------------------------------------------------------------- /gulp/tasks/docs/watch.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | gulp.task('watch:docs', ['docs:setWatch', 'docs:browserSync'], function() { 4 | gulp.watch(['./lib-docs/sass/**/*.sass', './lib-core/sass/**/*.sass'], ['docs:sass', 'docs:minify']); 5 | gulp.watch('./lib-docs/images/**', ['docs:images']); 6 | gulp.watch(['./lib-docs/coffee/**/*.coffee'], ['docs:coffee', 'docs:minify']); 7 | gulp.watch('./lib-docs/jade/**/*.jade', ['docs:jade']); 8 | gulp.watch(['./lib-docs/jade/tests/**', './lib-docs/tests/**'], ['docs:test']); 9 | }); 10 | -------------------------------------------------------------------------------- /gulp/tasks/images.js: -------------------------------------------------------------------------------- 1 | var newer = require('gulp-newer'); 2 | var gulp = require('gulp'); 3 | var imagemin = require('gulp-imagemin'); 4 | 5 | gulp.task('images', function() { 6 | var dest = './public/img'; 7 | 8 | return gulp.src('./lib/img/**/*') 9 | .pipe(newer(dest)) // Ignore unchanged files 10 | .pipe(gulp.dest(dest)); 11 | }); 12 | -------------------------------------------------------------------------------- /gulp/tasks/jade.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | jade = require('gulp-jade'), 3 | changed = require('gulp-cached'), 4 | browserSync = require('browser-sync'); 5 | 6 | var dest = './public'; 7 | 8 | gulp.task('jade', function() { 9 | return gulp.src(['./lib/jade/**/*.jade']) 10 | .pipe(changed(dest)) 11 | .pipe(jade({ 12 | locals: { 13 | fs: require('fs') 14 | } 15 | }) 16 | ) 17 | .pipe(gulp.dest(dest)); 18 | }); 19 | -------------------------------------------------------------------------------- /gulp/tasks/minify.js: -------------------------------------------------------------------------------- 1 | // Create minified versions of js and css. 2 | 3 | var gulp = require('gulp'), 4 | rename = require('gulp-rename'), 5 | minify = require('gulp-minify-css'), 6 | changed = require('gulp-cached'), 7 | uglify = require('gulp-uglify'); 8 | 9 | gulp.task('minify', ['coffee', 'browserify', 'sass'], function() { 10 | var dest = './public/js/'; 11 | gulp.src(['./public/js/**/*.js', '!./public/js/**/*.min.js']) 12 | .pipe(changed(dest)) 13 | .pipe(uglify()) 14 | .pipe(rename(function(path) { 15 | path.basename += ".min" 16 | })) 17 | .pipe(gulp.dest(dest)); 18 | 19 | var dest = './public/css/'; 20 | gulp.src(['./public/css/**/*.css', '!./public/css/**/*.min.css']) 21 | .pipe(changed(dest)) 22 | .pipe(minify()) 23 | .pipe(rename( 24 | function(path) { 25 | path.basename += ".min" 26 | } 27 | )) 28 | .pipe(gulp.dest(dest)); 29 | }) 30 | -------------------------------------------------------------------------------- /gulp/tasks/sass.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | sass = require('gulp-ruby-sass'), 3 | browserSync = require('browser-sync'), 4 | changed = require('gulp-cached'), 5 | purge = require('gulp-css-purge'), 6 | prefix = require('gulp-autoprefixer'); 7 | 8 | gulp.task('sass', ['images'], function() { 9 | var dest = './public/css' 10 | return gulp.src(['lib/sass/**/*.{sass, scss}', '!lib/sass/vendor', '!lib/sass/vendor/**']) 11 | // .pipe(changed(dest)) // Turn this on for more efficient, but selective compiling. 12 | .pipe(sass({ 13 | sourcemapPath: process.cwd() + './lib/sass', 14 | loadPath: [ 15 | process.cwd() + '/lib/sass', 16 | process.cwd() + '/lib/sass/vendor', 17 | process.cwd() + '/lib-core/sass' 18 | ] 19 | })) 20 | .pipe(prefix('last 2 versions')) 21 | .pipe(purge()) 22 | .pipe(gulp.dest(dest)); 23 | }); 24 | -------------------------------------------------------------------------------- /gulp/tasks/setWatch.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | gulp.task('setWatch', function() { 4 | global.isWatching = true; 5 | }); 6 | -------------------------------------------------------------------------------- /gulp/tasks/test.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Additional test for PhantomJS. 3 | */ 4 | var gulp = require('gulp'); 5 | var mochaPhantomJS = require('gulp-mocha-phantomjs'); 6 | var coffee = require('gulp-coffee'); 7 | var expect = require('gulp-expect-file'); 8 | 9 | 10 | gulp.task('test', ['bundle-tests', 'jade'], function() { 11 | var files = ['public/tests/index.html'] 12 | gulp.src(files) 13 | .pipe(mochaPhantomJS({reporter: 'list'})) 14 | }); 15 | -------------------------------------------------------------------------------- /gulp/tasks/todo.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'), 2 | todo = require('gulp-todos'); 3 | 4 | gulp.task('todo', function() { 5 | return gulp.src(['./lib/coffee/**']) 6 | .pipe(todo()) 7 | .pipe(gulp.dest('./')); 8 | }); 9 | -------------------------------------------------------------------------------- /gulp/tasks/watch.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | 3 | gulp.task('watch', ['setWatch', 'browserSync'], function() { 4 | gulp.watch('./lib/sass/**/*.sass', ['sass', 'minify']); 5 | gulp.watch('./lib/images/**', ['images']); 6 | gulp.watch('./lib/jade/**/*.jade', ['jade']); 7 | gulp.watch(['./lib/coffee/**/*.coffee'], ['browserify', 'minify']); 8 | gulp.watch(['./lib/jade/tests/**', './lib/tests/**'], ['test']); 9 | }); 10 | 11 | gulp.task('watch:all', ['setWatch', 'docs:setWatch', 'browserSync', 'docs:browserSync'], function() { 12 | gulp.watch(['./{lib, lib-docs, lib-core}/sass/**/*.sass'], ['sass', 'minify', 'docs:sass', 'docs:minify']); 13 | gulp.watch(['./{lib, lib-docs, lib-core}/images/**'], ['images', 'docs:images']); 14 | gulp.watch(['./{lib, lib-docs, lib-core}/jade/**/*.jade'], ['jade', 'docs:jade']); 15 | gulp.watch(['./{lib, lib-docs, lib-core}/jade/tests/**', './lib/tests/**'], ['test', 'docs:test']); 16 | }); 17 | -------------------------------------------------------------------------------- /gulp/util/bundleLogger.js: -------------------------------------------------------------------------------- 1 | var gutil = require('gulp-util'); 2 | var prettyHrtime = require('pretty-hrtime'); 3 | var startTime; 4 | 5 | module.exports = { 6 | start: function() { 7 | startTime = process.hrtime(); 8 | gutil.log('Running', gutil.colors.green("'bundle'") + '...'); 9 | }, 10 | 11 | end: function() { 12 | var taskTime = process.hrtime(startTime); 13 | var prettyTime = prettyHrtime(taskTime); 14 | gutil.log('Finished', gutil.colors.green("'bundle'"), 'in', gutil.colors.magenta(prettyTime)); 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /gulp/util/handleErrors.js: -------------------------------------------------------------------------------- 1 | var notify = require("gulp-notify"); 2 | 3 | module.exports = function() { 4 | 5 | var args = Array.prototype.slice.call(arguments); 6 | 7 | // Send error to notification center with gulp-notify 8 | notify.onError({ 9 | title: "Compile Error", 10 | message: "<%= error.message %>" 11 | }).apply(this, args); 12 | 13 | // Keep gulp from hanging on this task 14 | this.emit('end'); 15 | }; 16 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | // Thanks to http://viget.com/extend/gulp-browserify-starter-faq 2 | var requireDir = require('require-dir'); 3 | requireDir('./gulp/tasks', { recurse: true }); 4 | -------------------------------------------------------------------------------- /lib-core/coffee/app.coffee: -------------------------------------------------------------------------------- 1 | KS = require './ks' 2 | Modal = require './modal' 3 | Navbar = require './navbar' 4 | Debounce = require './debouncer' 5 | Icons = require './icons' 6 | Status = require './status' 7 | Tabs = require './tabs' 8 | Throttler = require './throttler' 9 | Buttons = require './buttons' 10 | Buffer = require './buffer' 11 | Growl = require './growl' 12 | Dropdown = require './dropdown' 13 | 14 | k$.ready = -> 15 | k$.icons() 16 | k$.button() 17 | k$.dropdown() 18 | k$.nav($navbar) for $navbar in k$.$$('[data-ks-navbar]') 19 | k$.tabs($tabSet) for $tabSet in k$.$$('[data-ks-tabs]') 20 | 21 | document.addEventListener 'DOMContentLoaded', -> k$.ready() 22 | -------------------------------------------------------------------------------- /lib-core/coffee/buffer.coffee: -------------------------------------------------------------------------------- 1 | buffer = (fn, delay) -> 2 | 3 | # Create a new bufferArray if one does not exist already. 4 | k$.bufferArray = k$.bufferArray || new Array() 5 | if not k$.bufferArray.length 6 | k$.bufferArray = new Array() 7 | 8 | delay = delay || 500 9 | 10 | # Create an interval to fire the fns in bufferArray 11 | i = 1 12 | 13 | k$.bufferInterval = setInterval -> 14 | k$.bufferArray[i]() if k$.bufferArray[i] 15 | i++ 16 | if i >= k$.bufferArray.length 17 | clearInterval k$.bufferInterval 18 | k$.bufferArray = undefined 19 | i = 1 20 | , delay 21 | 22 | # Add this function to the array. 23 | k$.bufferArray.push fn 24 | 25 | # Fire right away if it's the first in line. 26 | k$.bufferArray[0]() if k$.bufferArray.length == 1 27 | 28 | console.info "Function queued (#{k$.bufferArray.length} in queue)" 29 | 30 | k$.buffer = buffer 31 | 32 | module.exports = buffer 33 | -------------------------------------------------------------------------------- /lib-core/coffee/buttons.coffee: -------------------------------------------------------------------------------- 1 | button = -> 2 | 3 | ($button.classList.add 'menu-item' if $button.querySelectorAll('ul').length) for $button in k$.$$("button") 4 | $buttonDropdown.parentNode.classList.add 'menu-item' for $buttonDropdown in k$.$$ '.button-dropdown' 5 | 6 | k$.button = button 7 | 8 | module.exports = button 9 | -------------------------------------------------------------------------------- /lib-core/coffee/debouncer.coffee: -------------------------------------------------------------------------------- 1 | debounce = (fn, id, delay, args, that) -> 2 | 3 | delay = delay || 1000 4 | that = that || this 5 | args = args || new Array 6 | 7 | k$.debounceQueue[id] = new Object() if typeof k$.debounceQueue[id] != "object" 8 | 9 | clearTimeout k$.debounceQueue[id].debounceTimer if typeof k$.debounceQueue[id].debounceTimer != "undefined" 10 | 11 | k$.debounceQueue[id] = 12 | fn: fn 13 | id: id 14 | delay: delay 15 | args: args 16 | debounceTimer: setTimeout -> 17 | k$.debounceQueue[id].fn.apply(that, k$.debounceQueue[id].args) 18 | k$.debounceQueue[id] = undefined 19 | , delay 20 | 21 | k$.debounce = debounce 22 | 23 | module.exports = debounce 24 | -------------------------------------------------------------------------------- /lib-core/coffee/dropdown.coffee: -------------------------------------------------------------------------------- 1 | dropdown = () -> 2 | 3 | document.body.addEventListener 'click', (e) -> 4 | $menuItem = null 5 | 6 | closeAllMenus = -> 7 | _$menuItem.classList.remove 'open' for _$menuItem in k$.$$('.menu-item') 8 | 9 | # We'll need this later. 10 | openMenu = -> 11 | # User has clicked on a menu trigger. 12 | if $menuItem.classList.contains 'open' 13 | $menuItem.classList.remove 'open' 14 | else 15 | closeAllMenus() 16 | $menuItem.classList.add 'open' 17 | e.stopPropagation() 18 | 19 | # Let's check if a user has clicked on a menu trigger: 20 | if e.target.classList.contains 'menu-item' 21 | $menuItem = e.target 22 | openMenu() 23 | else if e.target.parentNode.classList.contains 'menu-item' 24 | $menuItem = e.target.parentNode 25 | openMenu() 26 | else 27 | closeAllMenus() 28 | return 29 | 30 | 31 | 32 | # # The following should apply to several elements. 33 | # 34 | # $menuItems = k$.$$ '.menu-item' 35 | # 36 | # for $_menuItem in $menuItems 37 | # 38 | # $menuItem = $_menuItem.cloneNode true 39 | # $_menuItem.parentNode.replaceChild $menuItem, $_menuItem 40 | # 41 | # do ($menuItem) -> 42 | 43 | # TODO make only one event listener for the parent. 44 | # $menuItem.addEventListener 'click', (e) -> 45 | 46 | # # Just close it if it's already open 47 | # if $menuItem.classList.contains 'open' 48 | # $menuItem.classList.remove 'open' 49 | # return 50 | # 51 | # # Reset all 52 | # _$menuItem.classList.remove 'open' for _$menuItem in document.querySelectorAll('.menu-item') 53 | # $openable = $menuItem.querySelector 'ul' 54 | # 55 | # # Open this one 56 | # if $openable 57 | # $menuItem.classList.add 'open' 58 | # 59 | # # Prevent bubbling 60 | # e.stopPropagation() 61 | 62 | # # Dismiss all 63 | # document.body.addEventListener 'click', -> 64 | # $ul.parentNode.classList.remove 'open' for $ul in k$.$$('.menu-item > ul') 65 | # $li.classList.remove 'open' for $li in k$.$$('.menu-item.open') 66 | 67 | k$.dropdown = dropdown 68 | 69 | module.exports = dropdown 70 | -------------------------------------------------------------------------------- /lib-core/coffee/growl.coffee: -------------------------------------------------------------------------------- 1 | growl = (params) -> 2 | 3 | k$.buffer -> 4 | defaults = 5 | title: undefined 6 | text: undefined 7 | delay: 2000 8 | type: 'growl-warn' 9 | id: Date.now() 10 | 11 | params = k$.extend defaults, params 12 | 13 | # Create growl container 14 | if not k$.$$('.growl_container').length 15 | growlContainer = document.createElement 'div' 16 | growlContainer.className = 'growl_container' 17 | document.body.appendChild growlContainer 18 | 19 | # Create growl 20 | growl = document.createElement 'div' 21 | 22 | # Add appropriate classes 23 | className = "alert growl show #{params.type} growl-#{params.id}" 24 | growl.className = className 25 | 26 | # Add content 27 | content = "" 28 | content += "

#{params.title}

" if params.title 29 | content += "

#{params.text}

" if params.text 30 | growl.innerHTML = content 31 | 32 | # Append child to container 33 | k$.$('.growl_container').appendChild growl 34 | 35 | delay = params.delay 36 | id = params.id 37 | 38 | if delay > 0 39 | do (delay, id) -> 40 | setTimeout -> 41 | $growl = k$.$(".growl-#{id}") 42 | $growl.classList.remove('show') 43 | $newGrowl = $growl.cloneNode true 44 | $growl.parentNode.replaceChild $newGrowl, $growl 45 | $newGrowl.classList.add('hide') 46 | 47 | do (delay, id) -> 48 | setTimeout -> 49 | # Remove ghost growls 50 | k$.$('.growl_container').parentNode.removeChild k$.$('.growl_container') if not k$.$$('.growl.show').length 51 | , 500 52 | , delay 53 | 54 | k$.growl = growl 55 | 56 | module.exports = growl 57 | -------------------------------------------------------------------------------- /lib-core/coffee/icons.coffee: -------------------------------------------------------------------------------- 1 | icons = () -> 2 | 3 | #! svg4everybody v1.0.0 | github.com/jonathantneal/svg4everybody 4 | uses = document.getElementsByTagName("use") 5 | requestAnimationFrame = window.requestAnimationFrame or window.setTimeout 6 | CACHE = {} 7 | # IE9TO11 = /Trident\/[567]\b/.test(navigator.userAgent) or (navigator.userAgent.match(/AppleWebKit\/(\d+)/) or [])[1] < 537 8 | IE9TO11 = true 9 | # Forcing this to shim regardless. 10 | embed = (svg, g) -> 11 | if g 12 | viewBox = g.getAttribute("viewBox") 13 | fragment = document.createDocumentFragment() 14 | clone = g.cloneNode(true) 15 | svg.setAttribute "viewBox", viewBox if viewBox 16 | fragment.appendChild clone.childNodes[0] while clone.childNodes.length 17 | svg.appendChild fragment 18 | return 19 | onload = -> 20 | xhr = this 21 | x = document.createElement("x") 22 | s = xhr.s 23 | x.innerHTML = xhr.responseText 24 | xhr.onload = -> 25 | s.splice(0).map (array) -> 26 | embed array[0], x.querySelector("#" + array[1].replace(/(\W)/g, "\\$1")) 27 | return 28 | 29 | return 30 | 31 | xhr.onload() 32 | return 33 | onframe = -> 34 | use = undefined 35 | while (use = uses[0]) 36 | svg = use.parentNode 37 | url = use.getAttribute("xlink:href").split("#") 38 | url_root = url[0] 39 | url_hash = url[1] 40 | svg.removeChild use 41 | if url_root.length 42 | xhr = CACHE[url_root] = CACHE[url_root] or new XMLHttpRequest() 43 | unless xhr.s 44 | xhr.s = [] 45 | xhr.open "GET", url_root 46 | xhr.onload = onload 47 | xhr.send() 48 | xhr.s.push [ 49 | svg 50 | url_hash 51 | ] 52 | xhr.onload() if xhr.readyState is 4 53 | else 54 | embed svg, document.getElementById(url_hash) 55 | requestAnimationFrame onframe 56 | return 57 | onframe() if IE9TO11 58 | return 59 | 60 | k$.icons = icons 61 | 62 | module.exports = icons 63 | -------------------------------------------------------------------------------- /lib-core/coffee/index.coffee: -------------------------------------------------------------------------------- 1 | $button = k$.$('#preview-button') 2 | typeOut = (str, container, cb, startWith) -> 3 | i = 0 4 | _str = "" 5 | 6 | @interval = setInterval -> 7 | i++ 8 | _str = str.substr(0, i) 9 | container.innerHTML = startWith + _str.replace(/&/g,'&').replace(//g,'>').replace(/\|/g, '
').replace(/\+/g, '').replace(/\*/g, '').replace(/%/g, ' ') 10 | if i > str.length - 1 11 | clearInterval @interval 12 | cb() 13 | , 75 14 | 15 | slide3 = -> 16 | $button.classList.add('button') 17 | $button.classList.add('button-primary') 18 | slide3TO = setTimeout -> 19 | $button.classList.remove('button') 20 | $button.classList.remove('button-primary') 21 | clearTimeout slide3TO 22 | slide1() 23 | , 1200 24 | 25 | slide2 = -> 26 | $button.classList.add('button') 27 | $button.classList.add('button-primary') 28 | slide2TO = setTimeout -> 29 | $button.classList.remove('button') 30 | $button.classList.remove('button-primary') 31 | typeOut '||.+cta* {|%%@include button($primary-color);|}', k$.$('#source'), slide3, "<!-- OR define your own -->

" 32 | clearTimeout slide2TO 33 | , 1200 34 | 35 | 36 | slide1 = -> 37 | typeOut '', k$.$('#source'), slide2, "<!-- Use predefined classes -->

" 38 | 39 | slide1() 40 | -------------------------------------------------------------------------------- /lib-core/coffee/ks.coffee: -------------------------------------------------------------------------------- 1 | global.k$ = new Object() 2 | 3 | k$.$$ = (el) -> document.querySelectorAll el 4 | k$.$ = (el) -> document.querySelector el 5 | k$.extend = (destination, source) -> 6 | for property of source 7 | if source[property] and source[property].constructor and source[property].constructor is Object 8 | destination[property] = destination[property] or {} 9 | arguments.callee destination[property], source[property] 10 | else 11 | destination[property] = source[property] 12 | destination 13 | 14 | k$.debounceQueue = new Object 15 | 16 | module.exports = k$ 17 | -------------------------------------------------------------------------------- /lib-core/coffee/modal.coffee: -------------------------------------------------------------------------------- 1 | modal = (el) -> 2 | 3 | `var iOS = /(iPad|iPhone|iPod)/g.test( navigator.userAgent )` 4 | 5 | # Cursor pointer hack if iOS 6 | document.body.classList.add 'dismiss-modal' if iOS 7 | 8 | do (el) -> 9 | 10 | $hideModal = -> 11 | k$.$(el).style.display = 'none' 12 | 13 | # Allow modal to dismiss when clicked outside 14 | document.body.addEventListener 'click', -> 15 | $hideModal() 16 | 17 | k$.$(el).addEventListener 'click', (e) -> 18 | return e.stopPropagation() 19 | 20 | $closer = k$.$(el).querySelector('a[data-modal-close]') 21 | if $closer 22 | $closer.addEventListener 'click', -> 23 | $hideModal() 24 | 25 | k$.$ el 26 | 27 | k$.modal = modal 28 | 29 | module.exports = modal 30 | -------------------------------------------------------------------------------- /lib-core/coffee/navbar.coffee: -------------------------------------------------------------------------------- 1 | nav = (el) -> 2 | 3 | # Accept both strings and elements. 4 | $navbar = if typeof el == 'string' then k$.$(el) else el 5 | 6 | try 7 | # Wire up menu items 8 | $menuItems = $navbar.querySelectorAll('ul > li') 9 | 10 | # Prune items that don't contain uls 11 | _$menuItems = new Array() 12 | for $menuItem in $menuItems 13 | if $menuItem.querySelectorAll('ul').length and !$menuItem.querySelectorAll('[role="button"]').length 14 | _$menuItems.push $menuItem 15 | 16 | $menuItems = _$menuItems 17 | for $menuItem in $menuItems 18 | 19 | # Mark as a menu item 20 | $menuItem.classList.add 'menu-item' 21 | 22 | catch e 23 | console.error "Could not instantiate as a nav.", e.message 24 | 25 | $button = $navbar.querySelector('.navbar-title button') 26 | if $button 27 | $button.addEventListener 'click', -> 28 | $nav = $navbar.querySelector('nav') 29 | if $nav.classList.contains 'expand' 30 | $nav.classList.remove 'expand' 31 | else 32 | $nav.classList.add 'expand' 33 | 34 | k$.nav = nav 35 | 36 | module.exports = nav 37 | -------------------------------------------------------------------------------- /lib-core/coffee/status.coffee: -------------------------------------------------------------------------------- 1 | status = (opts) -> 2 | 3 | defaults = 4 | type: 'status-yellow' 5 | delay: 2000 6 | 7 | status = k$.extend defaults, opts 8 | 9 | if not k$.$$('#status_bar').length 10 | $statusBar = document.createElement('div') 11 | $statusBar.id = 'status_bar' 12 | $statusBar.className = 'status_bar' 13 | $statusBar.innerHTML = "
" 14 | document.body.appendChild($statusBar) 15 | 16 | $statusBar = k$.$('#status_bar') 17 | 18 | hideStatusBar = -> 19 | $statusBar.classList.add 'hide' 20 | setTimeout -> 21 | $statusBar.classList.remove 'hide' 22 | $statusBar.parentNode.removeChild $statusBar 23 | , 250 24 | 25 | if status.delay > 0 26 | k$.debounce hideStatusBar, 'hideStatusBar', status.delay 27 | 28 | $status = k$.$("#status_bar-status") 29 | $status.innerHTML = status.text 30 | $status.dataset.type = status.type 31 | 32 | k$.status = status 33 | 34 | module.exports = status 35 | -------------------------------------------------------------------------------- /lib-core/coffee/tabs.coffee: -------------------------------------------------------------------------------- 1 | tabs = (el) -> 2 | 3 | # Accept both strings and elements. 4 | $tabContainer = if typeof el == 'string' then k$.$(el) else el 5 | 6 | $tabSet = $tabContainer.querySelectorAll('li') 7 | $tab.classList.add('tab-item') for $tab in $tabSet 8 | 9 | $paneSet = new Array() 10 | for $_tab in $tabSet 11 | $id = $_tab.querySelector('a').getAttribute('href') 12 | $pane = k$.$("article#{$id}") 13 | $pane.classList.add 'open' if $_tab.classList.contains 'open' 14 | $paneSet.push($pane) 15 | # $pane.dataset.panel = 'true' # Replace with this when IE10 support drops 16 | $pane.setAttribute('data-panel', true) 17 | 18 | for $tab in $tabSet 19 | # Create an array of panels by reading the links from each tab. 20 | $tabLink = $tab.querySelector('a') 21 | # $tabLink.dataset.link = $tabLink.getAttribute 'href' # Ibid 22 | $tabLink.setAttribute('data-link', $tabLink.getAttribute('href')) 23 | $tabLink.href = 'javascript:void(0);' 24 | 25 | do ($tab, $tabLink, $paneSet) -> 26 | $tab.addEventListener 'click', -> 27 | 28 | # Reset tabs and panes only in this tabset 29 | $pane.classList.remove 'open' for $pane in $paneSet 30 | _$tab.classList.remove 'open' for _$tab in $tabSet 31 | 32 | # Add an open class uniquely to this tab and pane. 33 | # k$.$("article#{$tabLink.dataset.link}").classList.add 'open' # Ibid 34 | k$.$("article#{$tabLink.getAttribute('data-link')}").classList.add 'open' 35 | $tab.classList.add 'open' 36 | 37 | k$.tabs = tabs 38 | 39 | module.exports = tabs 40 | -------------------------------------------------------------------------------- /lib-core/coffee/tests.coffee: -------------------------------------------------------------------------------- 1 | App = require './app' 2 | testDef = require '../tests/default' 3 | testModal = require '../tests/modal' 4 | testNavbar = require '../tests/navbar' 5 | testGrowl = require '../tests/growl' 6 | testDropdownButtons = require '../tests/dropdown-buttons' 7 | testTabs = require '../tests/tabs' 8 | testStatus = require '../tests/status' 9 | testDebouncer = require '../tests/debouncer' 10 | testBuffer = require '../tests/buffer' 11 | testPost = require '../tests/post' 12 | -------------------------------------------------------------------------------- /lib-core/coffee/throttler.coffee: -------------------------------------------------------------------------------- 1 | throttle = (fn, id, delay) -> 2 | 3 | 4 | 5 | k$.throttle = throttle 6 | 7 | module.exports = throttle 8 | -------------------------------------------------------------------------------- /lib-core/jade/index.jade: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1 Thanks for using Kickstart 3 5 | p Let's get to work! 6 | -------------------------------------------------------------------------------- /lib-core/jade/layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | block variables 3 | - var title = "Home" 4 | 5 | html(lang='en') 6 | head 7 | link(rel="stylesheet" href="/css/style.css") 8 | meta(name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no") 9 | title My Website - #{title} 10 | body 11 | main.main 12 | block content 13 | 14 | footer.main 15 | .wrapper 16 | p Made by Everything 17 | 18 | script(src="/js/script.js") 19 | -------------------------------------------------------------------------------- /lib-core/jade/mixins.jade: -------------------------------------------------------------------------------- 1 | mixin page($controller, $action, $variant) 2 | div( 3 | data-controller="#{$controller}" 4 | data-action="#{$action}" 5 | data-variant="#{$variant}" 6 | ) 7 | if block 8 | block 9 | 10 | mixin c($name, $variant) 11 | div(data-component="#{$name}" data-variant="#{$variant}") 12 | if block 13 | block 14 | 15 | mixin b($name, $variant) 16 | div(data-block="#{$name}" data-variant="#{$variant}") 17 | if block 18 | block 19 | -------------------------------------------------------------------------------- /lib-core/jade/tests/index.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang='en') 3 | head 4 | 5 | link(rel="stylesheet" href="../css/kickstart.css") 6 | script(src="../../node_modules/mocha/mocha.js") 7 | script(src="../../node_modules/chai/chai.js") 8 | 9 | body 10 | h1 Kickstart 3 Tests 11 | p Use this page to run your Mocha tests via Phantom JS 12 | 13 | footer 14 | script. 15 | mocha.setup('bdd'); 16 | script(src="../js/test.js") 17 | script. 18 | if (window.mochaPhantomJS) { 19 | mochaPhantomJS.run(); 20 | } else { 21 | mocha.run(); 22 | } 23 | -------------------------------------------------------------------------------- /lib-core/readme.md: -------------------------------------------------------------------------------- 1 | Kickstart 3.0 2 | ============= 3 | 4 | Homepage 5 | 6 | License 7 | ======= 8 | 9 | The MIT License (MIT) 10 | 11 | Copyright (c) 2014 Adam Kochanowicz 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | -------------------------------------------------------------------------------- /lib-core/sass/core/_animations.sass: -------------------------------------------------------------------------------- 1 | @keyframes fadeInDown 2 | 0% 3 | opacity: 0 4 | transform: translateY(-20px) 5 | 6 | 100% 7 | opacity: 1 8 | transform: translateY(0) 9 | 10 | @-webkit-keyframes fadeInDown 11 | 0% 12 | opacity: 0 13 | transform: translateY(-20px) 14 | 15 | 100% 16 | opacity: 1 17 | transform: translateY(0) 18 | -------------------------------------------------------------------------------- /lib-core/sass/core/_base.sass: -------------------------------------------------------------------------------- 1 | * 2 | box-sizing: border-box 3 | 4 | iframe 5 | width: 100% 6 | border: 0 7 | padding: 15px 8 | margin-bottom: 25px 9 | -------------------------------------------------------------------------------- /lib-core/sass/core/_base_components.sass: -------------------------------------------------------------------------------- 1 | // Base Components 2 | // =============== 3 | // These are the base components from which dependent components can extend. 4 | 5 | // Components 6 | @import components/_alerts 7 | @import components/_buttons 8 | @import components/_hr 9 | @import components/_containers 10 | @import components/_labels 11 | @import components/_modals 12 | @import components/_progress 13 | @import components/_tables 14 | @import components/_dropdown_menu 15 | @import components/_navbar 16 | -------------------------------------------------------------------------------- /lib-core/sass/core/_dependent_components.sass: -------------------------------------------------------------------------------- 1 | // Dependent Components 2 | // ==================== 3 | // These components extend the core and base components. 4 | 5 | // Components 6 | @import components/_growls 7 | @import components/_modals 8 | @import components/_notifications 9 | @import components/_tabs 10 | @import components/_tooltips 11 | @import components/_forms 12 | @import components/_pagination 13 | -------------------------------------------------------------------------------- /lib-core/sass/core/_index.sass: -------------------------------------------------------------------------------- 1 | @import _base 2 | @import _icons 3 | @import _mixins 4 | @import _animations 5 | @import _grid 6 | @import _typography 7 | @import _root-element 8 | -------------------------------------------------------------------------------- /lib-core/sass/core/_mixins.sass: -------------------------------------------------------------------------------- 1 | =text-inputs 2 | input[type="date"], 3 | input[type="datetime"], 4 | input[type="datetime-local"], 5 | input[type="email"], 6 | input[type="month"], 7 | input[type="number"], 8 | input[type="password"], 9 | input[type="tel"], 10 | input[type="search"], 11 | input[type="text"], 12 | input[type="time"], 13 | input[type="url"], 14 | input[type="week"] 15 | @content 16 | 17 | =fadeInDown 18 | animation-duration: 0.25s 19 | animation-timing-function: ease 20 | animation-fill-mode: both 21 | animation-name: fadeInDown 22 | 23 | // Block, component, etc. selector shortcuts 24 | 25 | // Block 26 | =b($name) 27 | [data-block="#{$name}"] 28 | @content 29 | 30 | // Component 31 | =c($name) 32 | [data-component="#{$name}"] 33 | @content 34 | 35 | // Variant 36 | =v($name) 37 | [data-variant="#{$variant}"] 38 | @content 39 | 40 | // Page 41 | =page($controller: null, $action: null) 42 | $selector: '' 43 | @if $controller != null 44 | $selector: "[data-controller='#{$controller}']" 45 | @if $action != null 46 | $selector: "#{$selector}[data-action='#{$action}']" 47 | #{$selector} 48 | @content 49 | -------------------------------------------------------------------------------- /lib-core/sass/core/_root-element.sass: -------------------------------------------------------------------------------- 1 | /* 2 | * Root Element 3 | * ========= 4 | * The root element is a base for several many elements in the library 5 | * To ensure consistent spacing when mixed into blocks. 6 | */ 7 | 8 | =root-element($size: 1) 9 | padding: ($size * $size * map-get($rootElement, paddingV)) ($size * $size * map-get($rootElement, paddingV)) 10 | border-radius: map-get($rootElement, border-radius) 11 | border: 1px solid transparent 12 | outline: none 13 | margin-bottom: $space 14 | @if $size != 1 15 | font-size: $size*$default-font-size 16 | line-height: $size*$default-line-height 17 | font-family: $default-font-family 18 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_alerts.sass: -------------------------------------------------------------------------------- 1 | =alert-default 2 | +root-element 3 | padding: $space/2 4 | background: $primary-color 5 | color: white 6 | margin: 7 | bottom: $space 8 | 9 | p 10 | +p 11 | color: inherit 12 | 13 | > *:last-child 14 | margin-bottom: 0 15 | 16 | h1 17 | +heading-xs 18 | color: inherit 19 | 20 | a:not([role=button]) 21 | color: inherit 22 | text-decoration: underline 23 | 24 | @content 25 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_growls.sass: -------------------------------------------------------------------------------- 1 | =growl-default 2 | +alert 3 | @content 4 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_hr.sass: -------------------------------------------------------------------------------- 1 | =hr-default 2 | border: 0 3 | top: 2px solid $default-font-color 4 | 5 | @content 6 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_labels.sass: -------------------------------------------------------------------------------- 1 | =label-default($background-color: $primary-color) 2 | +root-element 3 | background: $background-color 4 | font-size: 0.8rem 5 | color: white 6 | line-height: normal 7 | font-weight: bold 8 | padding: 9 | top: 3px 10 | bottom: 3px 11 | 12 | @if $background-color == map-get($colors, yellow) 13 | color: $default-font-color 14 | 15 | &:after 16 | border-top-color: $background-color 17 | 18 | @content 19 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_modals.sass: -------------------------------------------------------------------------------- 1 | =modal-default() 2 | +root-element 3 | border-width: 0 4 | padding: $space 5 | position: fixed 6 | box-shadow: 0px 0px 0px 99999px rgba(0, 0, 0, 0.35), 0px 0px 25px rgba(0, 0, 0, 0.5) 7 | box-shadow: 0px 0px 0px 100vw rgba(0, 0, 0, 0.35), 0px 0px 25px rgba(0, 0, 0, 0.5) 8 | top: 15px 9 | top: 5vh 10 | left: 2% 11 | right: 2% 12 | margin: 0px auto 13 | display: none 14 | background: white 15 | border-color: map-get($white, dark) 16 | animation-duration: 0.2s 17 | animation-timing-function: ease 18 | animation-fill-mode: both 19 | z-index: 1500 20 | 21 | &[style="display: block;"] 22 | animation-name: fadeInDown 23 | 24 | @media screen and (min-width: $tablet) 25 | top: 75px 26 | top: 10vh 27 | width: 650px 28 | left: 50% 29 | margin-left: -325px 30 | 31 | > header, > footer 32 | +alert 33 | 34 | > h1, > h2, > h3, > h4, > h5, > h6 35 | margin-bottom: 0 36 | 37 | background: map-get($white, dark) 38 | color: $default-font-color 39 | margin: -$space 40 | bottom: $space 41 | 42 | > header 43 | border-bottom-left-radius: 0 44 | border-bottom-right-radius: 0 45 | position: relative 46 | 47 | a[data-modal-close] 48 | position: absolute 49 | top: $space/2 50 | right: $space/2 51 | line-height: 1.3rem 52 | text-decoration: none 53 | font-size: 1.3rem 54 | 55 | > footer 56 | margin: 57 | top: $space 58 | bottom: -$space 59 | border-top-left-radius: 0 60 | border-top-right-radius: 0 61 | 62 | ul 63 | +list($style: 'unstyled', $layout: 'horizontal') 64 | text-align: right 65 | 66 | li 67 | margin: 68 | bottom: 0 69 | right: 0 70 | 71 | [role="button"] 72 | text-decoration: none 73 | 74 | @content 75 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_notifications.sass: -------------------------------------------------------------------------------- 1 | =status_bar 2 | position: fixed 3 | top: 0 4 | left: 0 5 | right: 0 6 | z-index: 2000 // Above modal 7 | display: flex 8 | pointer-events: none 9 | transition: transform 0.25s 10 | transform: translateY(0px) 11 | 12 | &.hide 13 | transform: translateY(-40px) 14 | 15 | .status_bar-status 16 | +label(map-get($colors, yellow)) 17 | color: black 18 | text-align: center 19 | margin: 5px auto 20 | max-width: 300px 21 | box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15) 22 | +fadeInDown 23 | z-index: 1000 24 | 25 | @content 26 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_pagination.sass: -------------------------------------------------------------------------------- 1 | =pagination-default($background: map-get($white, dark)) 2 | display: flex 3 | align-items: flex-start 4 | flex-wrap: wrap 5 | justify-content: space-between 6 | align-content: space-between 7 | 8 | > ul 9 | +button-group-default($size: 1) 10 | 11 | @content 12 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_progress.sass: -------------------------------------------------------------------------------- 1 | progress 2 | width: 100% 3 | 4 | &::-webkit-progress-bar 5 | border-radius: ($space/5) 6 | min-height: $space 7 | -webkit-appearance: none 8 | appearance: none 9 | -moz-appearance: none 10 | 11 | &::-webkit-progress-value 12 | border-radius: ($space/5) 0 0 ($space/5) 13 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_tabs.sass: -------------------------------------------------------------------------------- 1 | =tabs-default 2 | +list($style: 'unstyled', $layout: 'horizontal') 3 | border-bottom: 1px solid map-get($white, darker) 4 | 5 | li 6 | margin: 0 7 | right: -1px 8 | bottom: -1px 9 | 10 | &.open 11 | a 12 | border-bottom-color: transparent 13 | background: white 14 | 15 | &:hover, &.active 16 | box-shadow: none 17 | 18 | a 19 | +button 20 | border: 1px solid $secondary-color 21 | padding: 22 | left: map-get($rootElement, paddingH) 23 | right: map-get($rootElement, paddingH) 24 | border-bottom-left-radius: 0 25 | border-bottom-right-radius: 0 26 | 27 | =tab_pane_container-default 28 | +root-element 29 | background: white 30 | border-color: $secondary-color 31 | border-top: 0 32 | border-top-left-radius: 0 33 | border-top-right-radius: 0 34 | padding: $space 35 | margin-top: -$space 36 | 37 | @content 38 | -------------------------------------------------------------------------------- /lib-core/sass/core/components/_tooltips.sass: -------------------------------------------------------------------------------- 1 | =force-gone 2 | top: -9999px 3 | bottom: auto 4 | 5 | =tooltip_trigger-default($background-color: false) 6 | position: relative 7 | display: inline-block 8 | cursor: pointer 9 | 10 | @if not $background-color == false 11 | .tooltip 12 | +label($background-color) 13 | 14 | &:not(:hover) 15 | [data-ks-tooltip] 16 | &:not(:hover) 17 | &:after, &:before 18 | +force-gone 19 | 20 | [data-ks-tooltip] 21 | &:hover 22 | &:after, &:before 23 | opacity: 1 24 | 25 | &:after 26 | transform: translateY(-8px) 27 | transition: transform 0.25s 28 | 29 | &:not(:hover) 30 | .tooltip 31 | +force-gone 32 | 33 | &:hover 34 | [data-ks-tooltip] 35 | &:after, &:before 36 | opacity: 1 37 | 38 | &:after 39 | transform: translateY(-8px) 40 | transition: transform 0.25s 41 | 42 | .tooltip 43 | opacity: 1 44 | transform: translateY(0px) 45 | 46 | &:after 47 | opacity: 1 48 | 49 | @content 50 | -------------------------------------------------------------------------------- /lib-core/sass/vendor/_index.sass: -------------------------------------------------------------------------------- 1 | // Vendor libraries 2 | // ================ 3 | // 3rd party additions to the Kickstart UI library should 4 | // be indexed here. 5 | 6 | // e.g. @import datepicker 7 | -------------------------------------------------------------------------------- /lib-core/svgs/lg/bar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/lg/fizz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/lg/foo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib-core/svgs/lg/house.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | -------------------------------------------------------------------------------- /lib-core/svgs/rg/bar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/rg/fizz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/rg/foo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/rg/house.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | 9 | -------------------------------------------------------------------------------- /lib-core/svgs/sm/bar.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/sm/fizz.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lib-core/svgs/sm/house.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /lib-core/tests/buffer.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe "Buffer", (done) -> 5 | it "Should not prematurely fire functions other than the first", -> 6 | 7 | window.xArray = new Array() 8 | 9 | k$.buffer -> 10 | xArray.push(1) 11 | 12 | k$.buffer -> 13 | xArray.push(2) 14 | 15 | k$.buffer -> 16 | xArray.push(3) 17 | 18 | expect(xArray[0]).to.equal(1) 19 | expect(xArray[1]).to.be.undefined 20 | expect(xArray[2]).to.be.undefined 21 | 22 | it "Should execute all functions 2s between each other (1/2)", (done) -> 23 | this.timeout 520 24 | 25 | setTimeout -> 26 | if xArray[0] == 1 && xArray[1] == 2 && xArray[2] == undefined 27 | done() 28 | else 29 | console.error "xArray was #{xArray}" 30 | , 510 31 | 32 | it "Should execute all functions 2s between each other (2/2)", (done) -> 33 | this.timeout 520 34 | 35 | setTimeout -> 36 | if xArray[0] == 1 && xArray[1] == 2 && xArray[2] == 3 37 | done() 38 | else 39 | console.error "xArray was #{xArray}" 40 | , 510 41 | -------------------------------------------------------------------------------- /lib-core/tests/debouncer.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe 'Debouncer', -> 5 | it 'should fire after a default interval of 1 second.', (done) -> 6 | window.one = 0 7 | this.timeout 2000 8 | setOne = -> 9 | window.one = 1 10 | 11 | k$.debounce setOne, 'change zero to one' 12 | setTimeout -> 13 | if one == 1 14 | done() 15 | else 16 | console.error "Found #{one}" 17 | , 1200 18 | 19 | it 'should suspend firing if called again during that second', (done) -> 20 | window.one = 0 21 | this.timeout 2500 22 | 23 | setOne = -> 24 | window.one = 1 25 | 26 | setTimeout -> 27 | k$.debounce setOne, 'change zero to one' 28 | , 500 29 | 30 | setTimeout -> 31 | k$.debounce setOne, 'change zero to one' 32 | , 1000 33 | 34 | setTimeout -> 35 | k$.debounce setOne, 'change zero to one' 36 | , 1500 37 | 38 | setTimeout -> 39 | k$.debounce setOne, 'change zero to one' 40 | , 2000 41 | 42 | setTimeout -> 43 | if one == 0 44 | done() 45 | else 46 | console.error "Found #{one}" 47 | , 2100 48 | 49 | it 'should suspend firing if called again during a custom interval', (done) -> 50 | this.timeout 4000 51 | setTimeout -> 52 | if one == 1 53 | done() 54 | else 55 | console.error "Found #{one}" 56 | , 2100 57 | 58 | 59 | it 'should not clear a neighbor\'s timer', (done) -> 60 | this.timeout 3500 61 | a = '' 62 | fn1 = -> 63 | a = 'foo' 64 | 65 | fn2 = -> 66 | a = 'bar' 67 | 68 | k$.debounce fn1, 'f' 69 | 70 | setTimeout -> 71 | k$.debounce fn2, 'b' 72 | , 500 73 | 74 | setTimeout -> 75 | if a == 'bar' or a == 'foo' 76 | console.error "One function fired too early" 77 | , 700 78 | 79 | setTimeout -> 80 | if a == 'bar' 81 | done() 82 | , 1700 83 | -------------------------------------------------------------------------------- /lib-core/tests/default.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | k$.testClick = (el) -> 5 | event = document.createEvent 'MouseEvents' 6 | event.initMouseEvent 'click', true, true, window, 1, 0, 0 7 | el.dispatchEvent event 8 | 9 | describe 'Kickstart main function', -> 10 | it 'should exist as an object', -> 11 | assert.typeOf k$, 'object', 'k$ is an object' 12 | it 'should contain basic selectors', -> 13 | assert.typeOf k$.$, 'function', 'k$.$ is a function' 14 | it 'should contain basic selectors', -> 15 | assert.typeOf k$.$$, 'function', 'k$.$$ is a function' 16 | -------------------------------------------------------------------------------- /lib-core/tests/growl.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe "Growl", -> 5 | it "should create a growl on execution", -> 6 | assert(k$.$$('.growl').length == 0, "No growls on page before fn call") 7 | k$.growl({title: "Hey"}) 8 | expect(k$.$$('.growl').length).to.equal(1) 9 | 10 | it "should close growl after 2s (by default)", (done) -> 11 | this.timeout 2700 12 | setTimeout -> 13 | if k$.$$('.growl').length == 0 14 | done() 15 | else 16 | console.error "A growl was found." 17 | , 2600 18 | -------------------------------------------------------------------------------- /lib-core/tests/modal.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe 'k$.modal()', -> 5 | it 'should return a DOM object', -> 6 | assert.typeOf k$.modal('#test-modal'), 'object', 'Modal returns a DOM object' 7 | 8 | showModal = -> 9 | $modal = k$.modal '#test-modal' 10 | $modal.style.display = 'block' 11 | $modal 12 | 13 | showSecondModal = -> 14 | $modal = k$.modal '#test-modal-2' 15 | $modal.style.display = 'block' 16 | $modal 17 | 18 | it 'should close when clicking on body', -> 19 | $modal = showModal() 20 | k$.testClick document.body 21 | expect($modal.style.display).to.equal('none') 22 | 23 | # Seems a little silly, but since we're using raw event listeners, 24 | # selectors have a way of overriding their predecessors. 25 | it 'should close all modals on body click', -> 26 | $modal = showModal() 27 | $modal2 = showSecondModal() 28 | k$.testClick document.body 29 | expect($modal.style.display).to.equal('none') 30 | expect($modal2.style.display).to.equal('none') 31 | 32 | it 'should close modal on "x" click', -> 33 | $modal = showModal() 34 | expect($modal.style.display).to.equal('block') 35 | k$.testClick k$.$ '#test-modal-close' 36 | expect($modal.style.display).to.equal('none') 37 | -------------------------------------------------------------------------------- /lib-core/tests/post.coffee: -------------------------------------------------------------------------------- 1 | # Tests that must run at the end of the test suite 2 | 3 | assert = require("chai").assert 4 | expect = require("chai").expect 5 | 6 | # describe 'Event listeners', -> 7 | # it 'on body should not be more than 1.', -> 8 | # expect(getEventListeners(document.body).click.length).to.be.below(2) 9 | -------------------------------------------------------------------------------- /lib-core/tests/status.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe 'Status', -> 5 | it 'should create a status bar and status element.', -> 6 | k$.status 7 | title: 'Hello world' 8 | expect(k$.$$('#status_bar').length).to.be.above(0) 9 | it 'should apply a custom class to status element.', -> 10 | k$.status 11 | title: 'Hello world' 12 | type: 'error' 13 | expect(k$.$$('#status_bar #status_bar-status[data-type="error"]').length).to.be.above(0) 14 | it 'should disappear via debouncer.', (done) -> 15 | this.timeout 3500 # Taking into account show/hide animation extensions 16 | setTimeout -> 17 | if (k$.$$('#status_bar').length == 0) 18 | done() 19 | else 20 | console.error "Found #{k$.$$('#status_bar').length}" 21 | , 3000 22 | it 'should dethrottle the hiding of the status bar.', (done) -> 23 | this.timeout 3500 24 | k$.status 25 | text: 'A' # Should disappear after 2000 26 | 27 | setTimeout -> 28 | k$.status 29 | text: 'B' 30 | , 1000 # Should take another 2000 (3000) 31 | 32 | setTimeout -> 33 | if k$.$$('#status_bar').length > 0 34 | done() 35 | else 36 | console.error "Found #{k$.$$('#status_bar').length}" 37 | , 2500 38 | 39 | -------------------------------------------------------------------------------- /lib-core/tests/tabs.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe 'Tabs', -> 5 | it 'should instantiate', -> 6 | k$.tabs('#test-tabs') 7 | 8 | it 'should read for user set "open" class and set view accordingly.', -> 9 | expect(k$.$('#panel-one').classList.contains('open')).to.equal(true) 10 | 11 | it 'should add an open class to a tab when clicked upon', -> 12 | k$.testClick k$.$('#test-tabs #tab-three') 13 | expect(k$.$('#test-tabs #tab-holder-one').classList.contains('open')).to.equal(false) 14 | expect(k$.$('#test-tabs #tab-holder-three').classList.contains('open')).to.equal(true) 15 | 16 | it 'should set only the appropriate pane to be uniquely visible', -> 17 | expect(k$.$('#panel-one').classList.contains('open')).to.equal(false) 18 | expect(k$.$('#panel-two').classList.contains('open')).to.equal(false) 19 | expect(k$.$('#panel-three').classList.contains('open')).to.equal(true) 20 | -------------------------------------------------------------------------------- /lib-docs/coffee/app.coffee: -------------------------------------------------------------------------------- 1 | KS = require '../../lib-core/coffee/app' 2 | k$.markdown = require './markdown' 3 | Docs = require './docs' 4 | -------------------------------------------------------------------------------- /lib-docs/coffee/navbar-fixer.coffee: -------------------------------------------------------------------------------- 1 | window.onscroll = -> 2 | # This actually works great for one-offs, but not what we 3 | # need for the docs page 4 | # ####################################################### 5 | # 6 | # $fixedAreas = k$.$$('.fixed-area') 7 | # for $fixedArea in $fixedAreas 8 | # do ($fixedArea) -> 9 | # $isFixed = $fixedArea.classList.contains 'fixed' 10 | # if $fixedArea.getBoundingClientRect().top < 1 11 | # $fixedArea.classList.add 'fixed' if not $isFixed 12 | # else 13 | # $fixedArea.classList.remove 'fixed' if $isFixed 14 | $fixedArea = k$.$('.docs-nav') 15 | $isFixed = document.body.classList.contains 'fixed-nav' 16 | if k$.$('.main-navigation').getBoundingClientRect().top < (-1 * k$.$('.docs-nav').clientHeight) 17 | document.body.classList.add 'fixed-nav' if not $isFixed 18 | k$.$('main.main').style.paddingTop = "#{k$.$('.docs-nav').clientHeight}px" 19 | k$.$('.fixed-toc').style.top = "#{k$.$('.docs-nav').clientHeight}px" 20 | else 21 | document.body.classList.remove 'fixed-nav' if $isFixed 22 | k$.$('main.main').style.paddingTop = 0 23 | k$.$('.fixed-toc').style.top = 0 24 | -------------------------------------------------------------------------------- /lib-docs/coffee/tests.coffee: -------------------------------------------------------------------------------- 1 | Tests = require '../../lib-core/coffee/tests' 2 | Docs = require './docs' 3 | 4 | -------------------------------------------------------------------------------- /lib-docs/icons.fog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons.fog -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-114x114.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-120x120.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-144x144.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-152x152.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-180x180.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-57x57.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-60x60.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-72x72.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-76x76.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /lib-docs/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /lib-docs/icons/favicon-160x160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/favicon-160x160.png -------------------------------------------------------------------------------- /lib-docs/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/favicon-16x16.png -------------------------------------------------------------------------------- /lib-docs/icons/favicon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/favicon-192x192.png -------------------------------------------------------------------------------- /lib-docs/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/favicon-32x32.png -------------------------------------------------------------------------------- /lib-docs/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/favicon-96x96.png -------------------------------------------------------------------------------- /lib-docs/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/favicon.ico -------------------------------------------------------------------------------- /lib-docs/icons/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/mstile-144x144.png -------------------------------------------------------------------------------- /lib-docs/icons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/mstile-150x150.png -------------------------------------------------------------------------------- /lib-docs/icons/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/mstile-310x150.png -------------------------------------------------------------------------------- /lib-docs/icons/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/mstile-310x310.png -------------------------------------------------------------------------------- /lib-docs/icons/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/icons/mstile-70x70.png -------------------------------------------------------------------------------- /lib-docs/iframes/buffer/buffer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debouncer 7 | 8 | 9 | 10 | 13 | 23 | 24 | 25 | 26 | 27 |
28 | 29 |

30 |
31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /lib-docs/iframes/buffer/buffer_edgeActions.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var Composition=Edge.Composition,Symbol=Edge.Symbol; 3 | //Edge symbol: 'stage' 4 | (function(symbolName){Symbol.bindTriggerAction(compId,symbolName,"Default Timeline",4000,function(sym,e){this.play(0);}); 5 | //Edge binding end 6 | })("stage"); 7 | //Edge symbol end:'stage' 8 | })(jQuery,AdobeEdge,"EDGE-116087028"); -------------------------------------------------------------------------------- /lib-docs/iframes/buffer/images/cloud-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/iframes/buffer/images/cloud-down.png -------------------------------------------------------------------------------- /lib-docs/iframes/buffer/images/cloud-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/iframes/buffer/images/cloud-up.png -------------------------------------------------------------------------------- /lib-docs/iframes/buffer/images/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/iframes/buffer/images/rocket.png -------------------------------------------------------------------------------- /lib-docs/iframes/debouncer/debouncer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debouncer 7 | 8 | 9 | 10 | 13 | 23 | 24 | 25 | 26 | 27 |
28 | 29 |

30 |
31 |
32 |
33 | 34 | -------------------------------------------------------------------------------- /lib-docs/iframes/debouncer/debouncer_edge.js: -------------------------------------------------------------------------------- 1 | 2 | (function(compId){"use strict";var _=null,y=true,n=false,x7='break-word',e12='${cloud-down}',x2='5.0.0',g='image',x6='Courier, Courier New, monospace',l='normal',x='text',e13='${cloud-up}',w='width',o='opacity',x5='24',x11='rgba(255,255,255,1)',x3='5.0.0.375',xc='rgba(0,0,0,1)',x8='rgba(0,0,0,0)',i='none';var g10='cloud-down.png',g1='jquery-2.0.3.min.js',g9='cloud-up.png';var s4="
";var im='images/',aud='media/',vid='media/',js='js/',fonts={},opts={'gAudioPreloadPreference':'auto','gVideoPreloadPreference':'auto'},resources=[],scripts=[js+g1],symbols={"stage":{v:x2,mv:x2,b:x3,stf:w,cg:i,rI:n,cn:{dom:[{id:'Text',t:x,r:['1','154','139px','20px','auto','auto'],text:s4,align:"center",n:[x6,[x5,],xc,l,i,"",x7,""]},{id:'cloud-up',t:g,r:['76px','11px','128px','128px','auto','auto'],o:0.25495427846909,f:[x8,im+g9,'0px','0px']},{id:'cloud-down',t:g,r:['320px','11px','128px','128px','auto','auto'],o:0.24920605123043,f:[x8,im+g10,'0px','0px']}],style:{'${Stage}':{isStage:true,r:['null','null','540','190','auto','auto'],overflow:'hidden',f:[x11]}}},tt:{d:3500,a:y,data:[["eid40",o,2250,250,"linear",e12,'0.249206','1'],["eid41",o,2500,250,"linear",e12,'1','0.25225482723577'],["eid30",o,0,250,"linear",e13,'0.254954','1'],["eid31",o,250,250,"linear",e13,'1','0.254954'],["eid36",o,500,250,"linear",e13,'0.254954','1'],["eid34",o,750,250,"linear",e13,'1','0.254954'],["eid37",o,1000,250,"linear",e13,'0.254954','1'],["eid35",o,1250,250,"linear",e13,'1','0.254954'],["eid42",o,3500,0,"linear",e13,'0.254954','0.254954']]}}};AdobeEdge.registerCompositionDefn(compId,symbols,fonts,scripts,resources,opts);})("EDGE-112562383"); 3 | (function($,Edge,compId){var Composition=Edge.Composition,Symbol=Edge.Symbol;Edge.registerEventBinding(compId,function($){ 4 | //Edge symbol: 'stage' 5 | (function(symbolName){Symbol.bindTriggerAction(compId,symbolName,"Default Timeline",3500,function(sym,e){this.play(0);}); 6 | //Edge binding end 7 | })("stage"); 8 | //Edge symbol end:'stage' 9 | })})(AdobeEdge.$,AdobeEdge,"EDGE-112562383"); -------------------------------------------------------------------------------- /lib-docs/iframes/debouncer/images/cloud-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/iframes/debouncer/images/cloud-down.png -------------------------------------------------------------------------------- /lib-docs/iframes/debouncer/images/cloud-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/iframes/debouncer/images/cloud-up.png -------------------------------------------------------------------------------- /lib-docs/iframes/debouncer/images/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/iframes/debouncer/images/rocket.png -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fixed/fixed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Untitled 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fixed/fixed_edge.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var _=null,y=true,n=false,e17='${_Rectangle2}',x2='4.0.1.365',c='color',x1='4.0.1',po='center',a='Base State',x4='dashed',x='text',x14='hidden',m='rect',x3='rgba(255,255,255,1.00)',x7='17',e15='${_TextCopy}',i='none',lf='left',x5='rgba(227,226,226,1.00)',qw='swing',ql='linear',dt='Default Timeline',e16='${_Rectangle}',h='height',e13='${_Stage}',bg='background-color',x12='rgba(255,255,255,1)',fs='font-size',x8='Courier, Courier New, monospace',ta='text-align',l='normal',w='width',tp='top',s='style',e11='${_Text}',ov='overflow',xc='rgba(0,0,0,1)',ff='font-family',x10='stage';var im='images/';var s9="Viewport",s6="Content";var fonts={};var P=Edge.P,T=Edge.T,A=Edge.A;var opts={'gAudioPreloadPreference':'auto','gVideoPreloadPreference':'auto'};var resources=[];var symbols={"stage":{v:x1,mv:x1,b:x2,bS:a,stf:w,cg:i,iS:a,gpu:n,rI:n,cn:{dom:[{id:'Rectangle',t:m,r:['20px','23px','498px','342px','auto','auto'],f:[x3],s:[6,xc,x4]},{id:'Rectangle2',t:m,r:['162px','32px','226px','336px','auto','auto'],f:[x5],s:[6,"rgb(0, 0, 0)",i]},{id:'Text',t:x,r:['212px','84px','125px','60px','auto','auto'],text:s6,align:"center",n:[x8,x7,xc,l,i,""]},{id:'TextCopy',t:x,r:['212px','170px','125px','60px','auto','auto'],text:s9,align:"center",n:[x8,x7,xc,l,i,""]}],sI:[]},s:{},tl:{"Default Timeline":{fS:a,tS:"",d:4000,a:y,tt:[]}}}};var S1=symbols[x10];var tl0=S1.tl[dt].tt,st1=S1.s[a]={},A1=A(_,tl0,st1);A1.A(e11).P(tp,84).P(ta,po).P(ff,x8).P(lf,212).P(fs,17);A1.A(e13).P(bg,x12,c).P(w,550).P(h,200).P(ov,x14);A1.A(e15).P(tp,170).P(ta,po).P(ff,x8).P(lf,212).P(fs,17);A1.A(e16).P(bg,x3,c).P("border-width",6).P("border-style",x4).P(h,130).T(0,128,1.394,ql).T(1.394,129,0.606).T(2,130,0.614).T(2.614,129,1.386).P(tp,23).T(0,23).T(2,23).T(4,23).P(lf,20).T(0,213,2).T(2,20,2).P(w,498).T(0,111,2).T(2,498,2);A1.A(e17).P(bg,x5,c).P("border-style",i).P(h,124).T(0,122,1.394,ql).T(1.394,124,0.606).T(2,123,0.614).T(2.614,124,1.386).P(tp,32).T(0,32).T(1.394,32).T(2,32).T(2.614,32).T(4,32).P(lf,162).T(0,162).T(1.394,221,0.606).T(2,162,0.614).T(4,162).P(w,226).T(0,226).T(1.394,106,0.606).T(2,226,0.614).T(4,226);Edge.registerCompositionDefn(compId,symbols,fonts,resources,opts);$(window).ready(function(){Edge.launchComposition(compId);});})(jQuery,AdobeEdge,"EDGE-116087028"); -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fixed/fixed_edgeActions.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var Composition=Edge.Composition,Symbol=Edge.Symbol; 3 | //Edge symbol: 'stage' 4 | (function(symbolName){Symbol.bindTriggerAction(compId,symbolName,"Default Timeline",4000,function(sym,e){this.play(0);}); 5 | //Edge binding end 6 | })("stage"); 7 | //Edge symbol end:'stage' 8 | })(jQuery,AdobeEdge,"EDGE-116087028"); -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fluid-fixed/fluid-fixed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Untitled 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fluid-fixed/fluid-fixed_edgeActions.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var Composition=Edge.Composition,Symbol=Edge.Symbol; 3 | //Edge symbol: 'stage' 4 | (function(symbolName){Symbol.bindTriggerAction(compId,symbolName,"Default Timeline",4000,function(sym,e){this.play(0);}); 5 | //Edge binding end 6 | })("stage"); 7 | //Edge symbol end:'stage' 8 | })(jQuery,AdobeEdge,"EDGE-116087028"); -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fluid/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Untitled 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fluid/fluid_edge.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var _=null,y=true,n=false,e16='${_Rectangle2}',x2='4.0.1.365',c='color',x1='4.0.1',po='center',a='Base State',x4='dashed',x='text',x14='hidden',m='rect',x3='rgba(255,255,255,1.00)',x7='17',e15='${_TextCopy}',i='none',lf='left',x5='rgba(227,226,226,1.00)',h='height',qw='swing',ql='linear',e17='${_Rectangle}',l='normal',x10='stage',bg='background-color',e13='${_Stage}',x12='rgba(255,255,255,1)',fs='font-size',x8='Courier, Courier New, monospace',ta='text-align',w='width',tp='top',s='style',e11='${_Text}',ov='overflow',xc='rgba(0,0,0,1)',ff='font-family',dt='Default Timeline';var im='images/';var s9="Viewport",s6="Content";var fonts={};var P=Edge.P,T=Edge.T,A=Edge.A;var opts={'gAudioPreloadPreference':'auto','gVideoPreloadPreference':'auto'};var resources=[];var symbols={"stage":{v:x1,mv:x1,b:x2,bS:a,stf:w,cg:i,iS:a,gpu:n,rI:n,cn:{dom:[{id:'Rectangle',t:m,r:['20px','23px','498px','342px','auto','auto'],f:[x3],s:[6,xc,x4]},{id:'Rectangle2',t:m,r:['162px','32px','226px','336px','auto','auto'],f:[x5],s:[6,"rgb(0, 0, 0)",i]},{id:'Text',t:x,r:['212px','84px','125px','60px','auto','auto'],text:s6,align:"center",n:[x8,x7,xc,l,i,""]},{id:'TextCopy',t:x,r:['212px','170px','125px','60px','auto','auto'],text:s9,align:"center",n:[x8,x7,xc,l,i,""]}],sI:[]},s:{},tl:{"Default Timeline":{fS:a,tS:"",d:4000,a:y,tt:[]}}}};var S1=symbols[x10];var tl0=S1.tl[dt].tt,st1=S1.s[a]={},A1=A(_,tl0,st1);A1.A(e11).P(tp,84).P(ta,po).P(ff,x8).P(lf,212).P(fs,17);A1.A(e13).P(bg,x12,c).P(ov,x14).P(h,200).P(w,550);A1.A(e15).P(tp,170).P(ta,po).P(ff,x8).P(lf,212).P(fs,17);A1.A(e16).P(bg,x5,c).P("border-style",i).P(h,124).T(0,122,1.394,ql).T(1.394,124,0.606).T(2,123,0.614).T(2.614,124,1.386).P(tp,32).T(0,32).T(1.394,32).T(2,32).T(2.614,32).T(4,32).P(lf,28).T(0,221,2).T(2,27,2).P(w,494).T(0,106,2).T(2,495,2);A1.A(e17).P(bg,x3,c).P("border-style",x4).P("border-width",6).P(tp,23).T(0,23).T(2,23).T(4,23).P(h,130).T(0,128,1.394,ql).T(1.394,129,0.606).T(2,130,0.614).T(2.614,129,1.386).P(lf,20).T(0,213,2).T(2,20,2).P(w,498).T(0,111,2).T(2,498,2);Edge.registerCompositionDefn(compId,symbols,fonts,resources,opts);$(window).ready(function(){Edge.launchComposition(compId);});})(jQuery,AdobeEdge,"EDGE-116087028"); -------------------------------------------------------------------------------- /lib-docs/iframes/layout-fluid/fluid_edgeActions.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var Composition=Edge.Composition,Symbol=Edge.Symbol; 3 | //Edge symbol: 'stage' 4 | (function(symbolName){Symbol.bindTriggerAction(compId,symbolName,"Default Timeline",4000,function(sym,e){this.play(0);}); 5 | //Edge binding end 6 | })("stage"); 7 | //Edge symbol end:'stage' 8 | })(jQuery,AdobeEdge,"EDGE-116087028"); -------------------------------------------------------------------------------- /lib-docs/iframes/throttler/throttler.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Throttler 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /lib-docs/iframes/throttler/throttler_edge.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var _=null,y=true,n=false,qw='swing',x2='4.0.1.365',c='color',x1='4.0.1',po='center',x16='rgba(253,215,38,1.00)',a='Base State',x='text',x12='hidden',dt='Default Timeline',e13='${_TextCopy}',i='none',x3='rgba(192,192,192,1)',lf='left',x15='rgba(216,205,180,1.00)',e17='${_EllipseCopy}',e14='${_Ellipse}',h='height',l='normal',s='style',x6='Courier, Courier New, monospace',e11='${_Stage}',bg='background-color',x10='rgba(255,255,255,1)',w='width',tp='top',x5='24',e9='${_Text}',ov='overflow',xc='rgba(0,0,0,1)',ff='font-family',x8='stage',ta='text-align';var im='images/';var s7="Output",s4="Input";var fonts={};var P=Edge.P,T=Edge.T,A=Edge.A;var opts={'gAudioPreloadPreference':'auto','gVideoPreloadPreference':'auto'};var resources=[];var symbols={"stage":{v:x1,mv:x1,b:x2,bS:a,stf:w,cg:i,iS:a,gpu:n,rI:n,cn:{dom:[{id:'Ellipse',t:'ellipse',r:['39px','61px','128px','128px','auto','auto'],br:["50%","50%","50%","50%"],f:[x3],s:[0,xc,i]},{id:'EllipseCopy',t:'ellipse',r:['432px','61px','128px','128px','auto','auto'],br:["50%","50%","50%","50%"],f:[x3],s:[0,xc,i]},{id:'Text',t:x,r:['1px','154px','139px','20px','auto','auto'],text:s4,align:"center",n:[x6,x5,xc,l,i,""]},{id:'TextCopy',t:x,r:['398px','154px','139px','20px','auto','auto'],text:s7,align:"center",n:[x6,x5,xc,l,i,""]}],sI:[]},s:{},tl:{"Default Timeline":{fS:a,tS:"",d:2000,a:y,tt:[]}}}};var S1=symbols[x8];var tl0=S1.tl[dt].tt,st1=S1.s[a]={},A1=A(_,tl0,st1);A1.A(e9).P(tp,154).P(ff,x6).P(lf,1).P(ta,po);A1.A(e11).P(bg,x10,c).P(ov,x12).P(h,190).P(w,540);A1.A(e13).P(tp,154).P(ff,x6).P(lf,398).P(ta,po);A1.A(e14).P(tp,11).T(2,11).P(lf,10).T(2,10).P(bg,x15,c).T(0,x16,0.25,qw).T(0.25,x15,0.25).T(0.5,x16,0.25).T(0.75,x15,0.25).T(1,x16,0.25).T(1.25,x15,0.25).T(1.5,x16,0.25).T(1.75,x15,0.25);A1.A(e17).P(bg,x15,c).T(0,x15).T(1.5,x16,0.25,qw).T(1.75,x15,0.25).P(lf,403).T(2,403).P(tp,11).T(2,11);Edge.registerCompositionDefn(compId,symbols,fonts,resources,opts);$(window).ready(function(){Edge.launchComposition(compId);});})(jQuery,AdobeEdge,"EDGE-112562383"); -------------------------------------------------------------------------------- /lib-docs/iframes/throttler/throttler_edgeActions.js: -------------------------------------------------------------------------------- 1 | 2 | (function($,Edge,compId){var Composition=Edge.Composition,Symbol=Edge.Symbol; 3 | //Edge symbol: 'stage' 4 | (function(symbolName){Symbol.bindTriggerAction(compId,symbolName,"Default Timeline",2000,function(sym,e){this.play(0);}); 5 | //Edge binding end 6 | })("stage"); 7 | //Edge symbol end:'stage' 8 | })(jQuery,AdobeEdge,"EDGE-112562383"); -------------------------------------------------------------------------------- /lib-docs/img/Untitled-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/Untitled-Regular.otf -------------------------------------------------------------------------------- /lib-docs/img/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/arrow.png -------------------------------------------------------------------------------- /lib-docs/img/everythingio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /lib-docs/img/framework_logos.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/framework_logos.ai -------------------------------------------------------------------------------- /lib-docs/img/framework_logos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/framework_logos.jpg -------------------------------------------------------------------------------- /lib-docs/img/hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/hero.jpg -------------------------------------------------------------------------------- /lib-docs/img/html5css3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/html5css3.jpg -------------------------------------------------------------------------------- /lib-docs/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/icon.png -------------------------------------------------------------------------------- /lib-docs/img/jekyll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/jekyll.png -------------------------------------------------------------------------------- /lib-docs/img/jscss.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/jscss.jpg -------------------------------------------------------------------------------- /lib-docs/img/jscss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/jscss.png -------------------------------------------------------------------------------- /lib-docs/img/kickstart-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/kickstart-black.png -------------------------------------------------------------------------------- /lib-docs/img/kickstart-k.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 18 | 19 | -------------------------------------------------------------------------------- /lib-docs/img/kickstart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/kickstart.png -------------------------------------------------------------------------------- /lib-docs/img/maxcdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/maxcdn.png -------------------------------------------------------------------------------- /lib-docs/img/mountains.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/mountains.png -------------------------------------------------------------------------------- /lib-docs/img/nav_fluid-fixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/nav_fluid-fixed.png -------------------------------------------------------------------------------- /lib-docs/img/nav_fluid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/nav_fluid.png -------------------------------------------------------------------------------- /lib-docs/img/nav_none.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/nav_none.png -------------------------------------------------------------------------------- /lib-docs/img/nodejs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/nodejs.png -------------------------------------------------------------------------------- /lib-docs/img/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/preview.png -------------------------------------------------------------------------------- /lib-docs/img/rubyonrails.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/rubyonrails.png -------------------------------------------------------------------------------- /lib-docs/img/spain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/spain.png -------------------------------------------------------------------------------- /lib-docs/img/steps/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/1.png -------------------------------------------------------------------------------- /lib-docs/img/steps/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/10.png -------------------------------------------------------------------------------- /lib-docs/img/steps/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/11.png -------------------------------------------------------------------------------- /lib-docs/img/steps/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/12.png -------------------------------------------------------------------------------- /lib-docs/img/steps/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/2.png -------------------------------------------------------------------------------- /lib-docs/img/steps/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/3.png -------------------------------------------------------------------------------- /lib-docs/img/steps/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/4.png -------------------------------------------------------------------------------- /lib-docs/img/steps/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/5.png -------------------------------------------------------------------------------- /lib-docs/img/steps/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/6.png -------------------------------------------------------------------------------- /lib-docs/img/steps/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/7.png -------------------------------------------------------------------------------- /lib-docs/img/steps/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/8.png -------------------------------------------------------------------------------- /lib-docs/img/steps/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/steps/9.png -------------------------------------------------------------------------------- /lib-docs/img/ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/img/ui.png -------------------------------------------------------------------------------- /lib-docs/jade/3.x-layouts/_fullpage-layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | 3 | - var showFooter = true 4 | - var title = "The CSS library we've been waiting for" 5 | 6 | block variables 7 | 8 | include ../_mixins 9 | 10 | html(lang='en') 11 | head 12 | link(rel="stylesheet" href="/css/docs.css") 13 | block page-stylesheet 14 | link(rel="stylesheet" href="/css/fullpage.css") 15 | link(href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet") 16 | meta(name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no") 17 | title Kickstart - #{title} 18 | body 19 | header.fixed 20 | include _header 21 | block header 22 | 23 | block hero 24 | 25 | main.wrapper 26 | block content 27 | 28 | script(src="/js/kickstart.js") 29 | 30 | - if (showFooter == true) 31 | footer.main 32 | .wrapper 33 | p Made by Everything 34 | 35 | - else 36 | script(src="/js/navbar-fixer.js") 37 | block preJS 38 | 39 | script(src="/js/docs.js") 40 | 41 | script. 42 | k$.nav('.main-navigation') 43 | 44 | block postJS 45 | script(src="//use.typekit.net/iqk4yxz.js") 46 | script try{Typekit.load();}catch(e){} 47 | script. 48 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 49 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 50 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 51 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 52 | ga('create', 'UA-1315296-26', 'auto'); 53 | ga('send', 'pageview'); 54 | -------------------------------------------------------------------------------- /lib-docs/jade/3.x-layouts/_header.jade: -------------------------------------------------------------------------------- 1 | .main-navigation(data-ks-navbar) 2 | nav 3 | ul 4 | - var xml = fs.readFileSync('lib-docs/img/kickstart.svg') 5 | li.navbar-title 6 | a(href="/") 7 | != xml 8 | 9 | button(role="button") = 10 | li: a(href="/") Home 11 | li: a.blue-link(href="/docs/#{docsVersion}/" class="#{menuItem == 'docs' ? 'active' : ''}") Docs 12 | li: a(href="/about" class="#{menuItem == 'about' ? 'active' : ''}") About 13 | li 14 | a(href="http://kickstart.everything.io") 15 | span.fa.fa-cubes 16 | | Store 17 | 18 | ul 19 | li: a(href="/amadeus" class="#{menuItem == 'amadeus' ? 'active' : ''}") Amadeus 20 | li 21 | a.button.button-primary(href="/docs/#{docsVersion}/" role="button") 22 | span.fa.fa-cloud-download 23 | | Get Started 24 | -------------------------------------------------------------------------------- /lib-docs/jade/4.x-layouts/_fullpage-layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | 3 | - var showFooter = true 4 | - var title = "The CSS library we've been waiting for" 5 | 6 | block variables 7 | 8 | include ../_mixins 9 | 10 | html(lang='en') 11 | head 12 | link(rel="stylesheet" href="/css/docs.css") 13 | block page-stylesheet 14 | link(rel="stylesheet" href="/css/fullpage.css") 15 | link(href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet") 16 | meta(name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no") 17 | title Kickstart - #{title} 18 | body 19 | header.fixed 20 | include _header 21 | block header 22 | 23 | block hero 24 | 25 | main.wrapper 26 | block content 27 | 28 | script(src="/js/kickstart.js") 29 | 30 | - if (showFooter == true) 31 | footer.main 32 | .wrapper 33 | p Made by Everything 34 | 35 | - else 36 | script(src="/js/navbar-fixer.js") 37 | block preJS 38 | 39 | script(src="/js/docs.js") 40 | 41 | script. 42 | k$.nav('.main-navigation') 43 | 44 | block postJS 45 | script(src="//use.typekit.net/iqk4yxz.js") 46 | script try{Typekit.load();}catch(e){} 47 | script. 48 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 49 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 50 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 51 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 52 | ga('create', 'UA-1315296-26', 'auto'); 53 | ga('send', 'pageview'); 54 | -------------------------------------------------------------------------------- /lib-docs/jade/4.x-layouts/_header.jade: -------------------------------------------------------------------------------- 1 | .main-navigation(data-ks-navbar) 2 | nav 3 | ul 4 | - var xml = fs.readFileSync('lib-docs/img/kickstart.svg') 5 | li.navbar-title 6 | a(href="/") 7 | != xml 8 | 9 | button(role="button") = 10 | li: a(href="/") Home 11 | li: a.blue-link(href="/docs/4.x/page-generator" class="#{menuItem == 'page-generator' ? 'active' : ''}") Page Generator 12 | li: a.blue-link(href="/docs/4.x/ui" class="#{menuItem == 'ui-library' ? 'active' : ''}") UI Library 13 | li: a.blue-link(href="/docs/4.x/advanced" class="#{menuItem == 'advanced' ? 'active' : ''}") Advanced 14 | li 15 | a(href="http://kickstart.everything.io") 16 | span.fa.fa-cubes 17 | | Store 18 | 19 | ul 20 | li: a(href="/amadeus" class="#{menuItem == 'amadeus' ? 'active' : ''}") Amadeus 21 | li 22 | a.button.button-primary(href="/docs/#{docsVersion}/" role="button") 23 | span.fa.fa-cloud-download 24 | | Get Started 25 | -------------------------------------------------------------------------------- /lib-docs/jade/_mixins.jade: -------------------------------------------------------------------------------- 1 | // Mixins 2 | mixin available-colors($prefix) 3 | :markdown 4 | Available colors include: 5 | 6 | - `#{$prefix}-red` 7 | - `#{$prefix}-orange` 8 | - `#{$prefix}-yellow` 9 | - `#{$prefix}-green` 10 | - `#{$prefix}-blue` 11 | - `#{$prefix}-violet` 12 | 13 | You may also use your theme's primary and secondary colors via `#{$prefix}-primary` and `#{$prefix}-secondary` 14 | 15 | mixin screen-sizes 16 | :markdown 17 | Available screen size variables: 18 | 19 | - `$phone` 20 | - `$phablet` 21 | - `$tablet` 22 | - `$desktop` 23 | - `$large-monitor` 24 | - `$xl-monitor` 25 | -------------------------------------------------------------------------------- /lib-docs/jade/amadeus/index.jade: -------------------------------------------------------------------------------- 1 | extends ../3.x-layouts/_layout 2 | 3 | block variables 4 | - var showFooter = false 5 | - var title = "Amadeus" 6 | 7 | block menuVars 8 | - var menuItem = "amadeus" 9 | 10 | block page-stylesheet 11 | link(rel="stylesheet" href="/css/pages/docs/index.css") 12 | 13 | block content 14 | div.docs-nav.amadeus(data-ks-navbar) 15 | nav 16 | ul 17 | li.navbar-title Amadeus 18 | 19 | ul 20 | li 21 | a(href="https://github.com/adamjgrant/Amadeus") On GitHub 22 | 23 | main.main 24 | .fixed-area 25 | #marker 26 | aside.fixed-toc 27 | #toc 28 | p.creating-table Creating table of contents... 29 | 30 | main.fixed-main 31 | section.document-container 32 | .document 33 | article.article.article-full.article-blank(data-render="docs") 34 | 35 | .push 36 | 37 | block postJS 38 | script document.addEventListener('DOMContentLoaded', function() {k$.loadReadme('amadeus')}) 39 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/1.x/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../3.x-layouts/_layout 2 | 3 | block content 4 | header.page-heading 5 | :markdown 6 | ## Documentation 7 | 8 | [1.x Documentation](http://getkickstrap.com.s3-website-us-east-1.amazonaws.com/1.x/) 9 | 10 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/2.x/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../3.x-layouts/_layout 2 | 3 | block content 4 | header.page-heading 5 | :markdown 6 | ## Documentation 7 | 8 | [2.x Documentation](http://getkickstrap.com.s3-website-us-east-1.amazonaws.com/2.x/) 9 | 10 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/_includes/navigation/_coloring.jade: -------------------------------------------------------------------------------- 1 | .document 2 | article.article 3 | :markdown 4 | ## Coloring navbar 5 | 6 | .navbar.navbar-blue 7 | nav 8 | ul 9 | li: a(href="#") Home 10 | li: a(href="#") Blog 11 | 12 | :markdown 13 | Coloring the navbar just means changing the color of the container. However, 14 | darker colors might mean using lighter colors for the text for better contrast. 15 | 16 | For this, pass in a color to the `$background` parameter of `navbar()` 17 | 18 | `navbar()` will try to guess if the color is dark enough to warrant 19 | lighter text and automatically switch to white if so. 20 | 21 | article.code 22 | .if-semantic 23 | :markdown 24 | 25 | 26 | @include navbar($background-color: #333) 27 | 28 | .ifnot-semantic 29 | :markdown 30 | For a darker navbar with lighter text, use `.navbar-dark` 31 | 32 | 37 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/_includes/navigation/_dropdowns.jade: -------------------------------------------------------------------------------- 1 | .document 2 | article.article 3 | :markdown 4 | ## Dropdowns 5 | 6 | To create a dropdown, simply nest another `ul` in one of your `li`s. 7 | 8 | Dropdowns require the `data-ks-navbar` attribute. Optionally, these can 9 | be instantiated manually via the `k$.nav(el)` function. `el` is 10 | the selector for the navbar container. 11 | 12 | .navbar(data-ks-navbar) 13 | nav 14 | ul 15 | li 16 | | Options 17 | ul 18 | li 19 | a(href="#") Option 1 20 | li 21 | a(href="#") Option 2 22 | li 23 | a(href="#") Option 3 24 | 25 | article.code 26 | :markdown 27 | 28 | 29 | 46 | 47 | :markdown 48 | 49 | 50 | k$.navbar('.navbar') 51 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/_includes/quickstart/_firing_on_ready.jade: -------------------------------------------------------------------------------- 1 | .document 2 | article.article 3 | :markdown 4 | ### Firing on ready 5 | 6 | Some of your JavaScript will need to run once the DOM is ready. In Rails, this can be a little mysterious, 7 | especially when using jquery-ujs. Here's one way to ensure this code fires at the right time. 8 | 9 | article.code 10 | .if-jquery 11 | :markdown 12 | 13 | 14 | var ready = function() { 15 | // Your code 16 | } 17 | $(document).ready(ready); 18 | $(document).on("page:load", ready); 19 | 20 | .ifnot-jquery 21 | :markdown 22 | 23 | 24 | function ready(fn) { 25 | if (document.readyState!='loading') { 26 | fn(); 27 | } 28 | else { 29 | document.addEventListener('DOMContentLoaded', fn); 30 | } 31 | } 32 | 33 | ready(function() { 34 | // Your code 35 | }); 36 | 37 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/_includes/quickstart/_quickstart_header.jade: -------------------------------------------------------------------------------- 1 | .document 2 | article.article.article-full 3 | :markdown 4 | # Quickstart 5 | 6 | Installation instructions are available for [Simple HTML](#barebones), [Rails](#rails), [Gulp](#gulp), and [Jekyll](#jekyll) 7 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/_includes/typography/_sizes.jade: -------------------------------------------------------------------------------- 1 | .document 2 | article.article.article-full 3 | h1 Decoupled 4 | p While different sizes of text can be selected with the h1-h6 tags, this fringes on using HTML for styling. The level of a heading should dictate its hierarchy, but not necessarily its size. 5 | p For this reason, a set of heading classesmixins are available that can be added to the heading tags. Notice in each example below, an h1 tag is used, although the sizes vary. 6 | 7 | - for size in ['xxl', 'xl', 'lg', 'md', 'rg', 'sm', 'xs', 'xxs'] 8 | .document 9 | article.article 10 | h2 Size #{size} 11 | 12 | .example 13 | h1(class="#{size} toc-exempt") Hello World 14 | 15 | article.code 16 | .if-semantic 17 | pre.if-semantic 18 | code h1.#{size} { 19 | | @include heading-#{size}(); 20 | | } 21 | |   22 | | <h1 class="#{size}">Hello World</h1> 23 | .ifnot-semantic 24 | pre 25 | code <h1 class="#{size}">Hello World</h1> 26 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/fullpage-layout.jade: -------------------------------------------------------------------------------- 1 | extends ../../3.x-layouts/_layout 2 | 3 | block bleed 4 | header.doc-hero 5 | block hero-title 6 | block hero-example 7 | 8 | block header 9 | include _header 10 | 11 | block container 12 | .row 13 | main.fullpane.readable 14 | block fullPane 15 | 16 | block postJS 17 | script. 18 | k$.nav('.docs-nav') 19 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/functions/extend/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../_layout 2 | 3 | block hero-title 4 | h1 Extend 5 | 6 | block docVars 7 | - var variations = false 8 | 9 | block subMenuVars 10 | - var subMenuItem = "functions" 11 | 12 | block variables 13 | - var showFooter = false 14 | - var title = "Extend Function" 15 | 16 | block documents 17 | .document 18 | article.article 19 | :markdown 20 | `k$.extend()` merges two JavaScript objects. 21 | 22 | Here we have a "default" object, the `employee`. There are also two employee objects, `alex` and `jesse`. 23 | 24 | article.code 25 | :markdown 26 | 27 | 28 | var employee = { 29 | role: 'cashier', 30 | location: 'Atlanta, GA' 31 | } 32 | 33 | var alex = { 34 | name: 'Alex' 35 | } 36 | 37 | var jesse = { 38 | name: 'Jesse', 39 | role: 'CEO', 40 | location: 'NYC' 41 | } 42 | 43 | .document 44 | article.article 45 | :markdown 46 | Let's see what happens when we extend `employee` to `alex` and `jesse`. 47 | 48 | article.code 49 | :markdown 50 | 51 | 52 | alex = k$.extend(employee, alex) 53 | 54 | jesse = k$.extend(employee, jesse) 55 | 56 | .document 57 | article.article 58 | :markdown 59 | Here's the output for each: 60 | 61 | article.code 62 | :markdown 63 | 64 | 65 | // alex 66 | 67 | { 68 | role: 'cashier', 69 | location: 'Atlanta, GA', 70 | name: 'Alex' 71 | } 72 | 73 | // jesse 74 | 75 | { 76 | role: 'CEO', 77 | location: 'NYC', 78 | name: 'Jesse' 79 | } 80 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/functions/index.jade: -------------------------------------------------------------------------------- 1 | extends ../index 2 | 3 | block doc-article 4 | h2 Functions 5 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/ui/alerts/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../_layout 2 | 3 | block hero-title 4 | h1 Alerts 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = "Alerts" 9 | 10 | block ui-stylesheet 11 | link(rel="stylesheet" href="/css/pages/docs/ui/alerts.min.css") 12 | 13 | block documents 14 | .document 15 | article.article 16 | :markdown 17 | Alerts are simple colored containers with opinionated type hierarchy. 18 | These are great for drawing attention within content or showing the 19 | user notices above the page. Alerts styles are reused for showing [growls](/docs/#{docsVersion}/ui/notifications). 20 | 21 | .example 22 | .alert 23 | h1.toc-exempt Attention 24 | p You need to change your password 25 | button.button Change Password 26 | 27 | .row 28 | .col-third 29 | .alert.alert-warning 30 | p Careful! 31 | .col-third 32 | .alert.alert-error 33 | h1.toc-exempt Last command did not work 34 | p Please try again. 35 | .col-third 36 | .alert 37 | p Please accept the terms and conditions agreement 38 | label.checkbox 39 | input(type="checkbox") 40 | | I agree to the terms and conditions 41 | 42 | article.code 43 | :markdown 44 | 45 | 46 |
47 |

Attention

48 |

You need to change your password

49 | 50 |
51 | 52 | .if-semantic 53 | :markdown 54 | 55 | 56 | .alert { 57 | @include alert(); 58 | } 59 | .button { 60 | @include button(); 61 | } 62 | 63 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/ui/icons/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../_layout 2 | 3 | block hero-title 4 | h1 Icons 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = "Icons" 9 | 10 | block documents 11 | .document 12 | article.article.article-full 13 | :markdown 14 | In an effort not to reinvent the wheel and reduce Kickstart down to its bare essentials, 15 | Icons are not part of the standard bundle for Kickstart. 16 | 17 | I recommend using [Font Awesome](http://fortawesome.github.io/Font-Awesome/) if your 18 | project needs icons. 19 | 20 | 21 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/3.x/ui/labels/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../_layout 2 | 3 | block hero-title 4 | h1 Labels 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = "Labels" 9 | 10 | block ui-stylesheet 11 | link(rel="stylesheet" href="/css/pages/docs/ui/labels.min.css") 12 | 13 | block documents 14 | .document 15 | article.article 16 | :markdown 17 | Labels are simple inline containers that share some of the base element styling in Kickstart. 18 | Great for drawing attention without visual overload. 19 | 20 | .example 21 | span.label Attention 22 | 23 | :markdown 24 | Labels are pretty straightforward. Ideally, `span` elements should be labels 25 | but the styling can be applied to almost anything. 26 | 27 | article.code 28 | .if-semantic 29 | :markdown 30 | 31 | 32 | Attention 33 | 34 | .attention { 35 | @include label(); 36 | } 37 | 38 | .ifnot-semantic 39 | :markdown 40 | 41 | 42 | Attention 43 | 44 | .document 45 | article.article 46 | :markdown 47 | Labels can also be styled much the same way you would with a button. 48 | 49 | .example 50 | span.label.label-red Please correct 51 | |   52 | span.label.label-green New! 53 | 54 | .if-semantic 55 | p Pass in any color to `label()` 56 | 57 | +available-colors('label') 58 | 59 | article.code 60 | .if-semantic 61 | :markdown 62 | 63 | 64 | Please correct 65 | New! 66 | 67 | .error { 68 | @include label(map-get($colors, red)); 69 | } 70 | .notice { 71 | @include label($primary-color); 72 | } 73 | 74 | .ifnot-semantic 75 | :markdown 76 | 77 | 78 | Please correct 79 | New! 80 | 81 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/advanced/functions/extend/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../../_layout 2 | 3 | block hero-title 4 | h1 Extend 5 | 6 | block docVars 7 | - var variations = false 8 | 9 | block subMenuVars 10 | - var subMenuItem = "functions" 11 | 12 | block menuVars 13 | - var docCategory = "advanced" 14 | 15 | block variables 16 | - var showFooter = false 17 | - var title = "Extend Function" 18 | 19 | block documents 20 | .document 21 | article.article 22 | :markdown 23 | `k$.extend()` merges two JavaScript objects. 24 | 25 | Here we have a "default" object, the `employee`. There are also two employee objects, `alex` and `jesse`. 26 | 27 | article.code 28 | :markdown 29 | 30 | 31 | var employee = { 32 | role: 'cashier', 33 | location: 'Atlanta, GA' 34 | } 35 | 36 | var alex = { 37 | name: 'Alex' 38 | } 39 | 40 | var jesse = { 41 | name: 'Jesse', 42 | role: 'CEO', 43 | location: 'NYC' 44 | } 45 | 46 | .document 47 | article.article 48 | :markdown 49 | Let's see what happens when we extend `employee` to `alex` and `jesse`. 50 | 51 | article.code 52 | :markdown 53 | 54 | 55 | alex = k$.extend(employee, alex) 56 | 57 | jesse = k$.extend(employee, jesse) 58 | 59 | .document 60 | article.article 61 | :markdown 62 | Here's the output for each: 63 | 64 | article.code 65 | :markdown 66 | 67 | 68 | // alex 69 | 70 | { 71 | role: 'cashier', 72 | location: 'Atlanta, GA', 73 | name: 'Alex' 74 | } 75 | 76 | // jesse 77 | 78 | { 79 | role: 'CEO', 80 | location: 'NYC', 81 | name: 'Jesse' 82 | } 83 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/advanced/functions/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../index 2 | 3 | block doc-article 4 | h2 Functions 5 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/advanced/index.jade: -------------------------------------------------------------------------------- 1 | extends ../_layout 2 | 3 | block hero-title 4 | h1 Advanced 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = 'Advanced' 9 | 10 | block menuVars 11 | - var docCategory = "advanced" 12 | 13 | block subMenuVars 14 | - var subMenuItem = "advanced" 15 | 16 | block documents 17 | .if-semantic 18 | .document 19 | article.article.article-full 20 | :markdown 21 | # Advanced 22 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/fullpage-layout.jade: -------------------------------------------------------------------------------- 1 | extends ../../4.x-layouts/_layout 2 | 3 | block bleed 4 | header.doc-hero 5 | block hero-title 6 | block hero-example 7 | 8 | block header 9 | include headers/_ui_library 10 | 11 | block container 12 | .row 13 | main.fullpane.readable 14 | block fullPane 15 | 16 | block postJS 17 | script. 18 | k$.nav('.docs-nav') 19 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/headers/_advanced.jade: -------------------------------------------------------------------------------- 1 | .docs-nav(data-ks-navbar) 2 | nav 3 | ul 4 | li.navbar-title 5 | h1 Documentation 6 | button(role="button") = 7 | li(class="#{subMenuItem == 'adding-extensions' ? 'active' : ''}") 8 | a(href="/docs/4.x/advanced/adding-extensions") Adding Extensions 9 | li(class="#{subMenuItem == 'creating-extensions' ? 'active' : ''}") 10 | a(href="/docs/4.x/advanced/creating-extensions") Creating Extensions 11 | li(class="#{subMenuItem == 'throttling' ? 'active' : ''}") 12 | a(href="/docs/4.x/advanced/throttling") Throttling 13 | li(class="#{subMenuItem == 'element-inspector' ? 'active' : ''}") 14 | a(href="/docs/4.x/advanced/element-inspector") Element Inspector 15 | li(class="#{subMenuItem == 'extend' ? 'active' : ''}") 16 | a(href="/docs/4.x/advanced/extend") Extend 17 | 18 | ul 19 | li 20 | | 4.x 21 | ul 22 | li: a(href="http://getkickstrap.com.s3-website-us-east-1.amazonaws.com/1.x/") 1.5.0 23 | li: a(href="http://getkickstrap.com.s3-website-us-east-1.amazonaws.com/2.x/") 2.0.8 24 | li: a(href="/docs/#{docsVersion}") #{currentVersion} (current) 25 | li: a(href="/docs/#{nextDocsVersion}") *4 (Future plans) 26 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/headers/_page-generator.jade: -------------------------------------------------------------------------------- 1 | .docs-nav(data-ks-navbar) 2 | nav 3 | ul 4 | li.navbar-title 5 | h1 Page Generator 6 | button(role="button") = 7 | li(class="#{subMenuItem == 'es6' ? 'active' : ''}") 8 | a(href="/docs/4.x/page-generator/writing-in-es6-7") Writing in ES6-7 9 | li(class="#{subMenuItem == 'coffeescript' ? 'active' : ''}") 10 | a(href="/docs/4.x/page-generator/coffeescript") Coffeescript 11 | li(class="#{subMenuItem == 'sass-scss' ? 'active' : ''}") 12 | a(href="/docs/4.x/page-generator/sass-scss") Sass/SCSS 13 | li(class="#{subMenuItem == 'testing' ? 'active' : ''}") 14 | a(href="/docs/4.x/page-generator/testing") Testing 15 | 16 | ul 17 | li 18 | | 4.x 19 | ul 20 | li: a(href="http://getkickstrap.com.s3-website-us-east-1.amazonaws.com/1.x/") 1.5.0 21 | li: a(href="http://getkickstrap.com.s3-website-us-east-1.amazonaws.com/2.x/") 2.0.8 22 | li: a(href="/docs/#{docsVersion}") #{currentVersion} (current) 23 | li: a(href="/docs/#{nextDocsVersion}") *4 (Future plans) 24 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/page-generator/index.jade: -------------------------------------------------------------------------------- 1 | extends ../_layout 2 | 3 | block hero-title 4 | h1 Page Generator 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = 'Page Generator' 9 | 10 | block menuVars 11 | - var docCategory = "page-generator" 12 | 13 | block subMenuVars 14 | - var subMenuItem = "page-generator" 15 | 16 | block documents 17 | .if-semantic 18 | .document 19 | article.article.article-full 20 | :markdown 21 | # Page Generator 22 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/ui/components/alerts/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../../_layout 2 | 3 | block hero-title 4 | h1 Alerts 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = "Alerts" 9 | 10 | block ui-stylesheet 11 | link(rel="stylesheet" href="/css/pages/docs/ui/alerts.min.css") 12 | 13 | block documents 14 | .document 15 | article.article 16 | :markdown 17 | Alerts are simple colored containers with opinionated type hierarchy. 18 | These are great for drawing attention within content or showing the 19 | user notices above the page. Alerts styles are reused for showing [growls](/docs/#{docsVersion}/ui/notifications). 20 | 21 | .example 22 | .alert 23 | h1.toc-exempt Attention 24 | p You need to change your password 25 | button.button Change Password 26 | 27 | .row 28 | .col-third 29 | .alert.alert-warning 30 | p Careful! 31 | .col-third 32 | .alert.alert-error 33 | h1.toc-exempt Last command did not work 34 | p Please try again. 35 | .col-third 36 | .alert 37 | p Please accept the terms and conditions agreement 38 | label.checkbox 39 | input(type="checkbox") 40 | | I agree to the terms and conditions 41 | 42 | article.code 43 | :markdown 44 | 45 | 46 |
47 |

Attention

48 |

You need to change your password

49 | 50 |
51 | 52 | .if-semantic 53 | :markdown 54 | 55 | 56 | .alert { 57 | @include alert(); 58 | } 59 | .button { 60 | @include button(); 61 | } 62 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/ui/components/icons/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../../_layout 2 | 3 | block hero-title 4 | h1 Icons 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = "Icons" 9 | 10 | block documents 11 | .document 12 | article.article.article-full 13 | :markdown 14 | In an effort not to reinvent the wheel and reduce Kickstart down to its bare essentials, 15 | Icons are not part of the standard bundle for Kickstart. 16 | 17 | I recommend using [Font Awesome](http://fortawesome.github.io/Font-Awesome/) if your 18 | project needs icons. 19 | 20 | 21 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/ui/components/labels/index.jade: -------------------------------------------------------------------------------- 1 | extends ../../../_layout 2 | 3 | block hero-title 4 | h1 Labels 5 | 6 | block variables 7 | - var showFooter = false 8 | - var title = "Labels" 9 | 10 | block ui-stylesheet 11 | link(rel="stylesheet" href="/css/pages/docs/ui/labels.min.css") 12 | 13 | block documents 14 | .document 15 | article.article 16 | :markdown 17 | Labels are simple inline containers that share some of the base element styling in Kickstart. 18 | Great for drawing attention without visual overload. 19 | 20 | .example 21 | span.label Attention 22 | 23 | :markdown 24 | Labels are pretty straightforward. Ideally, `span` elements should be labels 25 | but the styling can be applied to almost anything. 26 | 27 | article.code 28 | .if-semantic 29 | :markdown 30 | 31 | 32 | Attention 33 | 34 | .attention { 35 | @include label(); 36 | } 37 | 38 | .ifnot-semantic 39 | :markdown 40 | 41 | 42 | Attention 43 | 44 | .document 45 | article.article 46 | :markdown 47 | Labels can also be styled much the same way you would with a button. 48 | 49 | .example 50 | span.label.label-red Please correct 51 | |   52 | span.label.label-green New! 53 | 54 | .if-semantic 55 | p Pass in any color to `label()` 56 | 57 | +available-colors('label') 58 | 59 | article.code 60 | .if-semantic 61 | :markdown 62 | 63 | 64 | Please correct 65 | New! 66 | 67 | .error { 68 | @include label(map-get($colors, red)); 69 | } 70 | .notice { 71 | @include label($primary-color); 72 | } 73 | 74 | .ifnot-semantic 75 | :markdown 76 | 77 | 78 | Please correct 79 | New! 80 | 81 | -------------------------------------------------------------------------------- /lib-docs/jade/docs/4.x/ui/tutorial/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/jade/docs/4.x/ui/tutorial/.keep -------------------------------------------------------------------------------- /lib-docs/jade/docs/index.jade: -------------------------------------------------------------------------------- 1 | doctype html5 2 | html 3 | head 4 | script. 5 | window.location.replace("/docs/#{nextDocsVersion}"); 6 | -------------------------------------------------------------------------------- /lib-docs/jade/tests/layout.jade: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/jade/tests/layout.jade -------------------------------------------------------------------------------- /lib-docs/rails/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # Specify your gem's dependencies in kickstart_rails.gemspec 4 | gemspec 5 | -------------------------------------------------------------------------------- /lib-docs/rails/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Adam Kochanowicz 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /lib-docs/rails/README.md: -------------------------------------------------------------------------------- 1 | # Kickstart 3 2 | 3 | Gem for Kickstart 3 for Rails. Instructions at [getkickstart.com](http://getkickstart.com) 4 | -------------------------------------------------------------------------------- /lib-docs/rails/Rakefile: -------------------------------------------------------------------------------- 1 | require "bundler/gem_tasks" 2 | -------------------------------------------------------------------------------- /lib-docs/rails/app/assets/javascripts/kickstart_rails.js: -------------------------------------------------------------------------------- 1 | //= require ./kickstart_rails/kickstart 2 | -------------------------------------------------------------------------------- /lib-docs/rails/app/assets/javascripts/kickstart_rails/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/rails/app/assets/javascripts/kickstart_rails/.keep -------------------------------------------------------------------------------- /lib-docs/rails/app/assets/stylesheets/index.scss: -------------------------------------------------------------------------------- 1 | @import 'kickstart_rails' 2 | -------------------------------------------------------------------------------- /lib-docs/rails/app/assets/stylesheets/kickstart_rails.scss: -------------------------------------------------------------------------------- 1 | @import 'themes/default/theme' 2 | -------------------------------------------------------------------------------- /lib-docs/rails/kickstart_rails.gemspec: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | lib = File.expand_path('../lib', __FILE__) 3 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 4 | require 'kickstart_rails/version' 5 | 6 | Gem::Specification.new do |spec| 7 | spec.name = "kickstart_rails" 8 | spec.version = Kickstart_rails::VERSION 9 | spec.authors = ["Adam Kochanowicz"] 10 | spec.email = ["adamjgrant@gmail.com"] 11 | spec.summary = %q{The front-end library for clean HTML and fast websites.} 12 | spec.description = %q{The front-end library for clean HTML and fast websites.} 13 | spec.homepage = "http://getkickstart.com" 14 | spec.license = "MIT" 15 | 16 | spec.files = Dir.glob(["{app,lib}/**/*"]).reject{ |f| f['LICENSE']} + %w(README.md Rakefile) 17 | spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } 18 | spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) 19 | spec.require_paths = ["lib"] 20 | 21 | spec.add_development_dependency "bundler", "~> 1.6" 22 | spec.add_development_dependency "rake", "~> 10.0" 23 | 24 | spec.add_dependency "sass", "~> 3.3" 25 | spec.add_dependency "normalize-rails", "~> 3.0" 26 | spec.add_dependency "autoprefixer-rails", "~> 3.0" 27 | end 28 | -------------------------------------------------------------------------------- /lib-docs/rails/lib/kickstart_rails.rb: -------------------------------------------------------------------------------- 1 | module Kickstart_rails 2 | class Engine < Rails::Engine 3 | initializer 'kickstart_rails.assets.precompile' do |app| 4 | %w(stylesheets javascripts).each do |sub| 5 | app.config.assets.paths << root.join('assets', sub) 6 | end 7 | end 8 | end 9 | 10 | def gem_path 11 | @gem_path ||= File.expand_path '..', File.dirname(__FILE__) 12 | end 13 | 14 | def assets_path 15 | @assets_path ||= File.join gem_path, 'app/assets' 16 | end 17 | 18 | def stylesheets_path 19 | File.join assets_path, 'stylesheets' 20 | end 21 | 22 | def javascripts_path 23 | File.join assets_path, 'javascripts' 24 | end 25 | 26 | def configure_sass 27 | require 'sass' 28 | 29 | ::Sass.load_paths << stylesheets_path 30 | ::Sass::Script::Number.precision = [10, ::Sass::Script::Number.precision].max 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /lib-docs/rails/lib/kickstart_rails/version.rb: -------------------------------------------------------------------------------- 1 | module Kickstart_rails 2 | VERSION = "3.1.2" 3 | end 4 | -------------------------------------------------------------------------------- /lib-docs/readme.md: -------------------------------------------------------------------------------- 1 | Kickstart 3.0 2 | ============= 3 | 4 | Homepage 5 | 6 | License 7 | ======= 8 | 9 | The MIT License (MIT) 10 | 11 | Copyright (c) 2014 Adam Kochanowicz 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | -------------------------------------------------------------------------------- /lib-docs/sass/chosen-theme.sass: -------------------------------------------------------------------------------- 1 | @import themes/default/theme 2 | // @import ../../lib/sass/themes/mytheme/theme 3 | -------------------------------------------------------------------------------- /lib-docs/sass/fullpage.sass: -------------------------------------------------------------------------------- 1 | @import chosen-theme 2 | 3 | .main-navigation 4 | +navbar($background-color: white) 5 | 6 | svg 7 | fill: map-get($black, lighter) 8 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/form.sass: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib-docs/sass/pages/docs/form.sass -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/grid.sass: -------------------------------------------------------------------------------- 1 | @import ../chosen-theme 2 | 3 | .row 4 | +row 5 | 6 | .col-2 7 | +column(2) 8 | 9 | .col-3 10 | +column(3) 11 | 12 | .col-6 13 | +column(6) 14 | 15 | .col-4 16 | +column(4) 17 | 18 | .col-9 19 | +column(9) 20 | 21 | .col-12 22 | +column(12) 23 | 24 | .col-left-6 25 | +left(6) 26 | 27 | .col-left-1 28 | +left(1) 29 | 30 | .col-left-3 31 | +left(3) 32 | 33 | .col-left-4 34 | +left(4) 35 | 36 | .col-left-2 37 | +left(2) 38 | 39 | .col-right-3 40 | +right(3) 41 | 42 | .col-right-4 43 | +right(4) 44 | 45 | .col-right-6 46 | +right(6) 47 | 48 | .col-right-twothirds 49 | +right('twothirds') 50 | 51 | .col-left-twothirds 52 | +left('twothirds') 53 | 54 | .col-third 55 | +column('third') 56 | 57 | .col-twothirds 58 | +column('twothirds') 59 | 60 | .col-example 61 | +root-element 62 | background: map-get($white, darker) 63 | color: map-get($black, lighter) 64 | text-align: center 65 | 66 | &.gray 67 | background: white 68 | margin: 69 | bottom: 0 70 | top: $space/2 71 | 72 | table 73 | +table 74 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/alerts.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .alert 4 | +alert 5 | background: map-get($colors, blue) 6 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/buttons.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .button 4 | &.button-green 5 | +button-color(map-get($colors, green)) 6 | &.button-red 7 | +button-color(map-get($colors, red)) 8 | &.button-blue 9 | +button-color(map-get($colors, blue)) 10 | &.button-yellow 11 | +button-color(map-get($colors, yellow)) 12 | &.button-orange 13 | +button-color(map-get($colors, orange)) 14 | 15 | &.button-small 16 | +button-size(0.85) 17 | 18 | &.button-large 19 | +button-size(1.2) 20 | 21 | .button-group 22 | +button-group 23 | 24 | &.button-green 25 | button 26 | +button-color(map-get($colors, green)) 27 | &.button-violet 28 | button 29 | +button-color(map-get($colors, violet)) 30 | &.button-red 31 | button 32 | +button-color(map-get($colors, red)) 33 | 34 | &.button-small 35 | button 36 | +button-size(0.85) 37 | 38 | &.button-large 39 | button 40 | +button-size(1.2) 41 | 42 | .notice 43 | +label($background-color: map-get($colors, yellow)) 44 | 45 | .row 46 | +row 47 | 48 | .col-4 49 | +column(4) 50 | 51 | .list-unstyled 52 | +list('unstyled') 53 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/containers.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .container 4 | +container 5 | 6 | &.container-blue 7 | +container-color(map-get($colors, blue)) 8 | 9 | form 10 | +form 11 | 12 | .document 13 | .form_group 14 | +form_group 15 | 16 | .thumbnail 17 | +thumbnail 18 | 19 | .thumbnail-content, .profile 20 | +thumbnail_content 21 | 22 | .navigation 23 | +navbar 24 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/forms.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | form.form 4 | +form 5 | 6 | input[type="submit"] 7 | +button($primary-color) 8 | 9 | &.form_horizontal 10 | +form('horizontal') 11 | 12 | &.form-left 13 | +form('left') 14 | 15 | .form_group 16 | +form_group 17 | 18 | &.form_group-horizontal 19 | +form_group('horizontal') 20 | 21 | .row 22 | +row 23 | 24 | .col-third 25 | +column('third') 26 | 27 | .col-twothirds 28 | +column('twothirds') 29 | 30 | .col-twothirds.col-left-third 31 | +column('twothirds', 'third') 32 | 33 | .switches 34 | .form_group 35 | margin-bottom: 0 36 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/icons.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | svg.icon 4 | +icon 5 | 6 | .row 7 | +row 8 | 9 | .icon-holder 10 | +column('third') 11 | 12 | svg 13 | display: inline-block 14 | vertical-align: middle 15 | 16 | &:after 17 | content: ' ' 18 | display: block 19 | 20 | p 21 | margin-bottom: 0 22 | vertical-align: middle 23 | display: inline-block 24 | 25 | @media screen and (min-width: $tablet) 26 | margin-bottom: $space/2 27 | +column(4) 28 | 29 | @media screen and (min-width: $desktop) 30 | +column(3) 31 | 32 | svg 33 | display: block 34 | margin: 0px auto 35 | 36 | &:after 37 | content: '' 38 | 39 | p 40 | display: block 41 | text-align: center 42 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/labels.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .label 4 | +label 5 | 6 | &.label-red 7 | +label(map-get($colors, red)) 8 | 9 | &.label-green 10 | +label(map-get($colors, green)) 11 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/modals.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .modal, .modal-example 4 | +modal 5 | 6 | .modal-example 7 | +modal 8 | 9 | &.override 10 | max-width: 100% 11 | display: block 12 | position: static 13 | box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5) 14 | left: auto 15 | right: auto 16 | top: auto 17 | bottom: auto 18 | margin: 0 19 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/navigation.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .navbar 4 | +navbar 5 | 6 | &.navbar-blue 7 | +navbar-color(map-get($black, lighter)) 8 | 9 | .pagination 10 | +pagination 11 | 12 | .document 13 | img 14 | max-width: 100% 15 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/notifications.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .growl 4 | &.growl-yellow, &.growl-warn 5 | background-color: map-get($colors, yellow) 6 | color: black 7 | 8 | &.growl-red, &.growl-error 9 | background-color: map-get($colors, red) 10 | 11 | &.growl-blue, &.growl-info 12 | background-color: map-get($colors, blue) 13 | 14 | &.growl-green, &.growl-success 15 | background-color: map-get($colors, green) 16 | 17 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/tables.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .table 4 | +table 5 | 6 | &.table-blank 7 | +table-blank 8 | 9 | &.table-zebra 10 | +table-zebra 11 | 12 | &.table-hover 13 | +table-hover 14 | 15 | &.table-bordered 16 | +table-bordered 17 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/tabs.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .tabs 4 | +tabs 5 | 6 | .tab_pane_container 7 | +tab_pane_container 8 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/tooltips.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .tooltip_trigger 4 | +tooltip_trigger 5 | 6 | .list-unstyled 7 | +list('unstyled') 8 | -------------------------------------------------------------------------------- /lib-docs/sass/pages/docs/ui/typography.sass: -------------------------------------------------------------------------------- 1 | @import ../../chosen-theme 2 | 3 | .example 4 | h1 5 | +heading-lg 6 | 7 | &.xxl 8 | +heading-xxl 9 | 10 | &.xl 11 | +heading-xl 12 | 13 | &.lg 14 | +heading-lg 15 | 16 | &.md 17 | +heading-md 18 | 19 | &.rg 20 | +heading-rg 21 | 22 | &.sm 23 | +heading-sm 24 | 25 | &.xs 26 | +heading-xs 27 | 28 | &.xxs 29 | +heading-xxs 30 | 31 | h2 32 | +heading-md 33 | 34 | h3 35 | +heading-rg 36 | 37 | h4 38 | +heading-sm 39 | 40 | h5 41 | +heading-xs 42 | 43 | h6 44 | +heading-xxs 45 | 46 | p.readable 47 | +p(true) 48 | 49 | .page-heading 50 | +page-heading 51 | 52 | .list-unstyled 53 | +list($style: 'unstyled') 54 | 55 | &.list-horizontal 56 | +list($style: 'unstyled', $layout: 'horizontal') 57 | -------------------------------------------------------------------------------- /lib-docs/sass/vendor/_index.sass: -------------------------------------------------------------------------------- 1 | // Vendor libraries 2 | // ================ 3 | // 3rd party additions to the Kickstart UI library should 4 | // be indexed here. 5 | 6 | // e.g. @import datepicker 7 | @import switch/switch 8 | -------------------------------------------------------------------------------- /lib-docs/tests/default.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe 'Your first test', -> 5 | it 'should be written by a brilliant mind such as yourself', -> 6 | expect(1).to.equal(1) 7 | -------------------------------------------------------------------------------- /lib/coffee/app.coffee: -------------------------------------------------------------------------------- 1 | KS = require '../../lib-core/coffee/app' 2 | myScript = require './myscript' 3 | vendor = require './vendor/index' 4 | 5 | document.addEventListener 'DOMContentLoaded', -> 6 | myScript() 7 | -------------------------------------------------------------------------------- /lib/coffee/myscript.coffee: -------------------------------------------------------------------------------- 1 | myscript = () -> 2 | # Write your coffeescript here. 3 | 4 | module.exports = myscript 5 | -------------------------------------------------------------------------------- /lib/coffee/tests.coffee: -------------------------------------------------------------------------------- 1 | App = require './app' 2 | testDef = require '../tests/default' 3 | -------------------------------------------------------------------------------- /lib/coffee/vendor/index.coffee: -------------------------------------------------------------------------------- 1 | # Require vendor components here 2 | # 3 | # Example: 4 | # someModule = require './someModule/index' 5 | -------------------------------------------------------------------------------- /lib/img/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib/img/.keep -------------------------------------------------------------------------------- /lib/jade/index.jade: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | +b("resources") 5 | h1 Thanks for using Kickstart 3 6 | p Let's get to work! 7 | 8 | +c("resource") 9 | a(href="http://getkickstart.com") Homepage 10 | 11 | +c("resource") 12 | a(href="https://github.com/adamjgrant/kickstart/") GitHub 13 | -------------------------------------------------------------------------------- /lib/jade/layout.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | block variables 3 | - var title = "Home" 4 | 5 | include ../../lib-core/jade/mixins.jade 6 | 7 | html(lang='en') 8 | head 9 | link(rel="stylesheet" href="/css/style.min.css") 10 | meta(name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no") 11 | title My Website - #{title} 12 | body 13 | main.main 14 | block content 15 | 16 | footer.main 17 | .wrapper 18 | p Made by Everything 19 | 20 | script(src="/js/script.min.js") 21 | -------------------------------------------------------------------------------- /lib/jade/tests/index.jade: -------------------------------------------------------------------------------- 1 | doctype html 2 | html(lang='en') 3 | head 4 | 5 | link(rel="stylesheet" href="./css/kickstart.css") 6 | script(src="../../node_modules/mocha/mocha.js") 7 | script(src="../../node_modules/chai/chai.js") 8 | 9 | body 10 | h1 Kickstart 3 Tests 11 | p Use this page to run your Mocha tests via Phantom JS 12 | 13 | footer 14 | script. 15 | mocha.setup('bdd'); 16 | script(src="../js/test.js") 17 | script. 18 | if (window.mochaPhantomJS) { 19 | mochaPhantomJS.run(); 20 | } else { 21 | mocha.run(); 22 | } 23 | -------------------------------------------------------------------------------- /lib/js/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/lib/js/.keep -------------------------------------------------------------------------------- /lib/readme.md: -------------------------------------------------------------------------------- 1 | Kickstart 3.0 2 | ============= 3 | 4 | Homepage 5 | 6 | License 7 | ======= 8 | 9 | The MIT License (MIT) 10 | 11 | Copyright (c) 2014 Adam Kochanowicz 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy 14 | of this software and associated documentation files (the "Software"), to deal 15 | in the Software without restriction, including without limitation the rights 16 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 17 | copies of the Software, and to permit persons to whom the Software is 18 | furnished to do so, subject to the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be included in 21 | all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 24 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 26 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 28 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 29 | THE SOFTWARE. 30 | -------------------------------------------------------------------------------- /lib/sass/style.sass: -------------------------------------------------------------------------------- 1 | @import themes/default/theme 2 | 3 | // Write your styles here. 4 | +b("resources") 5 | max-width: $tablet 6 | margin: 0px auto 7 | text-align: center 8 | 9 | +c("resource") 10 | display: inline-block 11 | margin: $space 12 | -------------------------------------------------------------------------------- /lib/sass/themes/default/theme.sass: -------------------------------------------------------------------------------- 1 | @import ../../../../lib-core/sass/themes/default/theme.sass 2 | -------------------------------------------------------------------------------- /lib/sass/vendor/_index.sass: -------------------------------------------------------------------------------- 1 | // Vendor libraries 2 | // ================ 3 | // 3rd party additions to the Kickstart UI library should 4 | // be indexed here. 5 | 6 | // e.g. @import datepicker 7 | -------------------------------------------------------------------------------- /lib/tests/default.coffee: -------------------------------------------------------------------------------- 1 | assert = require("chai").assert 2 | expect = require("chai").expect 3 | 4 | describe 'Your first test', -> 5 | it 'should be written by a brilliant mind such as yourself', -> 6 | expect(1).to.equal(1) 7 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | build: 2 | @git submodule update --init --recursive 3 | @make build-icons 4 | @make build-default 5 | @make build-rails 6 | @make build-node 7 | 8 | build-default: 9 | @echo "Getting latest..." 10 | @git pull origin master 11 | 12 | @echo "Installing node dependencies..." 13 | @npm install 14 | 15 | @echo "Installing ruby dependencies..." 16 | @bundle 17 | 18 | @echo "Running tests..." 19 | @gulp docs:test 20 | 21 | @echo "Building project" 22 | @gulp build 23 | 24 | build-rails: 25 | @echo "Bumping Rails gem version" 26 | @cd lib-docs/rails;gem bump 27 | 28 | @echo "Copying in assets" 29 | @mkdir -p rails 30 | @rm -rf rails/* 31 | @cp -r lib-docs/rails/app rails/ 32 | @cp -r lib-docs/rails/lib rails/ 33 | # @cp -r lib/sass/* rails/app/assets/stylesheets/ 34 | @rsync -av --exclude-from 'rsync-exclude.txt' lib-core/sass/ rails/app/assets/stylesheets/ 35 | @cp lib-core/sass/themes/default/theme.sass lib-docs/sass/themes/default/ 36 | @cp public/js/script.js rails/app/assets/javascripts/kickstart_rails/kickstart.js 37 | @cp lib-docs/rails/Gemfile lib-docs/rails/kickstart_rails.gemspec lib-docs/rails/LICENSE lib-docs/rails/Rakefile lib-docs/rails/README.md rails/ 38 | @cd rails;gem release 39 | 40 | build-node: 41 | @npm version patch 42 | @npm publish 43 | 44 | build-icons: 45 | @mkdir -p docs 46 | @mkdir -p docs/svgs 47 | @echo "Generating SVGs" 48 | @./build.rb 49 | 50 | setup: 51 | @make build-icons 52 | @sudo npm install -g gulp 53 | @sudo npm install 54 | @bundle install 55 | @make build-default 56 | 57 | # # This will move over only the docs from 3.x that haven't changed in 4.x 58 | # sync-docs: 59 | # @rsync -av --exclude-from '4.x-pages.txt' lib-docs/jade/docs/3.x/ lib-docs/jade/docs/4.x/ 60 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kickstart-node", 3 | "version": "3.0.76", 4 | "description": "A front-end library for clean HTML and fast performance", 5 | "keywords": [ 6 | "CoffeeScript", 7 | "Jade", 8 | "CSS", 9 | "JS", 10 | "Node", 11 | "Gulp" 12 | ], 13 | "homepage": "http://getkickstart.com", 14 | "bugs": "https://github.com/adamjgrant/kickstart/issues", 15 | "author": "Adam Kochanowicz", 16 | "repository": { 17 | "type": "git", 18 | "url": "git://github.com/adamjgrant/kickstart.git" 19 | }, 20 | "browser": {}, 21 | "browserify": { 22 | "transform": [ 23 | "coffeeify", 24 | "browserify-shim" 25 | ] 26 | }, 27 | "browserify-shim": { 28 | "makePromise": "./node_modules/when/lib/makePromise" 29 | }, 30 | "devDependencies": { 31 | "browser-sync": "^1.3.6", 32 | "browserify": "^6.2.0", 33 | "browserify-shim": "^3.7.0", 34 | "chai": "^1.9.1", 35 | "coffeeify": "^0.7.0", 36 | "css-purge": "^1.1.1", 37 | "flexbox-grid": "^1.0.0", 38 | "gulp": "^3.8.6", 39 | "gulp-autoprefixer": "0.0.10", 40 | "gulp-cached": "^1.0.1", 41 | "gulp-coffee": "^2.1.1", 42 | "gulp-concat": "^2.4.0", 43 | "gulp-connect": "^2.0.6", 44 | "gulp-css-purge": "^1.0.0", 45 | "gulp-derequire": "^1.0.0", 46 | "gulp-expect-file": "0.0.7", 47 | "gulp-if": "^1.2.4", 48 | "gulp-imagemin": "^1.0.1", 49 | "gulp-jade": "^0.6.1", 50 | "gulp-minify-css": "^0.3.8", 51 | "gulp-mocha": "^1.0.0", 52 | "gulp-mocha-phantomjs": "^0.10.1", 53 | "gulp-mustache": "^0.4.0", 54 | "gulp-newer": "^0.3.0", 55 | "gulp-notify": "^1.5.0", 56 | "gulp-rename": "^1.2.0", 57 | "gulp-ruby-sass": "^0.7.1", 58 | "gulp-todos": "^0.1.0", 59 | "gulp-uglify": "^1.0.1", 60 | "gulp-util": "^3.0.1", 61 | "gulp-watch": "^0.6.8", 62 | "highlight.js": "^8.2.0", 63 | "markdown-js": "0.0.3", 64 | "mocha": "^1.21.4", 65 | "normalize.css": "^3.0.1", 66 | "pretty-hrtime": "^0.2.1", 67 | "require-dir": "^0.1.0", 68 | "vinyl-source-stream": "^0.1.1", 69 | "watchify": "^2.1.1", 70 | "when": "^3.4.4" 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /raw/Illustrations/nav.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/raw/Illustrations/nav.ai -------------------------------------------------------------------------------- /raw/Kickstart.fog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/raw/Kickstart.fog -------------------------------------------------------------------------------- /raw/animation.antmpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/raw/animation.antmpl -------------------------------------------------------------------------------- /raw/buffer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debouncer 7 | 8 | 9 | 10 | 13 | 23 | 24 | 25 | 26 | 27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /raw/buffer_edgeActions.js: -------------------------------------------------------------------------------- 1 | /*********************** 2 | * Adobe Edge Animate Composition Actions 3 | * 4 | * Edit this file with caution, being careful to preserve 5 | * function signatures and comments starting with 'Edge' to maintain the 6 | * ability to interact with these actions from within Adobe Edge Animate 7 | * 8 | ***********************/ 9 | (function($, Edge, compId){ 10 | var Composition = Edge.Composition, Symbol = Edge.Symbol; // aliases for commonly used Edge classes 11 | 12 | //Edge symbol: 'stage' 13 | (function(symbolName) { 14 | 15 | 16 | Symbol.bindTriggerAction(compId, symbolName, "Default Timeline", 4000, function(sym, e) { 17 | this.play (0); 18 | 19 | }); 20 | //Edge binding end 21 | 22 | })("stage"); 23 | //Edge symbol end:'stage' 24 | 25 | })(window.jQuery || AdobeEdge.$, AdobeEdge, "EDGE-112562383"); -------------------------------------------------------------------------------- /raw/debouncer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Debouncer 7 | 8 | 9 | 10 | 13 | 23 | 24 | 25 | 26 | 27 |
28 |
29 | 30 | -------------------------------------------------------------------------------- /raw/debouncer_edgeActions.js: -------------------------------------------------------------------------------- 1 | /*********************** 2 | * Adobe Edge Animate Composition Actions 3 | * 4 | * Edit this file with caution, being careful to preserve 5 | * function signatures and comments starting with 'Edge' to maintain the 6 | * ability to interact with these actions from within Adobe Edge Animate 7 | * 8 | ***********************/ 9 | (function($, Edge, compId){ 10 | var Composition = Edge.Composition, Symbol = Edge.Symbol; // aliases for commonly used Edge classes 11 | 12 | //Edge symbol: 'stage' 13 | (function(symbolName) { 14 | 15 | 16 | Symbol.bindTriggerAction(compId, symbolName, "Default Timeline", 3500, function(sym, e) { 17 | this.play (0); 18 | 19 | }); 20 | //Edge binding end 21 | 22 | })("stage"); 23 | //Edge symbol end:'stage' 24 | 25 | })(window.jQuery || AdobeEdge.$, AdobeEdge, "EDGE-112562383"); -------------------------------------------------------------------------------- /raw/fixed.an: -------------------------------------------------------------------------------- 1 | 2 | { 3 | 4 | "HTMLFileName":"fixed.html", 5 | "PubWebDir":"/Users/adamkochanowicz/sites/kickstart/lib/iframes/layout-fixed/", 6 | "ModelData":"{\ 7 | \"stage\": {\ 8 | \"timelines\": {\ 9 | \"Default Timeline\": {\ 10 | }\ 11 | }},\ 12 | \"Preloader\": {\ 13 | \"timelines\": {\ 14 | \ 15 | }},\ 16 | \"Down-level\": {\ 17 | \"timelines\": {\ 18 | \ 19 | }}\ 20 | }", 21 | "pref__general__FilterNonAnimatedElements":"false", 22 | "viewStartMs":"-58.266910552979", 23 | "pref__general__AutoKeyframePropertiesArmed":"false", 24 | "symbol_stage":{ 25 | "dummyStageParentWidth":"550px", 26 | "dummyStageParentHeight":"200px", 27 | "element_${_Text}":{ 28 | "timelineColor2":"0x326a96", 29 | "timelineColor3":"0x385063", 30 | "timelineColor":"0x2f73ad"}, 31 | "element_${_RectangleCopy2}":{ 32 | "timelineColor2":"0x1aa38f", 33 | "timelineColor3":"0x2a6a61", 34 | "timelineColor":"0x00bda4"}, 35 | "element_${_RectangleCopy}":{ 36 | "timelineColor2":"0x4fa275", 37 | "timelineColor3":"0x456a55", 38 | "timelineColor":"0x50bd82"}, 39 | "element_${_TextCopy}":{ 40 | "timelineColor2":"0x1095d2", 41 | "timelineColor3":"0x29647e", 42 | "timelineColor":"0x00a9fa"}, 43 | "element_${_Rectangle2}":{ 44 | "timelineColor2":"0x168c84", 45 | "timelineColor3":"0x2a605c", 46 | "timelineColor":"0x00a096", 47 | "timelineTreeOpened":"true", 48 | "animationEnabled":"true"}, 49 | "defaultStageParentWidth":"550px", 50 | "defaultStageParentHeight":"200px", 51 | "element_${_Stage}":{ 52 | "timelineColor2":"0xcbbd71", 53 | "timelineColor3":"0x7b7652", 54 | "timelineColor":"0xeedf79"}, 55 | "element_${_Rectangle}":{ 56 | "timelineColor2":"0x81aa62", 57 | "timelineColor3":"0x5b6c4d", 58 | "timelineColor":"0x91c767", 59 | "timelineTreeOpened":"false", 60 | "animationEnabled":"true", 61 | "invisible":"false"}}, 62 | "TransitionIdCounter":"54", 63 | "CompZoomFactor":"100", 64 | "viewStartY":"0", 65 | "pixelsPerMs":"0.08581199962776", 66 | "usedBOM":"false", 67 | "nextElementColorIndex":"8", 68 | "stage-Default Timeline_playhead_ms":"4000", 69 | "PreloadAudio":"auto", 70 | "StageZoomFactor":"100"} -------------------------------------------------------------------------------- /raw/fixed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Untitled 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /raw/fixed_edgeActions.js: -------------------------------------------------------------------------------- 1 | /*********************** 2 | * Adobe Edge Animate Composition Actions 3 | * 4 | * Edit this file with caution, being careful to preserve 5 | * function signatures and comments starting with 'Edge' to maintain the 6 | * ability to interact with these actions from within Adobe Edge Animate 7 | * 8 | ***********************/ 9 | (function($, Edge, compId){ 10 | var Composition = Edge.Composition, Symbol = Edge.Symbol; // aliases for commonly used Edge classes 11 | 12 | //Edge symbol: 'stage' 13 | (function(symbolName) { 14 | 15 | 16 | Symbol.bindTriggerAction(compId, symbolName, "Default Timeline", 4000, function(sym, e) { 17 | this.play (0); 18 | 19 | }); 20 | //Edge binding end 21 | 22 | })("stage"); 23 | //Edge symbol end:'stage' 24 | 25 | })(jQuery, AdobeEdge, "EDGE-116087028"); -------------------------------------------------------------------------------- /raw/fluid-fixed.an: -------------------------------------------------------------------------------- 1 | 2 | { 3 | 4 | "HTMLFileName":"fluid-fixed.html", 5 | "pref__general__AutoKeyframePropertiesArmed":"false", 6 | "pref__general__GenerateSmoothTransitions":"false", 7 | "symbol_stage":{ 8 | "element_${_Rectangle2}":{ 9 | "timelineColor2":"0x168c84", 10 | "timelineColor3":"0x2a605c", 11 | "timelineColor":"0x00a096", 12 | "timelineTreeOpened":"true", 13 | "animationEnabled":"true"}, 14 | "dummyStageParentHeight":"200px", 15 | "element_${_Text}":{ 16 | "timelineColor2":"0x326a96", 17 | "timelineColor3":"0x385063", 18 | "timelineColor":"0x2f73ad"}, 19 | "element_${_RectangleCopy2}":{ 20 | "timelineColor2":"0x1aa38f", 21 | "timelineColor3":"0x2a6a61", 22 | "timelineColor":"0x00bda4"}, 23 | "element_${_RectangleCopy}":{ 24 | "timelineColor2":"0x4fa275", 25 | "timelineColor3":"0x456a55", 26 | "timelineColor":"0x50bd82"}, 27 | "element_${_Rectangle}":{ 28 | "timelineColor2":"0x81aa62", 29 | "timelineColor3":"0x5b6c4d", 30 | "timelineColor":"0x91c767", 31 | "timelineTreeOpened":"false", 32 | "animationEnabled":"true", 33 | "invisible":"false"}, 34 | "defaultStageParentWidth":"550px", 35 | "element_${_TextCopy}":{ 36 | "timelineColor2":"0x1095d2", 37 | "timelineColor3":"0x29647e", 38 | "timelineColor":"0x00a9fa"}, 39 | "defaultStageParentHeight":"200px", 40 | "element_${_Stage}":{ 41 | "timelineColor2":"0xcbbd71", 42 | "timelineColor3":"0x7b7652", 43 | "timelineColor":"0xeedf79"}, 44 | "dummyStageParentWidth":"550px"}, 45 | "TransitionIdCounter":"84", 46 | "CompZoomFactor":"100", 47 | "viewStartY":"0", 48 | "pixelsPerMs":"0.08581199962776", 49 | "StageZoomFactor":"100", 50 | "PubWebDir":"/Users/adamkochanowicz/sites/kickstart/lib/iframes/layout-fixed/", 51 | "usedBOM":"false", 52 | "nextElementColorIndex":"8", 53 | "stage-Default Timeline_playhead_ms":"4000", 54 | "pref__general__FilterNonAnimatedElements":"false", 55 | "ModelData":"{\ 56 | \"stage\": {\ 57 | \"timelines\": {\ 58 | \"Default Timeline\": {\ 59 | }\ 60 | }},\ 61 | \"Preloader\": {\ 62 | \"timelines\": {\ 63 | \ 64 | }},\ 65 | \"Down-level\": {\ 66 | \"timelines\": {\ 67 | \ 68 | }}\ 69 | }", 70 | "PreloadAudio":"auto"} -------------------------------------------------------------------------------- /raw/fluid-fixed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Untitled 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /raw/fluid-fixed_edgeActions.js: -------------------------------------------------------------------------------- 1 | /*********************** 2 | * Adobe Edge Animate Composition Actions 3 | * 4 | * Edit this file with caution, being careful to preserve 5 | * function signatures and comments starting with 'Edge' to maintain the 6 | * ability to interact with these actions from within Adobe Edge Animate 7 | * 8 | ***********************/ 9 | (function($, Edge, compId){ 10 | var Composition = Edge.Composition, Symbol = Edge.Symbol; // aliases for commonly used Edge classes 11 | 12 | //Edge symbol: 'stage' 13 | (function(symbolName) { 14 | 15 | 16 | Symbol.bindTriggerAction(compId, symbolName, "Default Timeline", 4000, function(sym, e) { 17 | this.play (0); 18 | 19 | }); 20 | //Edge binding end 21 | 22 | })("stage"); 23 | //Edge symbol end:'stage' 24 | 25 | })(jQuery, AdobeEdge, "EDGE-116087028"); -------------------------------------------------------------------------------- /raw/fluid.an: -------------------------------------------------------------------------------- 1 | 2 | { 3 | 4 | "HTMLFileName":"fluid.html", 5 | "PubWebDir":"/Users/adamkochanowicz/sites/kickstart/lib/iframes/layout-fluid/", 6 | "ModelData":"{\ 7 | \"stage\": {\ 8 | \"timelines\": {\ 9 | \"Default Timeline\": {\ 10 | }\ 11 | }},\ 12 | \"Preloader\": {\ 13 | \"timelines\": {\ 14 | \ 15 | }},\ 16 | \"Down-level\": {\ 17 | \"timelines\": {\ 18 | \ 19 | }}\ 20 | }", 21 | "pref__general__FilterNonAnimatedElements":"false", 22 | "viewStartMs":"-58.266909309762", 23 | "pref__general__AutoKeyframePropertiesArmed":"false", 24 | "symbol_stage":{ 25 | "element_${_Rectangle2}":{ 26 | "timelineColor2":"0x168c84", 27 | "timelineColor3":"0x2a605c", 28 | "timelineColor":"0x00a096", 29 | "timelineTreeOpened":"true", 30 | "animationEnabled":"true"}, 31 | "dummyStageParentHeight":"200px", 32 | "element_${_Text}":{ 33 | "timelineColor2":"0x326a96", 34 | "timelineColor3":"0x385063", 35 | "timelineColor":"0x2f73ad"}, 36 | "element_${_RectangleCopy2}":{ 37 | "timelineColor2":"0x1aa38f", 38 | "timelineColor3":"0x2a6a61", 39 | "timelineColor":"0x00bda4"}, 40 | "element_${_RectangleCopy}":{ 41 | "timelineColor2":"0x4fa275", 42 | "timelineColor3":"0x456a55", 43 | "timelineColor":"0x50bd82"}, 44 | "element_${_Rectangle}":{ 45 | "timelineColor2":"0x81aa62", 46 | "timelineColor3":"0x5b6c4d", 47 | "timelineColor":"0x91c767", 48 | "timelineTreeOpened":"false", 49 | "animationEnabled":"true", 50 | "invisible":"false"}, 51 | "defaultStageParentWidth":"550px", 52 | "element_${_TextCopy}":{ 53 | "timelineColor2":"0x1095d2", 54 | "timelineColor3":"0x29647e", 55 | "timelineColor":"0x00a9fa"}, 56 | "defaultStageParentHeight":"200px", 57 | "element_${_Stage}":{ 58 | "timelineColor2":"0xcbbd71", 59 | "timelineColor3":"0x7b7652", 60 | "timelineColor":"0xeedf79"}, 61 | "dummyStageParentWidth":"550px"}, 62 | "TransitionIdCounter":"54", 63 | "CompZoomFactor":"100", 64 | "viewStartY":"0", 65 | "pixelsPerMs":"0.08581199962776", 66 | "usedBOM":"false", 67 | "nextElementColorIndex":"8", 68 | "stage-Default Timeline_playhead_ms":"4000", 69 | "StageZoomFactor":"100", 70 | "PreloadAudio":"auto"} -------------------------------------------------------------------------------- /raw/fluid.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Untitled 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /raw/fluid_edgeActions.js: -------------------------------------------------------------------------------- 1 | /*********************** 2 | * Adobe Edge Animate Composition Actions 3 | * 4 | * Edit this file with caution, being careful to preserve 5 | * function signatures and comments starting with 'Edge' to maintain the 6 | * ability to interact with these actions from within Adobe Edge Animate 7 | * 8 | ***********************/ 9 | (function($, Edge, compId){ 10 | var Composition = Edge.Composition, Symbol = Edge.Symbol; // aliases for commonly used Edge classes 11 | 12 | //Edge symbol: 'stage' 13 | (function(symbolName) { 14 | 15 | 16 | Symbol.bindTriggerAction(compId, symbolName, "Default Timeline", 4000, function(sym, e) { 17 | this.play (0); 18 | 19 | }); 20 | //Edge binding end 21 | 22 | })("stage"); 23 | //Edge symbol end:'stage' 24 | 25 | })(jQuery, AdobeEdge, "EDGE-116087028"); -------------------------------------------------------------------------------- /raw/images/cloud-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/raw/images/cloud-down.png -------------------------------------------------------------------------------- /raw/images/cloud-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/raw/images/cloud-up.png -------------------------------------------------------------------------------- /raw/images/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adamjgrant/kickstart/030237adbc464ae574a2ff95984a8caf9d124043/raw/images/rocket.png -------------------------------------------------------------------------------- /raw/throttler.an: -------------------------------------------------------------------------------- 1 | 2 | { 3 | 4 | "HTMLFileName":"throttler.html", 5 | "pref__general__AutoKeyframeProperties":"true", 6 | "PubWebDir":"/Users/adamkochanowicz/Sites/kickstart/lib/iframes/throttler/", 7 | "ModelData":"{\ 8 | \"stage\": {\ 9 | \"timelines\": {\ 10 | \"Default Timeline\": {\ 11 | }\ 12 | }},\ 13 | \"Preloader\": {\ 14 | \"timelines\": {\ 15 | \ 16 | }},\ 17 | \"Down-level\": {\ 18 | \"timelines\": {\ 19 | \"Default Timeline\": {\ 20 | }\ 21 | }}\ 22 | }", 23 | "PreloadAudio":"auto", 24 | "StageZoomFactor":"100", 25 | "pref__general__FilterNonAnimatedElements":"false", 26 | "pref__general__AutoKeyframePropertiesArmed":"false", 27 | "pref__general__GenerateSmoothTransitions":"true", 28 | "symbol_stage":{ 29 | "dummyStageParentWidth":"540px", 30 | "dummyStageParentHeight":"190px", 31 | "element_${_EllipseCopy}":{ 32 | "timelineColor2":"0x4fa275", 33 | "timelineColor3":"0x456a55", 34 | "animationEnabled":"true", 35 | "timelineColor":"0x50bd82"}, 36 | "element_${_Text}":{ 37 | "timelineColor2":"0x1aa38f", 38 | "timelineColor3":"0x2a6a61", 39 | "timelineColor":"0x00bda4"}, 40 | "defaultStageParentHeight":"190px", 41 | "element_${_Ellipse}":{ 42 | "timelineColor2":"0x81aa62", 43 | "timelineColor3":"0x5b6c4d", 44 | "animationEnabled":"true", 45 | "timelineColor":"0x91c767"}, 46 | "defaultStageParentWidth":"540px", 47 | "element_${_Stage}":{ 48 | "timelineColor2":"0xcbbd71", 49 | "timelineColor3":"0x7b7652", 50 | "animationEnabled":"false", 51 | "timelineColor":"0xeedf79"}, 52 | "element_${_TextCopy}":{ 53 | "timelineColor2":"0x168c84", 54 | "timelineColor3":"0x2a605c", 55 | "timelineColor":"0x00a096"}}, 56 | "TransitionIdCounter":"28", 57 | "symbol_Down-level":{ 58 | "defaultStageParentWidth":"540px", 59 | "defaultStageParentHeight":"190px", 60 | "dummyStageParentWidth":"540px", 61 | "dummyStageParentHeight":"190px"}, 62 | "viewStartY":"0", 63 | "pixelsPerMs":"0.2", 64 | "stage-Default Timeline_mark_ms":"-1", 65 | "nextElementColorIndex":"6", 66 | "stage-Default Timeline_playhead_ms":"2000", 67 | "CompZoomFactor":"100", 68 | "usedBOM":"false", 69 | "Down-level-Default Timeline_playhead_ms":"0"} -------------------------------------------------------------------------------- /raw/throttler.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Throttler 7 | 8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 |
18 |
19 | 20 | -------------------------------------------------------------------------------- /raw/throttler_edgeActions.js: -------------------------------------------------------------------------------- 1 | /*********************** 2 | * Adobe Edge Animate Composition Actions 3 | * 4 | * Edit this file with caution, being careful to preserve 5 | * function signatures and comments starting with 'Edge' to maintain the 6 | * ability to interact with these actions from within Adobe Edge Animate 7 | * 8 | ***********************/ 9 | (function($, Edge, compId){ 10 | var Composition = Edge.Composition, Symbol = Edge.Symbol; // aliases for commonly used Edge classes 11 | 12 | //Edge symbol: 'stage' 13 | (function(symbolName) { 14 | 15 | 16 | Symbol.bindTriggerAction(compId, symbolName, "Default Timeline", 2000, function(sym, e) { 17 | this.play (0); 18 | 19 | }); 20 | //Edge binding end 21 | 22 | })("stage"); 23 | //Edge symbol end:'stage' 24 | 25 | })(jQuery, AdobeEdge, "EDGE-112562383"); -------------------------------------------------------------------------------- /rsync-exclude.txt: -------------------------------------------------------------------------------- 1 | docs.sass 2 | fullpage.sass 3 | kickstart-semantic.sass 4 | kickstart.sass 5 | pages 6 | --------------------------------------------------------------------------------