humane-rails 2.2.5.0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem "rails", "3.1.1"
4
+
5
+ gem "jquery-rails"
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ <pre>
2
+ _ _ _
3
+ | |__ _ _ _ __ ___ __ _ _ __ ___ _ __ __ _(_) |___
4
+ | '_ \| | | | '_ ` _ \ / _` | '_ \ / _ \_____| '__/ _` | | / __|
5
+ | | | | |_| | | | | | | (_| | | | | __/_____| | | (_| | | \__ \
6
+ |_| |_|\__,_|_| |_| |_|\__,_|_| |_|\___| |_| \__,_|_|_|___/
7
+ </pre>
8
+
9
+ This is a gemified version of Marc Harter's humane-js library. See http://wavded.github.com/humane-js/ for more details.
10
+
11
+ ## Instructions
12
+
13
+ Add the following to your Gemfile:
14
+ `gem "humane-rails"`
15
+
16
+ Then add the following to your application.js manifest:
17
+ `//= require humane`
18
+
19
+ Don't forget to run `bundle update` after upgrading to the latest gem version to ensure it's used by your Rails app.
20
+
21
+ ## License
22
+
23
+ humane-js is licensed under the MIT license: http://github.com/wavded/humane-js
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ task :default do
4
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "humane-rails/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "humane-rails"
7
+ s.version = HumaneRails::VERSION
8
+ s.authors = ["Martin Harrigan"]
9
+ s.email = ["martinharrigan@gmail.com"]
10
+ s.homepage = "http://github.com/harrigan/humane-rails"
11
+ s.summary = %q{A gemified version of Marc Harter's humane-js.}
12
+ s.description = %q{A gemified version of Marc Harter's humane-js.}
13
+
14
+ s.rubyforge_project = "humane-rails"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+ end
@@ -0,0 +1,6 @@
1
+ module HumaneRails
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module HumaneRails
2
+ VERSION = "2.2.5.0.1.0"
3
+ end
@@ -0,0 +1 @@
1
+ require "humane-rails/engine" if defined?(Rails && Rails::VERSION::MAJOR == 3 && Rails::VERSION::MINOR >=1)
@@ -0,0 +1,206 @@
1
+ /**
2
+ * HumaneJS
3
+ * Humanized Messages for Notifications
4
+ * @author Marc Harter (@wavded)
5
+ * @contributers
6
+ * Alexander (@bga_)
7
+ * Jose (@joseanpg)
8
+ * Will McKenzie (@OiNutter)
9
+ * @example
10
+ * humane('hello world');
11
+ * See more usage examples at: http://wavded.github.com/humane-js/
12
+ */
13
+ ;(function (win,doc) {
14
+ var on,
15
+ off,
16
+ isArray,
17
+ eventing = false,
18
+ animationInProgress = false,
19
+ humaneEl = null,
20
+ timeout = null,
21
+ useFilter = /msie [678]/i.test(navigator.userAgent), // sniff, sniff,
22
+ vendors = {Webkit: 'webkit', Moz: '', O: 'o', ms: 'MS'},
23
+ eventPrefix = "",
24
+ isSetup = false,
25
+ queue = [],
26
+ after = null;
27
+
28
+ if ('addEventListener' in win) {
29
+ on = function (obj,type,fn) { obj.addEventListener(type,fn,false) };
30
+ off = function (obj,type,fn) { obj.removeEventListener(type,fn,false) };
31
+ }
32
+ else {
33
+ on = function (obj,type,fn) { obj.attachEvent('on'+type,fn) };
34
+ off = function (obj,type,fn) { obj.detachEvent('on'+type,fn) };
35
+ }
36
+ isArray = Array.isArray || function (obj) { return Object.prototype.toString.call(obj) === '[object Array]' };
37
+
38
+ function normalizeEvent(name) {
39
+ return eventPrefix ? eventPrefix + name : name.toLowerCase();
40
+ }
41
+
42
+ on (win,'load',function () {
43
+ var transitionSupported = ( function (style) {
44
+ var prefixes = ['MozT','WebkitT','OT','msT','KhtmlT','t'];
45
+ for(var i = 0, prefix; prefix = prefixes[i]; i++) {
46
+ if (prefix+'ransition' in style) return true;
47
+ }
48
+ return false;
49
+ }(doc.body.style));
50
+ if (!transitionSupported) animate = jsAnimateOpacity; // use js animation when no transition support
51
+
52
+ setup(); run();
53
+ });
54
+
55
+ function setup() {
56
+ humaneEl = doc.createElement('div');
57
+ humaneEl.id = 'humane';
58
+ humaneEl.className = 'humane';
59
+ doc.body.appendChild(humaneEl);
60
+ for (vendor in vendors){
61
+ if (humaneEl.style[vendor + 'TransitionProperty'] !== undefined)
62
+ eventPrefix = vendors[vendor];
63
+ }
64
+ isSetup = true;
65
+ }
66
+
67
+ function remove() {
68
+ off (doc.body,'mousemove',remove);
69
+ off (doc.body,'click',remove);
70
+ off (doc.body,'keypress',remove);
71
+ off (doc.body,'touchstart',remove);
72
+ eventing = false;
73
+ if (humane.clickToClose) { off (humaneEl,'click',remove); off (humaneEl, 'touchstart', remove); }
74
+ if (animationInProgress) animate(0);
75
+ }
76
+
77
+ function run() {
78
+ if (animationInProgress && !win.humane.forceNew) return;
79
+ if (!queue.length) { remove(); return; }
80
+ after = null;
81
+ animationInProgress = true;
82
+ if (timeout) {
83
+ clearTimeout(timeout);
84
+ timeout = null;
85
+ }
86
+ timeout = setTimeout(function(){ // allow notification to stay alive for timeout
87
+ if (!eventing) {
88
+ on (doc.body,'mousemove',remove);
89
+ on (doc.body,'click',remove);
90
+ on (doc.body,'keypress',remove);
91
+ on (doc.body,'touchstart',remove);
92
+ eventing = true;
93
+ if(!win.humane.waitForMove) remove();
94
+ }
95
+ }, win.humane.timeout);
96
+
97
+ if (humane.clickToClose) { on (humaneEl,'click',remove); on (humaneEl, 'touchstart', remove); }
98
+
99
+ var next = queue.shift(),
100
+ type = next[0],
101
+ content = next[1],
102
+ callback = next[2];
103
+
104
+ after = callback;
105
+ if ( isArray(content) ) content = '<ul><li>' + content.join('<li>') + '</ul>';
106
+
107
+ humaneEl.innerHTML = content;
108
+ animate(type,1);
109
+ }
110
+
111
+ function animate (type,level) {
112
+ if(level === 1){
113
+ humaneEl.className = "humane humane-" + type + " humane-animate";
114
+ }
115
+ else {
116
+ humaneEl.className = humaneEl.className.replace(" humane-animate","");
117
+ if(after!=null)
118
+ on(humaneEl,normalizeEvent('TransitionEnd'),after);
119
+ end();
120
+ }
121
+ }
122
+
123
+ function end(){
124
+ setTimeout(function(){
125
+ animationInProgress = false;
126
+ run();
127
+ },500);
128
+ }
129
+
130
+ // if CSS Transitions not supported, fallback to JS Animation
131
+ var setOpacity = (function(){
132
+ if (useFilter) {
133
+ return function(opacity){
134
+ humaneEl.filters.item('DXImageTransform.Microsoft.Alpha').Opacity = opacity*100;
135
+
136
+ }
137
+ }
138
+ else {
139
+ return function (opacity) { humaneEl.style.opacity = String(opacity); }
140
+ }
141
+ }());
142
+
143
+ function jsAnimateOpacity(type,level){
144
+ var interval;
145
+ var opacity;
146
+
147
+ if (level === 1) {
148
+ opacity = 0;
149
+ humaneEl.className = "humane humane-js-animate humane-" + type;
150
+ if (humaneEl.filters) humaneEl.filters.item('DXImageTransform.Microsoft.Alpha').Opacity = 0; // reset value so hover states work
151
+
152
+ if (win.humane.forceNew) {
153
+ opacity = useFilter
154
+ ? humaneEl.filters.item('DXImageTransform.Microsoft.Alpha').Opacity/100|0
155
+ : humaneEl.style.opacity|0;
156
+ }
157
+ interval = setInterval(function(){
158
+ if (opacity < 1) {
159
+ opacity += 0.1;
160
+ if (opacity > 1) opacity = 1;
161
+ setOpacity(opacity);
162
+ }
163
+ else {
164
+ clearInterval(interval);
165
+ }
166
+ }, 100 / 20);
167
+ }
168
+ else {
169
+ opacity = 1;
170
+ interval = setInterval(function(){
171
+ if(opacity > 0) {
172
+ opacity -= 0.1;
173
+ if (opacity < 0) opacity = 0;
174
+ setOpacity(opacity);
175
+ }
176
+ else {
177
+ humaneEl.className = humaneEl.className.replace(" humane-js-animate","");
178
+ clearInterval(interval);
179
+ if(after!=null)
180
+ after();
181
+ end();
182
+ }
183
+ }, 100 / 20);
184
+ }
185
+ }
186
+
187
+ function notifier (type) {
188
+ return function (message,callback) {
189
+ queue.push( [type, message,callback] );
190
+ if(isSetup) run();
191
+ }
192
+ }
193
+
194
+ win.humane = notifier('log');
195
+
196
+ win.humane.log = notifier('log');
197
+ win.humane.error = notifier('error');
198
+ win.humane.info = notifier('info');
199
+ win.humane.success = notifier('success');
200
+
201
+ win.humane.timeout = 2500;
202
+ win.humane.waitForMove = false;
203
+ win.humane.forceNew = false;
204
+ win.humane.clickToClose = false;
205
+
206
+ }( window, document));
@@ -0,0 +1 @@
1
+ //= require humane.jquery
@@ -0,0 +1,122 @@
1
+ html,
2
+ body {
3
+ height: 100%;
4
+ }
5
+ .humane {
6
+ position: fixed;
7
+ -moz-transition: all 0.3s ease-out;
8
+ -webkit-transition: all 0.3s ease-out;
9
+ -ms-transition: all 0.3s ease-out;
10
+ -o-transition: all 0.3s ease-out;
11
+ transition: all 0.3s ease-out;
12
+ z-index: -1;
13
+ }
14
+ .humane.humane-animate,
15
+ .humane.humane-js-animate {
16
+ z-index: 100000;
17
+ }
18
+ .humane {
19
+ line-height: 40px;
20
+ top: 25%;
21
+ left: 25%;
22
+ opacity: 0;
23
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
24
+ width: 50%;
25
+ min-height: 40px;
26
+ padding: 30px;
27
+ text-align: center;
28
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAc0lEQVQokb2RQQ6EMAwDx/7/n80BtIEC3RYhLlXrVLGTAYiBWBIGtkPSP01SfreTVoV5re9Rcee1scwDk9NurbR62sZJcpzy9O+2X5KsXabyPaQFYNuvkqkRviDTp9Vs8opC0TpkHvJtVjeReW/5kEyX1gKeLEKE9peeWAAAAABJRU5ErkJggg==');
29
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #000), color-stop(1, rgba(0,0,0,0.90))) no-repeat;
30
+ background: -moz-linear-gradient(top, #000 0%, rgba(0,0,0,0.90) 100%) no-repeat;
31
+ background: -webkit-linear-gradient(top, #000 0%, rgba(0,0,0,0.90) 100%) no-repeat;
32
+ background: -ms-linear-gradient(top, #000 0%, rgba(0,0,0,0.90) 100%) no-repeat;
33
+ background: -o-linear-gradient(top, #000 0%, rgba(0,0,0,0.90) 100%) no-repeat;
34
+ background: linear-gradient(top, #000 0%, rgba(0,0,0,0.90) 100%) no-repeat;
35
+ *background-color: #000;
36
+ color: #fff;
37
+ -moz-border-radius: 15px;
38
+ -webkit-border-radius: 15px;
39
+ -ms-border-radius: 15px;
40
+ -o-border-radius: 15px;
41
+ border-radius: 15px;
42
+ text-shadow: 0 -1px 1px #ddd;
43
+ -moz-box-shadow: 0 15px 15px -15px #000;
44
+ -webkit-box-shadow: 0 15px 15px -15px #000;
45
+ -ms-box-shadow: 0 15px 15px -15px #000;
46
+ -o-box-shadow: 0 15px 15px -15px #000;
47
+ box-shadow: 0 15px 15px -15px #000;
48
+ -moz-transform: scale(0.1);
49
+ -webkit-transform: scale(0.1);
50
+ -ms-transform: scale(0.1);
51
+ -o-transform: scale(0.1);
52
+ transform: scale(0.1);
53
+ }
54
+ .humane p,
55
+ .humane ul {
56
+ margin: 0;
57
+ padding: 0;
58
+ }
59
+ .humane ul {
60
+ list-style: none;
61
+ }
62
+ .humane.humane-info {
63
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAQElEQVQokWNgYEj5z8TAwPCfiYGBgQGVIEKMTG2DTYwRVez/IHIaNcUGyBnYgpORel6gpvFEJhBqpxIaG8/AAADsKDq/HhYQ2AAAAABJRU5ErkJggg==');
64
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #000064), color-stop(1, rgba(0,0,100,0.90))) no-repeat;
65
+ background: -moz-linear-gradient(top, #000064 0%, rgba(0,0,100,0.90) 100%) no-repeat;
66
+ background: -webkit-linear-gradient(top, #000064 0%, rgba(0,0,100,0.90) 100%) no-repeat;
67
+ background: -ms-linear-gradient(top, #000064 0%, rgba(0,0,100,0.90) 100%) no-repeat;
68
+ background: -o-linear-gradient(top, #000064 0%, rgba(0,0,100,0.90) 100%) no-repeat;
69
+ background: linear-gradient(top, #000064 0%, rgba(0,0,100,0.90) 100%) no-repeat;
70
+ *background-color: #030;
71
+ }
72
+ .humane.humane-success {
73
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAPklEQVQokWNgSGH4z8TAACEYUAkixMjUNsjEGFHF/g8ip1FVbGCcgS04GannBaoaT1wCwWkvmXbQ2HgGBgYA8Yw6v+m4Kh8AAAAASUVORK5CYII=');
74
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #006400), color-stop(1, rgba(0,100,0,0.90))) no-repeat;
75
+ background: -moz-linear-gradient(top, #006400 0%, rgba(0,100,0,0.90) 100%) no-repeat;
76
+ background: -webkit-linear-gradient(top, #006400 0%, rgba(0,100,0,0.90) 100%) no-repeat;
77
+ background: -ms-linear-gradient(top, #006400 0%, rgba(0,100,0,0.90) 100%) no-repeat;
78
+ background: -o-linear-gradient(top, #006400 0%, rgba(0,100,0,0.90) 100%) no-repeat;
79
+ background: linear-gradient(top, #006400 0%, rgba(0,100,0,0.90) 100%) no-repeat;
80
+ *background-color: #030;
81
+ }
82
+ .humane.humane-error {
83
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAPklEQVQokWNIYWD4z8QAJRhQCSLEyNQ2uMQYUcX+DyKnUVdsQJyBLTgZqecF6hpPVALBaS+ZdtDYeAYGBgYA9vA6v4OR3MkAAAAASUVORK5CYII=');
84
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #640000), color-stop(1, rgba(100,0,0,0.90))) no-repeat;
85
+ background: -moz-linear-gradient(top, #640000 0%, rgba(100,0,0,0.90) 100%) no-repeat;
86
+ background: -webkit-linear-gradient(top, #640000 0%, rgba(100,0,0,0.90) 100%) no-repeat;
87
+ background: -ms-linear-gradient(top, #640000 0%, rgba(100,0,0,0.90) 100%) no-repeat;
88
+ background: -o-linear-gradient(top, #640000 0%, rgba(100,0,0,0.90) 100%) no-repeat;
89
+ background: linear-gradient(top, #640000 0%, rgba(100,0,0,0.90) 100%) no-repeat;
90
+ *background-color: #300;
91
+ }
92
+ .humane.humane-animate {
93
+ opacity: 1;
94
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
95
+ -moz-transform: scale(1);
96
+ -webkit-transform: scale(1);
97
+ -ms-transform: scale(1);
98
+ -o-transform: scale(1);
99
+ transform: scale(1);
100
+ }
101
+ .humane.humane-animate:hover {
102
+ opacity: 0.6;
103
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
104
+ -moz-transform: scale(0.8);
105
+ -webkit-transform: scale(0.8);
106
+ -ms-transform: scale(0.8);
107
+ -o-transform: scale(0.8);
108
+ transform: scale(0.8);
109
+ }
110
+ .humane.humane-js-animate {
111
+ opacity: 1;
112
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
113
+ -moz-transform: scale(1);
114
+ -webkit-transform: scale(1);
115
+ -ms-transform: scale(1);
116
+ -o-transform: scale(1);
117
+ transform: scale(1);
118
+ }
119
+ .humane.humane-js-animate:hover {
120
+ opacity: 0.6;
121
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=60);
122
+ }
@@ -0,0 +1,121 @@
1
+ html,
2
+ body {
3
+ height: 100%;
4
+ }
5
+ .humane {
6
+ position: fixed;
7
+ -moz-transition: all 0.3s ease-out;
8
+ -webkit-transition: all 0.3s ease-out;
9
+ -ms-transition: all 0.3s ease-out;
10
+ -o-transition: all 0.3s ease-out;
11
+ transition: all 0.3s ease-out;
12
+ z-index: -1;
13
+ }
14
+ .humane.humane-animate,
15
+ .humane.humane-js-animate {
16
+ z-index: 100000;
17
+ }
18
+ .humane {
19
+ letter-spacing: -1px;
20
+ top: 25%;
21
+ left: 25%;
22
+ opacity: 0;
23
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
24
+ width: 50%;
25
+ color: #000;
26
+ padding: 10px;
27
+ text-align: center;
28
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAACWCAYAAAAfduJyAAAABmJLR0QA/wD/AP+gvaeTAAAAPElEQVQokWP4////Gab///8zQAgGBgYo8e/fP2QxSpSgydJNCYJLRSVoPqeOkgEIYop9TrGbSfcWpW4GAFeF/7lb/oWBAAAAAElFTkSuQmCC');
29
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.80)), color-stop(1, rgba(150,150,150,0.80))) no-repeat;
30
+ background: -moz-linear-gradient(top, rgba(255,255,255,0.80) 0%, rgba(150,150,150,0.80) 100%) no-repeat;
31
+ background: -webkit-linear-gradient(top, rgba(255,255,255,0.80) 0%, rgba(150,150,150,0.80) 100%) no-repeat;
32
+ background: -ms-linear-gradient(top, rgba(255,255,255,0.80) 0%, rgba(150,150,150,0.80) 100%) no-repeat;
33
+ background: -o-linear-gradient(top, rgba(255,255,255,0.80) 0%, rgba(150,150,150,0.80) 100%) no-repeat;
34
+ background: linear-gradient(top, rgba(255,255,255,0.80) 0%, rgba(150,150,150,0.80) 100%) no-repeat;
35
+ *background-color: #fff;
36
+ -moz-border-radius: 15px;
37
+ -webkit-border-radius: 15px;
38
+ -ms-border-radius: 15px;
39
+ -o-border-radius: 15px;
40
+ border-radius: 15px;
41
+ text-shadow: 0 -1px 1px rgba(221,221,221,0.40);
42
+ -moz-box-shadow: 0 4px 4px -4px #eee;
43
+ -webkit-box-shadow: 0 4px 4px -4px #eee;
44
+ -ms-box-shadow: 0 4px 4px -4px #eee;
45
+ -o-box-shadow: 0 4px 4px -4px #eee;
46
+ box-shadow: 0 4px 4px -4px #eee;
47
+ -moz-transform: scale(1.1);
48
+ -webkit-transform: scale(1.1);
49
+ -ms-transform: scale(1.1);
50
+ -o-transform: scale(1.1);
51
+ transform: scale(1.1);
52
+ }
53
+ .humane p,
54
+ .humane ul {
55
+ margin: 0;
56
+ padding: 0;
57
+ }
58
+ .humane ul {
59
+ list-style: none;
60
+ }
61
+ .humane.humane-info {
62
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAR0lEQVQokWNISfn/n4mBgeE/EwMDAwMqQYQYmdoGlxgjI4rY//+Dx2nUFRsQZ2ALTrQQp8QL1DWeqASC014y7aCx8QwMDAwA1aZBIulmpvwAAAAASUVORK5CYII=');
63
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #6464ff), color-stop(1, rgba(100,100,255,0.80))) no-repeat;
64
+ background: -moz-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.80) 100%) no-repeat;
65
+ background: -webkit-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.80) 100%) no-repeat;
66
+ background: -ms-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.80) 100%) no-repeat;
67
+ background: -o-linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.80) 100%) no-repeat;
68
+ background: linear-gradient(top, #6464ff 0%, rgba(100,100,255,0.80) 100%) no-repeat;
69
+ *background-color: #6464ff;
70
+ }
71
+ .humane.humane-success {
72
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAGklEQVQokWNI+Z9yhomBgYFhlBglRonhSgAAFX0EItSd0k8AAAAASUVORK5CYII=');
73
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #64ff64), color-stop(1, rgba(100,255,100,0.80))) no-repeat;
74
+ background: -moz-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.80) 100%) no-repeat;
75
+ background: -webkit-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.80) 100%) no-repeat;
76
+ background: -ms-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.80) 100%) no-repeat;
77
+ background: -o-linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.80) 100%) no-repeat;
78
+ background: linear-gradient(top, #64ff64 0%, rgba(100,255,100,0.80) 100%) no-repeat;
79
+ *background-color: #64ff64;
80
+ }
81
+ .humane.humane-error {
82
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAGklEQVQokWP4n5JyhomBgYFhlBglRonhSgAAFhgEIhjGqQkAAAAASUVORK5CYII=');
83
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ff6464), color-stop(1, rgba(255,100,100,0.80))) no-repeat;
84
+ background: -moz-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.80) 100%) no-repeat;
85
+ background: -webkit-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.80) 100%) no-repeat;
86
+ background: -ms-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.80) 100%) no-repeat;
87
+ background: -o-linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.80) 100%) no-repeat;
88
+ background: linear-gradient(top, #ff6464 0%, rgba(255,100,100,0.80) 100%) no-repeat;
89
+ *background-color: #ff6464;
90
+ }
91
+ .humane.humane-animate {
92
+ opacity: 1;
93
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
94
+ -moz-transform: scale(1);
95
+ -webkit-transform: scale(1);
96
+ -ms-transform: scale(1);
97
+ -o-transform: scale(1);
98
+ transform: scale(1);
99
+ }
100
+ .humane.humane-animate:hover {
101
+ opacity: 0.4;
102
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
103
+ -moz-transform: scale(1.8);
104
+ -webkit-transform: scale(1.8);
105
+ -ms-transform: scale(1.8);
106
+ -o-transform: scale(1.8);
107
+ transform: scale(1.8);
108
+ }
109
+ .humane.humane-js-animate {
110
+ opacity: 1;
111
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
112
+ -moz-transform: scale(1);
113
+ -webkit-transform: scale(1);
114
+ -ms-transform: scale(1);
115
+ -o-transform: scale(1);
116
+ transform: scale(1);
117
+ }
118
+ .humane.humane-js-animate:hover {
119
+ opacity: 0.4;
120
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
121
+ }
@@ -0,0 +1,122 @@
1
+ html,
2
+ body {
3
+ height: 100%;
4
+ }
5
+ .humane {
6
+ position: fixed;
7
+ -moz-transition: all 0.6s ease-in-out;
8
+ -webkit-transition: all 0.6s ease-in-out;
9
+ -ms-transition: all 0.6s ease-in-out;
10
+ -o-transition: all 0.6s ease-in-out;
11
+ transition: all 0.6s ease-in-out;
12
+ z-index: -1;
13
+ }
14
+ .humane.humane-animate,
15
+ .humane.humane-js-animate {
16
+ z-index: 100000;
17
+ }
18
+ .humane {
19
+ letter-spacing: -1px;
20
+ top: 20px;
21
+ left: 30%;
22
+ opacity: 0;
23
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
24
+ width: 40%;
25
+ color: #333;
26
+ padding: 10px;
27
+ text-align: center;
28
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAACWCAYAAAAfduJyAAAABmJLR0QA/wD/AP+gvaeTAAAAIklEQVQokWNgYGCQZGJgYGDARTDSQnboGDqsnDt0DKWNLAAkiQFdC+vZNQAAAABJRU5ErkJggg==');
29
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.10)), color-stop(1, rgba(0,0,0,0.20))) no-repeat;
30
+ background: -moz-linear-gradient(top, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.20) 100%) no-repeat;
31
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.20) 100%) no-repeat;
32
+ background: -ms-linear-gradient(top, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.20) 100%) no-repeat;
33
+ background: -o-linear-gradient(top, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.20) 100%) no-repeat;
34
+ background: linear-gradient(top, rgba(0,0,0,0.10) 0%, rgba(0,0,0,0.20) 100%) no-repeat;
35
+ background-color: #fff;
36
+ -moz-border-radius: 3px;
37
+ -webkit-border-radius: 3px;
38
+ -ms-border-radius: 3px;
39
+ -o-border-radius: 3px;
40
+ border-radius: 3px;
41
+ text-shadow: 0 1px 1px rgba(255,255,255,0.80);
42
+ -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.50);
43
+ -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.50);
44
+ -ms-box-shadow: 0 1px 2px rgba(0,0,0,0.50);
45
+ -o-box-shadow: 0 1px 2px rgba(0,0,0,0.50);
46
+ box-shadow: 0 1px 2px rgba(0,0,0,0.50);
47
+ -moz-transform: translateY(-100px);
48
+ -webkit-transform: translateY(-100px);
49
+ -ms-transform: translateY(-100px);
50
+ -o-transform: translateY(-100px);
51
+ transform: translateY(-100px);
52
+ }
53
+ .humane p,
54
+ .humane ul {
55
+ margin: 0;
56
+ padding: 0;
57
+ }
58
+ .humane ul {
59
+ list-style: none;
60
+ }
61
+ .humane.humane-info {
62
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAR0lEQVQokWNISfn/n4mBgeE/EwMDAwMqQYQYmdoGlxgjI4rY//+Dx2nUFRsQZ2ALTrQQp8QL1DWeqASC014y7aCx8QwMDAwA1aZBIulmpvwAAAAASUVORK5CYII=');
63
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.70)), color-stop(1, rgba(0,0,0,0.85))) no-repeat;
64
+ background: -moz-linear-gradient(top, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
65
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
66
+ background: -ms-linear-gradient(top, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
67
+ background: -o-linear-gradient(top, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
68
+ background: linear-gradient(top, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.85) 100%) no-repeat;
69
+ background-color: #fff;
70
+ color: #fff;
71
+ text-shadow: 0 -1px 1px rgba(0,0,0,0.35);
72
+ }
73
+ .humane.humane-success {
74
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAASElEQVQokc2SMQ4AIAgDD9/K/79QVzWaENTownAJbWnA5SqACkA/Aiy59hczrGVC30Q7y57EmNU5NL5zwln50IMsfZMel+UBKtFBQSLWM9wLAAAAAElFTkSuQmCC');
75
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #62c462), color-stop(1, #57a957)) no-repeat;
76
+ background: -moz-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
77
+ background: -webkit-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
78
+ background: -ms-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
79
+ background: -o-linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
80
+ background: linear-gradient(top, #62c462 0%, #57a957 100%) no-repeat;
81
+ background-color: #64ff64;
82
+ color: #fff;
83
+ text-shadow: 0 -1px 1px rgba(0,0,0,0.35);
84
+ }
85
+ .humane.humane-error {
86
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAIAAACmkByiAAAABmJLR0QA/wD/AP+gvaeTAAAAf0lEQVQokY2TOQ7AIAwER/5mivy/yRc2RQDhA0jhghFYO5bhuS+TZMAoIUMEhhH4loGhfu71cenM3DutWMsaeGKjv3zO5N17KLPJ0+fQD8cpv5uVLPo4vnX0PpXj0nuaaeVzdmw+yXG1O96n2p3kozB757Ni1Z5UPsU9SP8AeAG1kHXE+7RlPAAAAABJRU5ErkJggg==');
87
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #ee5f5b), color-stop(1, #c43c35)) no-repeat;
88
+ background: -moz-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
89
+ background: -webkit-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
90
+ background: -ms-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
91
+ background: -o-linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
92
+ background: linear-gradient(top, #ee5f5b 0%, #c43c35 100%) no-repeat;
93
+ background-color: #ee5f5b;
94
+ color: #fff;
95
+ text-shadow: 0 -1px 1px rgba(0,0,0,0.35);
96
+ }
97
+ .humane.humane-animate {
98
+ opacity: 1;
99
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
100
+ -moz-transform: translateY(0);
101
+ -webkit-transform: translateY(0);
102
+ -ms-transform: translateY(0);
103
+ -o-transform: translateY(0);
104
+ transform: translateY(0);
105
+ }
106
+ .humane.humane-animate:hover {
107
+ opacity: 0.7;
108
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
109
+ }
110
+ .humane.humane-js-animate {
111
+ opacity: 1;
112
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
113
+ -moz-transform: translateY(0);
114
+ -webkit-transform: translateY(0);
115
+ -ms-transform: translateY(0);
116
+ -o-transform: translateY(0);
117
+ transform: translateY(0);
118
+ }
119
+ .humane.humane-js-animate:hover {
120
+ opacity: 0.7;
121
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
122
+ }
@@ -0,0 +1,114 @@
1
+ html,
2
+ body {
3
+ height: 100%;
4
+ }
5
+ .humane {
6
+ position: fixed;
7
+ -moz-transition: all 0.3s ease-out;
8
+ -webkit-transition: all 0.3s ease-out;
9
+ -ms-transition: all 0.3s ease-out;
10
+ -o-transition: all 0.3s ease-out;
11
+ transition: all 0.3s ease-out;
12
+ z-index: -1;
13
+ }
14
+ .humane.humane-animate,
15
+ .humane.humane-js-animate {
16
+ z-index: 100000;
17
+ }
18
+ .humane {
19
+ text-align: center;
20
+ top: 10px;
21
+ right: 10px;
22
+ opacity: 0;
23
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
24
+ width: 150px;
25
+ color: #fff;
26
+ padding: 10px;
27
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAANElEQVQYlWNgYGB4ysTAwMDAxMjICCUQXDQWAwMDAxMTExMedcRyB6d5CAMQ5hGrjSrmAQBQdgIXlosSTwAAAABJRU5ErkJggg==');
28
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,0,0.90)), color-stop(1, rgba(50,50,50,0.90))) no-repeat;
29
+ background: -moz-linear-gradient(top, rgba(0,0,0,0.90) 0%, rgba(50,50,50,0.90) 100%) no-repeat;
30
+ background: -webkit-linear-gradient(top, rgba(0,0,0,0.90) 0%, rgba(50,50,50,0.90) 100%) no-repeat;
31
+ background: -ms-linear-gradient(top, rgba(0,0,0,0.90) 0%, rgba(50,50,50,0.90) 100%) no-repeat;
32
+ background: -o-linear-gradient(top, rgba(0,0,0,0.90) 0%, rgba(50,50,50,0.90) 100%) no-repeat;
33
+ background: linear-gradient(top, rgba(0,0,0,0.90) 0%, rgba(50,50,50,0.90) 100%) no-repeat;
34
+ *background-color: #000;
35
+ -moz-border-radius: 5px;
36
+ -webkit-border-radius: 5px;
37
+ -ms-border-radius: 5px;
38
+ -o-border-radius: 5px;
39
+ border-radius: 5px;
40
+ -moz-box-shadow: 0 4px 4px -4px #000;
41
+ -webkit-box-shadow: 0 4px 4px -4px #000;
42
+ -ms-box-shadow: 0 4px 4px -4px #000;
43
+ -o-box-shadow: 0 4px 4px -4px #000;
44
+ box-shadow: 0 4px 4px -4px #000;
45
+ -moz-transform: translateY(-40px);
46
+ -webkit-transform: translateY(-40px);
47
+ -ms-transform: translateY(-40px);
48
+ -o-transform: translateY(-40px);
49
+ transform: translateY(-40px);
50
+ }
51
+ .humane p,
52
+ .humane ul {
53
+ margin: 0;
54
+ padding: 0;
55
+ }
56
+ .humane ul {
57
+ list-style: none;
58
+ }
59
+ .humane.humane-info {
60
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAAMUlEQVQYlWNgYDB6ysTAwMDAxMDACCcYUFkMDEwMDEwMBNVhkxg65jGhmke6M6hgHgBSdgHnpZwADwAAAABJRU5ErkJggg==');
61
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,0,50,0.90)), color-stop(1, rgba(0,0,100,0.90))) no-repeat;
62
+ background: -moz-linear-gradient(top, rgba(0,0,50,0.90) 0%, rgba(0,0,100,0.90) 100%) no-repeat;
63
+ background: -webkit-linear-gradient(top, rgba(0,0,50,0.90) 0%, rgba(0,0,100,0.90) 100%) no-repeat;
64
+ background: -ms-linear-gradient(top, rgba(0,0,50,0.90) 0%, rgba(0,0,100,0.90) 100%) no-repeat;
65
+ background: -o-linear-gradient(top, rgba(0,0,50,0.90) 0%, rgba(0,0,100,0.90) 100%) no-repeat;
66
+ background: linear-gradient(top, rgba(0,0,50,0.90) 0%, rgba(0,0,100,0.90) 100%) no-repeat;
67
+ *background-color: #030;
68
+ }
69
+ .humane.humane-success {
70
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABQCAYAAADYxx/bAAAABmJLR0QA/wD/AP+gvaeTAAAAMUlEQVQYlWNgMGJ4ysTAwMDAxMAIJxhQWQwMDEwMTKgS2NRhkxg65jGhmke6M6hhHgBS2QHn2LzhygAAAABJRU5ErkJggg==');
71
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(0,50,0,0.90)), color-stop(1, rgba(0,100,0,0.90))) no-repeat;
72
+ background: -moz-linear-gradient(top, rgba(0,50,0,0.90) 0%, rgba(0,100,0,0.90) 100%) no-repeat;
73
+ background: -webkit-linear-gradient(top, rgba(0,50,0,0.90) 0%, rgba(0,100,0,0.90) 100%) no-repeat;
74
+ background: -ms-linear-gradient(top, rgba(0,50,0,0.90) 0%, rgba(0,100,0,0.90) 100%) no-repeat;
75
+ background: -o-linear-gradient(top, rgba(0,50,0,0.90) 0%, rgba(0,100,0,0.90) 100%) no-repeat;
76
+ background: linear-gradient(top, rgba(0,50,0,0.90) 0%, rgba(0,100,0,0.90) 100%) no-repeat;
77
+ *background-color: #030;
78
+ }
79
+ .humane.humane-error {
80
+ background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADICAYAAAAp8ov1AAAABmJLR0QA/wD/AP+gvaeTAAAAPklEQVQokWMwYmB4ysTAwMCATjASFsOmBBvBRJ7x+O0g0wCS7CDTH/RwH7X9MVDuwyaG032D2M2UeIYO7gMAqt8C19Bn7+YAAAAASUVORK5CYII=');
81
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(50,0,0,0.90)), color-stop(1, rgba(100,0,0,0.90))) no-repeat;
82
+ background: -moz-linear-gradient(top, rgba(50,0,0,0.90) 0%, rgba(100,0,0,0.90) 100%) no-repeat;
83
+ background: -webkit-linear-gradient(top, rgba(50,0,0,0.90) 0%, rgba(100,0,0,0.90) 100%) no-repeat;
84
+ background: -ms-linear-gradient(top, rgba(50,0,0,0.90) 0%, rgba(100,0,0,0.90) 100%) no-repeat;
85
+ background: -o-linear-gradient(top, rgba(50,0,0,0.90) 0%, rgba(100,0,0,0.90) 100%) no-repeat;
86
+ background: linear-gradient(top, rgba(50,0,0,0.90) 0%, rgba(100,0,0,0.90) 100%) no-repeat;
87
+ *background-color: #300;
88
+ }
89
+ .humane.humane-animate {
90
+ opacity: 1;
91
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
92
+ -moz-transform: translateY(0);
93
+ -webkit-transform: translateY(0);
94
+ -ms-transform: translateY(0);
95
+ -o-transform: translateY(0);
96
+ transform: translateY(0);
97
+ }
98
+ .humane.humane-animate:hover {
99
+ opacity: 0.2;
100
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=20);
101
+ }
102
+ .humane.humane-js-animate {
103
+ opacity: 1;
104
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
105
+ -moz-transform: translateY(0);
106
+ -webkit-transform: translateY(0);
107
+ -ms-transform: translateY(0);
108
+ -o-transform: translateY(0);
109
+ transform: translateY(0);
110
+ }
111
+ .humane.humane-js-animate:hover {
112
+ opacity: 0.2;
113
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=20);
114
+ }
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: humane-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.2.5.0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Martin Harrigan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-07 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A gemified version of Marc Harter's humane-js.
15
+ email:
16
+ - martinharrigan@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - Gemfile
23
+ - README.md
24
+ - Rakefile
25
+ - humane-rails.gemspec
26
+ - lib/humane-rails.rb
27
+ - lib/humane-rails/engine.rb
28
+ - lib/humane-rails/version.rb
29
+ - vendor/assets/javascripts/humane.jquery.js
30
+ - vendor/assets/javascripts/humane.js
31
+ - vendor/assets/stylesheets/bigbox.css
32
+ - vendor/assets/stylesheets/boldlight.css
33
+ - vendor/assets/stylesheets/jackedup.css
34
+ - vendor/assets/stylesheets/libnotify.css
35
+ homepage: http://github.com/harrigan/humane-rails
36
+ licenses: []
37
+ post_install_message:
38
+ rdoc_options: []
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ segments:
48
+ - 0
49
+ hash: 332990762728546479
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ segments:
57
+ - 0
58
+ hash: 332990762728546479
59
+ requirements: []
60
+ rubyforge_project: humane-rails
61
+ rubygems_version: 1.8.11
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: A gemified version of Marc Harter's humane-js.
65
+ test_files: []