toolbox_esten 1.0.0

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 (61) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +0 -0
  3. data/CONTRIBUTING.md +0 -0
  4. data/Gemfile +10 -0
  5. data/Gemfile.lock +165 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +0 -0
  8. data/Rakefile +8 -0
  9. data/assets/javascripts/simpleLoader/simpleLoader.js +122 -0
  10. data/assets/javascripts/simpleLoader/simpleLoader.min.js +1 -0
  11. data/assets/javascripts/simpleMenu/simpleMenu.js +53 -0
  12. data/assets/javascripts/simpleMenu/simpleMenu.min.js +1 -0
  13. data/assets/javascripts/simpleSelection/simpleSelect.js +60 -0
  14. data/assets/javascripts/simpleTextfield/simpleTextfield.js +94 -0
  15. data/assets/javascripts/simpleTooltip/simpleTooltip.js +166 -0
  16. data/assets/javascripts/simpleTooltip/simpleTooltip.min.js +1 -0
  17. data/assets/stylesheets/_jquery_ui.scss +1 -0
  18. data/assets/stylesheets/_simpleloader.scss +2 -0
  19. data/assets/stylesheets/_simpleselection.scss +1 -0
  20. data/assets/stylesheets/_simpletextfield.scss +1 -0
  21. data/assets/stylesheets/_simpletooltip.scss +1 -0
  22. data/assets/stylesheets/_toolbox_esten.scss +18 -0
  23. data/assets/stylesheets/jquery_ui/uidialog.scss +39 -0
  24. data/assets/stylesheets/simpleLoader/keyframes.scss +325 -0
  25. data/assets/stylesheets/simpleLoader/simpleLoader.scss +367 -0
  26. data/assets/stylesheets/simpleSelection/simpleSelection.scss +15 -0
  27. data/assets/stylesheets/simpleTextfield/simpleTextfield.scss +54 -0
  28. data/assets/stylesheets/simpleTooltip/simpleTooltip.scss +21 -0
  29. data/assets/stylesheets/toolbox_esten/base.scss +27 -0
  30. data/assets/stylesheets/toolbox_esten/buttons.scss +162 -0
  31. data/assets/stylesheets/toolbox_esten/datatables.scss +113 -0
  32. data/assets/stylesheets/toolbox_esten/detail.scss +22 -0
  33. data/assets/stylesheets/toolbox_esten/flex.scss +32 -0
  34. data/assets/stylesheets/toolbox_esten/form.scss +35 -0
  35. data/assets/stylesheets/toolbox_esten/grid.scss +34 -0
  36. data/assets/stylesheets/toolbox_esten/helper.scss +42 -0
  37. data/assets/stylesheets/toolbox_esten/mixins.scss +179 -0
  38. data/assets/stylesheets/toolbox_esten/notification.scss +109 -0
  39. data/assets/stylesheets/toolbox_esten/reset.scss +38 -0
  40. data/assets/stylesheets/toolbox_esten/section.scss +53 -0
  41. data/assets/stylesheets/toolbox_esten/tables.scss +72 -0
  42. data/assets/stylesheets/toolbox_esten/tabs.scss +42 -0
  43. data/assets/stylesheets/toolbox_esten/textfield.scss +43 -0
  44. data/assets/stylesheets/toolbox_esten/top_bar.scss +80 -0
  45. data/assets/stylesheets/toolbox_esten/variables.scss +260 -0
  46. data/bower.json +26 -0
  47. data/composer.json +20 -0
  48. data/lib/toolbox_esten.rb +84 -0
  49. data/lib/toolbox_esten/engine.rb +11 -0
  50. data/lib/toolbox_esten/version.rb +3 -0
  51. data/sache.json +5 -0
  52. data/tasks/bower.rake +29 -0
  53. data/tasks/converter.rb +62 -0
  54. data/tasks/converter/char_string_scanner.rb +38 -0
  55. data/tasks/converter/logger.rb +57 -0
  56. data/tasks/converter/network.rb +100 -0
  57. data/tasks/install.rake +20 -0
  58. data/templates/.travis.yml +19 -0
  59. data/templates/project/styles.sass +2 -0
  60. data/toolbox_esten.gemspec +43 -0
  61. metadata +317 -0
@@ -0,0 +1,94 @@
1
+ +function($) {
2
+ 'use strict';
3
+
4
+ var Simpletextfield = function(element, options) {
5
+ this.init(element, options);
6
+ }
7
+
8
+ Simpletextfield.DEFAULTS = {
9
+ }
10
+
11
+ Simpletextfield.prototype.init = function(element, options) {
12
+ var $ele = $(element);
13
+ if($ele.parent().find(".simplelabel").length == 0) {
14
+ generateTemplate($ele);
15
+ }
16
+
17
+ var target = $ele.parent().find(".simplelabel");
18
+ var inactive_target = $ele.parent().find(".simplelabel:not('.focus')");
19
+
20
+ target.click(function() {
21
+ if(!$(this).hasClass("focus")) {
22
+ $ele.focus();
23
+ focus_In($ele, target);
24
+ }
25
+ });
26
+
27
+ $ele.on("focusin", function() {
28
+ focus_In($(this), target);
29
+ });
30
+
31
+ $ele.on("focusout", function() {
32
+ focus_Out($(this), target);
33
+ });
34
+
35
+ if($ele[0].localName == "textarea") {
36
+ var ta = $ele[0];
37
+
38
+ $(ta).keyup(function() {
39
+ autoHeight(this);
40
+ });
41
+ }
42
+ }
43
+
44
+ function generateTemplate(ele) {
45
+ var title = ele.data("title");
46
+ var tooltip = ele.data("tooltip-title");
47
+ if(tooltip) {
48
+ var template = '<span class="simplelabel simpletooltip" data-tooltip-title="'+tooltip+'">'+title+'</span>';
49
+ } else {
50
+ var template = '<span class="simplelabel">'+title+'</span>';
51
+ }
52
+ ele.after(template);
53
+ }
54
+
55
+ function focus_In(ele, target) {
56
+ target.addClass("focus");
57
+ ele.addClass("focus");
58
+ }
59
+
60
+ function focus_Out(ele, target) {
61
+ if(ele.val().length == 0) {
62
+ target.removeClass("focus filled");
63
+ ele.removeClass("focus");
64
+ } else {
65
+ target.addClass("filled").removeClass("focus");
66
+ ele.removeClass("focus");
67
+ }
68
+ }
69
+
70
+ function autoHeight(obj) {
71
+ $(obj).height(30);
72
+ $(obj).height(
73
+ obj.scrollHeight + parseFloat($(obj).css("borderTopWidth")) + parseFloat($(obj).css("borderBottomWidth"))
74
+ );
75
+ }
76
+
77
+ function Plugin(option) {
78
+ return this.each(function() {
79
+ var $this = $(this);
80
+ var options = $.extend({}, Simpletextfield.DEFAULTS, option);
81
+ new Simpletextfield(this, options);
82
+ });
83
+ }
84
+
85
+ var old = $.fn.simpletextfield;
86
+
87
+ $.fn.simpletextfield = Plugin;
88
+ $.fn.simpletextfield.Constructor = Simpletextfield;
89
+
90
+ $.fn.simpletextfield.noConflict = function() {
91
+ $.fn.simpletextfield = old;
92
+ return this;
93
+ }
94
+ }(jQuery);
@@ -0,0 +1,166 @@
1
+ +function($) {
2
+ 'use strict';
3
+
4
+ var Simpletooltip = function(element, options) {
5
+ this.init(element, options);
6
+ }
7
+
8
+ Simpletooltip.DEFAULTS = {
9
+ template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
10
+ viewport: '.container',
11
+ maxwidth: false,
12
+ theme: {
13
+ background: '#000000',
14
+ color: '#FFFFFF',
15
+ textshadow: 'none'
16
+ }
17
+ }
18
+
19
+ Simpletooltip.prototype.init = function(element, options) {
20
+ this.$element = $(element);
21
+ this.options = options;
22
+
23
+ this.$element.on('mouseenter', $.proxy(this.enter, this));
24
+ this.$element.on('mouseout', $.proxy(this.leave, this));
25
+ }
26
+
27
+ Simpletooltip.prototype.enter = function(obj) {
28
+ var $tip = this.tip();
29
+ var el = this.$element;
30
+ var viewport = this.options.viewport;
31
+
32
+ this.setContent($tip);
33
+
34
+ $tip.detach();
35
+ $(viewport).css("position", "relative");
36
+ $tip.appendTo(viewport);
37
+
38
+ var placement = el.data("placement");
39
+ var pos = this.getPosition(el);
40
+ var calculatedOffset = this.getCalculatedOffset(placement, pos);
41
+ // this.placeArrow(placement);
42
+
43
+ this.setCalculatedOffset(calculatedOffset);
44
+ }
45
+
46
+ Simpletooltip.prototype.leave = function(obj) {
47
+ var $tip = this.tip();
48
+ $tip.detach();
49
+ }
50
+
51
+ Simpletooltip.prototype.tip = function() {
52
+ if (!this.$tip) {
53
+ this.$tip = $(this.options.template)
54
+ if (this.$tip.length != 1) {
55
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
56
+ }
57
+ }
58
+ return this.$tip;
59
+ }
60
+
61
+ Simpletooltip.prototype.setContent = function(tip) {
62
+ var $tip = this.tip();
63
+ var $background = this.options.theme.background;
64
+ var $color = this.options.theme.color;
65
+ var $textshadow = this.options.theme.textshadow;
66
+ var $maxwidth = this.options.maxwidth;
67
+ var $title = this.getTitle();
68
+ $tip.css({
69
+ 'background': $background,
70
+ 'color': $color,
71
+ 'text-shadow': $textshadow,
72
+ 'max-width': $maxwidth
73
+ });
74
+ $tip.find('.tooltip-inner').empty().append($title);
75
+ }
76
+
77
+ Simpletooltip.prototype.getTitle = function() {
78
+ var $e = this.$element;
79
+
80
+ if($e.data("title")) {
81
+ return $e.data('title');
82
+ } else {
83
+ return $e.data('tooltip-title');
84
+ }
85
+ }
86
+
87
+ Simpletooltip.prototype.getPosition = function(element) {
88
+ var pos = element.offset();
89
+
90
+ return pos;
91
+ }
92
+
93
+ Simpletooltip.prototype.getCalculatedOffset = function(placement, pos) {
94
+ var $tip = this.tip();
95
+ var el = this.$element;
96
+ var tipWidth = $tip[0].offsetWidth;
97
+ var tipHeight = $tip[0].offsetHeight;
98
+ var elWidth = el[0].offsetWidth;
99
+ var elHeight = el[0].offsetHeight;
100
+ var top, left, calculatedOffset;
101
+
102
+ if(placement == 'top') {
103
+ top = pos.top - tipHeight - 3;
104
+ left = pos.left - (tipWidth - elWidth) / 2;
105
+ } else if(placement == 'bottom') {
106
+ top = pos.top + elHeight + 3;
107
+ left = pos.left - (tipWidth - elWidth) / 2;
108
+ } else if(placement == 'left') {
109
+ top = pos.top + (elHeight - tipHeight) / 2;
110
+ left = pos.left - tipWidth - 3;
111
+ } else {
112
+ top = pos.top + (elHeight - tipHeight) / 2;
113
+ left = pos.left + elWidth + 3;
114
+ }
115
+
116
+ calculatedOffset = {'top': top, 'left': left};
117
+
118
+ return calculatedOffset;
119
+ }
120
+
121
+ // Simpletooltip.prototype.placeArrow = function(placement) {
122
+ // var $tip = this.tip();
123
+ // var $arrow = $tip.find(".tooltip-arrow");
124
+ // var $background = this.options.theme.background;
125
+
126
+ // if(placement == 'top') {
127
+ // $arrow.addClass('to_top');
128
+ // $arrow.css("border-top-color", $background);
129
+ // } else if(placement == 'bottom') {
130
+ // $arrow.addClass('to_bottom');
131
+ // $arrow.css("border-bottom-color", $background);
132
+ // } else if(placement == 'left') {
133
+ // $arrow.addClass('to_left');
134
+ // $arrow.css("border-left-color", $background);
135
+ // } else {
136
+ // $arrow.addClass('to_right');
137
+ // $arrow.css("border-right-color", $background);
138
+ // }
139
+ // }
140
+
141
+ Simpletooltip.prototype.setCalculatedOffset = function(calculatedOffset) {
142
+ var $tip = this.tip();
143
+ $($tip[0]).css({
144
+ 'top': calculatedOffset.top,
145
+ 'left': calculatedOffset.left
146
+ });
147
+ }
148
+
149
+ function Plugin(option) {
150
+ return this.each(function() {
151
+ var $this = $(this);
152
+ var options = $.extend({}, Simpletooltip.DEFAULTS, option);
153
+ new Simpletooltip(this, options);
154
+ });
155
+ }
156
+
157
+ var old = $.fn.simpletooltip;
158
+
159
+ $.fn.simpletooltip = Plugin;
160
+ $.fn.simpletooltip.Constructor = Simpletooltip;
161
+
162
+ $.fn.simpletooltip.noConflict = function() {
163
+ $.fn.simpletooltip = old;
164
+ return this;
165
+ }
166
+ }(jQuery);
@@ -0,0 +1 @@
1
+ +function(t){"use strict";function o(o){return this.each(function(){var i=(t(this),t.extend({},e.DEFAULTS,o));new e(this,i)})}var e=function(t,o){this.init(t,o)};e.DEFAULTS={template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',viewport:".container",theme:{background:"#000000",color:"#FFFFFF"}},e.prototype.init=function(o,e){this.$element=t(o),this.options=e,this.$element.on("mouseenter",t.proxy(this.enter,this)),this.$element.on("mouseout",t.proxy(this.leave,this))},e.prototype.enter=function(o){var e=this.tip(),i=this.$element,s=this.options.viewport;this.setContent(e),e.detach(),t(s).css("position","relative"),e.appendTo(s);var n=i.data("placement"),r=this.getPosition(i),p=this.getCalculatedOffset(n,r);this.placeArrow(n),this.setCalculatedOffset(p)},e.prototype.leave=function(t){var o=this.tip();o.detach()},e.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},e.prototype.setContent=function(t){var o=this.tip(),e=this.options.theme.background,i=this.options.theme.color,s=this.getTitle();o.css({background:e,color:i}),o.find(".tooltip-inner").empty().append(s)},e.prototype.getTitle=function(){var t=this.$element;return t.attr("title")},e.prototype.getPosition=function(t){var o=t.offset();return o},e.prototype.getCalculatedOffset=function(t,o){var e,i,s,n=this.tip(),r=this.$element,p=n[0].offsetWidth,l=n[0].offsetHeight,a=r[0].offsetWidth,f=r[0].offsetHeight;return"top"==t?(e=o.top-l-5,i=o.left-(p-a)/2):"bottom"==t?(e=o.top+f+5,i=o.left-(p-a)/2):"left"==t?(e=o.top+(f-l)/2,i=o.left-p-5):(e=o.top+(f-l)/2,i=o.left+a+5),s={top:e,left:i}},e.prototype.placeArrow=function(t){var o=this.tip(),e=o.find(".tooltip-arrow"),i=this.options.theme.background;"top"==t?(e.addClass("to_top"),e.css("border-top-color",i)):"bottom"==t?(e.addClass("to_bottom"),e.css("border-bottom-color",i)):"left"==t?(e.addClass("to_left"),e.css("border-left-color",i)):(e.addClass("to_right"),e.css("border-right-color",i))},e.prototype.setCalculatedOffset=function(o){var e=this.tip();t(e[0]).css({top:o.top,left:o.left})};var i=t.fn.simpletooltip;t.fn.simpletooltip=o,t.fn.simpletooltip.Constructor=e,t.fn.simpletooltip.noConflict=function(){return t.fn.simpletooltip=i,this}}(jQuery);
@@ -0,0 +1 @@
1
+ @import "jquery_ui/uidialog";
@@ -0,0 +1,2 @@
1
+ @import "simpleLoader/keyframes";
2
+ @import "simpleLoader/simpleLoader";
@@ -0,0 +1 @@
1
+ @import "simpleSelection/simpleSelection";
@@ -0,0 +1 @@
1
+ @import "simpleTextfield/simpleTextfield";
@@ -0,0 +1 @@
1
+ @import "simpleTooltip/simpleTooltip";
@@ -0,0 +1,18 @@
1
+ @import "toolbox_esten/mixins";
2
+ @import "toolbox_esten/variables";
3
+ @import "toolbox_esten/reset";
4
+ @import "toolbox_esten/base";
5
+ @import "toolbox_esten/grid";
6
+ @import "toolbox_esten/helper";
7
+ @import "toolbox_esten/flex";
8
+
9
+ @import "toolbox_esten/top_bar";
10
+ @import "toolbox_esten/buttons";
11
+ @import "toolbox_esten/textfield";
12
+ @import "toolbox_esten/section";
13
+ @import "toolbox_esten/form";
14
+ @import "toolbox_esten/detail";
15
+ @import "toolbox_esten/tables";
16
+ @import "toolbox_esten/tabs";
17
+ @import "toolbox_esten/datatables";
18
+ @import "toolbox_esten/notification";
@@ -0,0 +1,39 @@
1
+ .ui-dialog {
2
+ @include border-radius(0);
3
+ @include box-shadow(0 1px 10px $grey_500);
4
+ position: absolute;
5
+ background: #FFFFFF;
6
+ outline: 0;
7
+ .ui-dialog-titlebar { display: none; }
8
+ .ui-dialog-content {
9
+ @include font(14px, 400);
10
+ @include border-radius(0);
11
+ padding: 16px 24px;
12
+ line-height: 30px;
13
+ color: $grey_600;
14
+ overflow: auto;
15
+ outline: 0;
16
+ p { margin: 4px 0; }
17
+ b {
18
+ color: $blue_500;
19
+ &.alert { color: $deep_orange_400; }
20
+ }
21
+ .dialog-title {
22
+ @include font(20px, 500);
23
+ line-height: 30px;
24
+ color: $grey_500;
25
+ }
26
+ .form-body { padding: 0; }
27
+ }
28
+ .ui-dialog-buttonpane {
29
+ min-height: 30px;
30
+ padding: 16px 24px;
31
+ }
32
+ }
33
+ .ui-widget-overlay {
34
+ @include size(100%, 100%);
35
+ position: fixed;
36
+ top: 0;
37
+ left: 0;
38
+ background: rgba(255,255,255,.7);
39
+ }
@@ -0,0 +1,325 @@
1
+ /* ==================== Keyframes ==================== */
2
+ /* ---------- Horizon Ball ---------- */
3
+ @-webkit-keyframes horizon-ball {
4
+ 0%, 80% {
5
+ @include opacity(100);
6
+ @include transform(scale(1));
7
+ }
8
+ 40% {
9
+ @include opacity(70);
10
+ @include transform(scale(0.1));
11
+ }
12
+ }
13
+ @keyframes horizon-ball {
14
+ 0%, 80% {
15
+ @include opacity(100);
16
+ @include transform(scale(1));
17
+ }
18
+ 40% {
19
+ @include opacity(70);
20
+ @include transform(scale(0.1));
21
+ }
22
+ }
23
+ /* ---------- END Horizon Ball ---------- */
24
+
25
+ /* ---------- Grid Ball ---------- */
26
+ @-webkit-keyframes grid-ball {
27
+ 0%, 100% {
28
+ @include opacity(100);
29
+ @include transform(scale(1));
30
+ }
31
+ 50% {
32
+ @include opacity(70);
33
+ @include transform(scale(0.5));
34
+ }
35
+ }
36
+ @keyframes grid-ball {
37
+ 0%, 100% {
38
+ @include opacity(100);
39
+ @include transform(scale(1));
40
+ }
41
+ 50% {
42
+ @include opacity(70);
43
+ @include transform(scale(0.5));
44
+ }
45
+ }
46
+ /* ---------- END Grid Ball ---------- */
47
+
48
+ /* ---------- Rotate Circle ---------- */
49
+ @-webkit-keyframes rotate-circle {
50
+ 0% { @include transform(scale(1) rotate(0deg)); }
51
+ 50% { @include transform(scale(1.3) rotate(180deg)); }
52
+ 100% { @include transform(scale(1) rotate(360deg)); }
53
+ }
54
+ @keyframes rotate-circle {
55
+ 0% { @include transform(scale(1) rotate(0deg)); }
56
+ 50% { @include transform(scale(1.3) rotate(180deg)); }
57
+ 100% { @include transform(scale(1) rotate(360deg)); }
58
+ }
59
+ /* ---------- END Rotate Circle ---------- */
60
+
61
+ /* ---------- Rotate Clip Ball ---------- */
62
+ @-webkit-keyframes rotate-clip-ball {
63
+ 30% { @include transform(scale(0.3)); }
64
+ 100% { @include transform(scale(1)); }
65
+ }
66
+ @keyframes rotate-clip-ball {
67
+ 30% { @include transform(scale(0.3)); }
68
+ 100% { @include transform(scale(1)); }
69
+ }
70
+ /* ---------- END Rotate Clip Ball ---------- */
71
+
72
+ /* ---------- Square Spin ---------- */
73
+ @-webkit-keyframes square-spin {
74
+ 25% { @include transform(perspective(100px) rotateX(180deg) rotateY(0)); }
75
+ 50% { @include transform(perspective(100px) rotateX(180deg) rotateY(180deg)); }
76
+ 75% { @include transform(perspective(100px) rotateX(0) rotateY(180deg)); }
77
+ 100% { @include transform(perspective(100px) rotateX(0) rotateY(0)); }
78
+ }
79
+ @keyframes square-spin {
80
+ 25% { @include transform(perspective(100px) rotateX(180deg) rotateY(0)); }
81
+ 50% { @include transform(perspective(100px) rotateX(180deg) rotateY(180deg)); }
82
+ 75% { @include transform(perspective(100px) rotateX(0) rotateY(180deg)); }
83
+ 100% { @include transform(perspective(100px) rotateX(0) rotateY(0)); }
84
+ }
85
+ /* ---------- END Square Spin ---------- */
86
+
87
+ /* ---------- Rotate Clip Circle ---------- */
88
+ @-webkit-keyframes rotate-clip-circle {
89
+ 0% { @include transform(scale(1) rotate(0deg)); }
90
+ 50% { @include transform(scale(1.3) rotate(180deg)); }
91
+ 100% { @include transform(scale(1) rotate(360deg)); }
92
+ }
93
+ @keyframes rotate-clip-circle {
94
+ 0% { @include transform(scale(1) rotate(0deg)); }
95
+ 50% { @include transform(scale(1.3) rotate(180deg)); }
96
+ 100% { @include transform(scale(1) rotate(360deg)); }
97
+ }
98
+ /* ---------- END Rotate Clip Circle ---------- */
99
+
100
+ /* ---------- Rise Ball ---------- */
101
+ @-webkit-keyframes rise-ball-odd {
102
+ 0%, 100% { @include transform(scale(0.3) translate(0)); }
103
+ 25% { @include transform(scale(1) translate(0, 20px)); }
104
+ 75% { @include transform(scale(1) translate(0, -20px)); }
105
+ }
106
+ @keyframes rise-ball-odd {
107
+ 0%, 100% { @include transform(scale(0.3) translate(0)); }
108
+ 25% { @include transform(scale(1) translate(0, 20px)); }
109
+ 75% { @include transform(scale(1) translate(0, -20px)); }
110
+ }
111
+ @-webkit-keyframes rise-ball-even {
112
+ 0%, 100% { @include transform(scale(1) translate(0)); }
113
+ 25% { @include transform(scale(1) translate(0, -20px)); }
114
+ 50% { @include transform(scale(0.3) translate(0)); }
115
+ 75% { @include transform(scale(1) translate(0, 20px)); }
116
+ }
117
+ @keyframes rise-ball-even {
118
+ 0%, 100% { @include transform(scale(1) translate(0)); }
119
+ 25% { @include transform(scale(1) translate(0, -20px)); }
120
+ 50% { @include transform(scale(0.3) translate(0)); }
121
+ 75% { @include transform(scale(1) translate(0, 20px)); }
122
+ }
123
+ /* ---------- END Rise Ball ---------- */
124
+
125
+ /* ---------- Rotate Ball ---------- */
126
+ @-webkit-keyframes rotate-ball {
127
+ 0% { @include transform(scale(1) rotate(0deg)); }
128
+ 50% { @include transform(scale(0.6) rotate(180deg)); }
129
+ 100% { @include transform(scale(1) rotate(360deg)); }
130
+ }
131
+ @keyframes rotate-ball {
132
+ 0% { @include transform(scale(1) rotate(0deg)); }
133
+ 50% { @include transform(scale(0.6) rotate(180deg)); }
134
+ 100% { @include transform(scale(1) rotate(360deg)); }
135
+ }
136
+ /* ---------- END Rotate Ball ---------- */
137
+
138
+ /* ---------- Transition Cube ---------- */
139
+ @-webkit-keyframes transition-cube {
140
+ 0% { @include transform(translate(0, 0) rotate(0deg) scale(1)); }
141
+ 25% { @include transform(translate(50px, 0) rotate(-90deg) scale(0.3)); }
142
+ 50% { @include transform(translate(50px, 50px) rotate(180deg) scale(1)); }
143
+ 75% { @include transform(translate(0, 50px) rotate(90deg) scale(0.3)); }
144
+ }
145
+ @keyframes transition-cube {
146
+ 0% { @include transform(translate(0, 0) rotate(0deg) scale(1)); }
147
+ 25% { @include transform(translate(50px, 0) rotate(-90deg) scale(0.3)); }
148
+ 50% { @include transform(translate(50px, 50px) rotate(180deg) scale(1)); }
149
+ 75% { @include transform(translate(0, 50px) rotate(90deg) scale(0.3)); }
150
+ }
151
+ /* ---------- END Transition Cube ---------- */
152
+
153
+ /* ---------- Transition Ball ---------- */
154
+ @-webkit-keyframes transition-ball {
155
+ 0% { @include transform(translate(0)); }
156
+ 33% { @include transform(translate(-15px, -30px)); }
157
+ 66% { @include transform(translate(15px, -30px)); }
158
+ }
159
+ @keyframes transition-ball {
160
+ 0% { @include transform(translate(0)); }
161
+ 33% { @include transform(translate(-15px, -30px)); }
162
+ 66% { @include transform(translate(15px, -30px)); }
163
+ }
164
+ @-webkit-keyframes transition-ball-opposite {
165
+ 0% { @include transform(translate(0)); }
166
+ 33% { @include transform(translate(15px, 30px)); }
167
+ 66% { @include transform(translate(-15px, 30px)); }
168
+ }
169
+ @keyframes transition-ball-opposite {
170
+ 0% { @include transform(translate(0)); }
171
+ 33% { @include transform(translate(15px, 30px)); }
172
+ 66% { @include transform(translate(-15px, 30px)); }
173
+ }
174
+ /* ---------- END Transition Ball ---------- */
175
+
176
+ /* ---------- Transition Ball Reflect ---------- */
177
+ @-webkit-keyframes transition-ball-reflect {
178
+ 0%, 50% { @include transform(translate(0)); }
179
+ 17%, 84% { @include transform(translate(-15px, -30px)); }
180
+ 34%, 67% { @include transform(translate(15px, -30px)); }
181
+ }
182
+ @keyframes transition-ball-reflect {
183
+ 0%, 50% { @include transform(translate(0)); }
184
+ 17%, 84% { @include transform(translate(-15px, -30px)); }
185
+ 34%, 67% { @include transform(translate(15px, -30px)); }
186
+ }
187
+ @-webkit-keyframes transition-ball-reflect-opposite {
188
+ 0%, 50% { @include transform(translate(0)); }
189
+ 17%, 84% { @include transform(translate(15px, 30px)); }
190
+ 34%, 67% { @include transform(translate(-15px, 30px)); }
191
+ }
192
+ @keyframes transition-ball-reflect-opposite {
193
+ 0%, 50% { @include transform(translate(0)); }
194
+ 17%, 84% { @include transform(translate(15px, 30px)); }
195
+ 34%, 67% { @include transform(translate(-15px, 30px)); }
196
+ }
197
+ /* ---------- END Transition Ball Reflect ---------- */
198
+
199
+ /* ---------- Transition Ball Triangle ---------- */
200
+ @-webkit-keyframes transition-ball-triangle-path1 {
201
+ 0% { @include transform(translate(0)); }
202
+ 33% { @include transform(translate(40px, 60px)); }
203
+ 66% { @include transform(translate(-40px, 60px)); }
204
+ }
205
+ @keyframes transition-ball-triangle-path1 {
206
+ 0% { @include transform(translate(0)); }
207
+ 33% { @include transform(translate(40px, 60px)); }
208
+ 66% { @include transform(translate(-40px, 60px)); }
209
+ }
210
+ @-webkit-keyframes transition-ball-triangle-path2 {
211
+ 0% { @include transform(translate(0)); }
212
+ 33% { @include transform(translate(40px, -60px)); }
213
+ 66% { @include transform(translate(80px, 0)); }
214
+ }
215
+ @keyframes transition-ball-triangle-path2 {
216
+ 0% { @include transform(translate(0)); }
217
+ 33% { @include transform(translate(40px, -60px)); }
218
+ 66% { @include transform(translate(80px, 0)); }
219
+ }
220
+ @-webkit-keyframes transition-ball-triangle-path3 {
221
+ 0% { @include transform(translate(0)); }
222
+ 33% { @include transform(translate(-80px, 0)); }
223
+ 66% { @include transform(translate(-40px, -60px)); }
224
+ }
225
+ @keyframes transition-ball-triangle-path3 {
226
+ 0% { @include transform(translate(0)); }
227
+ 33% { @include transform(translate(-80px, 0)); }
228
+ 66% { @include transform(translate(-40px, -60px)); }
229
+ }
230
+ /* ---------- END Transition Ball Triangle ---------- */
231
+
232
+ /* ---------- Scale Ball ---------- */
233
+ @-webkit-keyframes scale-ball {
234
+ 0% {
235
+ @include opacity(100);
236
+ @include transform(scale(0.1));
237
+ }
238
+ 100% {
239
+ @include opacity(0);
240
+ @include transform(scale(1));
241
+ }
242
+ }
243
+ @keyframes scale-ball {
244
+ 0% {
245
+ @include opacity(100);
246
+ @include transform(scale(0.1));
247
+ }
248
+ 100% {
249
+ @include opacity(0);
250
+ @include transform(scale(1));
251
+ }
252
+ }
253
+ /* ---------- END Scale Ball ---------- */
254
+
255
+ /* ---------- Scale Ball Multiple ---------- */
256
+ @-webkit-keyframes scale-ball-multiple {
257
+ 0% {
258
+ @include opacity(0);
259
+ @include transform(scale(0));
260
+ }
261
+ 5%{ @include opacity(100); }
262
+ 100% {
263
+ @include opacity(0);
264
+ @include transform(scale(1));
265
+ }
266
+ }
267
+ @keyframes scale-ball-multiple {
268
+ 0% {
269
+ @include opacity(0);
270
+ @include transform(scale(0));
271
+ }
272
+ 5%{ @include opacity(100); }
273
+ 100% {
274
+ @include opacity(0);
275
+ @include transform(scale(1));
276
+ }
277
+ }
278
+ /* ---------- END Scale Ball Multiple ---------- */
279
+
280
+ /* ---------- Spin Ball ---------- */
281
+ @-webkit-keyframes spin-ball {
282
+ 50% {
283
+ @include opacity(30);
284
+ @include transform(scale(0.4));
285
+ }
286
+ 100% {
287
+ @include opacity(100);
288
+ @include transform(scale(1));
289
+ }
290
+ }
291
+ @keyframes spin-ball {
292
+ 50% {
293
+ @include opacity(30);
294
+ @include transform(scale(0.4));
295
+ }
296
+ 100% {
297
+ @include opacity(100);
298
+ @include transform(scale(1));
299
+ }
300
+ }
301
+ /* ---------- END Spin Ball ---------- */
302
+
303
+ /* ---------- Spin Line ---------- */
304
+ @-webkit-keyframes spin-line {
305
+ 50% { @include opacity(30); }
306
+ 100% { @include opacity(100); }
307
+ }
308
+ @keyframes spin-line {
309
+ 50% { @include opacity(30); }
310
+ 100% { @include opacity(100); }
311
+ }
312
+ /* ---------- END Spin Line ---------- */
313
+
314
+ /* ---------- Time Loader ---------- */
315
+ @-webkit-keyframes time-loader {
316
+ 0% { @include transform(rotate(0deg)); }
317
+ 100% { @include transform(rotate(360deg));
318
+ }
319
+ }
320
+ @keyframes time-loader {
321
+ 0% { @include transform(rotate(0deg)); }
322
+ 100% { @include transform(rotate(360deg)); }
323
+ }
324
+ /* ---------- END Time Loader ---------- */
325
+ /* ==================== END Keyframes ==================== */