nodebb-theme-persona 12.0.8 → 12.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/.eslintrc +2 -2
  2. package/README.md +14 -14
  3. package/languages/de/persona.json +3 -3
  4. package/languages/en-US/persona.json +2 -2
  5. package/languages/fr/persona.json +3 -3
  6. package/languages/pl/persona.json +3 -3
  7. package/languages/pt-PT/persona.json +2 -2
  8. package/languages/tr/persona.json +4 -4
  9. package/languages/zh-CN/persona.json +4 -4
  10. package/less/bootstrap/.csscomb.json +297 -297
  11. package/less/bootstrap/.csslintrc +19 -19
  12. package/less/bootstrap/alerts.less +73 -73
  13. package/less/bootstrap/badges.less +66 -66
  14. package/less/bootstrap/bootstrap.less +50 -50
  15. package/less/bootstrap/breadcrumbs.less +26 -26
  16. package/less/bootstrap/button-groups.less +243 -243
  17. package/less/bootstrap/buttons.less +160 -160
  18. package/less/bootstrap/carousel.less +269 -269
  19. package/less/bootstrap/close.less +34 -34
  20. package/less/bootstrap/code.less +69 -69
  21. package/less/bootstrap/component-animations.less +33 -33
  22. package/less/bootstrap/forms.less +574 -574
  23. package/less/bootstrap/glyphicons.less +305 -305
  24. package/less/bootstrap/grid.less +84 -84
  25. package/less/bootstrap/input-groups.less +166 -166
  26. package/less/bootstrap/jumbotron.less +50 -50
  27. package/less/bootstrap/labels.less +64 -64
  28. package/less/bootstrap/list-group.less +124 -124
  29. package/less/bootstrap/media.less +61 -61
  30. package/less/bootstrap/mixins/alerts.less +14 -14
  31. package/less/bootstrap/mixins/background-variant.less +8 -8
  32. package/less/bootstrap/mixins/border-radius.less +18 -18
  33. package/less/bootstrap/mixins/buttons.less +52 -52
  34. package/less/bootstrap/mixins/center-block.less +7 -7
  35. package/less/bootstrap/mixins/clearfix.less +22 -22
  36. package/less/bootstrap/mixins/forms.less +85 -85
  37. package/less/bootstrap/mixins/gradients.less +59 -59
  38. package/less/bootstrap/mixins/grid-framework.less +91 -91
  39. package/less/bootstrap/mixins/grid.less +122 -122
  40. package/less/bootstrap/mixins/hide-text.less +21 -21
  41. package/less/bootstrap/mixins/image.less +33 -33
  42. package/less/bootstrap/mixins/labels.less +12 -12
  43. package/less/bootstrap/mixins/list-group.less +29 -29
  44. package/less/bootstrap/mixins/nav-divider.less +10 -10
  45. package/less/bootstrap/mixins/nav-vertical-align.less +9 -9
  46. package/less/bootstrap/mixins/opacity.less +8 -8
  47. package/less/bootstrap/mixins/pagination.less +23 -23
  48. package/less/bootstrap/mixins/panels.less +24 -24
  49. package/less/bootstrap/mixins/progress-bar.less +10 -10
  50. package/less/bootstrap/mixins/reset-filter.less +8 -8
  51. package/less/bootstrap/mixins/resize.less +6 -6
  52. package/less/bootstrap/mixins/responsive-visibility.less +15 -15
  53. package/less/bootstrap/mixins/size.less +10 -10
  54. package/less/bootstrap/mixins/tab-focus.less +9 -9
  55. package/less/bootstrap/mixins/table-row.less +28 -28
  56. package/less/bootstrap/mixins/text-emphasis.less +8 -8
  57. package/less/bootstrap/mixins/text-overflow.less +8 -8
  58. package/less/bootstrap/mixins/vendor-prefixes.less +227 -227
  59. package/less/bootstrap/mixins.less +39 -39
  60. package/less/bootstrap/modals.less +150 -150
  61. package/less/bootstrap/navbar.less +660 -660
  62. package/less/bootstrap/navs.less +242 -242
  63. package/less/bootstrap/normalize.less +427 -427
  64. package/less/bootstrap/pager.less +54 -54
  65. package/less/bootstrap/pagination.less +88 -88
  66. package/less/bootstrap/panels.less +265 -265
  67. package/less/bootstrap/popovers.less +135 -135
  68. package/less/bootstrap/print.less +107 -107
  69. package/less/bootstrap/progress-bars.less +87 -87
  70. package/less/bootstrap/responsive-embed.less +35 -35
  71. package/less/bootstrap/responsive-utilities.less +194 -194
  72. package/less/bootstrap/scaffolding.less +161 -161
  73. package/less/bootstrap/tables.less +234 -234
  74. package/less/bootstrap/theme.less +273 -273
  75. package/less/bootstrap/thumbnails.less +36 -36
  76. package/less/bootstrap/tooltip.less +102 -102
  77. package/less/bootstrap/type.less +302 -302
  78. package/less/bootstrap/utilities.less +55 -55
  79. package/less/bootstrap/variables.less +861 -861
  80. package/less/bootstrap/wells.less +29 -29
  81. package/less/bootstrap-flipped.css +1550 -1550
  82. package/less/categories.less +235 -235
  83. package/less/flags.less +42 -42
  84. package/less/footer.less +17 -17
  85. package/less/ip-blacklist.less +6 -6
  86. package/less/keyframes.less +152 -152
  87. package/less/modules/composer-default.less +16 -16
  88. package/less/modules/cookie-consent.less +12 -12
  89. package/less/modules/fab.less +32 -32
  90. package/less/modules/morph.less +268 -268
  91. package/less/modules/necro-post.less +8 -8
  92. package/less/modules/nprogress.less +80 -80
  93. package/less/modules/usercard.less +64 -64
  94. package/less/noscript.less +82 -82
  95. package/less/notifications.less +37 -37
  96. package/less/outgoing.less +8 -8
  97. package/less/persona.less +47 -47
  98. package/less/post-queue.less +19 -19
  99. package/less/register.less +75 -75
  100. package/less/rtl.less +132 -132
  101. package/less/tags.less +36 -36
  102. package/less/users.less +72 -72
  103. package/less/variables.less +6 -6
  104. package/library.js +2 -2
  105. package/package.json +1 -1
  106. package/public/.eslintrc +2 -2
  107. package/public/modules/autohidingnavbar.js +220 -220
  108. package/templates/account/blocks.tpl +34 -34
  109. package/templates/account/categories.tpl +28 -28
  110. package/templates/account/consent.tpl +68 -68
  111. package/templates/account/edit/email.tpl +30 -30
  112. package/templates/account/edit/password.tpl +31 -31
  113. package/templates/account/edit/username.tpl +29 -29
  114. package/templates/account/followers.tpl +16 -16
  115. package/templates/account/following.tpl +16 -16
  116. package/templates/account/groups.tpl +16 -16
  117. package/templates/account/info.tpl +230 -230
  118. package/templates/account/posts.tpl +18 -18
  119. package/templates/account/sessions.tpl +31 -31
  120. package/templates/account/topics.tpl +30 -30
  121. package/templates/account/uploads.tpl +42 -42
  122. package/templates/admin/plugins/persona.tpl +28 -28
  123. package/templates/alert.tpl +15 -15
  124. package/templates/categories.tpl +31 -31
  125. package/templates/category.tpl +62 -62
  126. package/templates/chats.tpl +16 -16
  127. package/templates/flags/list.tpl +71 -71
  128. package/templates/groups/details.tpl +272 -272
  129. package/templates/groups/list.tpl +46 -46
  130. package/templates/groups/members.tpl +8 -8
  131. package/templates/ip-blacklist.tpl +55 -55
  132. package/templates/modules/usercard.tpl +36 -36
  133. package/templates/notifications.tpl +64 -64
  134. package/templates/partials/acceptTos.tpl +8 -8
  135. package/templates/partials/account/category-item.tpl +22 -22
  136. package/templates/partials/account/header.tpl +46 -46
  137. package/templates/partials/buttons/newTopic.tpl +15 -15
  138. package/templates/partials/categories/item.tpl +46 -46
  139. package/templates/partials/categories/lastpost.tpl +26 -26
  140. package/templates/partials/categories/link.tpl +10 -10
  141. package/templates/partials/category/sort.tpl +14 -14
  142. package/templates/partials/category/subcategory.tpl +17 -17
  143. package/templates/partials/category/tags.tpl +4 -4
  144. package/templates/partials/category/tools.tpl +80 -80
  145. package/templates/partials/category/watch.tpl +22 -22
  146. package/templates/partials/category-filter-content.tpl +16 -16
  147. package/templates/partials/category-filter-right.tpl +2 -2
  148. package/templates/partials/category-filter.tpl +2 -2
  149. package/templates/partials/category-selector-right.tpl +2 -2
  150. package/templates/partials/category-selector.tpl +2 -2
  151. package/templates/partials/change_owner_modal.tpl +22 -22
  152. package/templates/partials/chats/messages.tpl +6 -6
  153. package/templates/partials/chats-menu.tpl +40 -40
  154. package/templates/partials/cookie-consent.tpl +4 -4
  155. package/templates/partials/delete_posts_modal.tpl +18 -18
  156. package/templates/partials/fork_thread_modal.tpl +21 -21
  157. package/templates/partials/groups/list.tpl +20 -20
  158. package/templates/partials/groups/memberlist.tpl +39 -39
  159. package/templates/partials/merge_topics_modal.tpl +57 -57
  160. package/templates/partials/modals/flag_modal.tpl +44 -44
  161. package/templates/partials/modals/manage_room.tpl +10 -10
  162. package/templates/partials/modals/manage_room_users.tpl +6 -6
  163. package/templates/partials/modals/post_history.tpl +36 -36
  164. package/templates/partials/modals/rename_room.tpl +3 -3
  165. package/templates/partials/modals/votes_modal.tpl +10 -10
  166. package/templates/partials/move_thread_modal.tpl +16 -16
  167. package/templates/partials/paginator.tpl +44 -44
  168. package/templates/partials/post_bar.tpl +20 -20
  169. package/templates/partials/posts_list.tpl +7 -7
  170. package/templates/partials/quick-search-results.tpl +30 -30
  171. package/templates/partials/slideout-menu.tpl +4 -4
  172. package/templates/partials/tags_list.tpl +4 -4
  173. package/templates/partials/thread_tools.tpl +7 -7
  174. package/templates/partials/topic/badge.tpl +4 -4
  175. package/templates/partials/topic/deleted-message.tpl +10 -10
  176. package/templates/partials/topic/navigation-post.tpl +11 -11
  177. package/templates/partials/topic/necro-post.tpl +2 -2
  178. package/templates/partials/topic/post.tpl +105 -105
  179. package/templates/partials/topic/quickreply.tpl +25 -25
  180. package/templates/partials/topic/reply-button.tpl +26 -26
  181. package/templates/partials/topic/selection-tooltip.tpl +2 -2
  182. package/templates/partials/topic/sort.tpl +9 -9
  183. package/templates/partials/topic/stats.tpl +11 -11
  184. package/templates/partials/topic/tags.tpl +4 -4
  185. package/templates/partials/topic/watch.tpl +20 -20
  186. package/templates/partials/users_list_menu.tpl +10 -10
  187. package/templates/popular.tpl +61 -61
  188. package/templates/recent.tpl +51 -51
  189. package/templates/reset.tpl +23 -23
  190. package/templates/reset_code.tpl +41 -41
  191. package/templates/tag.tpl +35 -35
  192. package/templates/tags.tpl +30 -30
  193. package/templates/top.tpl +61 -61
  194. package/templates/tos.tpl +4 -4
  195. package/templates/unread.tpl +49 -49
  196. package/templates/users.tpl +47 -47
  197. package/theme.json +6 -6
  198. package/theme.less +1 -1
@@ -1,574 +1,574 @@
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
- .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
- // Set the height of file controls to match text inputs
60
- input[type="file"] {
61
- display: block;
62
- }
63
-
64
- // Make range inputs behave like textual form controls
65
- input[type="range"] {
66
- display: block;
67
- width: 100%;
68
- }
69
-
70
- // Make multiple select elements height not fixed
71
- select[multiple],
72
- select[size] {
73
- height: auto;
74
- }
75
-
76
- // Focus for file, radio, and checkbox
77
- input[type="file"]:focus,
78
- input[type="radio"]:focus,
79
- input[type="checkbox"]:focus {
80
- .tab-focus();
81
- }
82
-
83
- // Adjust output element
84
- output {
85
- display: block;
86
- padding-top: (@padding-base-vertical + 1);
87
- font-size: @font-size-base;
88
- line-height: @line-height-base;
89
- color: @input-color;
90
- }
91
-
92
-
93
- // Common form controls
94
- //
95
- // Shared size and type resets for form controls. Apply `.form-control` to any
96
- // of the following form controls:
97
- //
98
- // select
99
- // textarea
100
- // input[type="text"]
101
- // input[type="password"]
102
- // input[type="datetime"]
103
- // input[type="datetime-local"]
104
- // input[type="date"]
105
- // input[type="month"]
106
- // input[type="time"]
107
- // input[type="week"]
108
- // input[type="number"]
109
- // input[type="email"]
110
- // input[type="url"]
111
- // input[type="search"]
112
- // input[type="tel"]
113
- // input[type="color"]
114
-
115
- .form-control {
116
- display: block;
117
- width: 100%;
118
- height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
119
- padding: @padding-base-vertical @padding-base-horizontal;
120
- font-size: @font-size-base;
121
- line-height: @line-height-base;
122
- color: @input-color;
123
- background-color: @input-bg;
124
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
125
- border: 1px solid @input-border;
126
- 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.
127
- .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
128
- .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
129
-
130
- // Customize the `:focus` state to imitate native WebKit styles.
131
- .form-control-focus();
132
-
133
- // Placeholder
134
- .placeholder();
135
-
136
- // Disabled and read-only inputs
137
- //
138
- // HTML5 says that controls under a fieldset > legend:first-child won't be
139
- // disabled if the fieldset is disabled. Due to implementation difficulty, we
140
- // don't honor that edge case; we style them as disabled anyway.
141
- &[disabled],
142
- &[readonly],
143
- fieldset[disabled] & {
144
- background-color: @input-bg-disabled;
145
- opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
146
- }
147
-
148
- &[disabled],
149
- fieldset[disabled] & {
150
- cursor: @cursor-disabled;
151
- }
152
-
153
- // Reset height for `textarea`s
154
- textarea& {
155
- height: auto;
156
- }
157
- }
158
-
159
-
160
- // Search inputs in iOS
161
- //
162
- // This overrides the extra rounded corners on search inputs in iOS so that our
163
- // `.form-control` class can properly style them. Note that this cannot simply
164
- // be added to `.form-control` as it's not specific enough. For details, see
165
- // https://github.com/twbs/bootstrap/issues/11586.
166
-
167
- input[type="search"] {
168
- -webkit-appearance: none;
169
- }
170
-
171
-
172
- // Special styles for iOS temporal inputs
173
- //
174
- // In Mobile Safari, setting `display: block` on temporal inputs causes the
175
- // text within the input to become vertically misaligned. As a workaround, we
176
- // set a pixel line-height that matches the given height of the input, but only
177
- // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
178
-
179
- @media screen and (-webkit-min-device-pixel-ratio: 0) {
180
- input[type="date"],
181
- input[type="time"],
182
- input[type="datetime-local"],
183
- input[type="month"] {
184
- line-height: @input-height-base;
185
-
186
- &.input-sm,
187
- .input-group-sm & {
188
- line-height: @input-height-small;
189
- }
190
-
191
- &.input-lg,
192
- .input-group-lg & {
193
- line-height: @input-height-large;
194
- }
195
- }
196
- }
197
-
198
-
199
- // Form groups
200
- //
201
- // Designed to help with the organization and spacing of vertical forms. For
202
- // horizontal forms, use the predefined grid classes.
203
-
204
- .form-group {
205
- margin-bottom: @form-group-margin-bottom;
206
- }
207
-
208
-
209
- // Checkboxes and radios
210
- //
211
- // Indent the labels to position radios/checkboxes as hanging controls.
212
-
213
- .radio,
214
- .checkbox {
215
- position: relative;
216
- display: block;
217
- margin-top: 10px;
218
- margin-bottom: 10px;
219
-
220
- label {
221
- min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
222
- padding-left: 20px;
223
- margin-bottom: 0;
224
- font-weight: normal;
225
- cursor: pointer;
226
- }
227
- }
228
- .radio input[type="radio"],
229
- .radio-inline input[type="radio"],
230
- .checkbox input[type="checkbox"],
231
- .checkbox-inline input[type="checkbox"] {
232
- position: absolute;
233
- margin-left: -20px;
234
- margin-top: 4px \9;
235
- }
236
-
237
- .radio + .radio,
238
- .checkbox + .checkbox {
239
- margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
240
- }
241
-
242
- // Radios and checkboxes on same line
243
- .radio-inline,
244
- .checkbox-inline {
245
- position: relative;
246
- display: inline-block;
247
- padding-left: 20px;
248
- margin-bottom: 0;
249
- vertical-align: middle;
250
- font-weight: normal;
251
- cursor: pointer;
252
- }
253
- .radio-inline + .radio-inline,
254
- .checkbox-inline + .checkbox-inline {
255
- margin-top: 0;
256
- margin-left: 10px; // space out consecutive inline controls
257
- }
258
-
259
- // Apply same disabled cursor tweak as for inputs
260
- // Some special care is needed because <label>s don't inherit their parent's `cursor`.
261
- //
262
- // Note: Neither radios nor checkboxes can be readonly.
263
- input[type="radio"],
264
- input[type="checkbox"] {
265
- &[disabled],
266
- &.disabled,
267
- fieldset[disabled] & {
268
- cursor: @cursor-disabled;
269
- }
270
- }
271
- // These classes are used directly on <label>s
272
- .radio-inline,
273
- .checkbox-inline {
274
- &.disabled,
275
- fieldset[disabled] & {
276
- cursor: @cursor-disabled;
277
- }
278
- }
279
- // These classes are used on elements with <label> descendants
280
- .radio,
281
- .checkbox {
282
- &.disabled,
283
- fieldset[disabled] & {
284
- label {
285
- cursor: @cursor-disabled;
286
- }
287
- }
288
- }
289
-
290
-
291
- // Static form control text
292
- //
293
- // Apply class to a `p` element to make any string of text align with labels in
294
- // a horizontal form layout.
295
-
296
- .form-control-static {
297
- // Size it appropriately next to real form controls
298
- padding-top: (@padding-base-vertical + 1);
299
- padding-bottom: (@padding-base-vertical + 1);
300
- // Remove default margin from `p`
301
- margin-bottom: 0;
302
- min-height: (@line-height-computed + @font-size-base);
303
-
304
- &.input-lg,
305
- &.input-sm {
306
- padding-left: 0;
307
- padding-right: 0;
308
- }
309
- }
310
-
311
-
312
- // Form control sizing
313
- //
314
- // Build on `.form-control` with modifier classes to decrease or increase the
315
- // height and font-size of form controls.
316
- //
317
- // The `.form-group-* form-control` variations are sadly duplicated to avoid the
318
- // issue documented in https://github.com/twbs/bootstrap/issues/15074.
319
-
320
- .input-sm {
321
- .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
322
- }
323
- .form-group-sm {
324
- .form-control {
325
- .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
326
- }
327
- .form-control-static {
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
- min-height: (@line-height-computed + @font-size-small);
333
- }
334
- }
335
-
336
- .input-lg {
337
- .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
338
- }
339
- .form-group-lg {
340
- .form-control {
341
- .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
342
- }
343
- .form-control-static {
344
- height: @input-height-large;
345
- padding: @padding-large-vertical @padding-large-horizontal;
346
- font-size: @font-size-large;
347
- line-height: @line-height-large;
348
- min-height: (@line-height-computed + @font-size-large);
349
- }
350
- }
351
-
352
-
353
- // Form control feedback states
354
- //
355
- // Apply contextual and semantic states to individual form controls.
356
-
357
- .has-feedback {
358
- // Enable absolute positioning
359
- position: relative;
360
-
361
- // Ensure icons don't overlap text
362
- .form-control {
363
- padding-right: (@input-height-base * 1.25);
364
- }
365
- }
366
- // Feedback icon (requires .glyphicon classes)
367
- .form-control-feedback {
368
- position: absolute;
369
- top: 0;
370
- right: 0;
371
- z-index: 2; // Ensure icon is above input groups
372
- display: block;
373
- width: @input-height-base;
374
- height: @input-height-base;
375
- line-height: @input-height-base;
376
- text-align: center;
377
- pointer-events: none;
378
- }
379
- .input-lg + .form-control-feedback {
380
- width: @input-height-large;
381
- height: @input-height-large;
382
- line-height: @input-height-large;
383
- }
384
- .input-sm + .form-control-feedback {
385
- width: @input-height-small;
386
- height: @input-height-small;
387
- line-height: @input-height-small;
388
- }
389
-
390
- // Feedback states
391
- .has-success {
392
- .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
393
- }
394
- .has-warning {
395
- .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
396
- }
397
- .has-error {
398
- .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
399
- }
400
-
401
- // Reposition feedback icon if input has visible label above
402
- .has-feedback label {
403
-
404
- & ~ .form-control-feedback {
405
- top: (@line-height-computed + 5); // Height of the `label` and its margin
406
- }
407
- &.sr-only ~ .form-control-feedback {
408
- top: 0;
409
- }
410
- }
411
-
412
-
413
- // Help text
414
- //
415
- // Apply to any element you wish to create light text for placement immediately
416
- // below a form control. Use for general help, formatting, or instructional text.
417
-
418
- .help-block {
419
- display: block; // account for any element using help-block
420
- margin-top: 5px;
421
- margin-bottom: 10px;
422
- color: lighten(@text-color, 25%); // lighten the text some for contrast
423
- }
424
-
425
-
426
- // Inline forms
427
- //
428
- // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
429
- // forms begin stacked on extra small (mobile) devices and then go inline when
430
- // viewports reach <768px.
431
- //
432
- // Requires wrapping inputs and labels with `.form-group` for proper display of
433
- // default HTML form controls and our custom form controls (e.g., input groups).
434
- //
435
- // Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
436
-
437
- .form-inline {
438
-
439
- // Kick in the inline
440
- @media (min-width: @screen-sm-min) {
441
- // Inline-block all the things for "inline"
442
- .form-group {
443
- display: inline-block;
444
- margin-bottom: 0;
445
- vertical-align: middle;
446
- }
447
-
448
- // In navbar-form, allow folks to *not* use `.form-group`
449
- .form-control {
450
- display: inline-block;
451
- width: auto; // Prevent labels from stacking above inputs in `.form-group`
452
- vertical-align: middle;
453
- }
454
-
455
- // Make static controls behave like regular ones
456
- .form-control-static {
457
- display: inline-block;
458
- }
459
-
460
- .input-group {
461
- display: inline-table;
462
- vertical-align: middle;
463
-
464
- .input-group-addon,
465
- .input-group-btn,
466
- .form-control {
467
- width: auto;
468
- }
469
- }
470
-
471
- // Input groups need that 100% width though
472
- .input-group > .form-control {
473
- width: 100%;
474
- }
475
-
476
- .control-label {
477
- margin-bottom: 0;
478
- vertical-align: middle;
479
- }
480
-
481
- // Remove default margin on radios/checkboxes that were used for stacking, and
482
- // then undo the floating of radios and checkboxes to match.
483
- .radio,
484
- .checkbox {
485
- display: inline-block;
486
- margin-top: 0;
487
- margin-bottom: 0;
488
- vertical-align: middle;
489
-
490
- label {
491
- padding-left: 0;
492
- }
493
- }
494
- .radio input[type="radio"],
495
- .checkbox input[type="checkbox"] {
496
- position: relative;
497
- margin-left: 0;
498
- }
499
-
500
- // Re-override the feedback icon.
501
- .has-feedback .form-control-feedback {
502
- top: 0;
503
- }
504
- }
505
- }
506
-
507
-
508
- // Horizontal forms
509
- //
510
- // Horizontal forms are built on grid classes and allow you to create forms with
511
- // labels on the left and inputs on the right.
512
-
513
- .form-horizontal {
514
-
515
- // Consistent vertical alignment of radios and checkboxes
516
- //
517
- // Labels also get some reset styles, but that is scoped to a media query below.
518
- .radio,
519
- .checkbox,
520
- .radio-inline,
521
- .checkbox-inline {
522
- margin-top: 0;
523
- margin-bottom: 0;
524
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
525
- }
526
- // Account for padding we're adding to ensure the alignment and of help text
527
- // and other content below items
528
- .radio,
529
- .checkbox {
530
- min-height: (@line-height-computed + (@padding-base-vertical + 1));
531
- }
532
-
533
- // Make form groups behave like rows
534
- .form-group {
535
- .make-row();
536
- }
537
-
538
- // Reset spacing and right align labels, but scope to media queries so that
539
- // labels on narrow viewports stack the same as a default form example.
540
- @media (min-width: @screen-sm-min) {
541
- .control-label {
542
- text-align: right;
543
- margin-bottom: 0;
544
- padding-top: (@padding-base-vertical + 1); // Default padding plus a border
545
- }
546
- }
547
-
548
- // Validation states
549
- //
550
- // Reposition the icon because it's now within a grid column and columns have
551
- // `position: relative;` on them. Also accounts for the grid gutter padding.
552
- .has-feedback .form-control-feedback {
553
- right: (@grid-gutter-width / 2);
554
- }
555
-
556
- // Form group sizes
557
- //
558
- // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
559
- // inputs and labels within a `.form-group`.
560
- .form-group-lg {
561
- @media (min-width: @screen-sm-min) {
562
- .control-label {
563
- padding-top: ((@padding-large-vertical * @line-height-large) + 1);
564
- }
565
- }
566
- }
567
- .form-group-sm {
568
- @media (min-width: @screen-sm-min) {
569
- .control-label {
570
- padding-top: (@padding-small-vertical + 1);
571
- }
572
- }
573
- }
574
- }
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
+ .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
+ // Set the height of file controls to match text inputs
60
+ input[type="file"] {
61
+ display: block;
62
+ }
63
+
64
+ // Make range inputs behave like textual form controls
65
+ input[type="range"] {
66
+ display: block;
67
+ width: 100%;
68
+ }
69
+
70
+ // Make multiple select elements height not fixed
71
+ select[multiple],
72
+ select[size] {
73
+ height: auto;
74
+ }
75
+
76
+ // Focus for file, radio, and checkbox
77
+ input[type="file"]:focus,
78
+ input[type="radio"]:focus,
79
+ input[type="checkbox"]:focus {
80
+ .tab-focus();
81
+ }
82
+
83
+ // Adjust output element
84
+ output {
85
+ display: block;
86
+ padding-top: (@padding-base-vertical + 1);
87
+ font-size: @font-size-base;
88
+ line-height: @line-height-base;
89
+ color: @input-color;
90
+ }
91
+
92
+
93
+ // Common form controls
94
+ //
95
+ // Shared size and type resets for form controls. Apply `.form-control` to any
96
+ // of the following form controls:
97
+ //
98
+ // select
99
+ // textarea
100
+ // input[type="text"]
101
+ // input[type="password"]
102
+ // input[type="datetime"]
103
+ // input[type="datetime-local"]
104
+ // input[type="date"]
105
+ // input[type="month"]
106
+ // input[type="time"]
107
+ // input[type="week"]
108
+ // input[type="number"]
109
+ // input[type="email"]
110
+ // input[type="url"]
111
+ // input[type="search"]
112
+ // input[type="tel"]
113
+ // input[type="color"]
114
+
115
+ .form-control {
116
+ display: block;
117
+ width: 100%;
118
+ height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
119
+ padding: @padding-base-vertical @padding-base-horizontal;
120
+ font-size: @font-size-base;
121
+ line-height: @line-height-base;
122
+ color: @input-color;
123
+ background-color: @input-bg;
124
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
125
+ border: 1px solid @input-border;
126
+ 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.
127
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
128
+ .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
129
+
130
+ // Customize the `:focus` state to imitate native WebKit styles.
131
+ .form-control-focus();
132
+
133
+ // Placeholder
134
+ .placeholder();
135
+
136
+ // Disabled and read-only inputs
137
+ //
138
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
139
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
140
+ // don't honor that edge case; we style them as disabled anyway.
141
+ &[disabled],
142
+ &[readonly],
143
+ fieldset[disabled] & {
144
+ background-color: @input-bg-disabled;
145
+ opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655
146
+ }
147
+
148
+ &[disabled],
149
+ fieldset[disabled] & {
150
+ cursor: @cursor-disabled;
151
+ }
152
+
153
+ // Reset height for `textarea`s
154
+ textarea& {
155
+ height: auto;
156
+ }
157
+ }
158
+
159
+
160
+ // Search inputs in iOS
161
+ //
162
+ // This overrides the extra rounded corners on search inputs in iOS so that our
163
+ // `.form-control` class can properly style them. Note that this cannot simply
164
+ // be added to `.form-control` as it's not specific enough. For details, see
165
+ // https://github.com/twbs/bootstrap/issues/11586.
166
+
167
+ input[type="search"] {
168
+ -webkit-appearance: none;
169
+ }
170
+
171
+
172
+ // Special styles for iOS temporal inputs
173
+ //
174
+ // In Mobile Safari, setting `display: block` on temporal inputs causes the
175
+ // text within the input to become vertically misaligned. As a workaround, we
176
+ // set a pixel line-height that matches the given height of the input, but only
177
+ // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
178
+
179
+ @media screen and (-webkit-min-device-pixel-ratio: 0) {
180
+ input[type="date"],
181
+ input[type="time"],
182
+ input[type="datetime-local"],
183
+ input[type="month"] {
184
+ line-height: @input-height-base;
185
+
186
+ &.input-sm,
187
+ .input-group-sm & {
188
+ line-height: @input-height-small;
189
+ }
190
+
191
+ &.input-lg,
192
+ .input-group-lg & {
193
+ line-height: @input-height-large;
194
+ }
195
+ }
196
+ }
197
+
198
+
199
+ // Form groups
200
+ //
201
+ // Designed to help with the organization and spacing of vertical forms. For
202
+ // horizontal forms, use the predefined grid classes.
203
+
204
+ .form-group {
205
+ margin-bottom: @form-group-margin-bottom;
206
+ }
207
+
208
+
209
+ // Checkboxes and radios
210
+ //
211
+ // Indent the labels to position radios/checkboxes as hanging controls.
212
+
213
+ .radio,
214
+ .checkbox {
215
+ position: relative;
216
+ display: block;
217
+ margin-top: 10px;
218
+ margin-bottom: 10px;
219
+
220
+ label {
221
+ min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text
222
+ padding-left: 20px;
223
+ margin-bottom: 0;
224
+ font-weight: normal;
225
+ cursor: pointer;
226
+ }
227
+ }
228
+ .radio input[type="radio"],
229
+ .radio-inline input[type="radio"],
230
+ .checkbox input[type="checkbox"],
231
+ .checkbox-inline input[type="checkbox"] {
232
+ position: absolute;
233
+ margin-left: -20px;
234
+ margin-top: 4px \9;
235
+ }
236
+
237
+ .radio + .radio,
238
+ .checkbox + .checkbox {
239
+ margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing
240
+ }
241
+
242
+ // Radios and checkboxes on same line
243
+ .radio-inline,
244
+ .checkbox-inline {
245
+ position: relative;
246
+ display: inline-block;
247
+ padding-left: 20px;
248
+ margin-bottom: 0;
249
+ vertical-align: middle;
250
+ font-weight: normal;
251
+ cursor: pointer;
252
+ }
253
+ .radio-inline + .radio-inline,
254
+ .checkbox-inline + .checkbox-inline {
255
+ margin-top: 0;
256
+ margin-left: 10px; // space out consecutive inline controls
257
+ }
258
+
259
+ // Apply same disabled cursor tweak as for inputs
260
+ // Some special care is needed because <label>s don't inherit their parent's `cursor`.
261
+ //
262
+ // Note: Neither radios nor checkboxes can be readonly.
263
+ input[type="radio"],
264
+ input[type="checkbox"] {
265
+ &[disabled],
266
+ &.disabled,
267
+ fieldset[disabled] & {
268
+ cursor: @cursor-disabled;
269
+ }
270
+ }
271
+ // These classes are used directly on <label>s
272
+ .radio-inline,
273
+ .checkbox-inline {
274
+ &.disabled,
275
+ fieldset[disabled] & {
276
+ cursor: @cursor-disabled;
277
+ }
278
+ }
279
+ // These classes are used on elements with <label> descendants
280
+ .radio,
281
+ .checkbox {
282
+ &.disabled,
283
+ fieldset[disabled] & {
284
+ label {
285
+ cursor: @cursor-disabled;
286
+ }
287
+ }
288
+ }
289
+
290
+
291
+ // Static form control text
292
+ //
293
+ // Apply class to a `p` element to make any string of text align with labels in
294
+ // a horizontal form layout.
295
+
296
+ .form-control-static {
297
+ // Size it appropriately next to real form controls
298
+ padding-top: (@padding-base-vertical + 1);
299
+ padding-bottom: (@padding-base-vertical + 1);
300
+ // Remove default margin from `p`
301
+ margin-bottom: 0;
302
+ min-height: (@line-height-computed + @font-size-base);
303
+
304
+ &.input-lg,
305
+ &.input-sm {
306
+ padding-left: 0;
307
+ padding-right: 0;
308
+ }
309
+ }
310
+
311
+
312
+ // Form control sizing
313
+ //
314
+ // Build on `.form-control` with modifier classes to decrease or increase the
315
+ // height and font-size of form controls.
316
+ //
317
+ // The `.form-group-* form-control` variations are sadly duplicated to avoid the
318
+ // issue documented in https://github.com/twbs/bootstrap/issues/15074.
319
+
320
+ .input-sm {
321
+ .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
322
+ }
323
+ .form-group-sm {
324
+ .form-control {
325
+ .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);
326
+ }
327
+ .form-control-static {
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
+ min-height: (@line-height-computed + @font-size-small);
333
+ }
334
+ }
335
+
336
+ .input-lg {
337
+ .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
338
+ }
339
+ .form-group-lg {
340
+ .form-control {
341
+ .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);
342
+ }
343
+ .form-control-static {
344
+ height: @input-height-large;
345
+ padding: @padding-large-vertical @padding-large-horizontal;
346
+ font-size: @font-size-large;
347
+ line-height: @line-height-large;
348
+ min-height: (@line-height-computed + @font-size-large);
349
+ }
350
+ }
351
+
352
+
353
+ // Form control feedback states
354
+ //
355
+ // Apply contextual and semantic states to individual form controls.
356
+
357
+ .has-feedback {
358
+ // Enable absolute positioning
359
+ position: relative;
360
+
361
+ // Ensure icons don't overlap text
362
+ .form-control {
363
+ padding-right: (@input-height-base * 1.25);
364
+ }
365
+ }
366
+ // Feedback icon (requires .glyphicon classes)
367
+ .form-control-feedback {
368
+ position: absolute;
369
+ top: 0;
370
+ right: 0;
371
+ z-index: 2; // Ensure icon is above input groups
372
+ display: block;
373
+ width: @input-height-base;
374
+ height: @input-height-base;
375
+ line-height: @input-height-base;
376
+ text-align: center;
377
+ pointer-events: none;
378
+ }
379
+ .input-lg + .form-control-feedback {
380
+ width: @input-height-large;
381
+ height: @input-height-large;
382
+ line-height: @input-height-large;
383
+ }
384
+ .input-sm + .form-control-feedback {
385
+ width: @input-height-small;
386
+ height: @input-height-small;
387
+ line-height: @input-height-small;
388
+ }
389
+
390
+ // Feedback states
391
+ .has-success {
392
+ .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);
393
+ }
394
+ .has-warning {
395
+ .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);
396
+ }
397
+ .has-error {
398
+ .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);
399
+ }
400
+
401
+ // Reposition feedback icon if input has visible label above
402
+ .has-feedback label {
403
+
404
+ & ~ .form-control-feedback {
405
+ top: (@line-height-computed + 5); // Height of the `label` and its margin
406
+ }
407
+ &.sr-only ~ .form-control-feedback {
408
+ top: 0;
409
+ }
410
+ }
411
+
412
+
413
+ // Help text
414
+ //
415
+ // Apply to any element you wish to create light text for placement immediately
416
+ // below a form control. Use for general help, formatting, or instructional text.
417
+
418
+ .help-block {
419
+ display: block; // account for any element using help-block
420
+ margin-top: 5px;
421
+ margin-bottom: 10px;
422
+ color: lighten(@text-color, 25%); // lighten the text some for contrast
423
+ }
424
+
425
+
426
+ // Inline forms
427
+ //
428
+ // Make forms appear inline(-block) by adding the `.form-inline` class. Inline
429
+ // forms begin stacked on extra small (mobile) devices and then go inline when
430
+ // viewports reach <768px.
431
+ //
432
+ // Requires wrapping inputs and labels with `.form-group` for proper display of
433
+ // default HTML form controls and our custom form controls (e.g., input groups).
434
+ //
435
+ // Heads up! This is mixin-ed into `.navbar-form` in navbars.less.
436
+
437
+ .form-inline {
438
+
439
+ // Kick in the inline
440
+ @media (min-width: @screen-sm-min) {
441
+ // Inline-block all the things for "inline"
442
+ .form-group {
443
+ display: inline-block;
444
+ margin-bottom: 0;
445
+ vertical-align: middle;
446
+ }
447
+
448
+ // In navbar-form, allow folks to *not* use `.form-group`
449
+ .form-control {
450
+ display: inline-block;
451
+ width: auto; // Prevent labels from stacking above inputs in `.form-group`
452
+ vertical-align: middle;
453
+ }
454
+
455
+ // Make static controls behave like regular ones
456
+ .form-control-static {
457
+ display: inline-block;
458
+ }
459
+
460
+ .input-group {
461
+ display: inline-table;
462
+ vertical-align: middle;
463
+
464
+ .input-group-addon,
465
+ .input-group-btn,
466
+ .form-control {
467
+ width: auto;
468
+ }
469
+ }
470
+
471
+ // Input groups need that 100% width though
472
+ .input-group > .form-control {
473
+ width: 100%;
474
+ }
475
+
476
+ .control-label {
477
+ margin-bottom: 0;
478
+ vertical-align: middle;
479
+ }
480
+
481
+ // Remove default margin on radios/checkboxes that were used for stacking, and
482
+ // then undo the floating of radios and checkboxes to match.
483
+ .radio,
484
+ .checkbox {
485
+ display: inline-block;
486
+ margin-top: 0;
487
+ margin-bottom: 0;
488
+ vertical-align: middle;
489
+
490
+ label {
491
+ padding-left: 0;
492
+ }
493
+ }
494
+ .radio input[type="radio"],
495
+ .checkbox input[type="checkbox"] {
496
+ position: relative;
497
+ margin-left: 0;
498
+ }
499
+
500
+ // Re-override the feedback icon.
501
+ .has-feedback .form-control-feedback {
502
+ top: 0;
503
+ }
504
+ }
505
+ }
506
+
507
+
508
+ // Horizontal forms
509
+ //
510
+ // Horizontal forms are built on grid classes and allow you to create forms with
511
+ // labels on the left and inputs on the right.
512
+
513
+ .form-horizontal {
514
+
515
+ // Consistent vertical alignment of radios and checkboxes
516
+ //
517
+ // Labels also get some reset styles, but that is scoped to a media query below.
518
+ .radio,
519
+ .checkbox,
520
+ .radio-inline,
521
+ .checkbox-inline {
522
+ margin-top: 0;
523
+ margin-bottom: 0;
524
+ padding-top: (@padding-base-vertical + 1); // Default padding plus a border
525
+ }
526
+ // Account for padding we're adding to ensure the alignment and of help text
527
+ // and other content below items
528
+ .radio,
529
+ .checkbox {
530
+ min-height: (@line-height-computed + (@padding-base-vertical + 1));
531
+ }
532
+
533
+ // Make form groups behave like rows
534
+ .form-group {
535
+ .make-row();
536
+ }
537
+
538
+ // Reset spacing and right align labels, but scope to media queries so that
539
+ // labels on narrow viewports stack the same as a default form example.
540
+ @media (min-width: @screen-sm-min) {
541
+ .control-label {
542
+ text-align: right;
543
+ margin-bottom: 0;
544
+ padding-top: (@padding-base-vertical + 1); // Default padding plus a border
545
+ }
546
+ }
547
+
548
+ // Validation states
549
+ //
550
+ // Reposition the icon because it's now within a grid column and columns have
551
+ // `position: relative;` on them. Also accounts for the grid gutter padding.
552
+ .has-feedback .form-control-feedback {
553
+ right: (@grid-gutter-width / 2);
554
+ }
555
+
556
+ // Form group sizes
557
+ //
558
+ // Quick utility class for applying `.input-lg` and `.input-sm` styles to the
559
+ // inputs and labels within a `.form-group`.
560
+ .form-group-lg {
561
+ @media (min-width: @screen-sm-min) {
562
+ .control-label {
563
+ padding-top: ((@padding-large-vertical * @line-height-large) + 1);
564
+ }
565
+ }
566
+ }
567
+ .form-group-sm {
568
+ @media (min-width: @screen-sm-min) {
569
+ .control-label {
570
+ padding-top: (@padding-small-vertical + 1);
571
+ }
572
+ }
573
+ }
574
+ }