maxmertkit-rails 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +7 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +65 -0
  5. data/Rakefile +1 -0
  6. data/lib/maxmertkit-rails/engine.rb +9 -0
  7. data/lib/maxmertkit-rails/version.rb +5 -0
  8. data/lib/maxmertkit-rails.rb +8 -0
  9. data/maxmertkit-rails.gemspec +19 -0
  10. data/vendor/assets/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  11. data/vendor/assets/fonts/fontawesome/fontawesome-webfont.svg +255 -0
  12. data/vendor/assets/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  13. data/vendor/assets/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  14. data/vendor/assets/fonts/zocial/zocial-regular-webfont.eot +0 -0
  15. data/vendor/assets/fonts/zocial/zocial-regular-webfont.svg +151 -0
  16. data/vendor/assets/fonts/zocial/zocial-regular-webfont.ttf +0 -0
  17. data/vendor/assets/fonts/zocial/zocial-regular-webfont.woff +0 -0
  18. data/vendor/assets/javascript/libs/easing.js +205 -0
  19. data/vendor/assets/javascript/libs/html5shiv.js +298 -0
  20. data/vendor/assets/javascript/libs/imagesLoaded.js +3 -0
  21. data/vendor/assets/javascript/libs/modernizr.js +4 -0
  22. data/vendor/assets/javascript/maxmertkit.affix.js +85 -0
  23. data/vendor/assets/javascript/maxmertkit.button.js +182 -0
  24. data/vendor/assets/javascript/maxmertkit.carousel.js +688 -0
  25. data/vendor/assets/javascript/maxmertkit.js +112 -0
  26. data/vendor/assets/javascript/maxmertkit.modal.js +301 -0
  27. data/vendor/assets/javascript/maxmertkit.notify.js +186 -0
  28. data/vendor/assets/javascript/maxmertkit.popup.js +396 -0
  29. data/vendor/assets/javascript/maxmertkit.scrollspy.js +107 -0
  30. data/vendor/assets/javascript/maxmertkit.tabs.js +228 -0
  31. data/vendor/assets/stylesheet/_init.scss +240 -0
  32. data/vendor/assets/stylesheet/_mixins.scss +218 -0
  33. data/vendor/assets/stylesheet/animations/_keyframes.scss +2914 -0
  34. data/vendor/assets/stylesheet/classes/_object.scss +14 -0
  35. data/vendor/assets/stylesheet/maxmertkit-animation.scss +146 -0
  36. data/vendor/assets/stylesheet/maxmertkit-components.scss +25 -0
  37. data/vendor/assets/stylesheet/maxmertkit.scss +14 -0
  38. data/vendor/assets/stylesheet/modificators/__methods.scss +116 -0
  39. data/vendor/assets/stylesheet/modificators/_size.scss +208 -0
  40. data/vendor/assets/stylesheet/modificators/_status.scss +195 -0
  41. data/vendor/assets/stylesheet/themes/_basic.scss +330 -0
  42. data/vendor/assets/stylesheet/widgets/_arrow.scss +74 -0
  43. data/vendor/assets/stylesheet/widgets/_badge.scss +15 -0
  44. data/vendor/assets/stylesheet/widgets/_button.scss +131 -0
  45. data/vendor/assets/stylesheet/widgets/_caret.scss +34 -0
  46. data/vendor/assets/stylesheet/widgets/_carousel.scss +146 -0
  47. data/vendor/assets/stylesheet/widgets/_dropdown.scss +116 -0
  48. data/vendor/assets/stylesheet/widgets/_form.scss +327 -0
  49. data/vendor/assets/stylesheet/widgets/_group.scss +245 -0
  50. data/vendor/assets/stylesheet/widgets/_icon.scss +92 -0
  51. data/vendor/assets/stylesheet/widgets/_label.scss +4 -0
  52. data/vendor/assets/stylesheet/widgets/_menu.scss +283 -0
  53. data/vendor/assets/stylesheet/widgets/_modal.scss +172 -0
  54. data/vendor/assets/stylesheet/widgets/_notify.scss +190 -0
  55. data/vendor/assets/stylesheet/widgets/_progressbar.scss +70 -0
  56. data/vendor/assets/stylesheet/widgets/_table.scss +270 -0
  57. data/vendor/assets/stylesheet/widgets/_tabs.scss +211 -0
  58. data/vendor/assets/stylesheet/widgets/_toolbar.scss +118 -0
  59. data/vendor/assets/stylesheet/widgets/_tooltip.scss +19 -0
  60. metadata +104 -0
@@ -0,0 +1,228 @@
1
+ ;(function ( $, window, document, undefined ) {
2
+
3
+ var _name = 'tabs',
4
+ _defaults = {
5
+ itemsSelector: undefined // Priority!!! (if not set, then will search be data-<temsData>) You can use "data-<selector name>" to find elements everywhere in the document, or ".<class name>" and "#<id name>" to look for items inside tabs container.
6
+ , itemsData: undefined // All items are with data-tabs="<itemsData>"
7
+ , dataTarget: 'tabs-target' // Inside $item.data(<dataTarget>) we will find selector of the container with tab content.
8
+ , trigger: 'click'
9
+
10
+ , beforeOpen: $.noop()
11
+ , open: $.noop()
12
+ , ifOpenedOrNot: $.noop()
13
+ , ifNotOpened: $.noop()
14
+ , beforeClose: $.noop()
15
+ , close: $.noop()
16
+ , ifClosedOrNot: $.noop()
17
+ , ifNotClosed: $.noop()
18
+ }
19
+
20
+ Tabs = function( element_, options_ ) {
21
+ this.element = element_;
22
+ this.name = _name;
23
+ this.state = 'closed';
24
+ this.options = $.extend( {}, this.options, _defaults, options_ );
25
+ this.items = [];
26
+
27
+ this._setOptions( this.options );
28
+
29
+
30
+ this.init();
31
+ }
32
+
33
+ Tabs.prototype = new $.kit();
34
+ Tabs.prototype.constructor = Tabs;
35
+
36
+ Tabs.prototype.__setOption = function ( key_, value_ ) {
37
+ var me = this;
38
+ var $me = $(me.element);
39
+
40
+ switch( key_ ) {
41
+ case 'itemsSelector', 'itemsData', 'trigger':
42
+ me._setEvents();
43
+ break;
44
+ }
45
+
46
+ me.options[ key_ ] = value_;
47
+ }
48
+
49
+ Tabs.prototype._getItems = function() {
50
+ var me = this
51
+ , $me = $(me.element)
52
+ , _items = [];
53
+
54
+
55
+ me.options.itemsSelector !== undefined ?
56
+ $me.find( me.options.itemsSelector ).each( function( index_, item_ ) { _items.push( $(item_) ) }) :
57
+ $me.find( '[data-tabs="' + me.options.itemsData + '"]' ).each( function( index_, item_ ) { _items.push( $(item_) ) })
58
+
59
+ return _items;
60
+ }
61
+
62
+ Tabs.prototype._getItem = function( event_ ) {
63
+ var me = this
64
+ , $me = $(me.element)
65
+ , _el = undefined
66
+ , _target;
67
+
68
+ _target = $(event_.target);
69
+
70
+ if( _target.closest(me.options.itemsSelector).length > 0 ) _el = $(_target.closest(me.options.itemsSelector));
71
+ if( _target.closest('[data-tabs="'+me.options.itemsData+'"]').length > 0 ) _el = $(_target.closest('[data-tabs="'+me.options.itemsData+'"]').get(0));
72
+ if( _target.hasClass(me.options.itemsSelector) ) _el = $(_target);
73
+
74
+ return _el;
75
+ }
76
+
77
+ Tabs.prototype._unsetEvents = function() {
78
+ var me = this;
79
+ var $me = $(me.element);
80
+
81
+ $me.off( '.' + me.name );
82
+
83
+ return me;
84
+ }
85
+
86
+ Tabs.prototype._setEvents = function() {
87
+ var me = this
88
+ , $me = $(me.element)
89
+ , _eventIn
90
+ , _eventOut;
91
+
92
+ me._unsetEvents();
93
+
94
+ switch( me.options.trigger ) {
95
+ case 'hover':
96
+ _eventIn = 'mouseenter.' + me.name;
97
+ break;
98
+
99
+ case 'click':
100
+ _eventIn = 'click.' + me.name;
101
+ break;
102
+ }
103
+
104
+ $me.on( _eventIn, function( event_ ) {
105
+ var $_element = me._getItem( event_ );
106
+
107
+ if( $_element && ! me._isOpen( $_element ) )
108
+ me.open( $_element );
109
+ });
110
+
111
+ }
112
+
113
+ Tabs.prototype.init = function() {
114
+ var me = this;
115
+ var $me = $(me.element);
116
+
117
+ }
118
+
119
+ Tabs.prototype.open = function( item_ ) {
120
+ var me = this;
121
+ var $me = $(me.element);
122
+
123
+ if( me.options.enabled === true ) {
124
+
125
+ try {
126
+ var deferred = me.options.beforeOpen.call( item_ );
127
+ deferred
128
+ .done(function(){
129
+ me._open( item_ );
130
+ })
131
+ .fail(function(){
132
+ me.state = 'closed';
133
+ $me.trigger('ifNotOpened.' + me.name);
134
+ $me.trigger('ifOpenedOrNot.' + me.name);
135
+ })
136
+ } catch( e ) {
137
+ me._open( item_ );
138
+ }
139
+
140
+ }
141
+ }
142
+
143
+ Tabs.prototype._open = function( item_ ) {
144
+ var me = this
145
+ , $me = $(me.element)
146
+ , _target = $(document).find( item_.data( me.options.dataTarget ) )
147
+
148
+
149
+ if( me.options.dataTarget ) {
150
+
151
+ if( item_.data('tabs-data') !== undefined ) {
152
+ try {
153
+ $.get( item_.data('tabs-data') )
154
+ .done( function( document_, result_, answer_ ) {
155
+ if( me.close() ) {
156
+ _target.html( answer_.responseText );
157
+ me._openAnimation( item_, _target );
158
+ $me.trigger('ifOpenedOrNot.' + me.name);
159
+ }
160
+ })
161
+ .fail( function( answer_ ) {
162
+ $me.trigger('ifNotOpened.' + me.name);
163
+ $me.trigger('ifOpenedOrNot.' + me.name);
164
+ })
165
+ } catch( e ) {
166
+ $me.trigger('ifNotOpened.' + me.name);
167
+ $me.trigger('ifOpenedOrNot.' + me.name);
168
+ }
169
+ }
170
+ else
171
+ if( me.close() ) {
172
+ me._openAnimation( item_, _target );
173
+ }
174
+ }
175
+ }
176
+
177
+ Tabs.prototype._openAnimation = function( item_, target_ ) {
178
+ var me = this
179
+ , $me = $(me.element);
180
+
181
+ item_.addClass('_active_');
182
+
183
+ if( me.options.animation ) {
184
+ target_.fadeIn();
185
+ }
186
+ else {
187
+ target_.show();
188
+ }
189
+
190
+ $me.trigger('open.' + me.name);
191
+ }
192
+
193
+ Tabs.prototype.close = function() {
194
+ var me = this;
195
+ var $me = $(me.element);
196
+
197
+ $.each( me._getItems(), function( index_, item_ ) {
198
+ if( me._isOpen( item_ ) ) {
199
+ $(document).find( item_.data( me.options.dataTarget ) ).hide();
200
+ item_.removeClass('_active_');
201
+ }
202
+ });
203
+
204
+ $me.trigger('close.' + me.name);
205
+
206
+ return true;
207
+ }
208
+
209
+ Tabs.prototype._isOpen = function( item_ ) {
210
+ var me = this;
211
+ var $me = $(me.element);
212
+
213
+ return item_.hasClass( '_active_' );
214
+ }
215
+
216
+ $.fn[_name] = function( options_ ) {
217
+ return this.each(function() {
218
+ if( ! $.data( this, 'kit-' + _name ) ) {
219
+ $.data( this, 'kit-' + _name, new Tabs( this, options_ ) );
220
+ }
221
+ else {
222
+ typeof options_ === 'object' ? $.data( this, 'kit-' + _name )._setOptions( options_ ) :
223
+ typeof options_ === 'string' && options_.charAt(0) !== '_' ? $.data( this, 'kit-' + _name )[ options_ ] : $.error( 'What do you want to do?' );
224
+ }
225
+ });
226
+ }
227
+
228
+ })( jQuery, window, document );
@@ -0,0 +1,240 @@
1
+ // // ================================ %BODY% ================================ \\
2
+ body {
3
+ font: $theme__font-size $theme__font-family;
4
+ line-height: $theme__line-height;
5
+ color: $theme__color;
6
+ background-color: $theme__background-color;
7
+ // -webkit-font-smoothing: none;
8
+ -webkit-font-smoothing: antialiased;
9
+ }
10
+
11
+ // input {
12
+ // font: $theme-font-size $theme-font-family;
13
+ // }
14
+
15
+ section,
16
+ .#{$object__section} {
17
+ margin: #{$object__section-margin};
18
+ }
19
+
20
+ article,
21
+ .#{$object__article} {
22
+ margin-bottom: $object__article-margin-bottom;
23
+ }
24
+
25
+ p {
26
+ margin-bottom: $object__section-margin-bottom / 2;
27
+ }
28
+
29
+
30
+
31
+
32
+
33
+ // ================================ %HEADERS% ================================ \\
34
+ @function __get-header-size( $number ) {
35
+ @return floor($theme__font-size + (abs($number - 6) * 4.5));
36
+ }
37
+
38
+ %__init-headers {
39
+ margin-top: 0;
40
+ font-family: $theme__header-font-family;
41
+ }
42
+
43
+ @for $i from 1 through 6 {
44
+ h#{$i} {
45
+ @extend %__init-headers;
46
+
47
+ font-size: __get-header-size( $i );
48
+ line-height: __get-header-size( $i ) + $i - 6;
49
+ margin-bottom: __get-header-size( $i ) / 2;
50
+ }
51
+ }
52
+
53
+
54
+
55
+
56
+
57
+
58
+ // ================================ %TYPOGRAPHY% ================================ \\
59
+
60
+ small {
61
+ font-size: 85%;
62
+ }
63
+
64
+ strong {
65
+ font-weight: bold ;
66
+ }
67
+
68
+ em {
69
+ font-style: normal;
70
+ }
71
+
72
+ abbr {
73
+ border-bottom: 1px dotted;
74
+ &[title] {
75
+ cursor: help;
76
+ }
77
+ }
78
+
79
+ // --------------------- %blockquote% ---------------------
80
+ blockquote {
81
+ padding: 0 0 0 $theme__blockquote-padding;
82
+ border-left: $theme__blockquote-border;
83
+ margin:0 0 $theme__blockquote-padding;
84
+ font-weight: 300;
85
+ small {
86
+ color: $theme__blockquote__sign-color;
87
+ &:before
88
+ {
89
+ content: '\2014 \00A0';
90
+ }
91
+ }
92
+
93
+ &.#{$mixin__float-right}
94
+ {
95
+ float: right;
96
+ padding: 0 $theme__blockquote-padding 0 0;
97
+ border-left: none;
98
+ border-right: $theme__blockquote-border;
99
+ text-align: right;
100
+ }
101
+ }
102
+
103
+ // --------------------- %address% ---------------------
104
+ address {
105
+ font-style: normal ;
106
+ margin: 0 0 $object__section-margin-bottom 0;
107
+ }
108
+
109
+ // --------------------- %lists% ---------------------
110
+ ul, ol {
111
+ margin: $theme__list-margin;
112
+ padding: 0;
113
+ line-height: $theme__list-line-height;
114
+
115
+ // &.#{$modificator-type-unstyled}
116
+ // {
117
+ // list-style: none;
118
+ // margin-left: $theme__list-margin-left / 2;
119
+ // }
120
+
121
+ ul, ol
122
+ {
123
+ margin-bottom: 0;
124
+ }
125
+ }
126
+
127
+ // --------------------- %descriptions% ---------------------
128
+ dl {
129
+ margin: $theme__description-margin;
130
+ line-height: $theme__description-line-height;
131
+
132
+ dt {
133
+ font-weight: bold;
134
+ }
135
+
136
+ dd {
137
+ margin-left: $theme__description__defenition-margin-left;
138
+ }
139
+
140
+ &.#{$mod__horizontal}
141
+ {
142
+ dt {
143
+ width: $theme__description__defenition__inline-width;
144
+ float: left;
145
+ text-overflow: ellipsis;
146
+ overflow: hidden;
147
+ white-space: nowrap;
148
+ text-align: right;
149
+ }
150
+
151
+ dd {
152
+ margin-left: $theme__description__defenition__inline-width + 10px;
153
+ }
154
+ }
155
+ }
156
+
157
+
158
+
159
+ // ================================ %GRID% ================================ \\
160
+
161
+ @function __get-column-width( $column-quantity: $object__column-quantity, $column-width: $object__column-width, $gutter-width: $object__column__gutter-width ) {
162
+ @return $column-width * $column-quantity + $gutter-width * ( $column-quantity - 1 );
163
+ }
164
+
165
+ @function __get-column-offset-width( $column-quantity: $object__column-quantity, $column-width: $object__column-width, $gutter-width: $object__column__gutter-width ) {
166
+ @return $column-width * $column-quantity + $gutter-width * ( $column-quantity + 1 );
167
+ }
168
+
169
+ .#{$object__container} {
170
+ width: $object__row-width;
171
+ margin: 0 auto;
172
+ }
173
+
174
+ .#{$object__row} {
175
+ margin-left: -$object__column__gutter-width;
176
+ width: $object__row-width;
177
+ @include clearfix;
178
+
179
+ [class^='#{$object__column}'] {
180
+ float: left;
181
+ margin-left: $object__column__gutter-width;
182
+ }
183
+
184
+ @for $i from 1 through $object__column-quantity {
185
+ & > .#{$object__column}#{$i} {
186
+ width: __get-column-width($i);
187
+ }
188
+
189
+ & > .#{$object__column-offset}#{$i} {
190
+ margin-left: __get-column-offset-width($i);
191
+ }
192
+ }
193
+ }
194
+
195
+ .#{$object__row-fluid} {
196
+ width: $object__row-fluid-width + $object__row-fluid__column__gutter-width;
197
+ margin-left: -$object__row-fluid__column__gutter-width;
198
+ @include clearfix;
199
+
200
+ [class^='#{$object__column}'] {
201
+ float: left;
202
+ margin-left: $object__row-fluid__column__gutter-width;
203
+ }
204
+
205
+ @for $i from 1 through $object__column-quantity {
206
+ & > .#{$object__column}#{$i} {
207
+ width: __get-column-width($i, $object__row-fluid__column-width, $object__row-fluid__column__gutter-width);
208
+ }
209
+
210
+ & > .#{$object__column-offset}#{$i} {
211
+ margin-left: __get-column-offset-width($i, $object__row-fluid__column-width, $object__row-fluid__column__gutter-width);
212
+ }
213
+ }
214
+ }
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
@@ -0,0 +1,218 @@
1
+ @mixin clearfix {
2
+ *zoom: 1;
3
+ &:before,
4
+ &:after
5
+ {
6
+ display: table;
7
+ content: " ";
8
+ line-height: 0;
9
+ }
10
+ &:after
11
+ {
12
+ clear: both;
13
+ }
14
+ }
15
+
16
+ @mixin box-sizing( $box-sizing ) {
17
+ -webkit-box-sizing: $box-sizing;
18
+ -moz-box-sizing: $box-sizing;
19
+ -ms-box-sizing: $box-sizing;
20
+ -o-box-sizing: $box-sizing;
21
+ box-sizing: $box-sizing;
22
+ }
23
+
24
+ @mixin box-shadow( $box-shadow... ) {
25
+ -webkit-box-shadow: $box-shadow;
26
+ -moz-box-shadow: $box-shadow;
27
+ -ms-box-shadow: $box-shadow;
28
+ -o-box-shadow: $box-shadow;
29
+ box-shadow: $box-shadow;
30
+ }
31
+
32
+ @mixin text-shadow( $text-shadow... ) {
33
+ -webkit-text-shadow: $text-shadow;
34
+ -moz-text-shadow: $text-shadow;
35
+ -ms-text-shadow: $text-shadow;
36
+ -o-text-shadow: $text-shadow;
37
+ text-shadow: $text-shadow;
38
+ }
39
+
40
+ @mixin border-radius( $border-radius... ) {
41
+ -webkit-border-radius: $border-radius;
42
+ -moz-border-radius: $border-radius;
43
+ -ms-border-radius: $border-radius;
44
+ -o-border-radius: $border-radius;
45
+ border-radius: $border-radius;
46
+ }
47
+
48
+ @mixin gradient-stripes($angle) {
49
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.35, rgba(255,255,255,.35)), color-stop(.35, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.35)), color-stop(.75, rgba(255,255,255,.35)), color-stop(.75, transparent), to(transparent))!important;
50
+ background-image: -webkit-linear-gradient($angle, rgba(255,255,255,.35) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.35) 75%, transparent 75%, transparent)!important;
51
+ background-image: -moz-linear-gradient($angle, rgba(255,255,255,.35) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.35) 75%, transparent 75%, transparent)!important;
52
+ background-image: -o-linear-gradient($angle, rgba(255,255,255,.35) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.35) 75%, transparent 75%, transparent)!important;
53
+ background-image: linear-gradient($angle, rgba(255,255,255,.35) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.35) 75%, transparent 75%, transparent)!important;
54
+ }
55
+
56
+ @mixin gradient-stripes-dark($angle) {
57
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.1, rgba(0,0,0,.1)), color-stop(.1, transparent), color-stop(.5, transparent), color-stop(.5, rgba(0,0,0,.1)), color-stop(.75, rgba(0,0,0,.1)), color-stop(.75, transparent), to(transparent))!important;
58
+ background-image: -webkit-linear-gradient($angle, rgba(0,0,0,.1) 25%, transparent 25%, transparent 50%, rgba(0,0,0,.1) 50%, rgba(0,0,0,.1) 75%, transparent 75%, transparent)!important;
59
+ background-image: -moz-linear-gradient($angle, rgba(0,0,0,.1) 25%, transparent 25%, transparent 50%, rgba(0,0,0,.1) 50%, rgba(0,0,0,.1) 75%, transparent 75%, transparent)!important;
60
+ background-image: -o-linear-gradient($angle, rgba(0,0,0,.1) 25%, transparent 25%, transparent 50%, rgba(0,0,0,.1) 50%, rgba(0,0,0,.1) 75%, transparent 75%, transparent)!important;
61
+ background-image: linear-gradient($angle, rgba(0,0,0,.1) 25%, transparent 25%, transparent 50%, rgba(0,0,0,.1) 50%, rgba(0,0,0,.1) 75%, transparent 75%, transparent)!important;
62
+ }
63
+
64
+ @mixin gradient-horizontal( $startColor, $endColor ) {
65
+ background-color: $endColor;
66
+ background-image: -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+
67
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
68
+ background-image: -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+
69
+ background-image: -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10
70
+ background-image: linear-gradient(to right, $startColor, $endColor); // Standard, IE10
71
+ background-repeat: repeat-x;
72
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}');
73
+ }
74
+
75
+ @mixin gradient-horizontal-three-colors($startColor, $midColor, $colorStop, $endColor) {
76
+ // background-color: mix($midColor, $endColor, 80%);
77
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), color-stop($colorStop, $midColor), to($endColor));
78
+ background-image: -webkit-linear-gradient(left, $startColor, $midColor $colorStop, $endColor);
79
+ background-image: -moz-linear-gradient(left, top, $startColor, $midColor $colorStop, $endColor);
80
+ background-image: -o-linear-gradient(left, $startColor, $midColor $colorStop, $endColor);
81
+ background-image: linear-gradient(to right, $startColor, $midColor $colorStop, $endColor);
82
+ background-repeat: no-repeat;
83
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}');
84
+ }
85
+
86
+ @mixin gradient-vertical-three-colors($startColor, $midColor, $colorStop, $endColor) {
87
+ // background-color: mix($midColor, $endColor, 80%);
88
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), color-stop($colorStop, $midColor), to($endColor));
89
+ background-image: -webkit-linear-gradient(top, $startColor, $midColor $colorStop, $endColor);
90
+ background-image: -moz-linear-gradient(top, top, $startColor, $midColor $colorStop, $endColor);
91
+ background-image: -o-linear-gradient(top, $startColor, $midColor $colorStop, $endColor);
92
+ background-image: linear-gradient(to bottom, $startColor, $midColor $colorStop, $endColor);
93
+ background-repeat: no-repeat;
94
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}');
95
+ }
96
+
97
+ @mixin gradient-vertical( $startColor, $endColor ) {
98
+ background-color: mix($startColor, $endColor, 60%);
99
+ background-image: -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+
100
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
101
+ background-image: -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+
102
+ background-image: -o-linear-gradient(top, $startColor, $endColor); // Opera 11.10
103
+ background-image: linear-gradient(to bottom, $startColor, $endColor); // Standard, IE10
104
+ background-repeat: repeat-x;
105
+ filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#{ie-hex-str($startColor)}', endColorstr='#{ie-hex-str($endColor)}');
106
+ }
107
+
108
+ @mixin animation( $animation... ) {
109
+ animation: $animation;
110
+ -webkit-animation: $animation;
111
+ -moz-animation: $animation;
112
+ -o-animation: $animation;
113
+ -ms-animation: $animation;
114
+ }
115
+
116
+ @mixin transition( $transition... ) {
117
+ transition: $transition;
118
+ -webkit-transition: $transition;
119
+ -moz-transition: $transition;
120
+ -ms-transition: $transition;
121
+ -o-transition: $transition;
122
+ }
123
+
124
+ @mixin perspective( $perspective ) {
125
+ perspective: $perspective;
126
+ -webkit-perspective: $perspective;
127
+ -moz-perspective: $perspective;
128
+ -ms-perspective: $perspective;
129
+ -o-perspective: $perspective;
130
+ }
131
+
132
+ @mixin transition-duration( $transition-duration... ) {
133
+ transition-duration: $transition-duration;
134
+ -webkit-transition-duration: $transition-duration;
135
+ -moz-transition-duration: $transition-duration;
136
+ -ms-transition-duration: $transition-duration;
137
+ -o-transition-duration: $transition-duration;
138
+ }
139
+
140
+ @mixin transition-property( $transition-property... ) {
141
+ transition-property: $transition-property;
142
+ -webkit-transition-property: $transition-property;
143
+ -moz-transition-property: $transition-property;
144
+ -ms-transition-property: $transition-property;
145
+ -o-transition-property: $transition-property;
146
+ }
147
+
148
+ @mixin transform( $transform... ) {
149
+ transform: $transform;
150
+ -webkit-transform: $transform;
151
+ -moz-transform: $transform;
152
+ -ms-transform: $transform;
153
+ -o-transform: $transform;
154
+ }
155
+
156
+ @mixin transform-style( $transform-style ) {
157
+ transform-style: $transform-style;
158
+ -webkit-transform-style: $transform-style;
159
+ -moz-transform-style: $transform-style;
160
+ -ms-transform-style: $transform-style;
161
+ -o-transform-style: $transform-style;
162
+ }
163
+
164
+ @mixin transform-origin( $transform-origin... ) {
165
+ transform-origin: $transform-origin;
166
+ -webkit-transform-origin: $transform-origin;
167
+ -moz-transform-origin: $transform-origin;
168
+ -ms-transform-origin: $transform-origin;
169
+ -o-transform-origin: $transform-origin;
170
+ }
171
+
172
+ @mixin filter( $filter... ) {
173
+ filter: $filter;
174
+ -webkit-filter: $filter;
175
+ -moz-filter: $filter;
176
+ -ms-filter: $filter;
177
+ -o-filter: $filter;
178
+ }
179
+
180
+ @mixin opacity( $opacity... ) {
181
+ opacity: $opacity;
182
+ -webkit-opacity: $opacity;
183
+ -moz-opacity: $opacity;
184
+ -ms-opacity: $opacity;
185
+ -o-opacity: $opacity;
186
+ }
187
+
188
+ @mixin transitions( $transition ) {
189
+ $_types: '', '-webkit-', '-moz-', '-o-', '-ms-';
190
+
191
+ @each $type in $_types {
192
+ #{$type}transition: _generate-transitions-fields( $type, $transition... ) ;
193
+ }
194
+ }
195
+
196
+ @mixin transitions( $transition... ) {
197
+ $_types: '', '-webkit-', '-moz-', '-o-', '-ms-';
198
+
199
+ @each $type in $_types {
200
+ #{$type}transition: _generate-transitions-fields( $type, $transition... ) ;
201
+ }
202
+ }
203
+
204
+ @function _generate-transitions-fields( $type, $transition... ) {
205
+ $_return: '';
206
+ @each $tr in $transition {
207
+ @if $_return != '' {
208
+ $_return: $_return + ', ';
209
+ }
210
+ $_return: $_return + _generate-transitions( $tr, $type );
211
+ }
212
+
213
+ @return #{$_return};
214
+ }
215
+
216
+ @function _generate-transitions( $transition, $type ) {
217
+ @return nth($transition, 1) #{$type}nth($transition, 2) nth($transition, 3);
218
+ }