compass_formalize 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.DS_Store +0 -0
- data/.gitignore +2 -0
- data/README.md +6 -0
- data/Rakefile +4 -0
- data/compass_formalize.gemspec +20 -0
- data/lib/compass_formalize.rb +2 -0
- data/stylesheets/_formalize.sass +271 -0
- data/templates/.DS_Store +0 -0
- data/templates/dojo/button.png +0 -0
- data/templates/dojo/dojo.formalize.js +174 -0
- data/templates/dojo/dojo.formalize.min.js +1 -0
- data/templates/dojo/manifest.rb +37 -0
- data/templates/dojo/select_arrow.gif +0 -0
- data/templates/extjs/.DS_Store +0 -0
- data/templates/extjs/button.png +0 -0
- data/templates/extjs/extjs.formalize.js +168 -0
- data/templates/extjs/extjs.formalize.min.js +1 -0
- data/templates/extjs/manifest.rb +37 -0
- data/templates/extjs/select_arrow.gif +0 -0
- data/templates/jquery/.DS_Store +0 -0
- data/templates/jquery/button.png +0 -0
- data/templates/jquery/jquery.formalize.js +158 -0
- data/templates/jquery/jquery.formalize.min.js +1 -0
- data/templates/jquery/manifest.rb +37 -0
- data/templates/jquery/select_arrow.gif +0 -0
- data/templates/mootools/.DS_Store +0 -0
- data/templates/mootools/button.png +0 -0
- data/templates/mootools/manifest.rb +37 -0
- data/templates/mootools/mootools.formalize.js +163 -0
- data/templates/mootools/mootools.formalize.min.js +1 -0
- data/templates/mootools/select_arrow.gif +0 -0
- data/templates/project/manifest.rb +18 -0
- data/templates/prototype/.DS_Store +0 -0
- data/templates/prototype/button.png +0 -0
- data/templates/prototype/manifest.rb +37 -0
- data/templates/prototype/prototype.formalize.js +171 -0
- data/templates/prototype/prototype.formalize.min.js +1 -0
- data/templates/prototype/select_arrow.gif +0 -0
- data/templates/yui/.DS_Store +0 -0
- data/templates/yui/button.png +0 -0
- data/templates/yui/manifest.rb +37 -0
- data/templates/yui/select_arrow.gif +0 -0
- data/templates/yui/yui.formalize.js +168 -0
- data/templates/yui/yui.formalize.min.js +1 -0
- metadata +130 -0
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Make sure you list all the project template files here in the manifest.
|
2
|
+
discover :all
|
3
|
+
|
4
|
+
description "Teach your forms some manners."
|
5
|
+
|
6
|
+
help %Q{
|
7
|
+
Please see the Formalize website for documentation:
|
8
|
+
|
9
|
+
http://formalize.me/
|
10
|
+
}
|
11
|
+
|
12
|
+
welcome_message %Q{
|
13
|
+
|
14
|
+
Formalize assets have been copied to the proper asset folders
|
15
|
+
based on your Compass configuration.
|
16
|
+
|
17
|
+
Usage:
|
18
|
+
|
19
|
+
If you're using SCSS syntax, in your stylesheet:
|
20
|
+
|
21
|
+
@import "formalize";
|
22
|
+
|
23
|
+
or if you're using indented syntax
|
24
|
+
|
25
|
+
@import "formalize"
|
26
|
+
|
27
|
+
In your HTML markup, include the JavaScript implementation of
|
28
|
+
your choice:
|
29
|
+
|
30
|
+
// a jQuery example
|
31
|
+
<script src="/javascripts/jquery.formalize.js"></script>
|
32
|
+
|
33
|
+
Please see the Formalize website for documentation:
|
34
|
+
|
35
|
+
http://formalize.me/
|
36
|
+
}
|
37
|
+
|
@@ -0,0 +1,163 @@
|
|
1
|
+
//
|
2
|
+
// Note: This file depends on the MooTools library.
|
3
|
+
//
|
4
|
+
|
5
|
+
// Module pattern:
|
6
|
+
// http://yuiblog.com/blog/2007/06/12/module-pattern/
|
7
|
+
var FORMALIZE = (function(window, document, undefined) {
|
8
|
+
// Private constants.
|
9
|
+
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
10
|
+
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
11
|
+
var WEBKIT = 'webkitAppearance' in document.createElement('select').style;
|
12
|
+
var IE6 = Browser.ie6;
|
13
|
+
var IE7 = Browser.ie7;
|
14
|
+
|
15
|
+
// Expose innards of FORMALIZE.
|
16
|
+
return {
|
17
|
+
// FORMALIZE.go
|
18
|
+
go: function() {
|
19
|
+
for (var i in FORMALIZE.init) {
|
20
|
+
FORMALIZE.init[i]();
|
21
|
+
}
|
22
|
+
},
|
23
|
+
// FORMALIZE.init
|
24
|
+
init: {
|
25
|
+
// FORMALIZE.init.detect_webkit
|
26
|
+
detect_webkit: function() {
|
27
|
+
if (!WEBKIT) {
|
28
|
+
return;
|
29
|
+
}
|
30
|
+
|
31
|
+
// Tweaks for Safari + Chrome.
|
32
|
+
$$('html')[0].addClass('is_webkit');
|
33
|
+
},
|
34
|
+
// FORMALIZE.init.full_input_size
|
35
|
+
full_input_size: function() {
|
36
|
+
if (!IE7 || !$$('textarea, input.input_full').length) {
|
37
|
+
return;
|
38
|
+
}
|
39
|
+
|
40
|
+
// This fixes width: 100% on <textarea> and class="input_full".
|
41
|
+
// It ensures that form elements don't go wider than container.
|
42
|
+
$$('textarea, input.input_full').each(function(el) {
|
43
|
+
new Element('span.input_full_wrap').wraps(el);
|
44
|
+
});
|
45
|
+
|
46
|
+
},
|
47
|
+
// FORMALIZE.init.ie6_skin_inputs
|
48
|
+
ie6_skin_inputs: function() {
|
49
|
+
// Test for Internet Explorer 6.
|
50
|
+
if (!IE6 || !$$('input, select, textarea').length) {
|
51
|
+
// Exit if the browser is not IE6,
|
52
|
+
// or if no form elements exist.
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
|
56
|
+
// For <input type="submit" />, etc.
|
57
|
+
var button_regex = /button|submit|reset/;
|
58
|
+
|
59
|
+
// For <input type="text" />, etc.
|
60
|
+
var type_regex = /date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;
|
61
|
+
|
62
|
+
$$('input').each(function(el) {
|
63
|
+
// Is it a button?
|
64
|
+
if (el.getAttribute('type').match(button_regex)) {
|
65
|
+
el.addClass('ie6_button');
|
66
|
+
|
67
|
+
/* Is it disabled? */
|
68
|
+
if (el.disabled) {
|
69
|
+
el.addClass('ie6_button_disabled');
|
70
|
+
}
|
71
|
+
}
|
72
|
+
// Or is it a textual input?
|
73
|
+
else if (el.getAttribute('type').match(type_regex)) {
|
74
|
+
el.addClass('ie6_input');
|
75
|
+
|
76
|
+
/* Is it disabled? */
|
77
|
+
if (el.disabled) {
|
78
|
+
el.addClass('ie6_input_disabled');
|
79
|
+
}
|
80
|
+
}
|
81
|
+
});
|
82
|
+
|
83
|
+
$$('textarea, select').each(function(el) {
|
84
|
+
/* Is it disabled? */
|
85
|
+
if (el.disabled) {
|
86
|
+
el.addClass('ie6_input_disabled');
|
87
|
+
}
|
88
|
+
});
|
89
|
+
},
|
90
|
+
// FORMALIZE.init.autofocus
|
91
|
+
autofocus: function() {
|
92
|
+
if (AUTOFOCUS_SUPPORTED || !$$('[autofocus]').length) {
|
93
|
+
return;
|
94
|
+
}
|
95
|
+
|
96
|
+
$$('[autofocus]')[0].focus();
|
97
|
+
},
|
98
|
+
// FORMALIZE.init.placeholder
|
99
|
+
placeholder: function() {
|
100
|
+
if (PLACEHOLDER_SUPPORTED || !$$('[placeholder]').length) {
|
101
|
+
// Exit if placeholder is supported natively,
|
102
|
+
// or if page does not have any placeholder.
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
|
106
|
+
FORMALIZE.misc.add_placeholder();
|
107
|
+
|
108
|
+
$$('[placeholder]').each(function(el) {
|
109
|
+
var text = el.get('placeholder');
|
110
|
+
|
111
|
+
el.addEvents({
|
112
|
+
focus: function() {
|
113
|
+
if (el.value === text) {
|
114
|
+
el.set('value', '').removeClass('placeholder_text');
|
115
|
+
}
|
116
|
+
},
|
117
|
+
blur: function() {
|
118
|
+
FORMALIZE.misc.add_placeholder();
|
119
|
+
}
|
120
|
+
});
|
121
|
+
|
122
|
+
// Prevent <form> from accidentally
|
123
|
+
// submitting the placeholder text.
|
124
|
+
el.getParent('form').addEvents({
|
125
|
+
'submit': function() {
|
126
|
+
if (el.value === text) {
|
127
|
+
el.set('value', '').removeClass('placeholder_text');
|
128
|
+
}
|
129
|
+
},
|
130
|
+
'reset': function() {
|
131
|
+
setTimeout(FORMALIZE.misc.add_placeholder, 50);
|
132
|
+
}
|
133
|
+
});
|
134
|
+
});
|
135
|
+
}
|
136
|
+
},
|
137
|
+
// FORMALIZE.misc
|
138
|
+
misc: {
|
139
|
+
// FORMALIZE.misc.add_placeholder
|
140
|
+
add_placeholder: function() {
|
141
|
+
if (PLACEHOLDER_SUPPORTED || !$$('[placeholder]').length) {
|
142
|
+
// Exit if placeholder is supported natively,
|
143
|
+
// or if page does not have any placeholder.
|
144
|
+
return;
|
145
|
+
}
|
146
|
+
|
147
|
+
$$('[placeholder]').each(function(el) {
|
148
|
+
var text = el.get('placeholder');
|
149
|
+
|
150
|
+
if (!el.value || el.value === text) {
|
151
|
+
el.set('value', text).addClass('placeholder_text');
|
152
|
+
}
|
153
|
+
});
|
154
|
+
}
|
155
|
+
}
|
156
|
+
};
|
157
|
+
// Alias window, document.
|
158
|
+
})(this, this.document);
|
159
|
+
|
160
|
+
// Automatically calls all functions in FORMALIZE.init
|
161
|
+
$(document).addEvent('domready', function() {
|
162
|
+
FORMALIZE.go();
|
163
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
var FORMALIZE=(function(f,b,g){var e="placeholder" in b.createElement("input");var c="autofocus" in b.createElement("input");var d="webkitAppearance" in b.createElement("select").style;var a=Browser.ie6;var h=Browser.ie7;return{go:function(){for(var j in FORMALIZE.init){FORMALIZE.init[j]();}},init:{detect_webkit:function(){if(!d){return;}$$("html")[0].addClass("is_webkit");},full_input_size:function(){if(!h||!$$("textarea, input.input_full").length){return;}$$("textarea, input.input_full").each(function(i){new Element("span.input_full_wrap").wraps(i);});},ie6_skin_inputs:function(){if(!a||!$$("input, select, textarea").length){return;}var i=/button|submit|reset/;var j=/date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;$$("input").each(function(k){if(k.getAttribute("type").match(i)){k.addClass("ie6_button");if(k.disabled){k.addClass("ie6_button_disabled");}}else{if(k.getAttribute("type").match(j)){k.addClass("ie6_input");if(k.disabled){k.addClass("ie6_input_disabled");}}}});$$("textarea, select").each(function(k){if(k.disabled){k.addClass("ie6_input_disabled");}});},autofocus:function(){if(c||!$$("[autofocus]").length){return;}$$("[autofocus]")[0].focus();},placeholder:function(){if(e||!$$("[placeholder]").length){return;}FORMALIZE.misc.add_placeholder();$$("[placeholder]").each(function(i){var j=i.get("placeholder");i.addEvents({focus:function(){if(i.value===j){i.set("value","").removeClass("placeholder_text");}},blur:function(){FORMALIZE.misc.add_placeholder();}});i.getParent("form").addEvents({submit:function(){if(i.value===j){i.set("value","").removeClass("placeholder_text");}},reset:function(){setTimeout(FORMALIZE.misc.add_placeholder,50);}});});}},misc:{add_placeholder:function(){if(e||!$$("[placeholder]").length){return;}$$("[placeholder]").each(function(i){var j=i.get("placeholder");if(!i.value||i.value===j){i.set("value",j).addClass("placeholder_text");}});}}};})(this,this.document);$(document).addEvent("domready",function(){FORMALIZE.go();});
|
Binary file
|
@@ -0,0 +1,18 @@
|
|
1
|
+
description "Teach your forms some manners."
|
2
|
+
|
3
|
+
help %Q{
|
4
|
+
To install, use the formalize pattern:
|
5
|
+
|
6
|
+
Ensure formalize is in your config.rb (this will be done for you automatically if you require it on project creation)
|
7
|
+
|
8
|
+
require 'compass_formalize'
|
9
|
+
|
10
|
+
Next run the formalize pattern and follow the instructions.
|
11
|
+
|
12
|
+
compass install formalize/formalize
|
13
|
+
|
14
|
+
Please see the Formalize website for documentation:
|
15
|
+
|
16
|
+
http://formalize.me/
|
17
|
+
}
|
18
|
+
|
Binary file
|
Binary file
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Make sure you list all the project template files here in the manifest.
|
2
|
+
discover :all
|
3
|
+
|
4
|
+
description "Teach your forms some manners."
|
5
|
+
|
6
|
+
help %Q{
|
7
|
+
Please see the Formalize website for documentation:
|
8
|
+
|
9
|
+
http://formalize.me/
|
10
|
+
}
|
11
|
+
|
12
|
+
welcome_message %Q{
|
13
|
+
|
14
|
+
Formalize assets have been copied to the proper asset folders
|
15
|
+
based on your Compass configuration.
|
16
|
+
|
17
|
+
Usage:
|
18
|
+
|
19
|
+
If you're using SCSS syntax, in your stylesheet:
|
20
|
+
|
21
|
+
@import "formalize";
|
22
|
+
|
23
|
+
or if you're using indented syntax
|
24
|
+
|
25
|
+
@import "formalize"
|
26
|
+
|
27
|
+
In your HTML markup, include the JavaScript implementation of
|
28
|
+
your choice:
|
29
|
+
|
30
|
+
// a jQuery example
|
31
|
+
<script src="/javascripts/jquery.formalize.js"></script>
|
32
|
+
|
33
|
+
Please see the Formalize website for documentation:
|
34
|
+
|
35
|
+
http://formalize.me/
|
36
|
+
}
|
37
|
+
|
@@ -0,0 +1,171 @@
|
|
1
|
+
//
|
2
|
+
// Note: This file depends on the Prototype library.
|
3
|
+
//
|
4
|
+
|
5
|
+
// Module pattern:
|
6
|
+
// http://yuiblog.com/blog/2007/06/12/module-pattern/
|
7
|
+
var FORMALIZE = (function(window, document, undefined) {
|
8
|
+
// Private constants.
|
9
|
+
var PLACEHOLDER_SUPPORTED = 'placeholder' in document.createElement('input');
|
10
|
+
var AUTOFOCUS_SUPPORTED = 'autofocus' in document.createElement('input');
|
11
|
+
var WEBKIT = 'webkitAppearance' in document.createElement('select').style;
|
12
|
+
var IE6 = IE(6);
|
13
|
+
var IE7 = IE(7);
|
14
|
+
|
15
|
+
// Internet Explorer detection.
|
16
|
+
function IE(version) {
|
17
|
+
var b = document.createElement('b');
|
18
|
+
b.innerHTML = '<!--[if IE ' + version + ']><br><![endif]-->';
|
19
|
+
return !!b.getElementsByTagName('br').length;
|
20
|
+
}
|
21
|
+
|
22
|
+
// Expose innards of FORMALIZE.
|
23
|
+
return {
|
24
|
+
// FORMALIZE.go
|
25
|
+
go: function() {
|
26
|
+
for (var i in FORMALIZE.init) {
|
27
|
+
FORMALIZE.init[i]();
|
28
|
+
}
|
29
|
+
},
|
30
|
+
// FORMALIZE.init
|
31
|
+
init: {
|
32
|
+
// FORMALIZE.init.detect_webkit
|
33
|
+
detect_webkit: function() {
|
34
|
+
if (!WEBKIT) {
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Tweaks for Safari + Chrome.
|
39
|
+
$$('html')[0].addClassName('is_webkit');
|
40
|
+
},
|
41
|
+
// FORMALIZE.init.full_input_size
|
42
|
+
full_input_size: function() {
|
43
|
+
if (!IE7 || !$$('textarea, input.input_full').length) {
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
|
47
|
+
// This fixes width: 100% on <textarea> and class="input_full".
|
48
|
+
// It ensures that form elements don't go wider than container.
|
49
|
+
$$('textarea, input.input_full').each(function(el) {
|
50
|
+
Element.wrap(el, 'span', {'class': 'input_full_wrap'});
|
51
|
+
});
|
52
|
+
},
|
53
|
+
// FORMALIZE.init.ie6_skin_inputs
|
54
|
+
ie6_skin_inputs: function() {
|
55
|
+
// Test for Internet Explorer 6.
|
56
|
+
if (!IE6 || !$$('input, select, textarea').length) {
|
57
|
+
// Exit if the browser is not IE6,
|
58
|
+
// or if no form elements exist.
|
59
|
+
return;
|
60
|
+
}
|
61
|
+
|
62
|
+
// For <input type="submit" />, etc.
|
63
|
+
var button_regex = /button|submit|reset/;
|
64
|
+
|
65
|
+
// For <input type="text" />, etc.
|
66
|
+
var type_regex = /date|datetime|datetime-local|email|month|number|password|range|search|tel|text|time|url|week/;
|
67
|
+
|
68
|
+
$$('input').each(function(el) {
|
69
|
+
// Is it a button?
|
70
|
+
if (el.getAttribute('type').match(button_regex)) {
|
71
|
+
el.addClassName('ie6_button');
|
72
|
+
|
73
|
+
/* Is it disabled? */
|
74
|
+
if (el.disabled) {
|
75
|
+
el.addClassName('ie6_button_disabled');
|
76
|
+
}
|
77
|
+
}
|
78
|
+
// Or is it a textual input?
|
79
|
+
else if (el.getAttribute('type').match(type_regex)) {
|
80
|
+
el.addClassName('ie6_input');
|
81
|
+
|
82
|
+
/* Is it disabled? */
|
83
|
+
if (el.disabled) {
|
84
|
+
el.addClassName('ie6_input_disabled');
|
85
|
+
}
|
86
|
+
}
|
87
|
+
});
|
88
|
+
|
89
|
+
$$('textarea, select').each(function(el) {
|
90
|
+
/* Is it disabled? */
|
91
|
+
if (el.disabled) {
|
92
|
+
el.addClassName('ie6_input_disabled');
|
93
|
+
}
|
94
|
+
});
|
95
|
+
},
|
96
|
+
// FORMALIZE.init.autofocus
|
97
|
+
autofocus: function() {
|
98
|
+
if (AUTOFOCUS_SUPPORTED || !$$('[autofocus]').length) {
|
99
|
+
return;
|
100
|
+
}
|
101
|
+
|
102
|
+
$$('[autofocus]')[0].focus();
|
103
|
+
},
|
104
|
+
// FORMALIZE.init.placeholder
|
105
|
+
placeholder: function() {
|
106
|
+
if (PLACEHOLDER_SUPPORTED || !$$('[placeholder]').length) {
|
107
|
+
// Exit if placeholder is supported natively,
|
108
|
+
// or if page does not have any placeholder.
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
|
112
|
+
FORMALIZE.misc.add_placeholder();
|
113
|
+
|
114
|
+
$$('[placeholder]').each(function(el) {
|
115
|
+
var text = el.getAttribute('placeholder');
|
116
|
+
var form = el.up('form');
|
117
|
+
|
118
|
+
el.observe('focus', function() {
|
119
|
+
if (el.value === text) {
|
120
|
+
el.value = '';
|
121
|
+
el.removeClassName('placeholder_text');
|
122
|
+
}
|
123
|
+
});
|
124
|
+
|
125
|
+
el.observe('blur', function() {
|
126
|
+
FORMALIZE.misc.add_placeholder();
|
127
|
+
});
|
128
|
+
|
129
|
+
// Prevent <form> from accidentally
|
130
|
+
// submitting the placeholder text.
|
131
|
+
form.observe('submit', function() {
|
132
|
+
if (el.value === text) {
|
133
|
+
el.value = '';
|
134
|
+
el.removeClassName('placeholder_text');
|
135
|
+
}
|
136
|
+
});
|
137
|
+
|
138
|
+
form.observe('reset', function() {
|
139
|
+
setTimeout(FORMALIZE.misc.add_placeholder, 50);
|
140
|
+
});
|
141
|
+
});
|
142
|
+
}
|
143
|
+
},
|
144
|
+
// FORMALIZE.misc
|
145
|
+
misc: {
|
146
|
+
// FORMALIZE.misc.add_placeholder
|
147
|
+
add_placeholder: function() {
|
148
|
+
if (PLACEHOLDER_SUPPORTED || !$$('[placeholder]').length) {
|
149
|
+
// Exit if placeholder is supported natively,
|
150
|
+
// or if page does not have any placeholder.
|
151
|
+
return;
|
152
|
+
}
|
153
|
+
|
154
|
+
$$('[placeholder]').each(function(el) {
|
155
|
+
var text = el.getAttribute('placeholder');
|
156
|
+
|
157
|
+
if (!el.value || el.value === text) {
|
158
|
+
el.value = text;
|
159
|
+
el.addClassName('placeholder_text');
|
160
|
+
}
|
161
|
+
});
|
162
|
+
}
|
163
|
+
}
|
164
|
+
};
|
165
|
+
// Alias window, document.
|
166
|
+
})(this, this.document);
|
167
|
+
|
168
|
+
// Automatically calls all functions in FORMALIZE.init
|
169
|
+
$(document).observe('dom:loaded', function() {
|
170
|
+
FORMALIZE.go();
|
171
|
+
});
|