ladda-bootstrap-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 23fb513ae607dfa7d3059300de6f8a6c6e6f7840
4
+ data.tar.gz: ea0c3a5d5e5f8bf681f347f209e33effdf205094
5
+ SHA512:
6
+ metadata.gz: 643a817af4c6380aafd38ab224b56f058e98387dceea53addfa863520f868192d3d0f7c6509de7deb1c77e87f5419dbbd4565912ff34d1f35c3acba0363cd268
7
+ data.tar.gz: 6de86b05b26341cba0d07efa8bebf14b36f4ddaffd7b3a196611ba097851e96467f82dcb530ecf9021b87e7b63f4fc1591763ad0a4bd6bce12c0e9ffa3c5643d
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in ladda-bootstrap-rails.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 rafaelliu
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,21 @@
1
+ # ladda-bootstrap-rails
2
+
3
+ A thin wrapper around https://github.com/msurguy/ladda-bootstrap.
4
+
5
+ ## Usage
6
+
7
+ Gemfile:
8
+ ```
9
+ gem 'ladda-bootstrap-rails', :git => 'git://github.com/vendji/ladda-bootstrap-rails.git'
10
+ ```
11
+
12
+ application.js:
13
+ ```
14
+ //= require spin
15
+ //= require ladda
16
+ ```
17
+
18
+ application.css:
19
+ ```
20
+ *= require ladda-themeless
21
+ ```
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "ladda-bootstrap-rails"
5
+ s.version = "0.1.0"
6
+ s.platform = Gem::Platform::RUBY
7
+ s.authors = ["Rafael Liu"]
8
+ s.email = ["rafael@vendji.com"]
9
+ s.homepage = "https://github.com/vendji/ladda-bootstrap-rails"
10
+ s.summary = "A Ladda Bootrap wrapper for Rails 3"
11
+ s.description = "This gem provides CSS and JS for Ladda Bootstrap."
12
+ s.license = "MIT"
13
+
14
+ s.required_rubygems_version = ">= 1.3.6"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
+ s.require_path = 'lib'
19
+ end
@@ -0,0 +1,6 @@
1
+ module LaddaBootstrap
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,157 @@
1
+ (function(root, factory) {
2
+ if (typeof exports === "object") {
3
+ module.exports = factory();
4
+ } else if (typeof define === "function" && define.amd) {
5
+ define([ "spin" ], factory);
6
+ } else {
7
+ root.Ladda = factory(root.Spinner);
8
+ }
9
+ })(this, function(Spinner) {
10
+ "use strict";
11
+ var ALL_INSTANCES = [];
12
+ function create(button) {
13
+ if (typeof button === "undefined") {
14
+ console.warn("Ladda button target must be defined.");
15
+ return;
16
+ }
17
+ if (!button.querySelector(".ladda-label")) {
18
+ button.innerHTML = '<span class="ladda-label">' + button.innerHTML + "</span>";
19
+ }
20
+ var spinner = createSpinner(button);
21
+ var spinnerWrapper = document.createElement("span");
22
+ spinnerWrapper.className = "ladda-spinner";
23
+ button.appendChild(spinnerWrapper);
24
+ var timer;
25
+ var instance = {
26
+ start: function() {
27
+ button.setAttribute("disabled", "");
28
+ button.setAttribute("data-loading", "");
29
+ clearTimeout(timer);
30
+ spinner.spin(spinnerWrapper);
31
+ this.setProgress(0);
32
+ return this;
33
+ },
34
+ startAfter: function(delay) {
35
+ clearTimeout(timer);
36
+ timer = setTimeout(function() {
37
+ instance.start();
38
+ }, delay);
39
+ return this;
40
+ },
41
+ stop: function() {
42
+ button.removeAttribute("disabled");
43
+ button.removeAttribute("data-loading");
44
+ clearTimeout(timer);
45
+ timer = setTimeout(function() {
46
+ spinner.stop();
47
+ }, 1e3);
48
+ return this;
49
+ },
50
+ toggle: function() {
51
+ if (this.isLoading()) {
52
+ this.stop();
53
+ } else {
54
+ this.start();
55
+ }
56
+ return this;
57
+ },
58
+ setProgress: function(progress) {
59
+ progress = Math.max(Math.min(progress, 1), 0);
60
+ var progressElement = button.querySelector(".ladda-progress");
61
+ if (progress === 0 && progressElement && progressElement.parentNode) {
62
+ progressElement.parentNode.removeChild(progressElement);
63
+ } else {
64
+ if (!progressElement) {
65
+ progressElement = document.createElement("div");
66
+ progressElement.className = "ladda-progress";
67
+ button.appendChild(progressElement);
68
+ }
69
+ progressElement.style.width = (progress || 0) * button.offsetWidth + "px";
70
+ }
71
+ },
72
+ enable: function() {
73
+ this.stop();
74
+ return this;
75
+ },
76
+ disable: function() {
77
+ this.stop();
78
+ button.setAttribute("disabled", "");
79
+ return this;
80
+ },
81
+ isLoading: function() {
82
+ return button.hasAttribute("data-loading");
83
+ }
84
+ };
85
+ ALL_INSTANCES.push(instance);
86
+ return instance;
87
+ }
88
+ function bind(target, options) {
89
+ options = options || {};
90
+ var targets = [];
91
+ if (typeof target === "string") {
92
+ targets = toArray(document.querySelectorAll(target));
93
+ } else if (typeof target === "object" && typeof target.nodeName === "string") {
94
+ targets = [ target ];
95
+ }
96
+ for (var i = 0, len = targets.length; i < len; i++) {
97
+ (function() {
98
+ var element = targets[i];
99
+ if (typeof element.addEventListener === "function") {
100
+ var instance = create(element);
101
+ var timeout = -1;
102
+ element.addEventListener("click", function() {
103
+ instance.startAfter(1);
104
+ if (typeof options.timeout === "number") {
105
+ clearTimeout(timeout);
106
+ timeout = setTimeout(instance.stop, options.timeout);
107
+ }
108
+ if (typeof options.callback === "function") {
109
+ options.callback.apply(null, [ instance ]);
110
+ }
111
+ }, false);
112
+ }
113
+ })();
114
+ }
115
+ }
116
+ function stopAll() {
117
+ for (var i = 0, len = ALL_INSTANCES.length; i < len; i++) {
118
+ ALL_INSTANCES[i].stop();
119
+ }
120
+ }
121
+ function createSpinner(button) {
122
+ var height = button.offsetHeight, spinnerColor;
123
+ if (height > 32) {
124
+ height *= .8;
125
+ }
126
+ if (button.hasAttribute("data-spinner-size")) {
127
+ height = parseInt(button.getAttribute("data-spinner-size"), 10);
128
+ }
129
+ if (button.hasAttribute("data-spinner-color")) {
130
+ spinnerColor = button.getAttribute("data-spinner-color");
131
+ }
132
+ var lines = 12, radius = height * .2, length = radius * .6, width = radius < 7 ? 2 : 3;
133
+ return new Spinner({
134
+ color: spinnerColor || "#fff",
135
+ lines: lines,
136
+ radius: radius,
137
+ length: length,
138
+ width: width,
139
+ zIndex: "auto",
140
+ top: "auto",
141
+ left: "auto",
142
+ className: ""
143
+ });
144
+ }
145
+ function toArray(nodes) {
146
+ var a = [];
147
+ for (var i = 0; i < nodes.length; i++) {
148
+ a.push(nodes[i]);
149
+ }
150
+ return a;
151
+ }
152
+ return {
153
+ bind: bind,
154
+ create: create,
155
+ stopAll: stopAll
156
+ };
157
+ });
@@ -0,0 +1,218 @@
1
+ (function(root, factory) {
2
+ if (typeof exports == "object") module.exports = factory(); else if (typeof define == "function" && define.amd) define(factory); else root.Spinner = factory();
3
+ })(this, function() {
4
+ "use strict";
5
+ var prefixes = [ "webkit", "Moz", "ms", "O" ], animations = {}, useCssAnimations;
6
+ function createEl(tag, prop) {
7
+ var el = document.createElement(tag || "div"), n;
8
+ for (n in prop) el[n] = prop[n];
9
+ return el;
10
+ }
11
+ function ins(parent) {
12
+ for (var i = 1, n = arguments.length; i < n; i++) parent.appendChild(arguments[i]);
13
+ return parent;
14
+ }
15
+ var sheet = function() {
16
+ var el = createEl("style", {
17
+ type: "text/css"
18
+ });
19
+ ins(document.getElementsByTagName("head")[0], el);
20
+ return el.sheet || el.styleSheet;
21
+ }();
22
+ function addAnimation(alpha, trail, i, lines) {
23
+ var name = [ "opacity", trail, ~~(alpha * 100), i, lines ].join("-"), start = .01 + i / lines * 100, z = Math.max(1 - (1 - alpha) / trail * (100 - start), alpha), prefix = useCssAnimations.substring(0, useCssAnimations.indexOf("Animation")).toLowerCase(), pre = prefix && "-" + prefix + "-" || "";
24
+ if (!animations[name]) {
25
+ sheet.insertRule("@" + pre + "keyframes " + name + "{" + "0%{opacity:" + z + "}" + start + "%{opacity:" + alpha + "}" + (start + .01) + "%{opacity:1}" + (start + trail) % 100 + "%{opacity:" + alpha + "}" + "100%{opacity:" + z + "}" + "}", sheet.cssRules.length);
26
+ animations[name] = 1;
27
+ }
28
+ return name;
29
+ }
30
+ function vendor(el, prop) {
31
+ var s = el.style, pp, i;
32
+ if (s[prop] !== undefined) return prop;
33
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
34
+ for (i = 0; i < prefixes.length; i++) {
35
+ pp = prefixes[i] + prop;
36
+ if (s[pp] !== undefined) return pp;
37
+ }
38
+ }
39
+ function css(el, prop) {
40
+ for (var n in prop) el.style[vendor(el, n) || n] = prop[n];
41
+ return el;
42
+ }
43
+ function merge(obj) {
44
+ for (var i = 1; i < arguments.length; i++) {
45
+ var def = arguments[i];
46
+ for (var n in def) if (obj[n] === undefined) obj[n] = def[n];
47
+ }
48
+ return obj;
49
+ }
50
+ function pos(el) {
51
+ var o = {
52
+ x: el.offsetLeft,
53
+ y: el.offsetTop
54
+ };
55
+ while (el = el.offsetParent) o.x += el.offsetLeft, o.y += el.offsetTop;
56
+ return o;
57
+ }
58
+ var defaults = {
59
+ lines: 12,
60
+ length: 7,
61
+ width: 5,
62
+ radius: 10,
63
+ rotate: 0,
64
+ corners: 1,
65
+ color: "#000",
66
+ direction: 1,
67
+ speed: 1,
68
+ trail: 100,
69
+ opacity: 1 / 4,
70
+ fps: 20,
71
+ zIndex: 2e9,
72
+ className: "spinner",
73
+ top: "auto",
74
+ left: "auto",
75
+ position: "relative"
76
+ };
77
+ function Spinner(o) {
78
+ if (typeof this == "undefined") return new Spinner(o);
79
+ this.opts = merge(o || {}, Spinner.defaults, defaults);
80
+ }
81
+ Spinner.defaults = {};
82
+ merge(Spinner.prototype, {
83
+ spin: function(target) {
84
+ this.stop();
85
+ var self = this, o = self.opts, el = self.el = css(createEl(0, {
86
+ className: o.className
87
+ }), {
88
+ position: o.position,
89
+ width: 0,
90
+ zIndex: o.zIndex
91
+ }), mid = o.radius + o.length + o.width, ep, tp;
92
+ if (target) {
93
+ target.insertBefore(el, target.firstChild || null);
94
+ tp = pos(target);
95
+ ep = pos(el);
96
+ css(el, {
97
+ left: (o.left == "auto" ? tp.x - ep.x + (target.offsetWidth >> 1) : parseInt(o.left, 10) + mid) + "px",
98
+ top: (o.top == "auto" ? tp.y - ep.y + (target.offsetHeight >> 1) : parseInt(o.top, 10) + mid) + "px"
99
+ });
100
+ }
101
+ el.setAttribute("role", "progressbar");
102
+ self.lines(el, self.opts);
103
+ if (!useCssAnimations) {
104
+ var i = 0, start = (o.lines - 1) * (1 - o.direction) / 2, alpha, fps = o.fps, f = fps / o.speed, ostep = (1 - o.opacity) / (f * o.trail / 100), astep = f / o.lines;
105
+ (function anim() {
106
+ i++;
107
+ for (var j = 0; j < o.lines; j++) {
108
+ alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity);
109
+ self.opacity(el, j * o.direction + start, alpha, o);
110
+ }
111
+ self.timeout = self.el && setTimeout(anim, ~~(1e3 / fps));
112
+ })();
113
+ }
114
+ return self;
115
+ },
116
+ stop: function() {
117
+ var el = this.el;
118
+ if (el) {
119
+ clearTimeout(this.timeout);
120
+ if (el.parentNode) el.parentNode.removeChild(el);
121
+ this.el = undefined;
122
+ }
123
+ return this;
124
+ },
125
+ lines: function(el, o) {
126
+ var i = 0, start = (o.lines - 1) * (1 - o.direction) / 2, seg;
127
+ function fill(color, shadow) {
128
+ return css(createEl(), {
129
+ position: "absolute",
130
+ width: o.length + o.width + "px",
131
+ height: o.width + "px",
132
+ background: color,
133
+ boxShadow: shadow,
134
+ transformOrigin: "left",
135
+ transform: "rotate(" + ~~(360 / o.lines * i + o.rotate) + "deg) translate(" + o.radius + "px" + ",0)",
136
+ borderRadius: (o.corners * o.width >> 1) + "px"
137
+ });
138
+ }
139
+ for (;i < o.lines; i++) {
140
+ seg = css(createEl(), {
141
+ position: "absolute",
142
+ top: 1 + ~(o.width / 2) + "px",
143
+ transform: o.hwaccel ? "translate3d(0,0,0)" : "",
144
+ opacity: o.opacity,
145
+ animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + " " + 1 / o.speed + "s linear infinite"
146
+ });
147
+ if (o.shadow) ins(seg, css(fill("#000", "0 0 4px " + "#000"), {
148
+ top: 2 + "px"
149
+ }));
150
+ ins(el, ins(seg, fill(o.color, "0 0 1px rgba(0,0,0,.1)")));
151
+ }
152
+ return el;
153
+ },
154
+ opacity: function(el, i, val) {
155
+ if (i < el.childNodes.length) el.childNodes[i].style.opacity = val;
156
+ }
157
+ });
158
+ function initVML() {
159
+ function vml(tag, attr) {
160
+ return createEl("<" + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr);
161
+ }
162
+ sheet.addRule(".spin-vml", "behavior:url(#default#VML)");
163
+ Spinner.prototype.lines = function(el, o) {
164
+ var r = o.length + o.width, s = 2 * r;
165
+ function grp() {
166
+ return css(vml("group", {
167
+ coordsize: s + " " + s,
168
+ coordorigin: -r + " " + -r
169
+ }), {
170
+ width: s,
171
+ height: s
172
+ });
173
+ }
174
+ var margin = -(o.width + o.length) * 2 + "px", g = css(grp(), {
175
+ position: "absolute",
176
+ top: margin,
177
+ left: margin
178
+ }), i;
179
+ function seg(i, dx, filter) {
180
+ ins(g, ins(css(grp(), {
181
+ rotation: 360 / o.lines * i + "deg",
182
+ left: ~~dx
183
+ }), ins(css(vml("roundrect", {
184
+ arcsize: o.corners
185
+ }), {
186
+ width: r,
187
+ height: o.width,
188
+ left: o.radius,
189
+ top: -o.width >> 1,
190
+ filter: filter
191
+ }), vml("fill", {
192
+ color: o.color,
193
+ opacity: o.opacity
194
+ }), vml("stroke", {
195
+ opacity: 0
196
+ }))));
197
+ }
198
+ if (o.shadow) for (i = 1; i <= o.lines; i++) seg(i, -2, "progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");
199
+ for (i = 1; i <= o.lines; i++) seg(i);
200
+ return ins(el, g);
201
+ };
202
+ Spinner.prototype.opacity = function(el, i, val, o) {
203
+ var c = el.firstChild;
204
+ o = o.shadow && o.lines || 0;
205
+ if (c && i + o < c.childNodes.length) {
206
+ c = c.childNodes[i + o];
207
+ c = c && c.firstChild;
208
+ c = c && c.firstChild;
209
+ if (c) c.opacity = val;
210
+ }
211
+ };
212
+ }
213
+ var probe = css(createEl("group"), {
214
+ behavior: "url(#default#VML)"
215
+ });
216
+ if (!vendor(probe, "transform") && probe.adj) initVML(); else useCssAnimations = vendor(probe, "animation");
217
+ return Spinner;
218
+ });
@@ -0,0 +1,330 @@
1
+ /*!
2
+ * Ladda
3
+ * http://lab.hakim.se/ladda
4
+ * MIT licensed
5
+ *
6
+ * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
7
+ */
8
+ /*************************************
9
+ * CONFIG
10
+ */
11
+ /*************************************
12
+ * MIXINS
13
+ */
14
+ /*************************************
15
+ * BUTTON BASE
16
+ */
17
+ .ladda-button {
18
+ position: relative; }
19
+
20
+ /* Spinner animation */
21
+ .ladda-button .ladda-spinner {
22
+ position: absolute;
23
+ z-index: 2;
24
+ display: inline-block;
25
+ width: 32px;
26
+ height: 32px;
27
+ top: 50%;
28
+ margin-top: -16px;
29
+ opacity: 0;
30
+ pointer-events: none; }
31
+
32
+ /* Button label */
33
+ .ladda-button .ladda-label {
34
+ position: relative;
35
+ z-index: 3; }
36
+
37
+ /* Progress bar */
38
+ .ladda-button .ladda-progress {
39
+ position: absolute;
40
+ width: 0;
41
+ height: 100%;
42
+ left: 0;
43
+ top: 0;
44
+ background: rgba(0, 0, 0, 0.2);
45
+ visibility: hidden;
46
+ opacity: 0;
47
+ -webkit-transition: 0.1s linear all !important;
48
+ -moz-transition: 0.1s linear all !important;
49
+ -ms-transition: 0.1s linear all !important;
50
+ -o-transition: 0.1s linear all !important;
51
+ transition: 0.1s linear all !important; }
52
+
53
+ .ladda-button[data-loading] .ladda-progress {
54
+ opacity: 1;
55
+ visibility: visible; }
56
+
57
+ /*************************************
58
+ * EASING
59
+ */
60
+ .ladda-button,
61
+ .ladda-button .ladda-spinner,
62
+ .ladda-button .ladda-label {
63
+ -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
64
+ -moz-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
65
+ -ms-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
66
+ -o-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
67
+ transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important; }
68
+
69
+ .ladda-button[data-style=zoom-in],
70
+ .ladda-button[data-style=zoom-in] .ladda-spinner,
71
+ .ladda-button[data-style=zoom-in] .ladda-label,
72
+ .ladda-button[data-style=zoom-out],
73
+ .ladda-button[data-style=zoom-out] .ladda-spinner,
74
+ .ladda-button[data-style=zoom-out] .ladda-label {
75
+ -webkit-transition: 0.3s ease all !important;
76
+ -moz-transition: 0.3s ease all !important;
77
+ -ms-transition: 0.3s ease all !important;
78
+ -o-transition: 0.3s ease all !important;
79
+ transition: 0.3s ease all !important; }
80
+
81
+ /*************************************
82
+ * EXPAND LEFT
83
+ */
84
+ .ladda-button[data-style=expand-right] .ladda-spinner {
85
+ right: 14px; }
86
+ .ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner {
87
+ right: 4px; }
88
+ .ladda-button[data-style=expand-right][data-loading] {
89
+ padding-right: 56px; }
90
+ .ladda-button[data-style=expand-right][data-loading] .ladda-spinner {
91
+ opacity: 1; }
92
+ .ladda-button[data-style=expand-right][data-loading][data-size="s"], .ladda-button[data-style=expand-right][data-loading][data-size="xs"] {
93
+ padding-right: 40px; }
94
+
95
+ /*************************************
96
+ * EXPAND RIGHT
97
+ */
98
+ .ladda-button[data-style=expand-left] .ladda-spinner {
99
+ left: 14px; }
100
+ .ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner {
101
+ left: 4px; }
102
+ .ladda-button[data-style=expand-left][data-loading] {
103
+ padding-left: 56px; }
104
+ .ladda-button[data-style=expand-left][data-loading] .ladda-spinner {
105
+ opacity: 1; }
106
+ .ladda-button[data-style=expand-left][data-loading][data-size="s"], .ladda-button[data-style=expand-left][data-loading][data-size="xs"] {
107
+ padding-left: 40px; }
108
+
109
+ /*************************************
110
+ * EXPAND UP
111
+ */
112
+ .ladda-button[data-style=expand-up] {
113
+ overflow: hidden; }
114
+ .ladda-button[data-style=expand-up] .ladda-spinner {
115
+ top: -32px;
116
+ left: 50%;
117
+ margin-left: -16px; }
118
+ .ladda-button[data-style=expand-up][data-loading] {
119
+ padding-top: 54px; }
120
+ .ladda-button[data-style=expand-up][data-loading] .ladda-spinner {
121
+ opacity: 1;
122
+ top: 14px;
123
+ margin-top: 0; }
124
+ .ladda-button[data-style=expand-up][data-loading][data-size="s"], .ladda-button[data-style=expand-up][data-loading][data-size="xs"] {
125
+ padding-top: 32px; }
126
+ .ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner {
127
+ top: 4px; }
128
+
129
+ /*************************************
130
+ * EXPAND DOWN
131
+ */
132
+ .ladda-button[data-style=expand-down] {
133
+ overflow: hidden; }
134
+ .ladda-button[data-style=expand-down] .ladda-spinner {
135
+ top: 62px;
136
+ left: 50%;
137
+ margin-left: -16px; }
138
+ .ladda-button[data-style=expand-down][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-down][data-size="xs"] .ladda-spinner {
139
+ top: 40px; }
140
+ .ladda-button[data-style=expand-down][data-loading] {
141
+ padding-bottom: 54px; }
142
+ .ladda-button[data-style=expand-down][data-loading] .ladda-spinner {
143
+ opacity: 1; }
144
+ .ladda-button[data-style=expand-down][data-loading][data-size="s"], .ladda-button[data-style=expand-down][data-loading][data-size="xs"] {
145
+ padding-bottom: 32px; }
146
+
147
+ /*************************************
148
+ * SLIDE LEFT
149
+ */
150
+ .ladda-button[data-style=slide-left] {
151
+ overflow: hidden; }
152
+ .ladda-button[data-style=slide-left] .ladda-label {
153
+ position: relative; }
154
+ .ladda-button[data-style=slide-left] .ladda-spinner {
155
+ left: 100%;
156
+ margin-left: -16px; }
157
+ .ladda-button[data-style=slide-left][data-loading] .ladda-label {
158
+ opacity: 0;
159
+ left: -100%; }
160
+ .ladda-button[data-style=slide-left][data-loading] .ladda-spinner {
161
+ opacity: 1;
162
+ left: 50%; }
163
+
164
+ /*************************************
165
+ * SLIDE RIGHT
166
+ */
167
+ .ladda-button[data-style=slide-right] {
168
+ overflow: hidden; }
169
+ .ladda-button[data-style=slide-right] .ladda-label {
170
+ position: relative; }
171
+ .ladda-button[data-style=slide-right] .ladda-spinner {
172
+ right: 100%;
173
+ margin-left: -16px; }
174
+ .ladda-button[data-style=slide-right][data-loading] .ladda-label {
175
+ opacity: 0;
176
+ left: 100%; }
177
+ .ladda-button[data-style=slide-right][data-loading] .ladda-spinner {
178
+ opacity: 1;
179
+ left: 50%; }
180
+
181
+ /*************************************
182
+ * SLIDE UP
183
+ */
184
+ .ladda-button[data-style=slide-up] {
185
+ overflow: hidden; }
186
+ .ladda-button[data-style=slide-up] .ladda-label {
187
+ position: relative; }
188
+ .ladda-button[data-style=slide-up] .ladda-spinner {
189
+ left: 50%;
190
+ margin-left: -16px;
191
+ margin-top: 1em; }
192
+ .ladda-button[data-style=slide-up][data-loading] .ladda-label {
193
+ opacity: 0;
194
+ top: -1em; }
195
+ .ladda-button[data-style=slide-up][data-loading] .ladda-spinner {
196
+ opacity: 1;
197
+ margin-top: -16px; }
198
+
199
+ /*************************************
200
+ * SLIDE DOWN
201
+ */
202
+ .ladda-button[data-style=slide-down] {
203
+ overflow: hidden; }
204
+ .ladda-button[data-style=slide-down] .ladda-label {
205
+ position: relative; }
206
+ .ladda-button[data-style=slide-down] .ladda-spinner {
207
+ left: 50%;
208
+ margin-left: -16px;
209
+ margin-top: -2em; }
210
+ .ladda-button[data-style=slide-down][data-loading] .ladda-label {
211
+ opacity: 0;
212
+ top: 1em; }
213
+ .ladda-button[data-style=slide-down][data-loading] .ladda-spinner {
214
+ opacity: 1;
215
+ margin-top: -16px; }
216
+
217
+ /*************************************
218
+ * ZOOM-OUT
219
+ */
220
+ .ladda-button[data-style=zoom-out] {
221
+ overflow: hidden; }
222
+
223
+ .ladda-button[data-style=zoom-out] .ladda-spinner {
224
+ left: 50%;
225
+ margin-left: -16px;
226
+ -webkit-transform: scale(2.5);
227
+ -moz-transform: scale(2.5);
228
+ -ms-transform: scale(2.5);
229
+ -o-transform: scale(2.5);
230
+ transform: scale(2.5); }
231
+
232
+ .ladda-button[data-style=zoom-out] .ladda-label {
233
+ position: relative;
234
+ display: inline-block; }
235
+
236
+ .ladda-button[data-style=zoom-out][data-loading] .ladda-label {
237
+ opacity: 0;
238
+ -webkit-transform: scale(0.5);
239
+ -moz-transform: scale(0.5);
240
+ -ms-transform: scale(0.5);
241
+ -o-transform: scale(0.5);
242
+ transform: scale(0.5); }
243
+
244
+ .ladda-button[data-style=zoom-out][data-loading] .ladda-spinner {
245
+ opacity: 1;
246
+ -webkit-transform: none;
247
+ -moz-transform: none;
248
+ -ms-transform: none;
249
+ -o-transform: none;
250
+ transform: none; }
251
+
252
+ /*************************************
253
+ * ZOOM-IN
254
+ */
255
+ .ladda-button[data-style=zoom-in] {
256
+ overflow: hidden; }
257
+
258
+ .ladda-button[data-style=zoom-in] .ladda-spinner {
259
+ left: 50%;
260
+ margin-left: -16px;
261
+ -webkit-transform: scale(0.2);
262
+ -moz-transform: scale(0.2);
263
+ -ms-transform: scale(0.2);
264
+ -o-transform: scale(0.2);
265
+ transform: scale(0.2); }
266
+
267
+ .ladda-button[data-style=zoom-in] .ladda-label {
268
+ position: relative;
269
+ display: inline-block; }
270
+
271
+ .ladda-button[data-style=zoom-in][data-loading] .ladda-label {
272
+ opacity: 0;
273
+ -webkit-transform: scale(2.2);
274
+ -moz-transform: scale(2.2);
275
+ -ms-transform: scale(2.2);
276
+ -o-transform: scale(2.2);
277
+ transform: scale(2.2); }
278
+
279
+ .ladda-button[data-style=zoom-in][data-loading] .ladda-spinner {
280
+ opacity: 1;
281
+ -webkit-transform: none;
282
+ -moz-transform: none;
283
+ -ms-transform: none;
284
+ -o-transform: none;
285
+ transform: none; }
286
+
287
+ /*************************************
288
+ * CONTRACT
289
+ */
290
+ .ladda-button[data-style=contract] {
291
+ overflow: hidden;
292
+ width: 100px; }
293
+
294
+ .ladda-button[data-style=contract] .ladda-spinner {
295
+ left: 50%;
296
+ margin-left: -16px; }
297
+
298
+ .ladda-button[data-style=contract][data-loading] {
299
+ border-radius: 50%;
300
+ width: 52px; }
301
+
302
+ .ladda-button[data-style=contract][data-loading] .ladda-label {
303
+ opacity: 0; }
304
+
305
+ .ladda-button[data-style=contract][data-loading] .ladda-spinner {
306
+ opacity: 1; }
307
+
308
+ /*************************************
309
+ * OVERLAY
310
+ */
311
+ .ladda-button[data-style=contract-overlay] {
312
+ overflow: hidden;
313
+ width: 100px;
314
+ box-shadow: 0px 0px 0px 3000px rgba(0, 0, 0, 0); }
315
+
316
+ .ladda-button[data-style=contract-overlay] .ladda-spinner {
317
+ left: 50%;
318
+ margin-left: -16px; }
319
+
320
+ .ladda-button[data-style=contract-overlay][data-loading] {
321
+ border-radius: 50%;
322
+ width: 52px;
323
+ /*outline: 10000px solid rgba( 0, 0, 0, 0.5 );*/
324
+ box-shadow: 0px 0px 0px 3000px rgba(0, 0, 0, 0.8); }
325
+
326
+ .ladda-button[data-style=contract-overlay][data-loading] .ladda-label {
327
+ opacity: 0; }
328
+
329
+ .ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner {
330
+ opacity: 1; }
@@ -0,0 +1,392 @@
1
+ /** Contains the default Ladda button theme styles */
2
+ /*!
3
+ * Ladda
4
+ * http://lab.hakim.se/ladda
5
+ * MIT licensed
6
+ *
7
+ * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
8
+ */
9
+ /*************************************
10
+ * CONFIG
11
+ */
12
+ /*************************************
13
+ * MIXINS
14
+ */
15
+ /*************************************
16
+ * BUTTON BASE
17
+ */
18
+ .ladda-button {
19
+ position: relative; }
20
+
21
+ /* Spinner animation */
22
+ .ladda-button .ladda-spinner {
23
+ position: absolute;
24
+ z-index: 2;
25
+ display: inline-block;
26
+ width: 32px;
27
+ height: 32px;
28
+ top: 50%;
29
+ margin-top: -16px;
30
+ opacity: 0;
31
+ pointer-events: none; }
32
+
33
+ /* Button label */
34
+ .ladda-button .ladda-label {
35
+ position: relative;
36
+ z-index: 3; }
37
+
38
+ /* Progress bar */
39
+ .ladda-button .ladda-progress {
40
+ position: absolute;
41
+ width: 0;
42
+ height: 100%;
43
+ left: 0;
44
+ top: 0;
45
+ background: rgba(0, 0, 0, 0.2);
46
+ visibility: hidden;
47
+ opacity: 0;
48
+ -webkit-transition: 0.1s linear all !important;
49
+ -moz-transition: 0.1s linear all !important;
50
+ -ms-transition: 0.1s linear all !important;
51
+ -o-transition: 0.1s linear all !important;
52
+ transition: 0.1s linear all !important; }
53
+
54
+ .ladda-button[data-loading] .ladda-progress {
55
+ opacity: 1;
56
+ visibility: visible; }
57
+
58
+ /*************************************
59
+ * EASING
60
+ */
61
+ .ladda-button,
62
+ .ladda-button .ladda-spinner,
63
+ .ladda-button .ladda-label {
64
+ -webkit-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
65
+ -moz-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
66
+ -ms-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
67
+ -o-transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important;
68
+ transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all !important; }
69
+
70
+ .ladda-button[data-style=zoom-in],
71
+ .ladda-button[data-style=zoom-in] .ladda-spinner,
72
+ .ladda-button[data-style=zoom-in] .ladda-label,
73
+ .ladda-button[data-style=zoom-out],
74
+ .ladda-button[data-style=zoom-out] .ladda-spinner,
75
+ .ladda-button[data-style=zoom-out] .ladda-label {
76
+ -webkit-transition: 0.3s ease all !important;
77
+ -moz-transition: 0.3s ease all !important;
78
+ -ms-transition: 0.3s ease all !important;
79
+ -o-transition: 0.3s ease all !important;
80
+ transition: 0.3s ease all !important; }
81
+
82
+ /*************************************
83
+ * EXPAND LEFT
84
+ */
85
+ .ladda-button[data-style=expand-right] .ladda-spinner {
86
+ right: 14px; }
87
+ .ladda-button[data-style=expand-right][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-right][data-size="xs"] .ladda-spinner {
88
+ right: 4px; }
89
+ .ladda-button[data-style=expand-right][data-loading] {
90
+ padding-right: 56px; }
91
+ .ladda-button[data-style=expand-right][data-loading] .ladda-spinner {
92
+ opacity: 1; }
93
+ .ladda-button[data-style=expand-right][data-loading][data-size="s"], .ladda-button[data-style=expand-right][data-loading][data-size="xs"] {
94
+ padding-right: 40px; }
95
+
96
+ /*************************************
97
+ * EXPAND RIGHT
98
+ */
99
+ .ladda-button[data-style=expand-left] .ladda-spinner {
100
+ left: 14px; }
101
+ .ladda-button[data-style=expand-left][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-left][data-size="xs"] .ladda-spinner {
102
+ left: 4px; }
103
+ .ladda-button[data-style=expand-left][data-loading] {
104
+ padding-left: 56px; }
105
+ .ladda-button[data-style=expand-left][data-loading] .ladda-spinner {
106
+ opacity: 1; }
107
+ .ladda-button[data-style=expand-left][data-loading][data-size="s"], .ladda-button[data-style=expand-left][data-loading][data-size="xs"] {
108
+ padding-left: 40px; }
109
+
110
+ /*************************************
111
+ * EXPAND UP
112
+ */
113
+ .ladda-button[data-style=expand-up] {
114
+ overflow: hidden; }
115
+ .ladda-button[data-style=expand-up] .ladda-spinner {
116
+ top: -32px;
117
+ left: 50%;
118
+ margin-left: -16px; }
119
+ .ladda-button[data-style=expand-up][data-loading] {
120
+ padding-top: 54px; }
121
+ .ladda-button[data-style=expand-up][data-loading] .ladda-spinner {
122
+ opacity: 1;
123
+ top: 14px;
124
+ margin-top: 0; }
125
+ .ladda-button[data-style=expand-up][data-loading][data-size="s"], .ladda-button[data-style=expand-up][data-loading][data-size="xs"] {
126
+ padding-top: 32px; }
127
+ .ladda-button[data-style=expand-up][data-loading][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-up][data-loading][data-size="xs"] .ladda-spinner {
128
+ top: 4px; }
129
+
130
+ /*************************************
131
+ * EXPAND DOWN
132
+ */
133
+ .ladda-button[data-style=expand-down] {
134
+ overflow: hidden; }
135
+ .ladda-button[data-style=expand-down] .ladda-spinner {
136
+ top: 62px;
137
+ left: 50%;
138
+ margin-left: -16px; }
139
+ .ladda-button[data-style=expand-down][data-size="s"] .ladda-spinner, .ladda-button[data-style=expand-down][data-size="xs"] .ladda-spinner {
140
+ top: 40px; }
141
+ .ladda-button[data-style=expand-down][data-loading] {
142
+ padding-bottom: 54px; }
143
+ .ladda-button[data-style=expand-down][data-loading] .ladda-spinner {
144
+ opacity: 1; }
145
+ .ladda-button[data-style=expand-down][data-loading][data-size="s"], .ladda-button[data-style=expand-down][data-loading][data-size="xs"] {
146
+ padding-bottom: 32px; }
147
+
148
+ /*************************************
149
+ * SLIDE LEFT
150
+ */
151
+ .ladda-button[data-style=slide-left] {
152
+ overflow: hidden; }
153
+ .ladda-button[data-style=slide-left] .ladda-label {
154
+ position: relative; }
155
+ .ladda-button[data-style=slide-left] .ladda-spinner {
156
+ left: 100%;
157
+ margin-left: -16px; }
158
+ .ladda-button[data-style=slide-left][data-loading] .ladda-label {
159
+ opacity: 0;
160
+ left: -100%; }
161
+ .ladda-button[data-style=slide-left][data-loading] .ladda-spinner {
162
+ opacity: 1;
163
+ left: 50%; }
164
+
165
+ /*************************************
166
+ * SLIDE RIGHT
167
+ */
168
+ .ladda-button[data-style=slide-right] {
169
+ overflow: hidden; }
170
+ .ladda-button[data-style=slide-right] .ladda-label {
171
+ position: relative; }
172
+ .ladda-button[data-style=slide-right] .ladda-spinner {
173
+ right: 100%;
174
+ margin-left: -16px; }
175
+ .ladda-button[data-style=slide-right][data-loading] .ladda-label {
176
+ opacity: 0;
177
+ left: 100%; }
178
+ .ladda-button[data-style=slide-right][data-loading] .ladda-spinner {
179
+ opacity: 1;
180
+ left: 50%; }
181
+
182
+ /*************************************
183
+ * SLIDE UP
184
+ */
185
+ .ladda-button[data-style=slide-up] {
186
+ overflow: hidden; }
187
+ .ladda-button[data-style=slide-up] .ladda-label {
188
+ position: relative; }
189
+ .ladda-button[data-style=slide-up] .ladda-spinner {
190
+ left: 50%;
191
+ margin-left: -16px;
192
+ margin-top: 1em; }
193
+ .ladda-button[data-style=slide-up][data-loading] .ladda-label {
194
+ opacity: 0;
195
+ top: -1em; }
196
+ .ladda-button[data-style=slide-up][data-loading] .ladda-spinner {
197
+ opacity: 1;
198
+ margin-top: -16px; }
199
+
200
+ /*************************************
201
+ * SLIDE DOWN
202
+ */
203
+ .ladda-button[data-style=slide-down] {
204
+ overflow: hidden; }
205
+ .ladda-button[data-style=slide-down] .ladda-label {
206
+ position: relative; }
207
+ .ladda-button[data-style=slide-down] .ladda-spinner {
208
+ left: 50%;
209
+ margin-left: -16px;
210
+ margin-top: -2em; }
211
+ .ladda-button[data-style=slide-down][data-loading] .ladda-label {
212
+ opacity: 0;
213
+ top: 1em; }
214
+ .ladda-button[data-style=slide-down][data-loading] .ladda-spinner {
215
+ opacity: 1;
216
+ margin-top: -16px; }
217
+
218
+ /*************************************
219
+ * ZOOM-OUT
220
+ */
221
+ .ladda-button[data-style=zoom-out] {
222
+ overflow: hidden; }
223
+
224
+ .ladda-button[data-style=zoom-out] .ladda-spinner {
225
+ left: 50%;
226
+ margin-left: -16px;
227
+ -webkit-transform: scale(2.5);
228
+ -moz-transform: scale(2.5);
229
+ -ms-transform: scale(2.5);
230
+ -o-transform: scale(2.5);
231
+ transform: scale(2.5); }
232
+
233
+ .ladda-button[data-style=zoom-out] .ladda-label {
234
+ position: relative;
235
+ display: inline-block; }
236
+
237
+ .ladda-button[data-style=zoom-out][data-loading] .ladda-label {
238
+ opacity: 0;
239
+ -webkit-transform: scale(0.5);
240
+ -moz-transform: scale(0.5);
241
+ -ms-transform: scale(0.5);
242
+ -o-transform: scale(0.5);
243
+ transform: scale(0.5); }
244
+
245
+ .ladda-button[data-style=zoom-out][data-loading] .ladda-spinner {
246
+ opacity: 1;
247
+ -webkit-transform: none;
248
+ -moz-transform: none;
249
+ -ms-transform: none;
250
+ -o-transform: none;
251
+ transform: none; }
252
+
253
+ /*************************************
254
+ * ZOOM-IN
255
+ */
256
+ .ladda-button[data-style=zoom-in] {
257
+ overflow: hidden; }
258
+
259
+ .ladda-button[data-style=zoom-in] .ladda-spinner {
260
+ left: 50%;
261
+ margin-left: -16px;
262
+ -webkit-transform: scale(0.2);
263
+ -moz-transform: scale(0.2);
264
+ -ms-transform: scale(0.2);
265
+ -o-transform: scale(0.2);
266
+ transform: scale(0.2); }
267
+
268
+ .ladda-button[data-style=zoom-in] .ladda-label {
269
+ position: relative;
270
+ display: inline-block; }
271
+
272
+ .ladda-button[data-style=zoom-in][data-loading] .ladda-label {
273
+ opacity: 0;
274
+ -webkit-transform: scale(2.2);
275
+ -moz-transform: scale(2.2);
276
+ -ms-transform: scale(2.2);
277
+ -o-transform: scale(2.2);
278
+ transform: scale(2.2); }
279
+
280
+ .ladda-button[data-style=zoom-in][data-loading] .ladda-spinner {
281
+ opacity: 1;
282
+ -webkit-transform: none;
283
+ -moz-transform: none;
284
+ -ms-transform: none;
285
+ -o-transform: none;
286
+ transform: none; }
287
+
288
+ /*************************************
289
+ * CONTRACT
290
+ */
291
+ .ladda-button[data-style=contract] {
292
+ overflow: hidden;
293
+ width: 100px; }
294
+
295
+ .ladda-button[data-style=contract] .ladda-spinner {
296
+ left: 50%;
297
+ margin-left: -16px; }
298
+
299
+ .ladda-button[data-style=contract][data-loading] {
300
+ border-radius: 50%;
301
+ width: 52px; }
302
+
303
+ .ladda-button[data-style=contract][data-loading] .ladda-label {
304
+ opacity: 0; }
305
+
306
+ .ladda-button[data-style=contract][data-loading] .ladda-spinner {
307
+ opacity: 1; }
308
+
309
+ /*************************************
310
+ * OVERLAY
311
+ */
312
+ .ladda-button[data-style=contract-overlay] {
313
+ overflow: hidden;
314
+ width: 100px;
315
+ box-shadow: 0px 0px 0px 3000px rgba(0, 0, 0, 0); }
316
+
317
+ .ladda-button[data-style=contract-overlay] .ladda-spinner {
318
+ left: 50%;
319
+ margin-left: -16px; }
320
+
321
+ .ladda-button[data-style=contract-overlay][data-loading] {
322
+ border-radius: 50%;
323
+ width: 52px;
324
+ /*outline: 10000px solid rgba( 0, 0, 0, 0.5 );*/
325
+ box-shadow: 0px 0px 0px 3000px rgba(0, 0, 0, 0.8); }
326
+
327
+ .ladda-button[data-style=contract-overlay][data-loading] .ladda-label {
328
+ opacity: 0; }
329
+
330
+ .ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner {
331
+ opacity: 1; }
332
+
333
+ /*************************************
334
+ * CONFIG
335
+ */
336
+ /*************************************
337
+ * BUTTON THEME
338
+ */
339
+ .ladda-button {
340
+ background: #666;
341
+ border: 0;
342
+ padding: 14px 18px;
343
+ font-size: 18px;
344
+ cursor: pointer;
345
+ color: #fff;
346
+ border-radius: 2px;
347
+ border: 1px solid transparent;
348
+ -webkit-appearance: none;
349
+ -webkit-font-smoothing: antialiased;
350
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
351
+ .ladda-button:hover {
352
+ border-color: rgba(0, 0, 0, 0.07);
353
+ background-color: #888; }
354
+ .ladda-button[data-color=green] {
355
+ background: #2aca76; }
356
+ .ladda-button[data-color=green]:hover {
357
+ background-color: #38d683; }
358
+ .ladda-button[data-color=blue] {
359
+ background: #53b5e6; }
360
+ .ladda-button[data-color=blue]:hover {
361
+ background-color: #69bfe9; }
362
+ .ladda-button[data-color=red] {
363
+ background: #ea8557; }
364
+ .ladda-button[data-color=red]:hover {
365
+ background-color: #ed956e; }
366
+ .ladda-button[data-color=purple] {
367
+ background: #9973c2; }
368
+ .ladda-button[data-color=purple]:hover {
369
+ background-color: #a685ca; }
370
+ .ladda-button[data-color=mint] {
371
+ background: #16a085; }
372
+ .ladda-button[data-color=mint]:hover {
373
+ background-color: #19b698; }
374
+ .ladda-button[disabled], .ladda-button[data-loading] {
375
+ border-color: rgba(0, 0, 0, 0.07);
376
+ cursor: default;
377
+ background-color: #999; }
378
+ .ladda-button[disabled]:hover, .ladda-button[data-loading]:hover {
379
+ cursor: default;
380
+ background-color: #999; }
381
+ .ladda-button[data-size=xs] {
382
+ padding: 4px 8px; }
383
+ .ladda-button[data-size=xs] .ladda-label {
384
+ font-size: 0.7em; }
385
+ .ladda-button[data-size=s] {
386
+ padding: 6px 10px; }
387
+ .ladda-button[data-size=s] .ladda-label {
388
+ font-size: 0.9em; }
389
+ .ladda-button[data-size=l] .ladda-label {
390
+ font-size: 1.2em; }
391
+ .ladda-button[data-size=xl] .ladda-label {
392
+ font-size: 1.5em; }
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ladda-bootstrap-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Rafael Liu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-01 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: This gem provides CSS and JS for Ladda Bootstrap.
14
+ email:
15
+ - rafael@vendji.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - .gitignore
21
+ - Gemfile
22
+ - LICENSE.txt
23
+ - README.md
24
+ - Rakefile
25
+ - ladda-bootstrap-rails.gemspec
26
+ - lib/ladda-bootstrap-rails.rb
27
+ - vendor/assets/javascripts/ladda.js
28
+ - vendor/assets/javascripts/spin.js
29
+ - vendor/assets/stylesheets/ladda-themeless.css
30
+ - vendor/assets/stylesheets/ladda.css
31
+ homepage: https://github.com/vendji/ladda-bootstrap-rails
32
+ licenses:
33
+ - MIT
34
+ metadata: {}
35
+ post_install_message:
36
+ rdoc_options: []
37
+ require_paths:
38
+ - lib
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: 1.3.6
49
+ requirements: []
50
+ rubyforge_project:
51
+ rubygems_version: 2.1.10
52
+ signing_key:
53
+ specification_version: 4
54
+ summary: A Ladda Bootrap wrapper for Rails 3
55
+ test_files: []