middleman-gumby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +43 -0
- data/Rakefile +1 -0
- data/lib/middleman/gumby.rb +17 -0
- data/lib/middleman/gumby/version.rb +5 -0
- data/middleman-gumby.gemspec +25 -0
- data/vendor/assets/fonts/icons/entypo.eot +0 -0
- data/vendor/assets/fonts/icons/entypo.ttf +0 -0
- data/vendor/assets/fonts/icons/entypo.woff +0 -0
- data/vendor/assets/javascripts/gumby/libs/gumby.init.js +47 -0
- data/vendor/assets/javascripts/gumby/libs/gumby.js +258 -0
- data/vendor/assets/javascripts/gumby/libs/gumby.min.js +1 -0
- data/vendor/assets/javascripts/gumby/libs/jquery-1.10.1.min.js +6 -0
- data/vendor/assets/javascripts/gumby/libs/jquery-1.10.1.min.map +1 -0
- data/vendor/assets/javascripts/gumby/libs/jquery-2.0.2.min.js +6 -0
- data/vendor/assets/javascripts/gumby/libs/jquery-2.0.2.min.map +1 -0
- data/vendor/assets/javascripts/gumby/libs/jquery.mobile.custom.min.js +3 -0
- data/vendor/assets/javascripts/gumby/libs/modernizr-2.6.2.min.js +4 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.checkbox.js +101 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.fixed.js +240 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.navbar.js +111 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.radiobtn.js +90 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.retina.js +81 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.skiplink.js +157 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.tabs.js +80 -0
- data/vendor/assets/javascripts/gumby/libs/ui/gumby.toggleswitch.js +264 -0
- data/vendor/assets/javascripts/gumby/libs/ui/jquery.validation.js +142 -0
- data/vendor/assets/javascripts/gumby/main.js +23 -0
- data/vendor/assets/javascripts/gumby/plugins.js +4 -0
- data/vendor/assets/javascripts/gumby/production.js +3 -0
- data/vendor/assets/sass/_base.scss +49 -0
- data/vendor/assets/sass/_custom.scss +1 -0
- data/vendor/assets/sass/_fonts.scss +28 -0
- data/vendor/assets/sass/_grid.scss +339 -0
- data/vendor/assets/sass/_shame.scss +36 -0
- data/vendor/assets/sass/_typography.scss +272 -0
- data/vendor/assets/sass/extensions/modular-scale/lib/modular-scale.rb +128 -0
- data/vendor/assets/sass/extensions/modular-scale/stylesheets/_modular-scale.scss +310 -0
- data/vendor/assets/sass/extensions/sassy-math/lib/sassy-math.rb +159 -0
- data/vendor/assets/sass/extensions/sassy-math/stylesheets/_math.scss +310 -0
- data/vendor/assets/sass/functions/_all.scss +25 -0
- data/vendor/assets/sass/functions/_breakpoints.scss +11 -0
- data/vendor/assets/sass/functions/_button-size.scss +44 -0
- data/vendor/assets/sass/functions/_clearfix.scss +25 -0
- data/vendor/assets/sass/functions/_em.scss +11 -0
- data/vendor/assets/sass/functions/_even.scss +10 -0
- data/vendor/assets/sass/functions/_fade.scss +20 -0
- data/vendor/assets/sass/functions/_fancytiles.scss +29 -0
- data/vendor/assets/sass/functions/_fixed.scss +21 -0
- data/vendor/assets/sass/functions/_forms.scss +18 -0
- data/vendor/assets/sass/functions/_grid-calc.scss +82 -0
- data/vendor/assets/sass/functions/_height-calc.scss +6 -0
- data/vendor/assets/sass/functions/_icons.scss +35 -0
- data/vendor/assets/sass/functions/_line-and-height.scss +7 -0
- data/vendor/assets/sass/functions/_palette.scss +76 -0
- data/vendor/assets/sass/functions/_responsivity.scss +34 -0
- data/vendor/assets/sass/functions/_semantic-grid.scss +170 -0
- data/vendor/assets/sass/functions/_shapes.scss +22 -0
- data/vendor/assets/sass/functions/_strip-units.scss +5 -0
- data/vendor/assets/sass/functions/_tooltips.scss +98 -0
- data/vendor/assets/sass/functions/_typography.scss +15 -0
- data/vendor/assets/sass/functions/_visibility.scss +17 -0
- data/vendor/assets/sass/gumby.scss +39 -0
- data/vendor/assets/sass/ui/_all.scss +11 -0
- data/vendor/assets/sass/ui/_buttons.scss +154 -0
- data/vendor/assets/sass/ui/_forms.scss +392 -0
- data/vendor/assets/sass/ui/_icons.scss +23 -0
- data/vendor/assets/sass/ui/_images.scss +23 -0
- data/vendor/assets/sass/ui/_labels.scss +87 -0
- data/vendor/assets/sass/ui/_navbar.scss +440 -0
- data/vendor/assets/sass/ui/_tables.scss +89 -0
- data/vendor/assets/sass/ui/_tabs.scss +156 -0
- data/vendor/assets/sass/ui/_toggles.scss +73 -0
- data/vendor/assets/sass/ui/_tooltips.scss +12 -0
- data/vendor/assets/sass/ui/_video.scss +24 -0
- data/vendor/assets/sass/var/_lists.scss +20 -0
- data/vendor/assets/sass/var/_settings.scss +169 -0
- data/vendor/assets/sass/var/icons/_entypo-icon-list.scss +286 -0
- data/vendor/assets/sass/var/icons/_entypo.scss +294 -0
- metadata +167 -0
@@ -0,0 +1,142 @@
|
|
1
|
+
/**
|
2
|
+
* Gumby jQuery Validation Plugin
|
3
|
+
*/
|
4
|
+
!function($) {
|
5
|
+
|
6
|
+
'use strict';
|
7
|
+
|
8
|
+
function Validation($this, req) {
|
9
|
+
|
10
|
+
if(Gumby) {
|
11
|
+
Gumby.debug('Initializing Validation', $this);
|
12
|
+
}
|
13
|
+
|
14
|
+
// input and holder .field
|
15
|
+
this.$this = $this;
|
16
|
+
this.$field = this.$this.parents('.field');
|
17
|
+
|
18
|
+
// supplied validation function with default length check
|
19
|
+
this.req = req || function() {
|
20
|
+
return !!this.$this.val().length;
|
21
|
+
};
|
22
|
+
|
23
|
+
// reference to this class
|
24
|
+
var scope = this;
|
25
|
+
|
26
|
+
// checkboxes and radio buttons use gumby.onChange event to validate
|
27
|
+
if(this.$this.is('[type=checkbox], [type=radio]')) {
|
28
|
+
this.$field = this.$this.parent('label');
|
29
|
+
this.$field.on('gumby.onChange', function() {
|
30
|
+
scope.validate();
|
31
|
+
});
|
32
|
+
|
33
|
+
// selects validate on change
|
34
|
+
} else if(this.$this.is('select')) {
|
35
|
+
this.$field = this.$this.parents('.picker');
|
36
|
+
this.$field.on('change', function() {
|
37
|
+
scope.validate();
|
38
|
+
});
|
39
|
+
|
40
|
+
// others (text input, textarea) use blur
|
41
|
+
} else {
|
42
|
+
this.$this.on('blur', function(e) {
|
43
|
+
// ignore tab
|
44
|
+
if(e.which !== 9) {
|
45
|
+
scope.validate();
|
46
|
+
}
|
47
|
+
});
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
// validate field
|
52
|
+
Validation.prototype.validate = function() {
|
53
|
+
|
54
|
+
var result = this.req(this.$this);
|
55
|
+
|
56
|
+
// failed
|
57
|
+
if(!result) {
|
58
|
+
this.$field.removeClass('success').addClass('danger');
|
59
|
+
|
60
|
+
// passed
|
61
|
+
} else {
|
62
|
+
//} else if(this.$field.hasClass('danger')) {
|
63
|
+
this.$field.removeClass('danger').addClass('success');
|
64
|
+
}
|
65
|
+
|
66
|
+
return result;
|
67
|
+
};
|
68
|
+
|
69
|
+
// jQuery plugin definition
|
70
|
+
$.fn.validation = function(options) {
|
71
|
+
|
72
|
+
var // extend params with defaults
|
73
|
+
settings = $.extend({
|
74
|
+
submit : false,
|
75
|
+
fail: false,
|
76
|
+
required : []
|
77
|
+
}, options),
|
78
|
+
// store validation objects
|
79
|
+
validations = [];
|
80
|
+
|
81
|
+
// init each form plugin is called on
|
82
|
+
return this.each(function() {
|
83
|
+
|
84
|
+
// no required fields so plugin is pointless
|
85
|
+
if(!settings.required.length) {
|
86
|
+
return false;
|
87
|
+
}
|
88
|
+
|
89
|
+
var $this = $(this),
|
90
|
+
reqLength = settings.required.length,
|
91
|
+
i;
|
92
|
+
|
93
|
+
// loop round each required field and instantiate new validation object
|
94
|
+
for(i = 0; i < reqLength; i++) {
|
95
|
+
validations.push(new Validation(
|
96
|
+
$this.find('[name="'+settings.required[i].name+'"]'),
|
97
|
+
settings.required[i].validate || false
|
98
|
+
));
|
99
|
+
}
|
100
|
+
|
101
|
+
// hijack submit event
|
102
|
+
$this.on('submit', function(e) {
|
103
|
+
|
104
|
+
// reference to whole form pass/fail
|
105
|
+
var failed = false;
|
106
|
+
|
107
|
+
// if no passed attribute found we should halt form submit
|
108
|
+
if(!$this.data('passed')) {
|
109
|
+
e.preventDefault();
|
110
|
+
|
111
|
+
// loop round validation objects and validate each
|
112
|
+
var reqLength = validations.length, i;
|
113
|
+
for(i = 0; i < reqLength; i++) {
|
114
|
+
if(!validations[i].validate()) {
|
115
|
+
failed = true;
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
// passed
|
120
|
+
if(!failed) {
|
121
|
+
// if submit method present call that otherwise submit form
|
122
|
+
if(settings.submit && typeof settings.submit === 'function') {
|
123
|
+
settings.submit($this.serializeArray());
|
124
|
+
return;
|
125
|
+
}
|
126
|
+
|
127
|
+
// store passed bool and re-submit
|
128
|
+
$this.data('passed', true).submit();
|
129
|
+
|
130
|
+
// failed
|
131
|
+
} else {
|
132
|
+
// call fail method if present
|
133
|
+
if(settings.fail && typeof settings.fail === 'function') {
|
134
|
+
settings.fail();
|
135
|
+
return;
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
});
|
140
|
+
});
|
141
|
+
};
|
142
|
+
}(jQuery);
|
@@ -0,0 +1,23 @@
|
|
1
|
+
// Gumby is ready to go
|
2
|
+
Gumby.ready(function() {
|
3
|
+
Gumby.log('Gumby is ready to go...', Gumby.dump());
|
4
|
+
|
5
|
+
// placeholder polyfil
|
6
|
+
if(Gumby.isOldie || Gumby.$dom.find('html').hasClass('ie9')) {
|
7
|
+
$('input, textarea').placeholder();
|
8
|
+
}
|
9
|
+
|
10
|
+
// skip link and toggle on one element
|
11
|
+
// when the skip link completes, trigger the switch
|
12
|
+
$('#skip-switch').on('gumby.onComplete', function() {
|
13
|
+
$(this).trigger('gumby.trigger');
|
14
|
+
});
|
15
|
+
|
16
|
+
// Oldie document loaded
|
17
|
+
}).oldie(function() {
|
18
|
+
Gumby.warn("This is an oldie browser...");
|
19
|
+
|
20
|
+
// Touch devices loaded
|
21
|
+
}).touch(function() {
|
22
|
+
Gumby.log("This is a touch enabled device...");
|
23
|
+
});
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/*! http://mths.be/placeholder v2.0.7 by @mathias */
|
2
|
+
;(function(f,h,$){var a='placeholder' in h.createElement('input'),d='placeholder' in h.createElement('textarea'),i=$.fn,c=$.valHooks,k,j;if(a&&d){j=i.placeholder=function(){return this};j.input=j.textarea=true}else{j=i.placeholder=function(){var l=this;l.filter((a?'textarea':':input')+'[placeholder]').not('.placeholder').bind({'focus.placeholder':b,'blur.placeholder':e}).data('placeholder-enabled',true).trigger('blur.placeholder');return l};j.input=a;j.textarea=d;k={get:function(m){var l=$(m);return l.data('placeholder-enabled')&&l.hasClass('placeholder')?'':m.value},set:function(m,n){var l=$(m);if(!l.data('placeholder-enabled')){return m.value=n}if(n==''){m.value=n;if(m!=h.activeElement){e.call(m)}}else{if(l.hasClass('placeholder')){b.call(m,true,n)||(m.value=n)}else{m.value=n}}return l}};a||(c.input=k);d||(c.textarea=k);$(function(){$(h).delegate('form','submit.placeholder',function(){var l=$('.placeholder',this).each(b);setTimeout(function(){l.each(e)},10)})});$(f).bind('beforeunload.placeholder',function(){$('.placeholder').each(function(){this.value=''})})}function g(m){var l={},n=/^jQuery\d+$/;$.each(m.attributes,function(p,o){if(o.specified&&!n.test(o.name)){l[o.name]=o.value}});return l}function b(m,n){var l=this,o=$(l);if(l.value==o.attr('placeholder')&&o.hasClass('placeholder')){if(o.data('placeholder-password')){o=o.hide().next().show().attr('id',o.removeAttr('id').data('placeholder-id'));if(m===true){return o[0].value=n}o.focus()}else{l.value='';o.removeClass('placeholder');l==h.activeElement&&l.select()}}}function e(){var q,l=this,p=$(l),m=p,o=this.id;if(l.value==''){if(l.type=='password'){if(!p.data('placeholder-textinput')){try{q=p.clone().attr({type:'text'})}catch(n){q=$('<input>').attr($.extend(g(this),{type:'text'}))}q.removeAttr('name').data({'placeholder-password':true,'placeholder-id':o}).bind('focus.placeholder',b);p.data({'placeholder-textinput':q,'placeholder-id':o}).before(q)}p=p.removeAttr('id').hide().prev().attr('id',o).show()}p.addClass('placeholder');p[0].value=p.attr('placeholder')}else{p.removeClass('placeholder')}}}(this,document,jQuery));
|
3
|
+
|
4
|
+
// place any jQuery/helper plugins in here, instead of separate, slower script files.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/* Base Styles */
|
2
|
+
|
3
|
+
@import "compass/typography/vertical_rhythm";
|
4
|
+
@include establish-baseline;
|
5
|
+
|
6
|
+
* { @include box-sizing(border-box); }
|
7
|
+
|
8
|
+
body {
|
9
|
+
background: $global-bg-color;
|
10
|
+
font-family: $font-family;
|
11
|
+
font-weight: $body-font-weight;
|
12
|
+
color: $body-font-color;
|
13
|
+
position: relative;
|
14
|
+
-webkit-font-smoothing: $font-smoothing;
|
15
|
+
-moz-osx-font-smoothing: grayscale;
|
16
|
+
@include respond(all-phones) {
|
17
|
+
-webkit-text-size-adjust: none;
|
18
|
+
-ms-text-size-adjust: none;
|
19
|
+
width: 100%;
|
20
|
+
min-width: 0;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
html, body {
|
25
|
+
height: 100%;
|
26
|
+
}
|
27
|
+
|
28
|
+
.hide {
|
29
|
+
display: none;
|
30
|
+
}
|
31
|
+
|
32
|
+
.hide.active, .show {
|
33
|
+
display: block;
|
34
|
+
}
|
35
|
+
|
36
|
+
// include all entypo icon classes
|
37
|
+
@include icon(all);
|
38
|
+
|
39
|
+
// .fixed elements will be static at supplied breakpoint
|
40
|
+
// set arg to false for permanent .fixed elements
|
41
|
+
@include fixed(portrait-tablets);
|
42
|
+
|
43
|
+
.text-center { @extend %text-center; }
|
44
|
+
.text-left { @extend %text-left; }
|
45
|
+
.text-right { @extend %text-right; }
|
46
|
+
// Partial to align Text Left or Right
|
47
|
+
%text-center { text-align: center; }
|
48
|
+
%text-left { text-align: left; }
|
49
|
+
%text-right { text-align: right; }
|
@@ -0,0 +1 @@
|
|
1
|
+
// Your custom SCSS should be written here...
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/* Fonts */
|
2
|
+
|
3
|
+
// Import Google Web Fonts
|
4
|
+
@import url(//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700);
|
5
|
+
|
6
|
+
|
7
|
+
// Set local icon font
|
8
|
+
@font-face {
|
9
|
+
font-family: '#{$icons}';
|
10
|
+
font-style: normal;
|
11
|
+
font-weight: 400;
|
12
|
+
src: url(../fonts/icons/#{$icons}.eot);
|
13
|
+
src: url('../fonts/icons/#{$icons}.eot?#iefix') format('ie9-skip-eot'),
|
14
|
+
url('../fonts/icons/#{$icons}.woff') format('woff'),
|
15
|
+
url('../fonts/icons/#{$icons}.ttf') format('truetype');
|
16
|
+
}
|
17
|
+
|
18
|
+
// To include your own, local copies of fonts, use the following template
|
19
|
+
//
|
20
|
+
//@font-face {
|
21
|
+
// font-family: '#{$some-font-variable}';
|
22
|
+
// font-style: normal;
|
23
|
+
// font-weight: 400;
|
24
|
+
// src: url(../fonts/icons/#{$some-font-variable}.eot);
|
25
|
+
// src: url('../fonts/icons/#{$some-font-variable}.eot?#iefix') format('ie9-skip-eot'),
|
26
|
+
// url('../fonts/icons/#{$some-font-variable}.woff') format('woff'),
|
27
|
+
// url('../fonts/icons/#{$some-font-variable}.ttf') format('truetype');
|
28
|
+
//}
|
@@ -0,0 +1,339 @@
|
|
1
|
+
%zero-margin-left {
|
2
|
+
margin-left: 0;
|
3
|
+
}
|
4
|
+
|
5
|
+
|
6
|
+
/*=================================================
|
7
|
+
|
8
|
+
+++ LE GRID +++
|
9
|
+
A Responsive Grid -- Gumby defaults to a standard 960 grid,
|
10
|
+
but you can change it to whatever you'd like.
|
11
|
+
|
12
|
+
==================================================*/
|
13
|
+
|
14
|
+
// We're removing the container class in favor
|
15
|
+
// of adding padding to rows at the $device-width
|
16
|
+
// breakpoint.
|
17
|
+
|
18
|
+
/*.container {
|
19
|
+
padding: 0 $gutter-in-px;
|
20
|
+
}*/
|
21
|
+
|
22
|
+
.row {
|
23
|
+
width: 100%;
|
24
|
+
max-width: $row-max-width + 40px;
|
25
|
+
min-width: $min-device-width;
|
26
|
+
margin: 0 auto;
|
27
|
+
padding-left: 20px;
|
28
|
+
padding-right: 20px;
|
29
|
+
.row {
|
30
|
+
min-width: 0;
|
31
|
+
padding-left: 0;
|
32
|
+
padding-right: 0;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
/* To fix the grid into a different size, set max-width to your desired width */
|
37
|
+
|
38
|
+
.column, .columns {
|
39
|
+
margin-left: $gutter;
|
40
|
+
float: $default-float;
|
41
|
+
min-height: 1px;
|
42
|
+
@include box-sizing(border-box);
|
43
|
+
}
|
44
|
+
|
45
|
+
.column:first-child, .columns:first-child, .alpha {
|
46
|
+
margin-left: 0;
|
47
|
+
}
|
48
|
+
|
49
|
+
.column.omega, .columns.omega {
|
50
|
+
float: $switch-float;
|
51
|
+
}
|
52
|
+
|
53
|
+
// Generate the Grid
|
54
|
+
|
55
|
+
/* Column Classes */
|
56
|
+
|
57
|
+
// Generate Column Classes
|
58
|
+
.row {
|
59
|
+
@for $i from 1 through $cols{
|
60
|
+
@if $i == 1 {
|
61
|
+
.one.column {
|
62
|
+
width: columns($i);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
.#{number-as-word($i)}.columns {
|
66
|
+
width: columns($i);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
}
|
70
|
+
|
71
|
+
/* Push and Pull Classes */
|
72
|
+
|
73
|
+
// Generate Push and Pull Classes
|
74
|
+
.row {
|
75
|
+
@for $i from 1 through $cols - 1 {
|
76
|
+
.push_#{number-as-word($i)} {
|
77
|
+
margin-left: push_x($i);
|
78
|
+
&:first-child {
|
79
|
+
margin-left: push_x($i, true);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
.pull_#{number-as-word($i)} {
|
83
|
+
// pull classes need to know the width of the container being pulled
|
84
|
+
@for $j from 1 through $cols - 1 {
|
85
|
+
@if $i + $j == $cols {
|
86
|
+
&.#{number-as-word($j)}.columns {
|
87
|
+
@extend %pull-100-percent;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
@elseif $j == 1 {
|
91
|
+
&.one.column {
|
92
|
+
margin-left: pull_x($i, $j);
|
93
|
+
&:first-child {
|
94
|
+
@extend %zero-margin-left;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
@else {
|
99
|
+
&.#{number-as-word($j)}.columns {
|
100
|
+
margin-left: pull_x($i, $j);
|
101
|
+
&:first-child {
|
102
|
+
@extend %zero-margin-left;
|
103
|
+
}
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
/* Centered Classes */
|
112
|
+
|
113
|
+
// Generate Centered Classes
|
114
|
+
.row {
|
115
|
+
@for $i from 1 through $cols - 1 {
|
116
|
+
.#{number-as-word($i)}.centered {
|
117
|
+
margin-left: centered($i);
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
/* Hybrid Grid Columns */
|
123
|
+
|
124
|
+
// Generate Hybrid Grid Column Classes
|
125
|
+
.#{number-as-word($hybrid)}.colgrid .row {
|
126
|
+
@for $i from 1 through $hybrid{
|
127
|
+
@if $i == 1 {
|
128
|
+
.one.column {
|
129
|
+
width: columns($i, true);
|
130
|
+
}
|
131
|
+
}
|
132
|
+
.#{number-as-word($i)}.columns{
|
133
|
+
width: columns($i, true);
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
/* Hybrid Push and Pull Classes */
|
139
|
+
|
140
|
+
// Generate Hybrid Push Classes
|
141
|
+
.#{number-as-word($hybrid)}.colgrid .row {
|
142
|
+
@for $i from 1 through $hybrid - 1{
|
143
|
+
.push_#{number-as-word($i)} {
|
144
|
+
margin-left: push_x($i, false, true);
|
145
|
+
&:first-child {
|
146
|
+
margin-left: push_x($i, true, true);
|
147
|
+
}
|
148
|
+
}
|
149
|
+
.pull_#{number-as-word($i)} {
|
150
|
+
// pull classes need to know the width of the container being pulled
|
151
|
+
@for $j from 1 through $hybrid - 1 {
|
152
|
+
@if $i + $j == $hybrid {
|
153
|
+
&.#{number-as-word($j)}.columns {
|
154
|
+
@extend %pull-100-percent;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
@elseif $j == 1 {
|
158
|
+
&.one.column {
|
159
|
+
margin-left: pull_x($i, $j, true);
|
160
|
+
&:first-child {
|
161
|
+
@extend %zero-margin-left;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
}
|
165
|
+
@else {
|
166
|
+
&.#{number-as-word($j)}.columns {
|
167
|
+
margin-left: pull_x($i, $j, true);
|
168
|
+
&:first-child {
|
169
|
+
@extend %zero-margin-left;
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
// helper placeholder to condense the repeated
|
179
|
+
// need for resetting first-child margins to zero
|
180
|
+
%zero-margin-left {
|
181
|
+
margin-left: 0;
|
182
|
+
}
|
183
|
+
|
184
|
+
%pull-100-percent {
|
185
|
+
margin-left: -100%;
|
186
|
+
}
|
187
|
+
|
188
|
+
/* Hybrid Centered Classes */
|
189
|
+
|
190
|
+
// Generate Centered Classes
|
191
|
+
.#{number-as-word($hybrid)}.colgrid .row {
|
192
|
+
@for $i from 1 through $hybrid - 1 {
|
193
|
+
.#{number-as-word($i)}.centered {
|
194
|
+
margin-left: centered($i, true);
|
195
|
+
}
|
196
|
+
}
|
197
|
+
}
|
198
|
+
|
199
|
+
.pull_right { @include pull(right); }
|
200
|
+
|
201
|
+
.pull_left { @include pull(left); }
|
202
|
+
|
203
|
+
img, object, embed {
|
204
|
+
max-width: 100%;
|
205
|
+
height: auto;
|
206
|
+
}
|
207
|
+
|
208
|
+
img {
|
209
|
+
-ms-interpolation-mode: bicubic;
|
210
|
+
}
|
211
|
+
|
212
|
+
#map_canvas img, .map_canvas img {
|
213
|
+
max-width: none !important;
|
214
|
+
}
|
215
|
+
|
216
|
+
/* Tile Grid */
|
217
|
+
|
218
|
+
.tiles {
|
219
|
+
display: block;
|
220
|
+
overflow: hidden;
|
221
|
+
> li, > .tile {
|
222
|
+
display: block;
|
223
|
+
height: auto;
|
224
|
+
float: left;
|
225
|
+
padding-bottom:0;
|
226
|
+
}
|
227
|
+
&.two_up {
|
228
|
+
margin-left: -4%;
|
229
|
+
> li, > .tile {
|
230
|
+
margin-left: 4%;
|
231
|
+
width: 46%;
|
232
|
+
}
|
233
|
+
}
|
234
|
+
&.three_up, &.four_up {
|
235
|
+
margin-left: -2%;
|
236
|
+
}
|
237
|
+
&.three_up > li, &.three_up > .tile {
|
238
|
+
margin-left: 2%;
|
239
|
+
width: 31.3%;
|
240
|
+
}
|
241
|
+
&.four_up > li, &.four_up > .tile {
|
242
|
+
margin-left: 2%;
|
243
|
+
width: 23%;
|
244
|
+
}
|
245
|
+
&.five_up {
|
246
|
+
margin-left: -1.5%;
|
247
|
+
> li, > .tile {
|
248
|
+
margin-left: 1.5%;
|
249
|
+
width: 18.5%;
|
250
|
+
}
|
251
|
+
}
|
252
|
+
}
|
253
|
+
|
254
|
+
/* Nicolas Gallagher's micro clearfix */
|
255
|
+
|
256
|
+
.clearfix {
|
257
|
+
@include clearfix();
|
258
|
+
}
|
259
|
+
|
260
|
+
.row {
|
261
|
+
@include clearfix();
|
262
|
+
}
|
263
|
+
|
264
|
+
|
265
|
+
// vertically align stuff
|
266
|
+
|
267
|
+
.valign {
|
268
|
+
&:before {
|
269
|
+
content:' ';
|
270
|
+
display: inline-block;
|
271
|
+
height: 400px;
|
272
|
+
vertical-align: middle;
|
273
|
+
margin-right: -0.25em;
|
274
|
+
}
|
275
|
+
> div, > article, > section, > figure {
|
276
|
+
display: inline-block;
|
277
|
+
vertical-align: middle;
|
278
|
+
}
|
279
|
+
}
|
280
|
+
|
281
|
+
|
282
|
+
/* Mobile */
|
283
|
+
|
284
|
+
@include respond(all-phones) {
|
285
|
+
body {
|
286
|
+
-webkit-text-size-adjust: none;
|
287
|
+
-ms-text-size-adjust: none;
|
288
|
+
width: 100%;
|
289
|
+
min-width: 0;
|
290
|
+
}
|
291
|
+
.container {
|
292
|
+
min-width: 0;
|
293
|
+
margin-left: 0;
|
294
|
+
margin-right: 0;
|
295
|
+
}
|
296
|
+
.row {
|
297
|
+
width: 100%;
|
298
|
+
min-width: 0;
|
299
|
+
margin-left: 0;
|
300
|
+
margin-right: 0;
|
301
|
+
.row {
|
302
|
+
.column, .columns {
|
303
|
+
padding: 0;
|
304
|
+
}
|
305
|
+
}
|
306
|
+
.centered {
|
307
|
+
margin-left: 0 !important;
|
308
|
+
}
|
309
|
+
}
|
310
|
+
.column, .columns {
|
311
|
+
width: auto !important;
|
312
|
+
float: none;
|
313
|
+
margin-left: 0;
|
314
|
+
margin-right: 0;
|
315
|
+
}
|
316
|
+
.column:last-child, .columns:last-child {
|
317
|
+
margin-right: 0;
|
318
|
+
float: none;
|
319
|
+
}
|
320
|
+
|
321
|
+
[class*="column"] {
|
322
|
+
+ [class*="column"]:last-child {
|
323
|
+
float: none;
|
324
|
+
}
|
325
|
+
&:before {
|
326
|
+
display: table;
|
327
|
+
}
|
328
|
+
&:after {
|
329
|
+
display: table;
|
330
|
+
clear: both;
|
331
|
+
}
|
332
|
+
}
|
333
|
+
[class^="push_"],
|
334
|
+
[class*="push_"],
|
335
|
+
[class^="pull_"],
|
336
|
+
[class*="pull_"] {
|
337
|
+
margin-left: 0 !important;
|
338
|
+
}
|
339
|
+
}
|