middleman-gumby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +43 -0
  6. data/Rakefile +1 -0
  7. data/lib/middleman/gumby.rb +17 -0
  8. data/lib/middleman/gumby/version.rb +5 -0
  9. data/middleman-gumby.gemspec +25 -0
  10. data/vendor/assets/fonts/icons/entypo.eot +0 -0
  11. data/vendor/assets/fonts/icons/entypo.ttf +0 -0
  12. data/vendor/assets/fonts/icons/entypo.woff +0 -0
  13. data/vendor/assets/javascripts/gumby/libs/gumby.init.js +47 -0
  14. data/vendor/assets/javascripts/gumby/libs/gumby.js +258 -0
  15. data/vendor/assets/javascripts/gumby/libs/gumby.min.js +1 -0
  16. data/vendor/assets/javascripts/gumby/libs/jquery-1.10.1.min.js +6 -0
  17. data/vendor/assets/javascripts/gumby/libs/jquery-1.10.1.min.map +1 -0
  18. data/vendor/assets/javascripts/gumby/libs/jquery-2.0.2.min.js +6 -0
  19. data/vendor/assets/javascripts/gumby/libs/jquery-2.0.2.min.map +1 -0
  20. data/vendor/assets/javascripts/gumby/libs/jquery.mobile.custom.min.js +3 -0
  21. data/vendor/assets/javascripts/gumby/libs/modernizr-2.6.2.min.js +4 -0
  22. data/vendor/assets/javascripts/gumby/libs/ui/gumby.checkbox.js +101 -0
  23. data/vendor/assets/javascripts/gumby/libs/ui/gumby.fixed.js +240 -0
  24. data/vendor/assets/javascripts/gumby/libs/ui/gumby.navbar.js +111 -0
  25. data/vendor/assets/javascripts/gumby/libs/ui/gumby.radiobtn.js +90 -0
  26. data/vendor/assets/javascripts/gumby/libs/ui/gumby.retina.js +81 -0
  27. data/vendor/assets/javascripts/gumby/libs/ui/gumby.skiplink.js +157 -0
  28. data/vendor/assets/javascripts/gumby/libs/ui/gumby.tabs.js +80 -0
  29. data/vendor/assets/javascripts/gumby/libs/ui/gumby.toggleswitch.js +264 -0
  30. data/vendor/assets/javascripts/gumby/libs/ui/jquery.validation.js +142 -0
  31. data/vendor/assets/javascripts/gumby/main.js +23 -0
  32. data/vendor/assets/javascripts/gumby/plugins.js +4 -0
  33. data/vendor/assets/javascripts/gumby/production.js +3 -0
  34. data/vendor/assets/sass/_base.scss +49 -0
  35. data/vendor/assets/sass/_custom.scss +1 -0
  36. data/vendor/assets/sass/_fonts.scss +28 -0
  37. data/vendor/assets/sass/_grid.scss +339 -0
  38. data/vendor/assets/sass/_shame.scss +36 -0
  39. data/vendor/assets/sass/_typography.scss +272 -0
  40. data/vendor/assets/sass/extensions/modular-scale/lib/modular-scale.rb +128 -0
  41. data/vendor/assets/sass/extensions/modular-scale/stylesheets/_modular-scale.scss +310 -0
  42. data/vendor/assets/sass/extensions/sassy-math/lib/sassy-math.rb +159 -0
  43. data/vendor/assets/sass/extensions/sassy-math/stylesheets/_math.scss +310 -0
  44. data/vendor/assets/sass/functions/_all.scss +25 -0
  45. data/vendor/assets/sass/functions/_breakpoints.scss +11 -0
  46. data/vendor/assets/sass/functions/_button-size.scss +44 -0
  47. data/vendor/assets/sass/functions/_clearfix.scss +25 -0
  48. data/vendor/assets/sass/functions/_em.scss +11 -0
  49. data/vendor/assets/sass/functions/_even.scss +10 -0
  50. data/vendor/assets/sass/functions/_fade.scss +20 -0
  51. data/vendor/assets/sass/functions/_fancytiles.scss +29 -0
  52. data/vendor/assets/sass/functions/_fixed.scss +21 -0
  53. data/vendor/assets/sass/functions/_forms.scss +18 -0
  54. data/vendor/assets/sass/functions/_grid-calc.scss +82 -0
  55. data/vendor/assets/sass/functions/_height-calc.scss +6 -0
  56. data/vendor/assets/sass/functions/_icons.scss +35 -0
  57. data/vendor/assets/sass/functions/_line-and-height.scss +7 -0
  58. data/vendor/assets/sass/functions/_palette.scss +76 -0
  59. data/vendor/assets/sass/functions/_responsivity.scss +34 -0
  60. data/vendor/assets/sass/functions/_semantic-grid.scss +170 -0
  61. data/vendor/assets/sass/functions/_shapes.scss +22 -0
  62. data/vendor/assets/sass/functions/_strip-units.scss +5 -0
  63. data/vendor/assets/sass/functions/_tooltips.scss +98 -0
  64. data/vendor/assets/sass/functions/_typography.scss +15 -0
  65. data/vendor/assets/sass/functions/_visibility.scss +17 -0
  66. data/vendor/assets/sass/gumby.scss +39 -0
  67. data/vendor/assets/sass/ui/_all.scss +11 -0
  68. data/vendor/assets/sass/ui/_buttons.scss +154 -0
  69. data/vendor/assets/sass/ui/_forms.scss +392 -0
  70. data/vendor/assets/sass/ui/_icons.scss +23 -0
  71. data/vendor/assets/sass/ui/_images.scss +23 -0
  72. data/vendor/assets/sass/ui/_labels.scss +87 -0
  73. data/vendor/assets/sass/ui/_navbar.scss +440 -0
  74. data/vendor/assets/sass/ui/_tables.scss +89 -0
  75. data/vendor/assets/sass/ui/_tabs.scss +156 -0
  76. data/vendor/assets/sass/ui/_toggles.scss +73 -0
  77. data/vendor/assets/sass/ui/_tooltips.scss +12 -0
  78. data/vendor/assets/sass/ui/_video.scss +24 -0
  79. data/vendor/assets/sass/var/_lists.scss +20 -0
  80. data/vendor/assets/sass/var/_settings.scss +169 -0
  81. data/vendor/assets/sass/var/icons/_entypo-icon-list.scss +286 -0
  82. data/vendor/assets/sass/var/icons/_entypo.scss +294 -0
  83. metadata +167 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2f3dcb34eda915b628a8cd48d09a4e5b2be381e4
4
+ data.tar.gz: da38cd6f4d98b8f0d8261aa7412b6c424f9349e6
5
+ SHA512:
6
+ metadata.gz: 7f648d7f9ffa1f4168b5016a3ad6d415eed9c6aaaa9447b38038e1bf43246c55b63f64af1f6b1226de9eaff82ef619c693eb7616ba2747f33f482973a281ae56
7
+ data.tar.gz: ec5733bea6c89931305a3ebb5dbfac78588ff1cd5e50e31040c5cb2e549e3264bfa4ce4e420a745ab56d66fd32a3c10b7776cf172a927648ad62d3483ca4bb38
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ *.DS_Store
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in middleman-gumby.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Bradley
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,43 @@
1
+ # MiddlemanGumby
2
+
3
+ A simple gem to use the Gumby framework in Middleman apps.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'middleman-gumby'
10
+
11
+ And then execute:
12
+
13
+ $ bundle install
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install middleman-gumby
18
+
19
+ ## Usage
20
+
21
+ Add the following line to config.rb in your Middleman project:
22
+
23
+ activate :gumby
24
+
25
+ ### To use the sass mixins
26
+
27
+ Create or rename a .sass file, and add the following line to the top:
28
+
29
+ @import "gumby"
30
+
31
+ ### To include Gumby's javascript framework
32
+
33
+ Add the following line to your javascript file:
34
+
35
+ //= require gumby/production
36
+
37
+ ## Contributing
38
+
39
+ 1. Fork it
40
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
41
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
42
+ 4. Push to the branch (`git push origin my-new-feature`)
43
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,17 @@
1
+ require "middleman/gumby/version"
2
+ require "modular-scale"
3
+
4
+ module MiddlemanGumby
5
+ class << self
6
+ def registered(app)
7
+ gem_dir = Gem::Specification.find_by_name("middleman-gumby").gem_dir
8
+ Sass.load_paths << File.expand_path("./vendor/assets/sass", gem_dir)
9
+
10
+ app.after_configuration do
11
+ sprockets.append_path "vendor/assets"
12
+ end
13
+ end
14
+ end
15
+ end
16
+
17
+ ::Middleman::Extensions.register(:gumby, MiddlemanGumby)
@@ -0,0 +1,5 @@
1
+ module Middleman
2
+ module Gumby
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'middleman/gumby/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "middleman-gumby"
8
+ spec.version = Middleman::Gumby::VERSION
9
+ spec.authors = ["Bradley"]
10
+ spec.email = ["bradley.wittenbrook@gmail.com"]
11
+ spec.description = "Adds Gumby to a Middleman project."
12
+ spec.summary = "Adds Gumby to a Middleman project."
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
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.3"
22
+ spec.add_development_dependency "rake"
23
+
24
+ spec.add_runtime_dependency "modular-scale"
25
+ end
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Gumby Init
3
+ */
4
+
5
+ !function($) {
6
+
7
+ 'use strict';
8
+
9
+ // not touch device or no touch events required so auto initialize here
10
+ if((!Gumby.touchDevice || !Gumby.touchEvents) && Gumby.autoInit) {
11
+ window.Gumby.init();
12
+
13
+ // load jQuery mobile touch events
14
+ } else if(Gumby.touchEvents && Gumby.touchDevice) {
15
+ Gumby.debug('Loading jQuery mobile touch events');
16
+ // set timeout to 2sec
17
+ yepnope.errorTimeout = 2000;
18
+ Modernizr.load({
19
+ test: Modernizr.touch,
20
+ yep: Gumby.touchEvents+'/jquery.mobile.custom.min.js',
21
+ complete: function() {
22
+ // error loading jQuery mobile
23
+ if(!$.mobile) {
24
+ Gumby.error('Error loading jQuery mobile touch events');
25
+ }
26
+
27
+ // if not auto initializing
28
+ // this will allow helpers to fire when initialized
29
+ Gumby.touchEventsLoaded = true;
30
+
31
+ // auto initialize
32
+ if(Gumby.autoInit) {
33
+ window.Gumby.init();
34
+
35
+ // if already manually initialized then fire helpers
36
+ } else if(Gumby.uiModulesReady) {
37
+ Gumby.helpers();
38
+ }
39
+ }
40
+ });
41
+ }
42
+
43
+ // if AMD return Gumby object to define
44
+ if(typeof define == "function" && define.amd) {
45
+ define(window.Gumby);
46
+ }
47
+ }(jQuery);
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Gumby Framework
3
+ * ---------------
4
+ *
5
+ * Follow @gumbycss on twitter and spread the love.
6
+ * We worked super hard on making this awesome and released it to the web.
7
+ * All we ask is you leave this intact. #gumbyisawesome
8
+ *
9
+ * Gumby Framework
10
+ * http://gumbyframework.com
11
+ *
12
+ * Built with love by your friends @digitalsurgeons
13
+ * http://www.digitalsurgeons.com
14
+ *
15
+ * Free to use under the MIT license.
16
+ * http://www.opensource.org/licenses/mit-license.php
17
+ */
18
+ !function($) {
19
+
20
+ 'use strict';
21
+
22
+ function Gumby() {
23
+ this.$dom = $(document);
24
+ this.$html = this.$dom.find('html');
25
+ this.isOldie = !!this.$html.hasClass('oldie');
26
+ this.click = 'click';
27
+ this.onReady = this.onOldie = this.onTouch = false;
28
+ this.autoInit = $('script[gumby-init]').attr('gumby-init') === 'false' ? false : true;
29
+ this.debugMode = Boolean($('script[gumby-debug]').length);
30
+ this.touchDevice = !!(Modernizr.touch || window.navigator.userAgent.indexOf("Windows Phone") > 0);
31
+ this.gumbyTouch = false;
32
+ this.touchEvents = 'js/libs';
33
+ this.breakpoint = Number($('script[gumby-breakpoint]').attr('gumby-breakpoint')) || 768;
34
+ this.touchEventsLoaded = false;
35
+ this.uiModulesReady = false;
36
+ this.uiModules = {};
37
+ this.inits = {};
38
+
39
+ // jQuery mobile touch events
40
+ var touch = $('script[gumby-touch]').attr('gumby-touch'),
41
+ path = $('script[gumby-path]').attr('gumby-path');
42
+
43
+ // do not use touch events
44
+ if(touch === 'false') {
45
+ this.touchEvents = false;
46
+
47
+ // set path to jQuery mobile
48
+ // support touch/path attrs for backwards compatibility
49
+ } else {
50
+ if(touch) {
51
+ this.touchEvents = touch;
52
+ } else if(path) {
53
+ this.touchEvents = path;
54
+ }
55
+ }
56
+
57
+ // update click property to bind to click/tap
58
+ if(this.touchDevice) {
59
+ this.click += ' tap';
60
+ }
61
+
62
+ // add gumby-touch/gumby-no-touch classes
63
+ // gumby touch == touch enabled && smaller than defined breakpoint
64
+ if(this.touchDevice && $(window).width() < this.breakpoint) {
65
+ this.$html.addClass('gumby-touch');
66
+ this.gumbyTouch = true;
67
+ } else {
68
+ this.$html.addClass('gumby-no-touch');
69
+ }
70
+
71
+ if(this.debugMode) {
72
+ this.debug('Gumby is in debug mode');
73
+ }
74
+ }
75
+
76
+ // initialize Gumby
77
+ Gumby.prototype.init = function(options) {
78
+ var scope = this,
79
+ opts = options ? options : {};
80
+
81
+ // call ready() code when dom is ready
82
+ this.$dom.ready(function() {
83
+ if(opts.debug) {
84
+ scope.debugMode = true;
85
+ }
86
+
87
+ scope.debug("Initializing Gumby");
88
+
89
+ // init UI modules
90
+ var mods = opts.uiModules ? opts.uiModules : false;
91
+ scope.initUIModules(mods);
92
+
93
+ if(scope.onReady) {
94
+ scope.onReady();
95
+ }
96
+
97
+ // call oldie() callback if applicable
98
+ if(scope.isOldie && scope.onOldie) {
99
+ scope.onOldie();
100
+ }
101
+
102
+ // call touch() callback if applicable
103
+ if(Modernizr.touch && scope.onTouch) {
104
+ scope.onTouch();
105
+ }
106
+ });
107
+
108
+ return this;
109
+ };
110
+
111
+ Gumby.prototype.helpers = function() {
112
+ if(this.onReady) {
113
+ this.onReady();
114
+ }
115
+
116
+ // call oldie() callback if applicable
117
+ if(this.isOldie && this.onOldie) {
118
+ this.onOldie();
119
+ }
120
+
121
+ // call touch() callback if applicable
122
+ if(Modernizr.touch && this.onTouch) {
123
+ this.onTouch();
124
+ }
125
+ };
126
+
127
+ // public helper - set Gumby ready callback
128
+ Gumby.prototype.ready = function(code) {
129
+ if(code && typeof code === 'function') {
130
+ this.onReady = code;
131
+ }
132
+
133
+ return this;
134
+ };
135
+
136
+ // public helper - set oldie callback
137
+ Gumby.prototype.oldie = function(code) {
138
+ if(code && typeof code === 'function') {
139
+ this.onOldie = code;
140
+ }
141
+
142
+ return this;
143
+ };
144
+
145
+ // public helper - set touch callback
146
+ Gumby.prototype.touch = function(code) {
147
+ if(code && typeof code === 'function') {
148
+ this.onTouch = code;
149
+ }
150
+
151
+ return this;
152
+ };
153
+
154
+ // print to console if available and we're in debug mode
155
+ Gumby.prototype.console = function(type, data) {
156
+ if(!this.debugMode || !window.console) { return; }
157
+ console[console[type] ? type : 'log'](data.length > 1 ? Array.prototype.slice.call(data) : data[0]);
158
+ };
159
+
160
+ // pass args onto console method for output
161
+ Gumby.prototype.log = function() { this.console('log', arguments); };
162
+ Gumby.prototype.debug = function() { this.console('debug', arguments); };
163
+ Gumby.prototype.warn = function() { this.console('warn', arguments); };
164
+ Gumby.prototype.error = function() { this.console('error', arguments); };
165
+
166
+ // public helper - return debuggin object including uiModules object
167
+ Gumby.prototype.dump = function() {
168
+ return {
169
+ $dom: this.$dom,
170
+ isOldie: this.isOldie,
171
+ touchEvents: this.touchEvents,
172
+ debugMode: this.debugMode,
173
+ autoInit: this.autoInit,
174
+ uiModules: this.uiModules,
175
+ click: this.click
176
+ };
177
+ };
178
+
179
+ // grab attribute value, testing data- gumby- and no prefix
180
+ Gumby.prototype.selectAttr = function() {
181
+ var i = 0;
182
+
183
+ // any number of attributes can be passed
184
+ for(; i < arguments.length; i++) {
185
+ // various formats
186
+ var attr = arguments[i],
187
+ dataAttr = 'data-'+arguments[i],
188
+ gumbyAttr = 'gumby-'+arguments[i];
189
+
190
+ // first test for data-attr
191
+ if(this.is('['+dataAttr+']')) {
192
+ return this.attr(dataAttr) ? this.attr(dataAttr) : true;
193
+
194
+ // next test for gumby-attr
195
+ } else if(this.is('['+gumbyAttr+']')) {
196
+ return this.attr(gumbyAttr) ? this.attr(gumbyAttr) : true;
197
+
198
+ // finally no prefix
199
+ } else if(this.is('['+attr+']')) {
200
+ return this.attr(attr) ? this.attr(attr) : true;
201
+ }
202
+ }
203
+
204
+ // none found
205
+ return false;
206
+ };
207
+
208
+ // add an initialisation method
209
+ Gumby.prototype.addInitalisation = function(ref, code) {
210
+ this.inits[ref] = code;
211
+ };
212
+
213
+ // initialize a uiModule, single / array of module refs
214
+ Gumby.prototype.initialize = function(ref, all) {
215
+ if(typeof ref === 'object') {
216
+ var i = 0;
217
+ for(i; i < ref.length; i++) {
218
+ if(!this.inits[ref[i]] || typeof this.inits[ref[i]] !== 'function') {
219
+ this.error('Error initializing module: '+ref[i]);
220
+ continue;
221
+ }
222
+
223
+ this.inits[ref[i]](all);
224
+ }
225
+ } else if(this.inits[ref] && typeof this.inits[ref] === 'function') {
226
+ this.inits[ref](all);
227
+ } else {
228
+ this.error('Error initializing module: '+ref);
229
+ }
230
+
231
+ return this;
232
+ };
233
+
234
+ // store a UI module
235
+ Gumby.prototype.UIModule = function(data) {
236
+ var module = data.module;
237
+ this.uiModules[module] = data;
238
+ };
239
+
240
+ // loop round and init all UI modules
241
+ Gumby.prototype.initUIModules = function(mods) {
242
+ var x, m, arr = this.uiModules;
243
+
244
+ // only initialise specified modules
245
+ if(mods) {
246
+ arr = mods;
247
+ }
248
+
249
+ // initialise everything
250
+ for(x in arr) {
251
+ m = mods ? arr[x] : x;
252
+ this.uiModules[m].init();
253
+ }
254
+ };
255
+
256
+ window.Gumby = new Gumby();
257
+
258
+ }(jQuery);