drink_up_doctor 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +4 -0
  4. data/CODE_OF_CONDUCT.md +32 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +74 -0
  8. data/Rakefile +11 -0
  9. data/bin/console +14 -0
  10. data/bin/setup +7 -0
  11. data/bootstrap-boilerplate/.gitignore +8 -0
  12. data/bootstrap-boilerplate/404.html +25 -0
  13. data/bootstrap-boilerplate/README.md.tt +88 -0
  14. data/bootstrap-boilerplate/_includes/footer.html +18 -0
  15. data/bootstrap-boilerplate/_includes/google_analytics.html +10 -0
  16. data/bootstrap-boilerplate/_includes/head.html +11 -0
  17. data/bootstrap-boilerplate/_includes/header.html +27 -0
  18. data/bootstrap-boilerplate/_includes/index_item.html +5 -0
  19. data/bootstrap-boilerplate/_includes/page_js.html +4 -0
  20. data/bootstrap-boilerplate/_layouts/category_index.html +12 -0
  21. data/bootstrap-boilerplate/_layouts/default.html +22 -0
  22. data/bootstrap-boilerplate/_layouts/page.html +13 -0
  23. data/bootstrap-boilerplate/_layouts/post.html +13 -0
  24. data/bootstrap-boilerplate/_layouts/tag_index.html +14 -0
  25. data/bootstrap-boilerplate/_plugins/category_index.rb +42 -0
  26. data/bootstrap-boilerplate/_plugins/slug_sort.rb +13 -0
  27. data/bootstrap-boilerplate/_plugins/tag_index.rb +41 -0
  28. data/bootstrap-boilerplate/_posts/2015-10-18-post-four.md +17 -0
  29. data/bootstrap-boilerplate/_posts/2015-10-18-post-one.md +12 -0
  30. data/bootstrap-boilerplate/_posts/2015-10-18-post-three.md +20 -0
  31. data/bootstrap-boilerplate/_posts/2015-10-18-post-two.md +16 -0
  32. data/bootstrap-boilerplate/_posts/2015-10-18-welcome.md +8 -0
  33. data/bootstrap-boilerplate/_sass/_bootstrap-compass.scss +9 -0
  34. data/bootstrap-boilerplate/_sass/_bootstrap-mincer.scss +19 -0
  35. data/bootstrap-boilerplate/_sass/_bootstrap-sprockets.scss +9 -0
  36. data/bootstrap-boilerplate/_sass/_bootstrap.scss +56 -0
  37. data/bootstrap-boilerplate/_sass/_my_variables.scss +874 -0
  38. data/bootstrap-boilerplate/_sass/bootstrap/_alerts.scss +73 -0
  39. data/bootstrap-boilerplate/_sass/bootstrap/_badges.scss +68 -0
  40. data/bootstrap-boilerplate/_sass/bootstrap/_breadcrumbs.scss +26 -0
  41. data/bootstrap-boilerplate/_sass/bootstrap/_button-groups.scss +244 -0
  42. data/bootstrap-boilerplate/_sass/bootstrap/_buttons.scss +168 -0
  43. data/bootstrap-boilerplate/_sass/bootstrap/_carousel.scss +269 -0
  44. data/bootstrap-boilerplate/_sass/bootstrap/_close.scss +36 -0
  45. data/bootstrap-boilerplate/_sass/bootstrap/_code.scss +69 -0
  46. data/bootstrap-boilerplate/_sass/bootstrap/_component-animations.scss +37 -0
  47. data/bootstrap-boilerplate/_sass/bootstrap/_dropdowns.scss +216 -0
  48. data/bootstrap-boilerplate/_sass/bootstrap/_forms.scss +611 -0
  49. data/bootstrap-boilerplate/_sass/bootstrap/_glyphicons.scss +307 -0
  50. data/bootstrap-boilerplate/_sass/bootstrap/_grid.scss +84 -0
  51. data/bootstrap-boilerplate/_sass/bootstrap/_input-groups.scss +167 -0
  52. data/bootstrap-boilerplate/_sass/bootstrap/_jumbotron.scss +52 -0
  53. data/bootstrap-boilerplate/_sass/bootstrap/_labels.scss +66 -0
  54. data/bootstrap-boilerplate/_sass/bootstrap/_list-group.scss +130 -0
  55. data/bootstrap-boilerplate/_sass/bootstrap/_media.scss +66 -0
  56. data/bootstrap-boilerplate/_sass/bootstrap/_mixins.scss +40 -0
  57. data/bootstrap-boilerplate/_sass/bootstrap/_modals.scss +150 -0
  58. data/bootstrap-boilerplate/_sass/bootstrap/_navbar.scss +662 -0
  59. data/bootstrap-boilerplate/_sass/bootstrap/_navs.scss +242 -0
  60. data/bootstrap-boilerplate/_sass/bootstrap/_normalize.scss +424 -0
  61. data/bootstrap-boilerplate/_sass/bootstrap/_pager.scss +54 -0
  62. data/bootstrap-boilerplate/_sass/bootstrap/_pagination.scss +89 -0
  63. data/bootstrap-boilerplate/_sass/bootstrap/_panels.scss +271 -0
  64. data/bootstrap-boilerplate/_sass/bootstrap/_popovers.scss +131 -0
  65. data/bootstrap-boilerplate/_sass/bootstrap/_print.scss +101 -0
  66. data/bootstrap-boilerplate/_sass/bootstrap/_progress-bars.scss +87 -0
  67. data/bootstrap-boilerplate/_sass/bootstrap/_responsive-embed.scss +35 -0
  68. data/bootstrap-boilerplate/_sass/bootstrap/_responsive-utilities.scss +179 -0
  69. data/bootstrap-boilerplate/_sass/bootstrap/_scaffolding.scss +161 -0
  70. data/bootstrap-boilerplate/_sass/bootstrap/_tables.scss +234 -0
  71. data/bootstrap-boilerplate/_sass/bootstrap/_theme.scss +291 -0
  72. data/bootstrap-boilerplate/_sass/bootstrap/_thumbnails.scss +38 -0
  73. data/bootstrap-boilerplate/_sass/bootstrap/_tooltip.scss +101 -0
  74. data/bootstrap-boilerplate/_sass/bootstrap/_type.scss +298 -0
  75. data/bootstrap-boilerplate/_sass/bootstrap/_utilities.scss +55 -0
  76. data/bootstrap-boilerplate/_sass/bootstrap/_variables.scss +872 -0
  77. data/bootstrap-boilerplate/_sass/bootstrap/_wells.scss +29 -0
  78. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_alerts.scss +14 -0
  79. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_background-variant.scss +12 -0
  80. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_border-radius.scss +18 -0
  81. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_buttons.scss +68 -0
  82. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_center-block.scss +7 -0
  83. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_clearfix.scss +22 -0
  84. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_forms.scss +88 -0
  85. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_gradients.scss +58 -0
  86. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_grid-framework.scss +81 -0
  87. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_grid.scss +122 -0
  88. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_hide-text.scss +21 -0
  89. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_image.scss +33 -0
  90. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_labels.scss +12 -0
  91. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_list-group.scss +32 -0
  92. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_nav-divider.scss +10 -0
  93. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  94. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_opacity.scss +8 -0
  95. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_pagination.scss +24 -0
  96. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_panels.scss +24 -0
  97. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_progress-bar.scss +10 -0
  98. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_reset-filter.scss +8 -0
  99. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_reset-text.scss +18 -0
  100. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_resize.scss +6 -0
  101. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_responsive-visibility.scss +21 -0
  102. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_size.scss +10 -0
  103. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_tab-focus.scss +9 -0
  104. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_table-row.scss +28 -0
  105. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_text-emphasis.scss +12 -0
  106. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_text-overflow.scss +8 -0
  107. data/bootstrap-boilerplate/_sass/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  108. data/bootstrap-boilerplate/_sass/main.scss +20 -0
  109. data/bootstrap-boilerplate/about/index.md +24 -0
  110. data/bootstrap-boilerplate/apple-touch-icon.png +0 -0
  111. data/bootstrap-boilerplate/browserconfig.xml +12 -0
  112. data/bootstrap-boilerplate/crossdomain.xml +14 -0
  113. data/bootstrap-boilerplate/favicon.ico +0 -0
  114. data/bootstrap-boilerplate/fonts/glyphicons-halflings-regular.eot +0 -0
  115. data/bootstrap-boilerplate/fonts/glyphicons-halflings-regular.svg +229 -0
  116. data/bootstrap-boilerplate/fonts/glyphicons-halflings-regular.ttf +0 -0
  117. data/bootstrap-boilerplate/fonts/glyphicons-halflings-regular.woff +0 -0
  118. data/bootstrap-boilerplate/humans.txt.tt +18 -0
  119. data/bootstrap-boilerplate/index.html +18 -0
  120. data/bootstrap-boilerplate/js/main.js +1 -0
  121. data/bootstrap-boilerplate/js/vendor/bootstrap/affix.js +162 -0
  122. data/bootstrap-boilerplate/js/vendor/bootstrap/alert.js +94 -0
  123. data/bootstrap-boilerplate/js/vendor/bootstrap/button.js +120 -0
  124. data/bootstrap-boilerplate/js/vendor/bootstrap/carousel.js +237 -0
  125. data/bootstrap-boilerplate/js/vendor/bootstrap/collapse.js +211 -0
  126. data/bootstrap-boilerplate/js/vendor/bootstrap/dropdown.js +165 -0
  127. data/bootstrap-boilerplate/js/vendor/bootstrap/modal.js +337 -0
  128. data/bootstrap-boilerplate/js/vendor/bootstrap/popover.js +108 -0
  129. data/bootstrap-boilerplate/js/vendor/bootstrap/scrollspy.js +172 -0
  130. data/bootstrap-boilerplate/js/vendor/bootstrap/tab.js +155 -0
  131. data/bootstrap-boilerplate/js/vendor/bootstrap/tooltip.js +514 -0
  132. data/bootstrap-boilerplate/js/vendor/bootstrap/transition.js +59 -0
  133. data/bootstrap-boilerplate/js/vendor/bootstrap-sprockets.js +12 -0
  134. data/bootstrap-boilerplate/js/vendor/bootstrap.js +2363 -0
  135. data/bootstrap-boilerplate/js/vendor/bootstrap.min.js +7 -0
  136. data/bootstrap-boilerplate/js/vendor/jquery-1.11.2.js +10346 -0
  137. data/bootstrap-boilerplate/js/vendor/jquery-1.11.2.min.js +4 -0
  138. data/bootstrap-boilerplate/js/vendor/modernizr-2.8.3-respond-1.4.2.min.js +11 -0
  139. data/bootstrap-boilerplate/js/vendor/npm.js +13 -0
  140. data/bootstrap-boilerplate/robots.txt +5 -0
  141. data/bootstrap-boilerplate/tile-wide.png +0 -0
  142. data/bootstrap-boilerplate/tile.png +0 -0
  143. data/drink_up_doctor.gemspec +29 -0
  144. data/exe/drink_up_doctor +4 -0
  145. data/lib/drink_up_doctor/new_site.rb +178 -0
  146. data/lib/drink_up_doctor/new_twbs_site.rb +124 -0
  147. data/lib/drink_up_doctor/version.rb +3 -0
  148. data/lib/drink_up_doctor.rb +12 -0
  149. data/templates/Gemfile +11 -0
  150. data/templates/README.md.erb +81 -0
  151. data/templates/bower.json.erb +17 -0
  152. data/templates/gulpfile.js.erb +84 -0
  153. data/templates/main.scss +46 -0
  154. data/templates/package.json.erb +20 -0
  155. data/templates/setup.sh +2 -0
  156. data/templates/site_gitignore +7 -0
  157. metadata +285 -0
@@ -0,0 +1,611 @@
1
+ //
2
+ // Forms
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Normalize non-controls
7
+ //
8
+ // Restyle and baseline non-control form elements.
9
+
10
+ fieldset {
11
+ padding: 0;
12
+ margin: 0;
13
+ border: 0;
14
+ // Chrome and Firefox set a `min-width: min-content;` on fieldsets,
15
+ // so we reset that to ensure it behaves more like a standard block element.
16
+ // See https://github.com/twbs/bootstrap/issues/12359.
17
+ min-width: 0;
18
+ }
19
+
20
+ legend {
21
+ display: block;
22
+ width: 100%;
23
+ padding: 0;
24
+ margin-bottom: $line-height-computed;
25
+ font-size: ($font-size-base * 1.5);
26
+ line-height: inherit;
27
+ color: $legend-color;
28
+ border: 0;
29
+ border-bottom: 1px solid $legend-border-color;
30
+ }
31
+
32
+ label {
33
+ display: inline-block;
34
+ max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)
35
+ margin-bottom: 5px;
36
+ font-weight: bold;
37
+ }
38
+
39
+
40
+ // Normalize form controls
41
+ //
42
+ // While most of our form styles require extra classes, some basic normalization
43
+ // is required to ensure optimum display with or without those classes to better
44
+ // address browser inconsistencies.
45
+
46
+ // Override content-box in Normalize (* isn't specific enough)
47
+ input[type="search"] {
48
+ @include box-sizing(border-box);
49
+ }
50
+
51
+ // Position radios and checkboxes better
52
+ input[type="radio"],
53
+ input[type="checkbox"] {
54
+ margin: 4px 0 0;
55
+ margin-top: 1px \9; // IE8-9
56
+ line-height: normal;
57
+ }
58
+
59
+ input[type="file"] {
60
+ display: block;
61
+ }
62
+
63
+ // Make range inputs behave like textual form controls
64
+ input[type="range"] {
65
+ display: block;
66
+ width: 100%;
67
+ }
68
+
69
+ // Make multiple select elements height not fixed
70
+ select[multiple],
71
+ select[size] {
72
+ height: auto;
73
+ }
74
+
75
+ // Focus for file, radio, and checkbox
76
+ input[type="file"]:focus,
77
+ input[type="radio"]:focus,
78
+ input[type="checkbox"]:focus {
79
+ @include tab-focus;
80
+ }
81
+
82
+ // Adjust output element
83
+ output {
84
+ display: block;
85
+ padding-top: ($padding-base-vertical + 1);
86
+ font-size: $font-size-base;
87
+ line-height: $line-height-base;
88
+ color: $input-color;
89
+ }
90
+
91
+
92
+ // Common form controls
93
+ //
94
+ // Shared size and type resets for form controls. Apply `.form-control` to any
95
+ // of the following form controls:
96
+ //
97
+ // select
98
+ // textarea
99
+ // input[type="text"]
100
+ // input[type="password"]
101
+ // input[type="datetime"]
102
+ // input[type="datetime-local"]
103
+ // input[type="date"]
104
+ // input[type="month"]
105
+ // input[type="time"]
106
+ // input[type="week"]
107
+ // input[type="number"]
108
+ // input[type="email"]
109
+ // input[type="url"]
110
+ // input[type="search"]
111
+ // input[type="tel"]
112
+ // input[type="color"]
113
+
114
+ .form-control {
115
+ display: block;
116
+ width: 100%;
117
+ height: $input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
118
+ padding: $padding-base-vertical $padding-base-horizontal;
119
+ font-size: $font-size-base;
120
+ line-height: $line-height-base;
121
+ color: $input-color;
122
+ background-color: $input-bg;
123
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
124
+ border: 1px solid $input-border;
125
+ border-radius: $input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.
126
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
127
+ @include transition(border-color ease-in-out .15s, box-shadow ease-in-out .15s);
128
+
129
+ // Customize the `:focus` state to imitate native WebKit styles.
130
+ @include form-control-focus;
131
+
132
+ // Placeholder
133
+ @include placeholder;
134
+
135
+ // Disabled and read-only inputs
136
+ //
137
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
138
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
139
+ // don't honor that edge case; we style them as disabled anyway.
140
+ &[disabled],
141
+ &[readonly],
142
+ fieldset[disabled] & {
143
+ background-color: $input-bg-disabled;
144
+ opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
145
+ }
146
+
147
+ &[disabled],
148
+ fieldset[disabled] & {
149
+ cursor: $cursor-disabled;
150
+ }
151
+
152
+ // [converter] extracted textarea& to textarea.form-control
153
+ }
154
+
155
+ // Reset height for `textarea`s
156
+ textarea.form-control {
157
+ height: auto;
158
+ }
159
+
160
+
161
+ // Search inputs in iOS
162
+ //
163
+ // This overrides the extra rounded corners on search inputs in iOS so that our
164
+ // `.form-control` class can properly style them. Note that this cannot simply
165
+ // be added to `.form-control` as it's not specific enough. For details, see
166
+ // https://github.com/twbs/bootstrap/issues/11586.
167
+
168
+ input[type="search"] {
169
+ -webkit-appearance: none;
170
+ }
171
+
172
+
173
+ // Special styles for iOS temporal inputs
174
+ //
175
+ // In Mobile Safari, setting `display: block` on temporal inputs causes the
176
+ // text within the input to become vertically misaligned. As a workaround, we
177
+ // set a pixel line-height that matches the given height of the input, but only
178
+ // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
179
+ //
180
+ // Note that as of 8.3, iOS doesn't support `datetime` or `week`.
181
+
182
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
183
+ input[type="date"],
184
+ input[type="time"],
185
+ input[type="datetime-local"],
186
+ input[type="month"] {
187
+ &.form-control {
188
+ line-height: $input-height-base;
189
+ }
190
+
191
+ &.input-sm,
192
+ .input-group-sm & {
193
+ line-height: $input-height-small;
194
+ }
195
+
196
+ &.input-lg,
197
+ .input-group-lg & {
198
+ line-height: $input-height-large;
199
+ }
200
+ }
201
+ }
202
+
203
+
204
+ // Form groups
205
+ //
206
+ // Designed to help with the organization and spacing of vertical forms. For
207
+ // horizontal forms, use the predefined grid classes.
208
+
209
+ .form-group {
210
+ margin-bottom: $form-group-margin-bottom;
211
+ }
212
+
213
+
214
+ // Checkboxes and radios
215
+ //
216
+ // Indent the labels to position radios/checkboxes as hanging controls.
217
+
218
+ .radio,
219
+ .checkbox {
220
+ position: relative;
221
+ display: block;
222
+ margin-top: 10px;
223
+ margin-bottom: 10px;
224
+
225
+ label {
226
+ min-height: $line-height-computed; // Ensure the input doesn't jump when there is no text
227
+ padding-left: 20px;
228
+ margin-bottom: 0;
229
+ font-weight: normal;
230
+ cursor: pointer;
231
+ }
232
+ }
233
+ .radio input[type="radio"],
234
+ .radio-inline input[type="radio"],
235
+ .checkbox input[type="checkbox"],
236
+ .checkbox-inline input[type="checkbox"] {
237
+ position: absolute;
238
+ margin-left: -20px;
239
+ margin-top: 4px \9;
240
+ }
241
+
242
+ .radio + .radio,
243
+ .checkbox + .checkbox {
244
+ margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
245
+ }
246
+
247
+ // Radios and checkboxes on same line
248
+ .radio-inline,
249
+ .checkbox-inline {
250
+ position: relative;
251
+ display: inline-block;
252
+ padding-left: 20px;
253
+ margin-bottom: 0;
254
+ vertical-align: middle;
255
+ font-weight: normal;
256
+ cursor: pointer;
257
+ }
258
+ .radio-inline + .radio-inline,
259
+ .checkbox-inline + .checkbox-inline {
260
+ margin-top: 0;
261
+ margin-left: 10px; // space out consecutive inline controls
262
+ }
263
+
264
+ // Apply same disabled cursor tweak as for inputs
265
+ // Some special care is needed because <label>s don't inherit their parent's `cursor`.
266
+ //
267
+ // Note: Neither radios nor checkboxes can be readonly.
268
+ input[type="radio"],
269
+ input[type="checkbox"] {
270
+ &[disabled],
271
+ &.disabled,
272
+ fieldset[disabled] & {
273
+ cursor: $cursor-disabled;
274
+ }
275
+ }
276
+ // These classes are used directly on <label>s
277
+ .radio-inline,
278
+ .checkbox-inline {
279
+ &.disabled,
280
+ fieldset[disabled] & {
281
+ cursor: $cursor-disabled;
282
+ }
283
+ }
284
+ // These classes are used on elements with <label> descendants
285
+ .radio,
286
+ .checkbox {
287
+ &.disabled,
288
+ fieldset[disabled] & {
289
+ label {
290
+ cursor: $cursor-disabled;
291
+ }
292
+ }
293
+ }
294
+
295
+
296
+ // Static form control text
297
+ //
298
+ // Apply class to a `p` element to make any string of text align with labels in
299
+ // a horizontal form layout.
300
+
301
+ .form-control-static {
302
+ // Size it appropriately next to real form controls
303
+ padding-top: ($padding-base-vertical + 1);
304
+ padding-bottom: ($padding-base-vertical + 1);
305
+ // Remove default margin from `p`
306
+ margin-bottom: 0;
307
+ min-height: ($line-height-computed + $font-size-base);
308
+
309
+ &.input-lg,
310
+ &.input-sm {
311
+ padding-left: 0;
312
+ padding-right: 0;
313
+ }
314
+ }
315
+
316
+
317
+ // Form control sizing
318
+ //
319
+ // Build on `.form-control` with modifier classes to decrease or increase the
320
+ // height and font-size of form controls.
321
+ //
322
+ // The `.form-group-* form-control` variations are sadly duplicated to avoid the
323
+ // issue documented in https://github.com/twbs/bootstrap/issues/15074.
324
+
325
+ @include input-size('.input-sm', $input-height-small, $padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $input-border-radius-small);
326
+ .form-group-sm {
327
+ .form-control {
328
+ height: $input-height-small;
329
+ padding: $padding-small-vertical $padding-small-horizontal;
330
+ font-size: $font-size-small;
331
+ line-height: $line-height-small;
332
+ border-radius: $input-border-radius-small;
333
+ }
334
+ select.form-control {
335
+ height: $input-height-small;
336
+ line-height: $input-height-small;
337
+ }
338
+ textarea.form-control,
339
+ select[multiple].form-control {
340
+ height: auto;
341
+ }
342
+ .form-control-static {
343
+ height: $input-height-small;
344
+ min-height: ($line-height-computed + $font-size-small);
345
+ padding: ($padding-small-vertical + 1) $padding-small-horizontal;
346
+ font-size: $font-size-small;
347
+ line-height: $line-height-small;
348
+ }
349
+ }
350
+
351
+ @include input-size('.input-lg', $input-height-large, $padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $input-border-radius-large);
352
+ .form-group-lg {
353
+ .form-control {
354
+ height: $input-height-large;
355
+ padding: $padding-large-vertical $padding-large-horizontal;
356
+ font-size: $font-size-large;
357
+ line-height: $line-height-large;
358
+ border-radius: $input-border-radius-large;
359
+ }
360
+ select.form-control {
361
+ height: $input-height-large;
362
+ line-height: $input-height-large;
363
+ }
364
+ textarea.form-control,
365
+ select[multiple].form-control {
366
+ height: auto;
367
+ }
368
+ .form-control-static {
369
+ height: $input-height-large;
370
+ min-height: ($line-height-computed + $font-size-large);
371
+ padding: ($padding-large-vertical + 1) $padding-large-horizontal;
372
+ font-size: $font-size-large;
373
+ line-height: $line-height-large;
374
+ }
375
+ }
376
+
377
+
378
+ // Form control feedback states
379
+ //
380
+ // Apply contextual and semantic states to individual form controls.
381
+
382
+ .has-feedback {
383
+ // Enable absolute positioning
384
+ position: relative;
385
+
386
+ // Ensure icons don't overlap text
387
+ .form-control {
388
+ padding-right: ($input-height-base * 1.25);
389
+ }
390
+ }
391
+ // Feedback icon (requires .glyphicon classes)
392
+ .form-control-feedback {
393
+ position: absolute;
394
+ top: 0;
395
+ right: 0;
396
+ z-index: 2; // Ensure icon is above input groups
397
+ display: block;
398
+ width: $input-height-base;
399
+ height: $input-height-base;
400
+ line-height: $input-height-base;
401
+ text-align: center;
402
+ pointer-events: none;
403
+ }
404
+ .input-lg + .form-control-feedback,
405
+ .input-group-lg + .form-control-feedback,
406
+ .form-group-lg .form-control + .form-control-feedback {
407
+ width: $input-height-large;
408
+ height: $input-height-large;
409
+ line-height: $input-height-large;
410
+ }
411
+ .input-sm + .form-control-feedback,
412
+ .input-group-sm + .form-control-feedback,
413
+ .form-group-sm .form-control + .form-control-feedback {
414
+ width: $input-height-small;
415
+ height: $input-height-small;
416
+ line-height: $input-height-small;
417
+ }
418
+
419
+ // Feedback states
420
+ .has-success {
421
+ @include form-control-validation($state-success-text, $state-success-text, $state-success-bg);
422
+ }
423
+ .has-warning {
424
+ @include form-control-validation($state-warning-text, $state-warning-text, $state-warning-bg);
425
+ }
426
+ .has-error {
427
+ @include form-control-validation($state-danger-text, $state-danger-text, $state-danger-bg);
428
+ }
429
+
430
+ // Reposition feedback icon if input has visible label above
431
+ .has-feedback label {
432
+
433
+ & ~ .form-control-feedback {
434
+ top: ($line-height-computed + 5); // Height of the `label` and its margin
435
+ }
436
+ &.sr-only ~ .form-control-feedback {
437
+ top: 0;
438
+ }
439
+ }
440
+
441
+
442
+ // Help text
443
+ //
444
+ // Apply to any element you wish to create light text for placement immediately
445
+ // below a form control. Use for general help, formatting, or instructional text.
446
+
447
+ .help-block {
448
+ display: block; // account for any element using help-block
449
+ margin-top: 5px;
450
+ margin-bottom: 10px;
451
+ color: lighten($text-color, 25%); // lighten the text some for contrast
452
+ }
453
+
454
+
455
+ // Inline forms
456
+ //
457
+ // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
458
+ // forms begin stacked on extra small (mobile) devices and then go inline when
459
+ // viewports reach <768px.
460
+ //
461
+ // Requires wrapping inputs and labels with `.form-group` for proper display of
462
+ // default HTML form controls and our custom form controls (e.g., input groups).
463
+ //
464
+ // Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
465
+
466
+ // [converter] extracted from `.form-inline` for libsass compatibility
467
+ @mixin form-inline {
468
+
469
+ // Kick in the inline
470
+ @media (min-width: $screen-sm-min) {
471
+ // Inline-block all the things for "inline"
472
+ .form-group {
473
+ display: inline-block;
474
+ margin-bottom: 0;
475
+ vertical-align: middle;
476
+ }
477
+
478
+ // In navbar-form, allow folks to *not* use `.form-group`
479
+ .form-control {
480
+ display: inline-block;
481
+ width: auto; // Prevent labels from stacking above inputs in `.form-group`
482
+ vertical-align: middle;
483
+ }
484
+
485
+ // Make static controls behave like regular ones
486
+ .form-control-static {
487
+ display: inline-block;
488
+ }
489
+
490
+ .input-group {
491
+ display: inline-table;
492
+ vertical-align: middle;
493
+
494
+ .input-group-addon,
495
+ .input-group-btn,
496
+ .form-control {
497
+ width: auto;
498
+ }
499
+ }
500
+
501
+ // Input groups need that 100% width though
502
+ .input-group > .form-control {
503
+ width: 100%;
504
+ }
505
+
506
+ .control-label {
507
+ margin-bottom: 0;
508
+ vertical-align: middle;
509
+ }
510
+
511
+ // Remove default margin on radios/checkboxes that were used for stacking, and
512
+ // then undo the floating of radios and checkboxes to match.
513
+ .radio,
514
+ .checkbox {
515
+ display: inline-block;
516
+ margin-top: 0;
517
+ margin-bottom: 0;
518
+ vertical-align: middle;
519
+
520
+ label {
521
+ padding-left: 0;
522
+ }
523
+ }
524
+ .radio input[type="radio"],
525
+ .checkbox input[type="checkbox"] {
526
+ position: relative;
527
+ margin-left: 0;
528
+ }
529
+
530
+ // Re-override the feedback icon.
531
+ .has-feedback .form-control-feedback {
532
+ top: 0;
533
+ }
534
+ }
535
+ }
536
+ // [converter] extracted as `@mixin form-inline` for libsass compatibility
537
+ .form-inline {
538
+ @include form-inline;
539
+ }
540
+
541
+
542
+
543
+ // Horizontal forms
544
+ //
545
+ // Horizontal forms are built on grid classes and allow you to create forms with
546
+ // labels on the left and inputs on the right.
547
+
548
+ .form-horizontal {
549
+
550
+ // Consistent vertical alignment of radios and checkboxes
551
+ //
552
+ // Labels also get some reset styles, but that is scoped to a media query below.
553
+ .radio,
554
+ .checkbox,
555
+ .radio-inline,
556
+ .checkbox-inline {
557
+ margin-top: 0;
558
+ margin-bottom: 0;
559
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
560
+ }
561
+ // Account for padding we're adding to ensure the alignment and of help text
562
+ // and other content below items
563
+ .radio,
564
+ .checkbox {
565
+ min-height: ($line-height-computed + ($padding-base-vertical + 1));
566
+ }
567
+
568
+ // Make form groups behave like rows
569
+ .form-group {
570
+ @include make-row;
571
+ }
572
+
573
+ // Reset spacing and right align labels, but scope to media queries so that
574
+ // labels on narrow viewports stack the same as a default form example.
575
+ @media (min-width: $screen-sm-min) {
576
+ .control-label {
577
+ text-align: right;
578
+ margin-bottom: 0;
579
+ padding-top: ($padding-base-vertical + 1); // Default padding plus a border
580
+ }
581
+ }
582
+
583
+ // Validation states
584
+ //
585
+ // Reposition the icon because it's now within a grid column and columns have
586
+ // `position: relative;` on them. Also accounts for the grid gutter padding.
587
+ .has-feedback .form-control-feedback {
588
+ right: floor(($grid-gutter-width / 2));
589
+ }
590
+
591
+ // Form group sizes
592
+ //
593
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
594
+ // inputs and labels within a `.form-group`.
595
+ .form-group-lg {
596
+ @media (min-width: $screen-sm-min) {
597
+ .control-label {
598
+ padding-top: (($padding-large-vertical * $line-height-large) + 1);
599
+ font-size: $font-size-large;
600
+ }
601
+ }
602
+ }
603
+ .form-group-sm {
604
+ @media (min-width: $screen-sm-min) {
605
+ .control-label {
606
+ padding-top: ($padding-small-vertical + 1);
607
+ font-size: $font-size-small;
608
+ }
609
+ }
610
+ }
611
+ }