typus 3.1.0.rc14 → 3.1.0.rc15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. data/.gitmodules +3 -0
  2. data/README.md +10 -14
  3. data/Rakefile +7 -5
  4. data/app/assets/javascripts/typus.js +1 -0
  5. data/app/assets/javascripts/typus/jquery.application.js +0 -2
  6. data/app/assets/stylesheets/typus.css +13 -1
  7. data/app/assets/stylesheets/typus/account.css +53 -0
  8. data/app/assets/stylesheets/typus/actions.css +11 -0
  9. data/app/assets/stylesheets/typus/content.css +92 -0
  10. data/app/assets/stylesheets/typus/defaults.css +31 -0
  11. data/app/assets/stylesheets/typus/errors.css +33 -0
  12. data/app/assets/stylesheets/typus/footer.css +8 -0
  13. data/app/assets/stylesheets/typus/forms.css +52 -0
  14. data/app/assets/stylesheets/typus/hacks.css +20 -0
  15. data/app/assets/stylesheets/typus/header.css +55 -0
  16. data/app/assets/stylesheets/typus/layout.css +4 -0
  17. data/app/assets/stylesheets/typus/pagination.css +34 -8
  18. data/app/assets/stylesheets/typus/sidebar.css +23 -0
  19. data/app/assets/stylesheets/typus/tables.css +47 -0
  20. data/app/helpers/admin/base_helper.rb +1 -1
  21. data/app/helpers/admin/resources/data_types/belongs_to_helper.rb +1 -0
  22. data/app/helpers/admin/resources/data_types/tree_helper.rb +1 -0
  23. data/app/helpers/admin/resources/display_helper.rb +1 -1
  24. data/app/helpers/admin/resources/form_helper.rb +1 -0
  25. data/app/helpers/admin/resources_helper.rb +3 -5
  26. data/app/views/admin/account/forgot_password.html.erb +7 -1
  27. data/app/views/admin/base/user_guide.html.erb +61 -57
  28. data/app/views/admin/dashboard/show.html.erb +6 -16
  29. data/app/views/admin/dashboard/widgets/_applications.html.erb +31 -0
  30. data/app/views/admin/dashboard/widgets/_models.html.erb +23 -0
  31. data/app/views/admin/dashboard/widgets/_models_extended.html.erb +25 -0
  32. data/app/views/admin/dashboard/widgets/_resources.html.erb +23 -0
  33. data/app/views/admin/resources/_actions.html.erb +23 -0
  34. data/app/views/admin/resources/edit.html.erb +26 -20
  35. data/app/views/admin/resources/edit/_actions.html.erb +7 -0
  36. data/app/views/admin/resources/edit/_rencently_edited.html.erb +8 -0
  37. data/app/views/admin/resources/index.html.erb +42 -32
  38. data/app/views/admin/resources/new.html.erb +16 -8
  39. data/app/views/admin/resources/show.html.erb +22 -14
  40. data/app/views/admin/session/new.html.erb +9 -1
  41. data/app/views/admin/templates/_belongs_to.html.erb +1 -1
  42. data/app/views/admin/templates/_belongs_to_with_autocomplete.html.erb +1 -1
  43. data/app/views/admin/templates/_boolean.html.erb +1 -1
  44. data/app/views/admin/templates/_date.html.erb +1 -1
  45. data/app/views/admin/templates/_datetime.html.erb +1 -1
  46. data/app/views/admin/templates/_dragonfly.html.erb +1 -1
  47. data/app/views/admin/templates/_paperclip.html.erb +1 -1
  48. data/app/views/admin/templates/_password.html.erb +1 -1
  49. data/app/views/admin/templates/_selector.html.erb +1 -1
  50. data/app/views/admin/templates/_string.html.erb +1 -1
  51. data/app/views/admin/templates/_string_with_preview.html.erb +1 -1
  52. data/app/views/admin/templates/_text.html.erb +1 -1
  53. data/app/views/admin/templates/_text_with_ckeditor.html.erb +16 -2
  54. data/app/views/admin/templates/_text_with_ckeditor_and_assets.html.erb +16 -2
  55. data/app/views/admin/templates/_time.html.erb +1 -1
  56. data/app/views/admin/templates/_tree.html.erb +1 -1
  57. data/app/views/helpers/admin/resources/_sidebar.html.erb +36 -12
  58. data/app/views/helpers/admin/resources/_table.html.erb +5 -3
  59. data/app/views/layouts/admin/base.html.erb +16 -29
  60. data/app/views/layouts/admin/headless.html.erb +1 -1
  61. data/app/views/layouts/admin/session.html.erb +6 -0
  62. data/lib/support/fake_user.rb +2 -8
  63. data/lib/typus.rb +6 -2
  64. data/lib/typus/authentication/devise.rb +19 -0
  65. data/lib/typus/controller/headless.rb +1 -1
  66. data/lib/typus/orm/active_record/admin_user_v1.rb +15 -1
  67. data/lib/typus/orm/active_record/admin_user_v2.rb +16 -2
  68. data/lib/typus/orm/active_record/user/class_methods.rb +2 -3
  69. data/lib/typus/orm/active_record/user/instance_methods.rb +5 -2
  70. data/lib/typus/orm/active_record/user/instance_methods_more.rb +19 -0
  71. data/lib/typus/version.rb +1 -1
  72. data/vendor/assets/adapt/css/1200.css +357 -0
  73. data/vendor/assets/adapt/css/1200.min.css +1 -0
  74. data/vendor/assets/adapt/css/1560.css +357 -0
  75. data/vendor/assets/adapt/css/1560.min.css +1 -0
  76. data/vendor/assets/adapt/css/720.css +357 -0
  77. data/vendor/assets/adapt/css/720.min.css +1 -0
  78. data/vendor/assets/adapt/css/960.css +357 -0
  79. data/vendor/assets/adapt/css/960.min.css +1 -0
  80. data/vendor/assets/adapt/css/fluid.css +345 -0
  81. data/vendor/assets/adapt/css/fluid.min.css +1 -0
  82. data/vendor/assets/adapt/css/master.css +120 -0
  83. data/vendor/assets/adapt/css/mobile.css +20 -0
  84. data/vendor/assets/adapt/css/mobile.min.css +1 -0
  85. data/vendor/assets/adapt/css/reset.css +202 -0
  86. data/vendor/assets/adapt/css/text.css +81 -0
  87. data/vendor/assets/adapt/images/h1.png +0 -0
  88. data/vendor/assets/adapt/js/adapt.js +135 -0
  89. data/vendor/assets/adapt/js/adapt.min.js +1 -0
  90. data/vendor/assets/formalize/.gitignore +1 -0
  91. data/vendor/assets/formalize/css/_formalize.sass +332 -0
  92. data/vendor/assets/formalize/css/demo.css +47 -0
  93. data/vendor/assets/formalize/css/formalize.css +395 -0
  94. data/vendor/assets/formalize/css/reset.css +202 -0
  95. data/vendor/assets/formalize/css/text.css +81 -0
  96. data/vendor/assets/formalize/images/button.png +0 -0
  97. data/vendor/assets/formalize/images/select_arrow.gif +0 -0
  98. data/vendor/assets/formalize/js/dojo.formalize.js +166 -0
  99. data/vendor/assets/formalize/js/dojo.formalize.min.js +1 -0
  100. data/vendor/assets/formalize/js/extjs.formalize.js +163 -0
  101. data/vendor/assets/formalize/js/extjs.formalize.min.js +1 -0
  102. data/vendor/assets/formalize/js/jquery.formalize.js +150 -0
  103. data/vendor/assets/formalize/js/jquery.formalize.min.js +1 -0
  104. data/vendor/assets/formalize/js/mootools.formalize.js +155 -0
  105. data/vendor/assets/formalize/js/mootools.formalize.min.js +1 -0
  106. data/vendor/assets/formalize/js/prototype.formalize.js +163 -0
  107. data/vendor/assets/formalize/js/prototype.formalize.min.js +1 -0
  108. data/vendor/assets/formalize/js/yui.formalize.js +152 -0
  109. data/vendor/assets/formalize/js/yui.formalize.min.js +1 -0
  110. metadata +79 -47
  111. data/app/assets/stylesheets/typus/screen.css +0 -340
  112. data/app/helpers/admin/dashboard_helper.rb +0 -8
  113. data/app/views/admin/dashboard/_applications.html.erb +0 -21
  114. data/config/locales/typus.ca.models.yml +0 -17
  115. data/config/locales/typus.ca.yml +0 -80
  116. data/config/locales/typus.de.models.yml +0 -17
  117. data/config/locales/typus.de.yml +0 -79
  118. data/config/locales/typus.el.models.yml +0 -17
  119. data/config/locales/typus.el.yml +0 -81
  120. data/config/locales/typus.es.models.yml +0 -18
  121. data/config/locales/typus.es.yml +0 -81
  122. data/config/locales/typus.fr.models.yml +0 -18
  123. data/config/locales/typus.fr.yml +0 -85
  124. data/config/locales/typus.hu.models.yml +0 -17
  125. data/config/locales/typus.hu.yml +0 -79
  126. data/config/locales/typus.it.models.yml +0 -18
  127. data/config/locales/typus.it.yml +0 -88
  128. data/config/locales/typus.locale.models.yml.template +0 -17
  129. data/config/locales/typus.locale.yml.template +0 -80
  130. data/config/locales/typus.pt-BR.models.yml +0 -17
  131. data/config/locales/typus.pt-BR.yml +0 -79
  132. data/config/locales/typus.pt-PT.models.yml +0 -17
  133. data/config/locales/typus.pt-PT.yml +0 -83
  134. data/config/locales/typus.ru.models.yml +0 -17
  135. data/config/locales/typus.ru.yml +0 -79
  136. data/config/locales/typus.zh-CN.models.yml +0 -17
  137. data/config/locales/typus.zh-CN.yml +0 -78
@@ -0,0 +1 @@
1
+ (function(a,b,c,d){function o(){clearInterval(g),g=setInterval(n,100)}function n(){clearInterval(g);var c=a.innerWidth||b.documentElement.clientWidth||b.body.clientWidth||0,h,n,o,p,q,r,s=k,t=k-1;while(s--){h=j[s].split("="),n=h[0],r=h[1]?h[1].replace(/\s/g,""):s,q=n.match("to"),o=q?parseInt(n.split("to")[0],10):parseInt(n,10),p=q?parseInt(n.split("to")[1],10):d;if(!p&&s===t&&c>o||c>o&&c<=p){e=i+r;break}e=""}f?f!==e&&m(s,c):(m(s,c),i&&(b.head||b.getElementsByTagName("head")[0]).appendChild(l))}function m(a,b){l.href=e,f=e,h&&h(a,b)}if(!!c){var e,f,g,h=typeof c.callback=="function"?c.callback:d,i=c.path?c.path:"",j=c.range,k=j.length,l=b.createElement("link");l.rel="stylesheet",n(),c.dynamic&&(a.addEventListener?a.addEventListener("resize",o,!1):a.attachEvent?a.attachEvent("onresize",o):a.onresize=o)}})(this,this.document,ADAPT_CONFIG)
@@ -0,0 +1 @@
1
+ .DS_Store
@@ -0,0 +1,332 @@
1
+ // Note: This file is dependent on Sass and Compass.
2
+ // Sass = http://sass-lang.com
3
+ // Compass = http://compass-style.org
4
+
5
+ // `Widths
6
+ //----------------------------------------------------------------------------------------------------
7
+ .input_tiny
8
+ width: 50px
9
+
10
+ .input_small
11
+ width: 100px
12
+
13
+ .input_medium
14
+ width: 150px
15
+
16
+ .input_large
17
+ width: 200px
18
+
19
+ .input_xlarge
20
+ width: 250px
21
+
22
+ .input_xxlarge
23
+ width: 300px
24
+
25
+ .input_full
26
+ width: 100%
27
+
28
+ // Added via JS to <textarea> and class="input-full".
29
+ // Applies only to IE7. Other browsers don't need it.
30
+ .input_full_wrap
31
+ display: block
32
+ padding-right: 8px
33
+
34
+ // `UI Consistency
35
+ //----------------------------------------------------------------------------------------------------
36
+
37
+ ::-moz-focus-inner
38
+ border: 0
39
+ padding: 0
40
+
41
+ input[type="search"]::-webkit-search-decoration
42
+ display: none
43
+
44
+ input,
45
+ button,
46
+ select,
47
+ textarea
48
+ margin: 0
49
+ vertical-align: middle
50
+
51
+ input[type="radio"],
52
+ input[type="checkbox"]
53
+ position: relative
54
+ vertical-align: top
55
+ top: 3px
56
+ // IE8, IE9, IE10
57
+ top: 0\0
58
+ // IE7
59
+ *top: -3px
60
+
61
+ // iPad
62
+ @media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 1024px)
63
+ input[type="radio"],
64
+ input[type="checkbox"]
65
+ vertical-align: baseline
66
+ top: 2px
67
+
68
+ // iPhone 3
69
+ @media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 480px)
70
+ input[type="radio"],
71
+ input[type="checkbox"]
72
+ vertical-align: baseline
73
+ top: 0
74
+
75
+ // iPhone 4
76
+ @media (-webkit-min-device-pixel-ratio: 2) and (max-device-width: 480px)
77
+ input[type="radio"],
78
+ input[type="checkbox"]
79
+ vertical-align: baseline
80
+ top: 0
81
+
82
+ button,
83
+ input[type="reset"],
84
+ input[type="submit"],
85
+ input[type="button"]
86
+ -webkit-appearance: none
87
+ +border-radius(4px)
88
+ +background-clip(padding-box)
89
+ background: #ddd url(../images/button.png) repeat-x
90
+ +background(linear-gradient(color-stops(#fff, #ddd)))
91
+ border: 1px solid
92
+ border-color: #ddd #bbb #999
93
+ cursor: pointer
94
+ color: #333
95
+ // Helvetica Neue present, because it works better
96
+ // for line-height on buttons than Arial, on OS X.
97
+ font: bold 12px/1.3 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif
98
+ outline: 0
99
+ overflow: visible
100
+ padding: 3px 10px
101
+ text-shadow: #fff 0 1px 1px
102
+ width: auto
103
+ // IE7
104
+ *padding-top: 2px
105
+ *padding-bottom: 0px
106
+
107
+ button
108
+ // IE7
109
+ *padding-top: 1px
110
+ *padding-bottom: 1px
111
+
112
+ textarea,
113
+ select,
114
+ input[type="date"],
115
+ input[type="datetime"],
116
+ input[type="datetime-local"],
117
+ input[type="email"],
118
+ input[type="month"],
119
+ input[type="number"],
120
+ input[type="password"],
121
+ input[type="search"],
122
+ input[type="tel"],
123
+ input[type="text"],
124
+ input[type="time"],
125
+ input[type="url"],
126
+ input[type="week"]
127
+ -webkit-appearance: none
128
+ -moz-border-radius: 0
129
+ -webkit-border-radius: 0
130
+ border-radius: 0
131
+ -webkit-box-sizing: border-box
132
+ -moz-box-sizing: border-box
133
+ box-sizing: border-box
134
+ -moz-background-clip: padding
135
+ -webkit-background-clip: padding
136
+ background-clip: padding-box
137
+ background-color: #fff
138
+ border: 1px solid
139
+ border-color: #848484 #c1c1c1 #e1e1e1
140
+ color: #000
141
+ outline: 0
142
+ padding: 2px 3px
143
+ font-size: 13px
144
+ // Leaving out Helvetica Neue, to not throw off size="..."
145
+ // on inputs. Arial is more reliable, on Windows and OS X.
146
+ font-family: Arial, 'Liberation Sans', FreeSans, sans-serif
147
+ height: 1.8em
148
+ // IE7
149
+ *padding-top: 2px
150
+ *padding-bottom: 1px
151
+ *height: auto
152
+
153
+ // Separate rule for Firefox.
154
+ // Separate rule for IE, too.
155
+ // Cannot stack with WebKit's.
156
+ ::-webkit-input-placeholder
157
+ color: #888
158
+
159
+ input:-moz-placeholder,
160
+ textarea:-moz-placeholder
161
+ color: #888
162
+
163
+ input.placeholder-text,
164
+ textarea.placeholder-text
165
+ color: #888
166
+
167
+ \:invalid
168
+ // Suppress red glow that Firefox
169
+ // adds to form fields by default,
170
+ // even when user is still typing.
171
+ -moz-box-shadow: none
172
+ -webkit-box-shadow: none
173
+ box-shadow: none
174
+
175
+ button:focus,
176
+ button:active,
177
+ input:focus,
178
+ input:active,
179
+ select:focus,
180
+ select:active,
181
+ textarea:focus,
182
+ textarea:active
183
+ -moz-box-shadow: #06f 0 0 7px
184
+ -webkit-box-shadow: #06f 0 0 7px
185
+ box-shadow: #06f 0 0 7px
186
+ // for Opera
187
+ z-index: 1
188
+
189
+ input[type="file"]:focus,
190
+ input[type="file"]:active,
191
+ input[type="radio"]:focus,
192
+ input[type="radio"]:active,
193
+ input[type="checkbox"]:focus,
194
+ input[type="checkbox"]:active
195
+ -moz-box-shadow: none
196
+ -webkit-box-shadow: none
197
+ box-shadow: none
198
+
199
+ select[disabled],
200
+ textarea[disabled],
201
+ input[type="date"][disabled],
202
+ input[type="datetime"][disabled],
203
+ input[type="datetime-local"][disabled],
204
+ input[type="email"][disabled],
205
+ input[type="month"][disabled],
206
+ input[type="number"][disabled],
207
+ input[type="password"][disabled],
208
+ input[type="search"][disabled],
209
+ input[type="tel"][disabled],
210
+ input[type="text"][disabled],
211
+ input[type="time"][disabled],
212
+ input[type="url"][disabled],
213
+ input[type="week"][disabled]
214
+ background-color: #eee
215
+
216
+ button[disabled],
217
+ input[disabled],
218
+ select[disabled],
219
+ select[disabled] option,
220
+ select[disabled] optgroup,
221
+ textarea[disabled]
222
+ -moz-box-shadow: none
223
+ -webkit-box-shadow: none
224
+ box-shadow: none
225
+ -webkit-user-select: none
226
+ -moz-user-select: none
227
+ user-select: none
228
+ color: #888
229
+ cursor: default
230
+
231
+ textarea,
232
+ select[size],
233
+ select[multiple]
234
+ height: auto
235
+
236
+ // Tweaks for Safari + Chrome.
237
+ @media (-webkit-min-device-pixel-ratio: 0)
238
+ select
239
+ background-image: url(../images/select_arrow.gif)
240
+ background-repeat: no-repeat
241
+ background-position: right center
242
+ padding-right: 20px
243
+ select[size],
244
+ select[multiple]
245
+ background-image: none
246
+ padding: 0
247
+ ::-webkit-validation-bubble-message
248
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 5px
249
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #666), color-stop(1, #000))
250
+ border: 1px solid
251
+ border-color: #747474 #5e5e5e #4f4f4f
252
+ color: #fff
253
+ font: 11px/1 'Lucida Grande', Arial, 'Liberation Sans', FreeSans, sans-serif
254
+ padding: 15px 15px 17px
255
+ text-shadow: #000 0 0 1px
256
+ ::-webkit-validation-bubble-arrow,
257
+ ::-webkit-validation-bubble-top-outer-arrow,
258
+ ::-webkit-validation-bubble-top-inner-arrow
259
+ display: none
260
+
261
+ textarea
262
+ min-height: 40px
263
+ overflow: auto
264
+ resize: vertical
265
+ width: 100%
266
+
267
+ optgroup
268
+ color: #000
269
+ font-style: normal
270
+ font-weight: normal
271
+
272
+ // `IE6
273
+ //----------------------------------------------------------------------------------------------------
274
+
275
+ // Everything below this line is for IE6.
276
+ // Delete it if you don't support it! :)
277
+
278
+ // Classes are added dynamically via JS,
279
+ // because IE6 doesn't support attribute
280
+ // selectors: .ie6_button, .ie6_input, etc.
281
+
282
+ // Note: These style rules are somewhat
283
+ // duplicated because IE6 bombs out when
284
+ // it sees attribute selectors. Example:
285
+
286
+ // .ie6_button {
287
+ // This works in IE6.
288
+ // }
289
+
290
+ // .ie6_button,
291
+ // input[type=submit] {
292
+ // This doesn't work.
293
+ // }
294
+
295
+ .ie6_button,
296
+ * html button
297
+ background: #ddd url(../images/button.png) repeat-x
298
+ border: 1px solid
299
+ border-color: #ddd #bbb #999
300
+ cursor: pointer
301
+ color: #333
302
+ font: bold 12px/1.2 Arial, sans-serif
303
+ padding: 2px 10px 0px
304
+ overflow: visible
305
+ width: auto
306
+
307
+ * html button
308
+ padding-top: 1px
309
+ padding-bottom: 1px
310
+
311
+ .ie6_input,
312
+ * html textarea,
313
+ * html select
314
+ background: #fff
315
+ border: 1px solid
316
+ border-color: #848484 #c1c1c1 #e1e1e1
317
+ color: #000
318
+ padding: 2px 3px 1px
319
+ font-size: 13px
320
+ font-family: Arial, sans-serif
321
+ vertical-align: top
322
+
323
+ * html select
324
+ margin-top: 1px
325
+
326
+ .placeholder_text,
327
+ .ie6_input_disabled,
328
+ .ie6_button_disabled
329
+ color: #888
330
+
331
+ .ie6_input_disabled
332
+ background: #eee
@@ -0,0 +1,47 @@
1
+ @import 'reset.css';
2
+ @import 'text.css';
3
+ @import 'formalize.css';
4
+
5
+ /* `Body
6
+ ----------------------------------------------------------------------------------------------------*/
7
+
8
+ body {
9
+ background: #fff;
10
+ color: #000;
11
+ }
12
+
13
+ /* `Wrapper
14
+ ----------------------------------------------------------------------------------------------------*/
15
+
16
+ #wrapper {
17
+ margin: 0 auto;
18
+ padding: 20px;
19
+ width: 800px;
20
+ }
21
+
22
+ /* `Errors
23
+ ----------------------------------------------------------------------------------------------------*/
24
+
25
+ label.error {
26
+ background: #ffc;
27
+ color: #c00;
28
+ font-style: italic;
29
+ }
30
+
31
+ input.error,
32
+ select.error,
33
+ textarea.error {
34
+ background-color: #fee;
35
+ }
36
+
37
+ /* `Table Layout
38
+ ----------------------------------------------------------------------------------------------------*/
39
+
40
+ .horiz {
41
+ margin-top: -20px;
42
+ margin-left: -20px;
43
+ }
44
+
45
+ .horiz td {
46
+ padding: 20px 0 0 20px;
47
+ }
@@ -0,0 +1,395 @@
1
+ /* `Widths
2
+ ----------------------------------------------------------------------------------------------------*/
3
+
4
+ .input_tiny {
5
+ width: 50px;
6
+ }
7
+
8
+ .input_small {
9
+ width: 100px;
10
+ }
11
+
12
+ .input_medium {
13
+ width: 150px;
14
+ }
15
+
16
+ .input_large {
17
+ width: 200px;
18
+ }
19
+
20
+ .input_xlarge {
21
+ width: 250px;
22
+ }
23
+
24
+ .input_xxlarge {
25
+ width: 300px;
26
+ }
27
+
28
+ .input_full {
29
+ width: 100%;
30
+ }
31
+
32
+ /*
33
+ Added via JS to <textarea> and class="input_full".
34
+ Applies only to IE7. Other browsers don't need it.
35
+ */
36
+ .input_full_wrap {
37
+ display: block;
38
+ padding-right: 8px;
39
+ }
40
+
41
+ /* `UI Consistency
42
+ ----------------------------------------------------------------------------------------------------*/
43
+
44
+ ::-moz-focus-inner {
45
+ border: 0;
46
+ padding: 0;
47
+ }
48
+
49
+ input[type="search"]::-webkit-search-decoration {
50
+ display: none;
51
+ }
52
+
53
+ input,
54
+ button,
55
+ select,
56
+ textarea {
57
+ margin: 0;
58
+ vertical-align: middle;
59
+ }
60
+
61
+ input[type="radio"],
62
+ input[type="checkbox"] {
63
+ position: relative;
64
+ vertical-align: top;
65
+ top: 3px;
66
+ /* IE8, IE9, IE10 */
67
+ top: 0\0;
68
+ /* IE7 */
69
+ *top: -3px;
70
+ }
71
+
72
+ /* iPad */
73
+ @media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 1024px) {
74
+ input[type="radio"],
75
+ input[type="checkbox"] {
76
+ vertical-align: baseline;
77
+ top: 2px;
78
+ }
79
+ }
80
+
81
+ /* iPhone 3 */
82
+ @media (-webkit-min-device-pixel-ratio: 1) and (max-device-width: 480px) {
83
+ input[type="radio"],
84
+ input[type="checkbox"] {
85
+ vertical-align: baseline;
86
+ top: 0;
87
+ }
88
+ }
89
+
90
+ /* iPhone 4 */
91
+ @media (-webkit-min-device-pixel-ratio: 2) and (max-device-width: 480px) {
92
+ input[type="radio"],
93
+ input[type="checkbox"] {
94
+ vertical-align: baseline;
95
+ top: 0;
96
+ }
97
+ }
98
+
99
+ button,
100
+ input[type="reset"],
101
+ input[type="submit"],
102
+ input[type="button"] {
103
+ -webkit-appearance: none;
104
+ -moz-border-radius: 4px;
105
+ -webkit-border-radius: 4px;
106
+ border-radius: 4px;
107
+ -moz-background-clip: padding;
108
+ -webkit-background-clip: padding;
109
+ background-clip: padding-box;
110
+ background: #ddd url(/assets/images/button.png) repeat-x;
111
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #ddd));
112
+ background: -moz-linear-gradient(top center, #fff 0%, #ddd 100%);
113
+ border: 1px solid;
114
+ border-color: #ddd #bbb #999;
115
+ cursor: pointer;
116
+ color: #333;
117
+ /*
118
+ Helvetica Neue present, because it works better
119
+ for line-height on buttons than Arial, on OS X.
120
+ */
121
+ font: bold 12px/1.3 'Helvetica Neue', Arial, 'Liberation Sans', FreeSans, sans-serif;
122
+ outline: 0;
123
+ overflow: visible;
124
+ padding: 3px 10px;
125
+ text-shadow: #fff 0 1px 1px;
126
+ width: auto;
127
+
128
+ /* IE7 */
129
+ *padding-top: 2px;
130
+ *padding-bottom: 0px;
131
+ }
132
+
133
+ button {
134
+ /* IE7 */
135
+ *padding-top: 1px;
136
+ *padding-bottom: 1px;
137
+ }
138
+
139
+ textarea,
140
+ select,
141
+ input[type="date"],
142
+ input[type="datetime"],
143
+ input[type="datetime-local"],
144
+ input[type="email"],
145
+ input[type="month"],
146
+ input[type="number"],
147
+ input[type="password"],
148
+ input[type="search"],
149
+ input[type="tel"],
150
+ input[type="text"],
151
+ input[type="time"],
152
+ input[type="url"],
153
+ input[type="week"] {
154
+ -webkit-appearance: none;
155
+ -moz-border-radius: 0;
156
+ -webkit-border-radius: 0;
157
+ border-radius: 0;
158
+ -webkit-box-sizing: border-box;
159
+ -moz-box-sizing: border-box;
160
+ box-sizing: border-box;
161
+ -moz-background-clip: padding;
162
+ -webkit-background-clip: padding;
163
+ background-clip: padding-box;
164
+ background-color: #fff;
165
+ border: 1px solid;
166
+ border-color: #848484 #c1c1c1 #e1e1e1;
167
+ color: #000;
168
+ outline: 0;
169
+ padding: 2px 3px;
170
+ font-size: 13px;
171
+ /*
172
+ Leaving out Helvetica Neue, to not throw off size="..."
173
+ on inputs. Arial is more reliable, on Windows and OS X.
174
+ */
175
+ font-family: Arial, 'Liberation Sans', FreeSans, sans-serif;
176
+ height: 1.8em;
177
+
178
+ /* IE7 */
179
+ *padding-top: 2px;
180
+ *padding-bottom: 1px;
181
+ *height: auto;
182
+ }
183
+
184
+ /*
185
+ Separate rule for Firefox.
186
+ Separate rule for IE, too.
187
+ Cannot stack with WebKit's.
188
+ */
189
+ ::-webkit-input-placeholder {
190
+ color: #888;
191
+ }
192
+
193
+ input:-moz-placeholder,
194
+ textarea:-moz-placeholder {
195
+ color: #888;
196
+ }
197
+
198
+ input.placeholder_text,
199
+ textarea.placeholder_text {
200
+ color: #888;
201
+ }
202
+
203
+ :invalid {
204
+ /*
205
+ Suppress red glow that Firefox
206
+ adds to form fields by default,
207
+ even when user is still typing.
208
+ */
209
+ -moz-box-shadow: none;
210
+ -webkit-box-shadow: none;
211
+ box-shadow: none;
212
+ }
213
+
214
+ button:focus,
215
+ button:active,
216
+ input:focus,
217
+ input:active,
218
+ select:focus,
219
+ select:active,
220
+ textarea:focus,
221
+ textarea:active {
222
+ -moz-box-shadow: #06f 0 0 7px;
223
+ -webkit-box-shadow: #06f 0 0 7px;
224
+ box-shadow: #06f 0 0 7px;
225
+
226
+ /* for Opera */
227
+ z-index: 1;
228
+ }
229
+
230
+ input[type="file"]:focus,
231
+ input[type="file"]:active,
232
+ input[type="radio"]:focus,
233
+ input[type="radio"]:active,
234
+ input[type="checkbox"]:focus,
235
+ input[type="checkbox"]:active {
236
+ -moz-box-shadow: none;
237
+ -webkit-box-shadow: none;
238
+ box-shadow: none;
239
+ }
240
+
241
+ select[disabled],
242
+ textarea[disabled],
243
+ input[type="date"][disabled],
244
+ input[type="datetime"][disabled],
245
+ input[type="datetime-local"][disabled],
246
+ input[type="email"][disabled],
247
+ input[type="month"][disabled],
248
+ input[type="number"][disabled],
249
+ input[type="password"][disabled],
250
+ input[type="search"][disabled],
251
+ input[type="tel"][disabled],
252
+ input[type="text"][disabled],
253
+ input[type="time"][disabled],
254
+ input[type="url"][disabled],
255
+ input[type="week"][disabled] {
256
+ background-color: #eee;
257
+ }
258
+
259
+ button[disabled],
260
+ input[disabled],
261
+ select[disabled],
262
+ select[disabled] option,
263
+ select[disabled] optgroup,
264
+ textarea[disabled] {
265
+ -moz-box-shadow: none;
266
+ -webkit-box-shadow: none;
267
+ box-shadow: none;
268
+ -webkit-user-select: none;
269
+ -moz-user-select: none;
270
+ user-select: none;
271
+ color: #888;
272
+ cursor: default;
273
+ }
274
+
275
+ textarea,
276
+ select[size],
277
+ select[multiple] {
278
+ height: auto;
279
+ }
280
+
281
+ /* Tweaks for Safari + Chrome. */
282
+ @media (-webkit-min-device-pixel-ratio: 0) {
283
+ select {
284
+ background-image: url(/assets/images/select_arrow.gif);
285
+ background-repeat: no-repeat;
286
+ background-position: right center;
287
+ padding-right: 20px;
288
+ }
289
+
290
+ select[size],
291
+ select[multiple] {
292
+ background-image: none;
293
+ padding: 0;
294
+ }
295
+
296
+ ::-webkit-validation-bubble-message {
297
+ box-shadow: rgba(0, 0, 0, 0.5) 0 0 5px;
298
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #666), color-stop(1, #000));
299
+ border: 1px solid;
300
+ border-color: #747474 #5e5e5e #4f4f4f;
301
+ color: #fff;
302
+ font: 11px/1 'Lucida Grande', Arial, 'Liberation Sans', FreeSans, sans-serif;
303
+ padding: 15px 15px 17px;
304
+ text-shadow: #000 0 0 1px;
305
+ }
306
+
307
+ ::-webkit-validation-bubble-arrow,
308
+ ::-webkit-validation-bubble-top-outer-arrow,
309
+ ::-webkit-validation-bubble-top-inner-arrow {
310
+ display: none;
311
+ }
312
+ }
313
+
314
+ textarea {
315
+ min-height: 40px;
316
+ overflow: auto;
317
+ resize: vertical;
318
+ width: 100%;
319
+ }
320
+
321
+ optgroup {
322
+ color: #000;
323
+ font-style: normal;
324
+ font-weight: normal;
325
+ }
326
+
327
+ /* `IE6
328
+ ----------------------------------------------------------------------------------------------------*/
329
+
330
+ /*
331
+ Everything below this line is for IE6.
332
+ Delete it if you don't support it! :)
333
+
334
+ Classes are added dynamically via JS,
335
+ because IE6 doesn't support attribute
336
+ selectors: .ie6_button, .ie6_input, etc.
337
+
338
+ Note: These style rules are somewhat
339
+ duplicated because IE6 bombs out when
340
+ it sees attribute selectors. Example:
341
+
342
+ .ie6_button {
343
+ This works in IE6.
344
+ }
345
+
346
+ .ie6_button,
347
+ input[type=submit] {
348
+ This doesn't work.
349
+ }
350
+ */
351
+
352
+ .ie6_button,
353
+ * html button {
354
+ background: #ddd url(/assets/images/button.png) repeat-x;
355
+ border: 1px solid;
356
+ border-color: #ddd #bbb #999;
357
+ cursor: pointer;
358
+ color: #333;
359
+ font: bold 12px/1.2 Arial, sans-serif;
360
+ padding: 2px 10px 0px;
361
+ overflow: visible;
362
+ width: auto;
363
+ }
364
+
365
+ * html button {
366
+ padding-top: 1px;
367
+ padding-bottom: 1px;
368
+ }
369
+
370
+ .ie6_input,
371
+ * html textarea,
372
+ * html select {
373
+ background: #fff;
374
+ border: 1px solid;
375
+ border-color: #848484 #c1c1c1 #e1e1e1;
376
+ color: #000;
377
+ padding: 2px 3px 1px;
378
+ font-size: 13px;
379
+ font-family: Arial, sans-serif;
380
+ vertical-align: top;
381
+ }
382
+
383
+ * html select {
384
+ margin-top: 1px;
385
+ }
386
+
387
+ .placeholder_text,
388
+ .ie6_input_disabled,
389
+ .ie6_button_disabled {
390
+ color: #888;
391
+ }
392
+
393
+ .ie6_input_disabled {
394
+ background: #eee;
395
+ }