@gmfe/react 2.14.21-beta.1 → 2.14.26-beta.0

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 (377) hide show
  1. package/LICENSE.md +4 -0
  2. package/package.json +3 -3
  3. package/src/common/hooks/index.js +3 -3
  4. package/src/common/hooks/use_mutation_observer.js +25 -25
  5. package/src/common/util.js +52 -52
  6. package/src/component/affix/affix.stories.js +13 -13
  7. package/src/component/affix/index.js +21 -21
  8. package/src/component/box/box.js +31 -31
  9. package/src/component/box/box.stories.js +94 -94
  10. package/src/component/box/box_form.js +77 -77
  11. package/src/component/box/box_panel.js +91 -91
  12. package/src/component/box/box_table.js +51 -51
  13. package/src/component/box/index.js +6 -6
  14. package/src/component/box/style.less +39 -39
  15. package/src/component/button/button.stories.js +91 -91
  16. package/src/component/button/index.js +92 -92
  17. package/src/component/button/style.less +114 -114
  18. package/src/component/calendar/calendar.js +52 -52
  19. package/src/component/calendar/calendar.stories.js +57 -57
  20. package/src/component/calendar/content.js +89 -89
  21. package/src/component/calendar/day.js +109 -109
  22. package/src/component/calendar/head.js +243 -243
  23. package/src/component/calendar/index.js +4 -4
  24. package/src/component/calendar/range_calendar.js +150 -150
  25. package/src/component/calendar/style.less +140 -140
  26. package/src/component/calendar/week.js +27 -27
  27. package/src/component/carousel/carousel.js +178 -178
  28. package/src/component/carousel/stories.js +50 -50
  29. package/src/component/carousel/style.less +48 -48
  30. package/src/component/cascader/cascader.js +441 -443
  31. package/src/component/cascader/cascader.select.js +195 -195
  32. package/src/component/cascader/stories.js +240 -240
  33. package/src/component/cascader/style.less +122 -122
  34. package/src/component/checkbox/checkbox.js +86 -86
  35. package/src/component/checkbox/checkbox_group.js +66 -66
  36. package/src/component/checkbox/index.js +4 -4
  37. package/src/component/checkbox/stories.js +103 -103
  38. package/src/component/checkbox/style.less +88 -88
  39. package/src/component/collapse/collapse.stories.js +18 -18
  40. package/src/component/collapse/index.js +36 -36
  41. package/src/component/color_picker/index.js +190 -190
  42. package/src/component/color_picker/stories.js +17 -17
  43. package/src/component/color_picker/style.less +41 -41
  44. package/src/component/date_picker/date_picker.stories.js +102 -102
  45. package/src/component/date_picker/index.js +217 -217
  46. package/src/component/date_picker/overlay.js +119 -119
  47. package/src/component/date_picker/style.less +22 -22
  48. package/src/component/date_picker/time_select.js +62 -62
  49. package/src/component/date_range_picker/date_range_picker.stories.js +196 -196
  50. package/src/component/date_range_picker/index.js +206 -206
  51. package/src/component/date_range_picker/left.js +127 -127
  52. package/src/component/date_range_picker/overlay.js +202 -202
  53. package/src/component/date_range_picker/style.less +46 -46
  54. package/src/component/date_range_picker/time_range_select.js +150 -150
  55. package/src/component/date_range_picker/two.js +129 -129
  56. package/src/component/date_range_picker/util.js +42 -42
  57. package/src/component/dialog/index.js +240 -240
  58. package/src/component/dialog/stories.js +125 -125
  59. package/src/component/divider/index.js +28 -28
  60. package/src/component/divider/stories.js +5 -5
  61. package/src/component/divider/style.less +15 -15
  62. package/src/component/drawer/index.js +107 -107
  63. package/src/component/drawer/style.less +43 -43
  64. package/src/component/drop_down/drop_down.js +84 -84
  65. package/src/component/drop_down/drop_down_item.js +43 -43
  66. package/src/component/drop_down/drop_down_items.js +22 -22
  67. package/src/component/drop_down/index.js +5 -5
  68. package/src/component/drop_down/stories.js +38 -38
  69. package/src/component/drop_down/style.less +21 -21
  70. package/src/component/drop_select/index.js +208 -208
  71. package/src/component/drop_select/style.less +69 -69
  72. package/src/component/dropper/index.js +62 -62
  73. package/src/component/dropper/style.less +18 -18
  74. package/src/component/editable_text/editable_text.stories.js +47 -47
  75. package/src/component/editable_text/index.js +106 -106
  76. package/src/component/editable_text/style.less +29 -29
  77. package/src/component/filter_select/filter.select.js +416 -416
  78. package/src/component/filter_select/multiple.filter.select.js +425 -425
  79. package/src/component/filter_select/style.less +117 -117
  80. package/src/component/flex/index.js +132 -132
  81. package/src/component/flex/stories.js +13 -13
  82. package/src/component/flex/style.less +101 -101
  83. package/src/component/flip_number/index.js +196 -196
  84. package/src/component/flip_number/stories.js +25 -25
  85. package/src/component/flip_number/utils.js +50 -50
  86. package/src/component/form/form.js +153 -153
  87. package/src/component/form/form.stories.js +553 -553
  88. package/src/component/form/form_block.js +59 -59
  89. package/src/component/form/form_button.js +29 -29
  90. package/src/component/form/form_group.js +173 -173
  91. package/src/component/form/form_item.js +174 -174
  92. package/src/component/form/form_panel.js +71 -71
  93. package/src/component/form/index.js +8 -8
  94. package/src/component/form/style.less +130 -130
  95. package/src/component/form/util.js +13 -13
  96. package/src/component/function_set/function_set.stories.js +91 -91
  97. package/src/component/function_set/index.js +98 -98
  98. package/src/component/function_set/overlay.js +56 -56
  99. package/src/component/grid/col.js +72 -72
  100. package/src/component/grid/grid.stories.js +123 -123
  101. package/src/component/grid/index.js +4 -4
  102. package/src/component/grid/mixin.less +48 -48
  103. package/src/component/grid/row.js +44 -44
  104. package/src/component/grid/style.less +26 -26
  105. package/src/component/grid/util.js +11 -11
  106. package/src/component/icon_down_up/index.js +28 -28
  107. package/src/component/icon_down_up/stories.js +18 -18
  108. package/src/component/icon_down_up/style.less +8 -8
  109. package/src/component/image_preview/index.js +20 -20
  110. package/src/component/image_preview/preview_modal.js +193 -193
  111. package/src/component/image_preview/style.less +119 -119
  112. package/src/component/img_uploader/index.js +149 -149
  113. package/src/component/img_uploader/index.stories.js +51 -51
  114. package/src/component/img_uploader/style.less +22 -22
  115. package/src/component/input/index.js +19 -19
  116. package/src/component/input_number/index.js +73 -73
  117. package/src/component/input_number/number.js +158 -158
  118. package/src/component/input_number/stories.js +21 -21
  119. package/src/component/input_number/style.less +10 -10
  120. package/src/component/layout_root/index.js +165 -165
  121. package/src/component/lazy_img/index.js +68 -68
  122. package/src/component/level_list/index.js +120 -120
  123. package/src/component/level_list/level_item.js +64 -64
  124. package/src/component/level_list/level_list.stories.js +139 -139
  125. package/src/component/level_list/style.less +47 -47
  126. package/src/component/level_list/util.js +22 -22
  127. package/src/component/level_select/index.js +240 -240
  128. package/src/component/level_select/level_select.stories.js +67 -67
  129. package/src/component/list/base.js +155 -155
  130. package/src/component/list/index.js +93 -93
  131. package/src/component/list/list.stories.js +99 -99
  132. package/src/component/list/style.less +58 -58
  133. package/src/component/loading/index.js +45 -45
  134. package/src/component/loading/loading_chunk.js +59 -59
  135. package/src/component/loading/loading_full_screen.js +62 -62
  136. package/src/component/loading/stories.js +46 -46
  137. package/src/component/loading/style.less +92 -92
  138. package/src/component/mask/index.js +34 -34
  139. package/src/component/mask/style.less +10 -10
  140. package/src/component/modal/clean_modal.js +36 -36
  141. package/src/component/modal/index.js +293 -293
  142. package/src/component/modal/right_side_modal.js +37 -37
  143. package/src/component/modal/stories.js +96 -96
  144. package/src/component/modal/style.less +145 -145
  145. package/src/component/more_select/base.js +517 -517
  146. package/src/component/more_select/index.js +91 -91
  147. package/src/component/more_select/stories.js +261 -261
  148. package/src/component/more_select/style.less +130 -130
  149. package/src/component/nav/index.js +269 -269
  150. package/src/component/nav/nav.stories.js +133 -133
  151. package/src/component/nav/style.less +156 -156
  152. package/src/component/nprogress/index.js +34 -34
  153. package/src/component/nprogress/stories.js +22 -22
  154. package/src/component/nprogress/style.less +39 -39
  155. package/src/component/pagination/base.js +67 -67
  156. package/src/component/pagination/left.js +65 -65
  157. package/src/component/pagination/page.js +120 -120
  158. package/src/component/pagination/page_peek.js +96 -96
  159. package/src/component/pagination/pagination.js +54 -54
  160. package/src/component/pagination/pagination.stories.js +104 -104
  161. package/src/component/pagination/pagination_text.js +71 -71
  162. package/src/component/pagination/pagination_v2.js +30 -30
  163. package/src/component/pagination/right.js +67 -67
  164. package/src/component/pagination/style.less +52 -52
  165. package/src/component/pagination/util.js +5 -5
  166. package/src/component/picture_preview/index.js +21 -21
  167. package/src/component/popover/index.js +373 -373
  168. package/src/component/popover/stories.js +101 -101
  169. package/src/component/popup/index.js +4 -4
  170. package/src/component/popup/popup.js +172 -172
  171. package/src/component/popup/popup_content_confirm.js +67 -67
  172. package/src/component/popup/style.less +105 -105
  173. package/src/component/price/index.js +147 -147
  174. package/src/component/price/stories.js +34 -34
  175. package/src/component/progress/index.js +101 -101
  176. package/src/component/progress/stories.js +60 -60
  177. package/src/component/progress/style.less +88 -88
  178. package/src/component/progress_circle/index.js +116 -116
  179. package/src/component/progress_circle/stories.js +54 -54
  180. package/src/component/progress_circle/style.less +17 -17
  181. package/src/component/radio/index.js +4 -4
  182. package/src/component/radio/radio.js +76 -76
  183. package/src/component/radio/radio_group.js +51 -51
  184. package/src/component/radio/stories.js +80 -80
  185. package/src/component/radio/style.less +63 -63
  186. package/src/component/recommend_input/index.js +118 -118
  187. package/src/component/recommend_input/recommend_input.stories.js +56 -56
  188. package/src/component/recommend_input/style.less +25 -25
  189. package/src/component/select/index.js +4 -4
  190. package/src/component/select/option.js +22 -22
  191. package/src/component/select/select.js +186 -186
  192. package/src/component/select/select.stories.js +79 -79
  193. package/src/component/select/style.less +4 -4
  194. package/src/component/selection/index.js +132 -132
  195. package/src/component/selection/selection.stories.js +41 -41
  196. package/src/component/selection/style.less +67 -67
  197. package/src/component/sheet/index.js +7 -7
  198. package/src/component/sheet/sheet.js +348 -348
  199. package/src/component/sheet/sheet_action.js +16 -16
  200. package/src/component/sheet/sheet_batch_action.js +16 -16
  201. package/src/component/sheet/sheet_column.js +21 -21
  202. package/src/component/sheet/sheet_select.js +31 -31
  203. package/src/component/sheet/stories.js +210 -210
  204. package/src/component/sheet/style.less +95 -95
  205. package/src/component/steps/index.js +66 -66
  206. package/src/component/steps/steps.stories.js +15 -15
  207. package/src/component/steps/style.less +39 -39
  208. package/src/component/storage/index.js +54 -54
  209. package/src/component/storage/stories.js +38 -38
  210. package/src/component/switch/index.js +118 -118
  211. package/src/component/switch/stories.js +7 -7
  212. package/src/component/switch/style.less +70 -70
  213. package/src/component/table_select/index.js +152 -152
  214. package/src/component/table_select/style.less +12 -12
  215. package/src/component/table_select/table_select.stories.js +91 -91
  216. package/src/component/table_select/util.js +21 -21
  217. package/src/component/tabs/style.less +33 -33
  218. package/src/component/tabs/tabs.js +97 -97
  219. package/src/component/tabs/tabs.stories.js +48 -48
  220. package/src/component/time_span/style.less +45 -45
  221. package/src/component/time_span/time_span.js +183 -183
  222. package/src/component/time_span/time_span.stories.js +66 -66
  223. package/src/component/time_span/time_span_picker.js +112 -112
  224. package/src/component/time_span/time_span_picker.stories.js +71 -71
  225. package/src/component/tip/index.js +168 -168
  226. package/src/component/tip/stories.js +54 -54
  227. package/src/component/tip/style.less +41 -41
  228. package/src/component/tool_tip/index.js +58 -58
  229. package/src/component/tool_tip/stories.js +36 -36
  230. package/src/component/transfer/box.js +186 -186
  231. package/src/component/transfer/index.js +4 -4
  232. package/src/component/transfer/stories.js +108 -108
  233. package/src/component/transfer/style.less +34 -34
  234. package/src/component/transfer/transfer.js +181 -181
  235. package/src/component/transfer/transfer_group.js +178 -178
  236. package/src/component/transfer_v2/index.js +171 -171
  237. package/src/component/transfer_v2/transfer_v2.stories.js +226 -226
  238. package/src/component/tree/bottom.js +41 -41
  239. package/src/component/tree/index.js +205 -205
  240. package/src/component/tree/item.js +154 -154
  241. package/src/component/tree/list.js +151 -151
  242. package/src/component/tree/style.less +147 -147
  243. package/src/component/tree/tree.stories.js +241 -241
  244. package/src/component/tree/util.js +24 -24
  245. package/src/component/tree_v2/bottom.js +40 -40
  246. package/src/component/tree_v2/index.js +260 -260
  247. package/src/component/tree_v2/list.js +230 -230
  248. package/src/component/tree_v2/style.less +38 -38
  249. package/src/component/tree_v2/tree.stories.js +419 -419
  250. package/src/component/tree_v2/util.js +185 -185
  251. package/src/component/uploader/index.js +108 -108
  252. package/src/component/uploader/style.less +24 -24
  253. package/src/component/uploader/uploader.stories.js +51 -51
  254. package/src/css/arrow.less +56 -56
  255. package/src/css/bg.less +52 -52
  256. package/src/css/border.less +40 -40
  257. package/src/css/cover.less +236 -236
  258. package/src/css/cursor.less +19 -19
  259. package/src/css/display.less +16 -16
  260. package/src/css/distance.less +324 -324
  261. package/src/css/error.less +10 -10
  262. package/src/css/other.less +16 -16
  263. package/src/css/overflow.less +23 -23
  264. package/src/css/position.less +11 -11
  265. package/src/css/rotate.less +28 -28
  266. package/src/css/shadow.less +11 -11
  267. package/src/css/stories.js +104 -104
  268. package/src/css/svg.less +51 -51
  269. package/src/css/text.less +120 -120
  270. package/src/css/variables.less +62 -62
  271. package/src/event_type.js +16 -16
  272. package/src/fonts/glyphicons-halflings-regular.svg +542 -542
  273. package/src/index.js +237 -237
  274. package/src/index.less +108 -108
  275. package/src/less/.csscomb.json +304 -304
  276. package/src/less/.csslintrc +19 -19
  277. package/src/less/alerts.less +72 -72
  278. package/src/less/badges.less +65 -65
  279. package/src/less/bootstrap.less +51 -51
  280. package/src/less/breadcrumbs.less +25 -25
  281. package/src/less/button-groups.less +253 -253
  282. package/src/less/buttons.less +186 -186
  283. package/src/less/carousel.less +269 -269
  284. package/src/less/close.less +33 -33
  285. package/src/less/code.less +68 -68
  286. package/src/less/component-animations.less +39 -39
  287. package/src/less/custom.less +37 -37
  288. package/src/less/dropdowns.less +215 -215
  289. package/src/less/forms.less +612 -612
  290. package/src/less/glyphicons.less +1614 -1614
  291. package/src/less/grid.less +76 -76
  292. package/src/less/input-groups.less +175 -175
  293. package/src/less/jumbotron.less +53 -53
  294. package/src/less/labels.less +64 -64
  295. package/src/less/list-group.less +126 -126
  296. package/src/less/media.less +66 -66
  297. package/src/less/mixins/alerts.less +14 -14
  298. package/src/less/mixins/background-variant.less +9 -9
  299. package/src/less/mixins/border-radius.less +21 -21
  300. package/src/less/mixins/buttons.less +65 -65
  301. package/src/less/mixins/center-block.less +7 -7
  302. package/src/less/mixins/clearfix.less +22 -22
  303. package/src/less/mixins/forms.less +84 -84
  304. package/src/less/mixins/gradients.less +59 -59
  305. package/src/less/mixins/grid-framework.less +96 -96
  306. package/src/less/mixins/grid.less +134 -134
  307. package/src/less/mixins/hide-text.less +21 -21
  308. package/src/less/mixins/image.less +25 -25
  309. package/src/less/mixins/labels.less +12 -12
  310. package/src/less/mixins/list-group.less +30 -30
  311. package/src/less/mixins/nav-divider.less +10 -10
  312. package/src/less/mixins/nav-vertical-align.less +9 -9
  313. package/src/less/mixins/opacity.less +8 -8
  314. package/src/less/mixins/pagination.less +24 -24
  315. package/src/less/mixins/panels.less +24 -24
  316. package/src/less/mixins/progress-bar.less +10 -10
  317. package/src/less/mixins/reset-filter.less +8 -8
  318. package/src/less/mixins/reset-text.less +18 -18
  319. package/src/less/mixins/resize.less +6 -6
  320. package/src/less/mixins/responsive-visibility.less +21 -21
  321. package/src/less/mixins/size.less +10 -10
  322. package/src/less/mixins/tab-focus.less +9 -9
  323. package/src/less/mixins/table-row.less +28 -28
  324. package/src/less/mixins/text-emphasis.less +9 -9
  325. package/src/less/mixins/text-overflow.less +8 -8
  326. package/src/less/mixins/vendor-prefixes.less +254 -254
  327. package/src/less/mixins.less +36 -36
  328. package/src/less/modals.less +163 -163
  329. package/src/less/navbar.less +651 -651
  330. package/src/less/navs.less +236 -236
  331. package/src/less/normalize.less +424 -424
  332. package/src/less/pager.less +54 -54
  333. package/src/less/pagination.less +90 -90
  334. package/src/less/panels.less +274 -274
  335. package/src/less/popovers.less +140 -140
  336. package/src/less/print.less +103 -103
  337. package/src/less/progress-bars.less +92 -92
  338. package/src/less/responsive-embed.less +35 -35
  339. package/src/less/responsive-utilities.less +209 -209
  340. package/src/less/scaffolding.less +154 -154
  341. package/src/less/tables.less +228 -228
  342. package/src/less/theme.less +344 -344
  343. package/src/less/thumbnails.less +35 -35
  344. package/src/less/tooltip.less +115 -115
  345. package/src/less/type.less +352 -352
  346. package/src/less/utilities.less +57 -57
  347. package/src/less/variables.less +833 -833
  348. package/src/less/wells.less +29 -29
  349. package/src/sotries.js +4 -4
  350. package/src/validator/index.js +10 -10
  351. package/src/validator/rules.js +66 -66
  352. package/src/validator/type.js +10 -10
  353. package/src/validator/validator.js +86 -86
  354. package/src/var.less +4 -4
  355. package/svg/calendar-month.svg +8 -8
  356. package/svg/calendar-year.svg +13 -13
  357. package/svg/calendar.svg +17 -17
  358. package/svg/check-detail.svg +18 -18
  359. package/svg/close-circle.svg +13 -13
  360. package/svg/closeup.svg +20 -20
  361. package/svg/delete.svg +10 -10
  362. package/svg/down-small.svg +1 -1
  363. package/svg/down.svg +1 -1
  364. package/svg/edit-box.svg +17 -17
  365. package/svg/edit-pen.svg +17 -17
  366. package/svg/empty.svg +27 -27
  367. package/svg/expand.svg +21 -21
  368. package/svg/left-small.svg +1 -1
  369. package/svg/more.svg +10 -10
  370. package/svg/next.svg +40 -40
  371. package/svg/pen.svg +12 -12
  372. package/svg/remove.svg +1 -1
  373. package/svg/right-small.svg +1 -1
  374. package/svg/search.svg +8 -8
  375. package/svg/setting.svg +17 -17
  376. package/svg/up-small.svg +1 -1
  377. package/svg/up.svg +1 -1
@@ -1,651 +1,651 @@
1
- //
2
- // Navbars
3
- // --------------------------------------------------
4
-
5
- // Wrapper and base class
6
- //
7
- // Provide a static navbar from which we expand to create full-width, fixed, and
8
- // other navbar variations.
9
-
10
- .navbar {
11
- position: relative;
12
- min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
13
- margin-bottom: @navbar-margin-bottom;
14
- border: 1px solid transparent;
15
-
16
- // Prevent floats from breaking the navbar
17
- &:extend(.clearfix all);
18
-
19
- @media (min-width: @grid-float-breakpoint) {
20
- border-radius: @navbar-border-radius;
21
- }
22
- }
23
-
24
- // Navbar heading
25
- //
26
- // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
27
- // styling of responsive aspects.
28
-
29
- .navbar-header {
30
- &:extend(.clearfix all);
31
-
32
- @media (min-width: @grid-float-breakpoint) {
33
- float: left;
34
- }
35
- }
36
-
37
- // Navbar collapse (body)
38
- //
39
- // Group your navbar content into this for easy collapsing and expanding across
40
- // various device sizes. By default, this content is collapsed when <768px, but
41
- // will expand past that for a horizontal display.
42
- //
43
- // To start (on mobile devices) the navbar links, forms, and buttons are stacked
44
- // vertically and include a `max-height` to overflow in case you have too much
45
- // content for the user's viewport.
46
-
47
- .navbar-collapse {
48
- overflow-x: visible;
49
- padding-right: @navbar-padding-horizontal;
50
- padding-left: @navbar-padding-horizontal;
51
- border-top: 1px solid transparent;
52
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
53
- &:extend(.clearfix all);
54
- -webkit-overflow-scrolling: touch;
55
-
56
- &.in {
57
- overflow-y: auto;
58
- }
59
-
60
- @media (min-width: @grid-float-breakpoint) {
61
- width: auto;
62
- border-top: 0;
63
- box-shadow: none;
64
-
65
- &.collapse {
66
- display: block !important;
67
- height: auto !important;
68
- padding-bottom: 0; // Override default setting
69
- overflow: visible !important;
70
- }
71
-
72
- &.in {
73
- overflow-y: visible;
74
- }
75
-
76
- // Undo the collapse side padding for navbars with containers to ensure
77
- // alignment of right-aligned contents.
78
- .navbar-fixed-top &,
79
- .navbar-static-top &,
80
- .navbar-fixed-bottom & {
81
- padding-left: 0;
82
- padding-right: 0;
83
- }
84
- }
85
- }
86
-
87
- .navbar-fixed-top,
88
- .navbar-fixed-bottom {
89
- .navbar-collapse {
90
- max-height: @navbar-collapse-max-height;
91
-
92
- @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
93
- max-height: 200px;
94
- }
95
- }
96
- }
97
-
98
- // Both navbar header and collapse
99
- //
100
- // When a container is present, change the behavior of the header and collapse.
101
-
102
- .container,
103
- .container-fluid {
104
- > .navbar-header,
105
- > .navbar-collapse {
106
- margin-right: -@navbar-padding-horizontal;
107
- margin-left: -@navbar-padding-horizontal;
108
-
109
- @media (min-width: @grid-float-breakpoint) {
110
- margin-right: 0;
111
- margin-left: 0;
112
- }
113
- }
114
- }
115
-
116
- //
117
- // Navbar alignment options
118
- //
119
- // Display the navbar across the entirety of the page or fixed it to the top or
120
- // bottom of the page.
121
-
122
- // Static top (unfixed, but 100% wide) navbar
123
- .navbar-static-top {
124
- z-index: @zindex-navbar;
125
- border-width: 0 0 1px;
126
-
127
- @media (min-width: @grid-float-breakpoint) {
128
- border-radius: 0;
129
- }
130
- }
131
-
132
- // Fix the top/bottom navbars when screen real estate supports it
133
- .navbar-fixed-top,
134
- .navbar-fixed-bottom {
135
- position: fixed;
136
- right: 0;
137
- left: 0;
138
- z-index: @zindex-navbar-fixed;
139
-
140
- // Undo the rounded corners
141
- @media (min-width: @grid-float-breakpoint) {
142
- border-radius: 0;
143
- }
144
- }
145
-
146
- .navbar-fixed-top {
147
- top: 0;
148
- border-width: 0 0 1px;
149
- }
150
-
151
- .navbar-fixed-bottom {
152
- bottom: 0;
153
- margin-bottom: 0; // override .navbar defaults
154
- border-width: 1px 0 0;
155
- }
156
-
157
- // Brand/project name
158
-
159
- .navbar-brand {
160
- float: left;
161
- padding: @navbar-padding-vertical @navbar-padding-horizontal;
162
- font-size: @font-size-large;
163
- line-height: @line-height-computed;
164
- height: @navbar-height;
165
-
166
- &:hover,
167
- &:focus {
168
- text-decoration: none;
169
- }
170
-
171
- > img {
172
- display: block;
173
- }
174
-
175
- @media (min-width: @grid-float-breakpoint) {
176
- .navbar > .container &,
177
- .navbar > .container-fluid & {
178
- margin-left: -@navbar-padding-horizontal;
179
- }
180
- }
181
- }
182
-
183
- // Navbar toggle
184
- //
185
- // Custom button for toggling the `.navbar-collapse`, powered by the collapse
186
- // JavaScript plugin.
187
-
188
- .navbar-toggle {
189
- position: relative;
190
- float: right;
191
- margin-right: @navbar-padding-horizontal;
192
- padding: 9px 10px;
193
- .navbar-vertical-align(34px);
194
- background-color: transparent;
195
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
196
- border: 1px solid transparent;
197
- border-radius: @border-radius-base;
198
-
199
- // We remove the `outline` here, but later compensate by attaching `:hover`
200
- // styles to `:focus`.
201
- &:focus {
202
- outline: 0;
203
- }
204
-
205
- // Bars
206
- .icon-bar {
207
- display: block;
208
- width: 22px;
209
- height: 2px;
210
- border-radius: 1px;
211
- }
212
- .icon-bar + .icon-bar {
213
- margin-top: 4px;
214
- }
215
-
216
- @media (min-width: @grid-float-breakpoint) {
217
- display: none;
218
- }
219
- }
220
-
221
- // Navbar nav links
222
- //
223
- // Builds on top of the `.nav` components with its own modifier class to make
224
- // the nav the full height of the horizontal nav (above 768px).
225
-
226
- .navbar-nav {
227
- margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
228
-
229
- > li > a {
230
- padding-top: 10px;
231
- padding-bottom: 10px;
232
- line-height: @line-height-computed;
233
- }
234
-
235
- @media (max-width: @grid-float-breakpoint-max) {
236
- // Dropdowns get custom display when collapsed
237
- .open .dropdown-menu {
238
- position: static;
239
- float: none;
240
- width: auto;
241
- margin-top: 0;
242
- background-color: transparent;
243
- border: 0;
244
- box-shadow: none;
245
- > li > a,
246
- .dropdown-header {
247
- padding: 5px 15px 5px 25px;
248
- }
249
- > li > a {
250
- line-height: @line-height-computed;
251
- &:hover,
252
- &:focus {
253
- background-image: none;
254
- }
255
- }
256
- }
257
- }
258
-
259
- // Uncollapse the nav
260
- @media (min-width: @grid-float-breakpoint) {
261
- float: left;
262
- margin: 0;
263
-
264
- > li {
265
- float: left;
266
- > a {
267
- padding-top: @navbar-padding-vertical;
268
- padding-bottom: @navbar-padding-vertical;
269
- }
270
- }
271
- }
272
- }
273
-
274
- // Navbar form
275
- //
276
- // Extension of the `.form-inline` with some extra flavor for optimum display in
277
- // our navbars.
278
-
279
- .navbar-form {
280
- margin-left: -@navbar-padding-horizontal;
281
- margin-right: -@navbar-padding-horizontal;
282
- padding: 10px @navbar-padding-horizontal;
283
- border-top: 1px solid transparent;
284
- border-bottom: 1px solid transparent;
285
- @shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
286
- .box-shadow(@shadow);
287
-
288
- // Mixin behavior for optimum display
289
- .form-inline();
290
-
291
- .form-group {
292
- @media (max-width: @grid-float-breakpoint-max) {
293
- margin-bottom: 5px;
294
-
295
- &:last-child {
296
- margin-bottom: 0;
297
- }
298
- }
299
- }
300
-
301
- // Vertically center in expanded, horizontal navbar
302
- .navbar-vertical-align(@input-height-base);
303
-
304
- // Undo 100% width for pull classes
305
- @media (min-width: @grid-float-breakpoint) {
306
- width: auto;
307
- border: 0;
308
- margin-left: 0;
309
- margin-right: 0;
310
- padding-top: 0;
311
- padding-bottom: 0;
312
- .box-shadow(none);
313
- }
314
- }
315
-
316
- // Dropdown menus
317
-
318
- // Menu position and menu carets
319
- .navbar-nav > li > .dropdown-menu {
320
- margin-top: 0;
321
- .border-top-radius(0);
322
- }
323
-
324
- // Menu position and menu caret support for dropups via extra dropup class
325
- .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
326
- margin-bottom: 0;
327
- .border-top-radius(@navbar-border-radius);
328
- .border-bottom-radius(0);
329
- }
330
-
331
- // Buttons in navbars
332
- //
333
- // Vertically center a button within a navbar (when *not* in a form).
334
-
335
- .navbar-btn {
336
- .navbar-vertical-align(@input-height-base);
337
-
338
- &.btn-sm {
339
- .navbar-vertical-align(@input-height-small);
340
- }
341
- &.btn-xs {
342
- .navbar-vertical-align(22);
343
- }
344
- }
345
-
346
- // Text in navbars
347
- //
348
- // Add a class to make any element properly align itself vertically within the navbars.
349
-
350
- .navbar-text {
351
- .navbar-vertical-align(@line-height-computed);
352
-
353
- @media (min-width: @grid-float-breakpoint) {
354
- float: left;
355
- margin-left: @navbar-padding-horizontal;
356
- margin-right: @navbar-padding-horizontal;
357
- }
358
- }
359
-
360
- // Component alignment
361
- //
362
- // Repurpose the pull utilities as their own navbar utilities to avoid specificity
363
- // issues with parents and chaining. Only do this when the navbar is uncollapsed
364
- // though so that navbar contents properly stack and align in mobile.
365
- //
366
- // Declared after the navbar components to ensure more specificity on the margins.
367
-
368
- @media (min-width: @grid-float-breakpoint) {
369
- .navbar-left {
370
- .pull-left();
371
- }
372
-
373
- .navbar-right {
374
- .pull-right();
375
- margin-right: -@navbar-padding-horizontal;
376
-
377
- ~ .navbar-right {
378
- margin-right: 0;
379
- }
380
- }
381
- }
382
-
383
- // Alternate navbars
384
- // --------------------------------------------------
385
-
386
- // Default navbar
387
- .navbar-default {
388
- background-color: @navbar-default-bg;
389
- border-color: @navbar-default-border;
390
-
391
- .navbar-brand {
392
- color: @navbar-default-brand-color;
393
- &:hover,
394
- &:focus {
395
- color: @navbar-default-brand-hover-color;
396
- background-color: @navbar-default-brand-hover-bg;
397
- }
398
- }
399
-
400
- .navbar-text {
401
- color: @navbar-default-color;
402
- }
403
-
404
- .navbar-nav {
405
- > li > a {
406
- color: @navbar-default-link-color;
407
-
408
- &:hover,
409
- &:focus {
410
- color: @navbar-default-link-hover-color;
411
- background-color: @navbar-default-link-hover-bg;
412
- }
413
- }
414
- > .active > a {
415
- &,
416
- &:hover,
417
- &:focus {
418
- color: @navbar-default-link-active-color;
419
- background-color: @navbar-default-link-active-bg;
420
- }
421
- }
422
- > .disabled > a {
423
- &,
424
- &:hover,
425
- &:focus {
426
- color: @navbar-default-link-disabled-color;
427
- background-color: @navbar-default-link-disabled-bg;
428
- }
429
- }
430
- }
431
-
432
- .navbar-toggle {
433
- border-color: @navbar-default-toggle-border-color;
434
- &:hover,
435
- &:focus {
436
- background-color: @navbar-default-toggle-hover-bg;
437
- }
438
- .icon-bar {
439
- background-color: @navbar-default-toggle-icon-bar-bg;
440
- }
441
- }
442
-
443
- .navbar-collapse,
444
- .navbar-form {
445
- border-color: @navbar-default-border;
446
- }
447
-
448
- // Dropdown menu items
449
- .navbar-nav {
450
- // Remove background color from open dropdown
451
- > .open > a {
452
- &,
453
- &:hover,
454
- &:focus {
455
- background-color: @navbar-default-link-active-bg;
456
- color: @navbar-default-link-active-color;
457
- }
458
- }
459
-
460
- @media (max-width: @grid-float-breakpoint-max) {
461
- // Dropdowns get custom display when collapsed
462
- .open .dropdown-menu {
463
- > li > a {
464
- color: @navbar-default-link-color;
465
- &:hover,
466
- &:focus {
467
- color: @navbar-default-link-hover-color;
468
- background-color: @navbar-default-link-hover-bg;
469
- }
470
- }
471
- > .active > a {
472
- &,
473
- &:hover,
474
- &:focus {
475
- color: @navbar-default-link-active-color;
476
- background-color: @navbar-default-link-active-bg;
477
- }
478
- }
479
- > .disabled > a {
480
- &,
481
- &:hover,
482
- &:focus {
483
- color: @navbar-default-link-disabled-color;
484
- background-color: @navbar-default-link-disabled-bg;
485
- }
486
- }
487
- }
488
- }
489
- }
490
-
491
- // Links in navbars
492
- //
493
- // Add a class to ensure links outside the navbar nav are colored correctly.
494
-
495
- .navbar-link {
496
- color: @navbar-default-link-color;
497
- &:hover {
498
- color: @navbar-default-link-hover-color;
499
- }
500
- }
501
-
502
- .btn-link {
503
- color: @navbar-default-link-color;
504
- &:hover,
505
- &:focus {
506
- color: @navbar-default-link-hover-color;
507
- }
508
- &[disabled],
509
- fieldset[disabled] & {
510
- &:hover,
511
- &:focus {
512
- color: @navbar-default-link-disabled-color;
513
- }
514
- }
515
- }
516
- }
517
-
518
- // Inverse navbar
519
-
520
- .navbar-inverse {
521
- background-color: @navbar-inverse-bg;
522
- border-color: @navbar-inverse-border;
523
-
524
- .navbar-brand {
525
- color: @navbar-inverse-brand-color;
526
- &:hover,
527
- &:focus {
528
- color: @navbar-inverse-brand-hover-color;
529
- background-color: @navbar-inverse-brand-hover-bg;
530
- }
531
- }
532
-
533
- .navbar-text {
534
- color: @navbar-inverse-color;
535
- }
536
-
537
- .navbar-nav {
538
- > li > a {
539
- color: @navbar-inverse-link-color;
540
-
541
- &:hover,
542
- &:focus {
543
- color: @navbar-inverse-link-hover-color;
544
- background-color: @navbar-inverse-link-hover-bg;
545
- }
546
- }
547
- > .active > a {
548
- &,
549
- &:hover,
550
- &:focus {
551
- color: @navbar-inverse-link-active-color;
552
- background-color: @navbar-inverse-link-active-bg;
553
- }
554
- }
555
- > .disabled > a {
556
- &,
557
- &:hover,
558
- &:focus {
559
- color: @navbar-inverse-link-disabled-color;
560
- background-color: @navbar-inverse-link-disabled-bg;
561
- }
562
- }
563
- }
564
-
565
- // Darken the responsive nav toggle
566
- .navbar-toggle {
567
- border-color: @navbar-inverse-toggle-border-color;
568
- &:hover,
569
- &:focus {
570
- background-color: @navbar-inverse-toggle-hover-bg;
571
- }
572
- .icon-bar {
573
- background-color: @navbar-inverse-toggle-icon-bar-bg;
574
- }
575
- }
576
-
577
- .navbar-collapse,
578
- .navbar-form {
579
- border-color: darken(@navbar-inverse-bg, 7%);
580
- }
581
-
582
- // Dropdowns
583
- .navbar-nav {
584
- > .open > a {
585
- &,
586
- &:hover,
587
- &:focus {
588
- background-color: @navbar-inverse-link-active-bg;
589
- color: @navbar-inverse-link-active-color;
590
- }
591
- }
592
-
593
- @media (max-width: @grid-float-breakpoint-max) {
594
- // Dropdowns get custom display
595
- .open .dropdown-menu {
596
- > .dropdown-header {
597
- border-color: @navbar-inverse-border;
598
- }
599
- .divider {
600
- background-color: @navbar-inverse-border;
601
- }
602
- > li > a {
603
- color: @navbar-inverse-link-color;
604
- &:hover,
605
- &:focus {
606
- color: @navbar-inverse-link-hover-color;
607
- background-color: @navbar-inverse-link-hover-bg;
608
- }
609
- }
610
- > .active > a {
611
- &,
612
- &:hover,
613
- &:focus {
614
- color: @navbar-inverse-link-active-color;
615
- background-color: @navbar-inverse-link-active-bg;
616
- }
617
- }
618
- > .disabled > a {
619
- &,
620
- &:hover,
621
- &:focus {
622
- color: @navbar-inverse-link-disabled-color;
623
- background-color: @navbar-inverse-link-disabled-bg;
624
- }
625
- }
626
- }
627
- }
628
- }
629
-
630
- .navbar-link {
631
- color: @navbar-inverse-link-color;
632
- &:hover {
633
- color: @navbar-inverse-link-hover-color;
634
- }
635
- }
636
-
637
- .btn-link {
638
- color: @navbar-inverse-link-color;
639
- &:hover,
640
- &:focus {
641
- color: @navbar-inverse-link-hover-color;
642
- }
643
- &[disabled],
644
- fieldset[disabled] & {
645
- &:hover,
646
- &:focus {
647
- color: @navbar-inverse-link-disabled-color;
648
- }
649
- }
650
- }
651
- }
1
+ //
2
+ // Navbars
3
+ // --------------------------------------------------
4
+
5
+ // Wrapper and base class
6
+ //
7
+ // Provide a static navbar from which we expand to create full-width, fixed, and
8
+ // other navbar variations.
9
+
10
+ .navbar {
11
+ position: relative;
12
+ min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
13
+ margin-bottom: @navbar-margin-bottom;
14
+ border: 1px solid transparent;
15
+
16
+ // Prevent floats from breaking the navbar
17
+ &:extend(.clearfix all);
18
+
19
+ @media (min-width: @grid-float-breakpoint) {
20
+ border-radius: @navbar-border-radius;
21
+ }
22
+ }
23
+
24
+ // Navbar heading
25
+ //
26
+ // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
27
+ // styling of responsive aspects.
28
+
29
+ .navbar-header {
30
+ &:extend(.clearfix all);
31
+
32
+ @media (min-width: @grid-float-breakpoint) {
33
+ float: left;
34
+ }
35
+ }
36
+
37
+ // Navbar collapse (body)
38
+ //
39
+ // Group your navbar content into this for easy collapsing and expanding across
40
+ // various device sizes. By default, this content is collapsed when <768px, but
41
+ // will expand past that for a horizontal display.
42
+ //
43
+ // To start (on mobile devices) the navbar links, forms, and buttons are stacked
44
+ // vertically and include a `max-height` to overflow in case you have too much
45
+ // content for the user's viewport.
46
+
47
+ .navbar-collapse {
48
+ overflow-x: visible;
49
+ padding-right: @navbar-padding-horizontal;
50
+ padding-left: @navbar-padding-horizontal;
51
+ border-top: 1px solid transparent;
52
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
53
+ &:extend(.clearfix all);
54
+ -webkit-overflow-scrolling: touch;
55
+
56
+ &.in {
57
+ overflow-y: auto;
58
+ }
59
+
60
+ @media (min-width: @grid-float-breakpoint) {
61
+ width: auto;
62
+ border-top: 0;
63
+ box-shadow: none;
64
+
65
+ &.collapse {
66
+ display: block !important;
67
+ height: auto !important;
68
+ padding-bottom: 0; // Override default setting
69
+ overflow: visible !important;
70
+ }
71
+
72
+ &.in {
73
+ overflow-y: visible;
74
+ }
75
+
76
+ // Undo the collapse side padding for navbars with containers to ensure
77
+ // alignment of right-aligned contents.
78
+ .navbar-fixed-top &,
79
+ .navbar-static-top &,
80
+ .navbar-fixed-bottom & {
81
+ padding-left: 0;
82
+ padding-right: 0;
83
+ }
84
+ }
85
+ }
86
+
87
+ .navbar-fixed-top,
88
+ .navbar-fixed-bottom {
89
+ .navbar-collapse {
90
+ max-height: @navbar-collapse-max-height;
91
+
92
+ @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
93
+ max-height: 200px;
94
+ }
95
+ }
96
+ }
97
+
98
+ // Both navbar header and collapse
99
+ //
100
+ // When a container is present, change the behavior of the header and collapse.
101
+
102
+ .container,
103
+ .container-fluid {
104
+ > .navbar-header,
105
+ > .navbar-collapse {
106
+ margin-right: -@navbar-padding-horizontal;
107
+ margin-left: -@navbar-padding-horizontal;
108
+
109
+ @media (min-width: @grid-float-breakpoint) {
110
+ margin-right: 0;
111
+ margin-left: 0;
112
+ }
113
+ }
114
+ }
115
+
116
+ //
117
+ // Navbar alignment options
118
+ //
119
+ // Display the navbar across the entirety of the page or fixed it to the top or
120
+ // bottom of the page.
121
+
122
+ // Static top (unfixed, but 100% wide) navbar
123
+ .navbar-static-top {
124
+ z-index: @zindex-navbar;
125
+ border-width: 0 0 1px;
126
+
127
+ @media (min-width: @grid-float-breakpoint) {
128
+ border-radius: 0;
129
+ }
130
+ }
131
+
132
+ // Fix the top/bottom navbars when screen real estate supports it
133
+ .navbar-fixed-top,
134
+ .navbar-fixed-bottom {
135
+ position: fixed;
136
+ right: 0;
137
+ left: 0;
138
+ z-index: @zindex-navbar-fixed;
139
+
140
+ // Undo the rounded corners
141
+ @media (min-width: @grid-float-breakpoint) {
142
+ border-radius: 0;
143
+ }
144
+ }
145
+
146
+ .navbar-fixed-top {
147
+ top: 0;
148
+ border-width: 0 0 1px;
149
+ }
150
+
151
+ .navbar-fixed-bottom {
152
+ bottom: 0;
153
+ margin-bottom: 0; // override .navbar defaults
154
+ border-width: 1px 0 0;
155
+ }
156
+
157
+ // Brand/project name
158
+
159
+ .navbar-brand {
160
+ float: left;
161
+ padding: @navbar-padding-vertical @navbar-padding-horizontal;
162
+ font-size: @font-size-large;
163
+ line-height: @line-height-computed;
164
+ height: @navbar-height;
165
+
166
+ &:hover,
167
+ &:focus {
168
+ text-decoration: none;
169
+ }
170
+
171
+ > img {
172
+ display: block;
173
+ }
174
+
175
+ @media (min-width: @grid-float-breakpoint) {
176
+ .navbar > .container &,
177
+ .navbar > .container-fluid & {
178
+ margin-left: -@navbar-padding-horizontal;
179
+ }
180
+ }
181
+ }
182
+
183
+ // Navbar toggle
184
+ //
185
+ // Custom button for toggling the `.navbar-collapse`, powered by the collapse
186
+ // JavaScript plugin.
187
+
188
+ .navbar-toggle {
189
+ position: relative;
190
+ float: right;
191
+ margin-right: @navbar-padding-horizontal;
192
+ padding: 9px 10px;
193
+ .navbar-vertical-align(34px);
194
+ background-color: transparent;
195
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
196
+ border: 1px solid transparent;
197
+ border-radius: @border-radius-base;
198
+
199
+ // We remove the `outline` here, but later compensate by attaching `:hover`
200
+ // styles to `:focus`.
201
+ &:focus {
202
+ outline: 0;
203
+ }
204
+
205
+ // Bars
206
+ .icon-bar {
207
+ display: block;
208
+ width: 22px;
209
+ height: 2px;
210
+ border-radius: 1px;
211
+ }
212
+ .icon-bar + .icon-bar {
213
+ margin-top: 4px;
214
+ }
215
+
216
+ @media (min-width: @grid-float-breakpoint) {
217
+ display: none;
218
+ }
219
+ }
220
+
221
+ // Navbar nav links
222
+ //
223
+ // Builds on top of the `.nav` components with its own modifier class to make
224
+ // the nav the full height of the horizontal nav (above 768px).
225
+
226
+ .navbar-nav {
227
+ margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
228
+
229
+ > li > a {
230
+ padding-top: 10px;
231
+ padding-bottom: 10px;
232
+ line-height: @line-height-computed;
233
+ }
234
+
235
+ @media (max-width: @grid-float-breakpoint-max) {
236
+ // Dropdowns get custom display when collapsed
237
+ .open .dropdown-menu {
238
+ position: static;
239
+ float: none;
240
+ width: auto;
241
+ margin-top: 0;
242
+ background-color: transparent;
243
+ border: 0;
244
+ box-shadow: none;
245
+ > li > a,
246
+ .dropdown-header {
247
+ padding: 5px 15px 5px 25px;
248
+ }
249
+ > li > a {
250
+ line-height: @line-height-computed;
251
+ &:hover,
252
+ &:focus {
253
+ background-image: none;
254
+ }
255
+ }
256
+ }
257
+ }
258
+
259
+ // Uncollapse the nav
260
+ @media (min-width: @grid-float-breakpoint) {
261
+ float: left;
262
+ margin: 0;
263
+
264
+ > li {
265
+ float: left;
266
+ > a {
267
+ padding-top: @navbar-padding-vertical;
268
+ padding-bottom: @navbar-padding-vertical;
269
+ }
270
+ }
271
+ }
272
+ }
273
+
274
+ // Navbar form
275
+ //
276
+ // Extension of the `.form-inline` with some extra flavor for optimum display in
277
+ // our navbars.
278
+
279
+ .navbar-form {
280
+ margin-left: -@navbar-padding-horizontal;
281
+ margin-right: -@navbar-padding-horizontal;
282
+ padding: 10px @navbar-padding-horizontal;
283
+ border-top: 1px solid transparent;
284
+ border-bottom: 1px solid transparent;
285
+ @shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
286
+ .box-shadow(@shadow);
287
+
288
+ // Mixin behavior for optimum display
289
+ .form-inline();
290
+
291
+ .form-group {
292
+ @media (max-width: @grid-float-breakpoint-max) {
293
+ margin-bottom: 5px;
294
+
295
+ &:last-child {
296
+ margin-bottom: 0;
297
+ }
298
+ }
299
+ }
300
+
301
+ // Vertically center in expanded, horizontal navbar
302
+ .navbar-vertical-align(@input-height-base);
303
+
304
+ // Undo 100% width for pull classes
305
+ @media (min-width: @grid-float-breakpoint) {
306
+ width: auto;
307
+ border: 0;
308
+ margin-left: 0;
309
+ margin-right: 0;
310
+ padding-top: 0;
311
+ padding-bottom: 0;
312
+ .box-shadow(none);
313
+ }
314
+ }
315
+
316
+ // Dropdown menus
317
+
318
+ // Menu position and menu carets
319
+ .navbar-nav > li > .dropdown-menu {
320
+ margin-top: 0;
321
+ .border-top-radius(0);
322
+ }
323
+
324
+ // Menu position and menu caret support for dropups via extra dropup class
325
+ .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
326
+ margin-bottom: 0;
327
+ .border-top-radius(@navbar-border-radius);
328
+ .border-bottom-radius(0);
329
+ }
330
+
331
+ // Buttons in navbars
332
+ //
333
+ // Vertically center a button within a navbar (when *not* in a form).
334
+
335
+ .navbar-btn {
336
+ .navbar-vertical-align(@input-height-base);
337
+
338
+ &.btn-sm {
339
+ .navbar-vertical-align(@input-height-small);
340
+ }
341
+ &.btn-xs {
342
+ .navbar-vertical-align(22);
343
+ }
344
+ }
345
+
346
+ // Text in navbars
347
+ //
348
+ // Add a class to make any element properly align itself vertically within the navbars.
349
+
350
+ .navbar-text {
351
+ .navbar-vertical-align(@line-height-computed);
352
+
353
+ @media (min-width: @grid-float-breakpoint) {
354
+ float: left;
355
+ margin-left: @navbar-padding-horizontal;
356
+ margin-right: @navbar-padding-horizontal;
357
+ }
358
+ }
359
+
360
+ // Component alignment
361
+ //
362
+ // Repurpose the pull utilities as their own navbar utilities to avoid specificity
363
+ // issues with parents and chaining. Only do this when the navbar is uncollapsed
364
+ // though so that navbar contents properly stack and align in mobile.
365
+ //
366
+ // Declared after the navbar components to ensure more specificity on the margins.
367
+
368
+ @media (min-width: @grid-float-breakpoint) {
369
+ .navbar-left {
370
+ .pull-left();
371
+ }
372
+
373
+ .navbar-right {
374
+ .pull-right();
375
+ margin-right: -@navbar-padding-horizontal;
376
+
377
+ ~ .navbar-right {
378
+ margin-right: 0;
379
+ }
380
+ }
381
+ }
382
+
383
+ // Alternate navbars
384
+ // --------------------------------------------------
385
+
386
+ // Default navbar
387
+ .navbar-default {
388
+ background-color: @navbar-default-bg;
389
+ border-color: @navbar-default-border;
390
+
391
+ .navbar-brand {
392
+ color: @navbar-default-brand-color;
393
+ &:hover,
394
+ &:focus {
395
+ color: @navbar-default-brand-hover-color;
396
+ background-color: @navbar-default-brand-hover-bg;
397
+ }
398
+ }
399
+
400
+ .navbar-text {
401
+ color: @navbar-default-color;
402
+ }
403
+
404
+ .navbar-nav {
405
+ > li > a {
406
+ color: @navbar-default-link-color;
407
+
408
+ &:hover,
409
+ &:focus {
410
+ color: @navbar-default-link-hover-color;
411
+ background-color: @navbar-default-link-hover-bg;
412
+ }
413
+ }
414
+ > .active > a {
415
+ &,
416
+ &:hover,
417
+ &:focus {
418
+ color: @navbar-default-link-active-color;
419
+ background-color: @navbar-default-link-active-bg;
420
+ }
421
+ }
422
+ > .disabled > a {
423
+ &,
424
+ &:hover,
425
+ &:focus {
426
+ color: @navbar-default-link-disabled-color;
427
+ background-color: @navbar-default-link-disabled-bg;
428
+ }
429
+ }
430
+ }
431
+
432
+ .navbar-toggle {
433
+ border-color: @navbar-default-toggle-border-color;
434
+ &:hover,
435
+ &:focus {
436
+ background-color: @navbar-default-toggle-hover-bg;
437
+ }
438
+ .icon-bar {
439
+ background-color: @navbar-default-toggle-icon-bar-bg;
440
+ }
441
+ }
442
+
443
+ .navbar-collapse,
444
+ .navbar-form {
445
+ border-color: @navbar-default-border;
446
+ }
447
+
448
+ // Dropdown menu items
449
+ .navbar-nav {
450
+ // Remove background color from open dropdown
451
+ > .open > a {
452
+ &,
453
+ &:hover,
454
+ &:focus {
455
+ background-color: @navbar-default-link-active-bg;
456
+ color: @navbar-default-link-active-color;
457
+ }
458
+ }
459
+
460
+ @media (max-width: @grid-float-breakpoint-max) {
461
+ // Dropdowns get custom display when collapsed
462
+ .open .dropdown-menu {
463
+ > li > a {
464
+ color: @navbar-default-link-color;
465
+ &:hover,
466
+ &:focus {
467
+ color: @navbar-default-link-hover-color;
468
+ background-color: @navbar-default-link-hover-bg;
469
+ }
470
+ }
471
+ > .active > a {
472
+ &,
473
+ &:hover,
474
+ &:focus {
475
+ color: @navbar-default-link-active-color;
476
+ background-color: @navbar-default-link-active-bg;
477
+ }
478
+ }
479
+ > .disabled > a {
480
+ &,
481
+ &:hover,
482
+ &:focus {
483
+ color: @navbar-default-link-disabled-color;
484
+ background-color: @navbar-default-link-disabled-bg;
485
+ }
486
+ }
487
+ }
488
+ }
489
+ }
490
+
491
+ // Links in navbars
492
+ //
493
+ // Add a class to ensure links outside the navbar nav are colored correctly.
494
+
495
+ .navbar-link {
496
+ color: @navbar-default-link-color;
497
+ &:hover {
498
+ color: @navbar-default-link-hover-color;
499
+ }
500
+ }
501
+
502
+ .btn-link {
503
+ color: @navbar-default-link-color;
504
+ &:hover,
505
+ &:focus {
506
+ color: @navbar-default-link-hover-color;
507
+ }
508
+ &[disabled],
509
+ fieldset[disabled] & {
510
+ &:hover,
511
+ &:focus {
512
+ color: @navbar-default-link-disabled-color;
513
+ }
514
+ }
515
+ }
516
+ }
517
+
518
+ // Inverse navbar
519
+
520
+ .navbar-inverse {
521
+ background-color: @navbar-inverse-bg;
522
+ border-color: @navbar-inverse-border;
523
+
524
+ .navbar-brand {
525
+ color: @navbar-inverse-brand-color;
526
+ &:hover,
527
+ &:focus {
528
+ color: @navbar-inverse-brand-hover-color;
529
+ background-color: @navbar-inverse-brand-hover-bg;
530
+ }
531
+ }
532
+
533
+ .navbar-text {
534
+ color: @navbar-inverse-color;
535
+ }
536
+
537
+ .navbar-nav {
538
+ > li > a {
539
+ color: @navbar-inverse-link-color;
540
+
541
+ &:hover,
542
+ &:focus {
543
+ color: @navbar-inverse-link-hover-color;
544
+ background-color: @navbar-inverse-link-hover-bg;
545
+ }
546
+ }
547
+ > .active > a {
548
+ &,
549
+ &:hover,
550
+ &:focus {
551
+ color: @navbar-inverse-link-active-color;
552
+ background-color: @navbar-inverse-link-active-bg;
553
+ }
554
+ }
555
+ > .disabled > a {
556
+ &,
557
+ &:hover,
558
+ &:focus {
559
+ color: @navbar-inverse-link-disabled-color;
560
+ background-color: @navbar-inverse-link-disabled-bg;
561
+ }
562
+ }
563
+ }
564
+
565
+ // Darken the responsive nav toggle
566
+ .navbar-toggle {
567
+ border-color: @navbar-inverse-toggle-border-color;
568
+ &:hover,
569
+ &:focus {
570
+ background-color: @navbar-inverse-toggle-hover-bg;
571
+ }
572
+ .icon-bar {
573
+ background-color: @navbar-inverse-toggle-icon-bar-bg;
574
+ }
575
+ }
576
+
577
+ .navbar-collapse,
578
+ .navbar-form {
579
+ border-color: darken(@navbar-inverse-bg, 7%);
580
+ }
581
+
582
+ // Dropdowns
583
+ .navbar-nav {
584
+ > .open > a {
585
+ &,
586
+ &:hover,
587
+ &:focus {
588
+ background-color: @navbar-inverse-link-active-bg;
589
+ color: @navbar-inverse-link-active-color;
590
+ }
591
+ }
592
+
593
+ @media (max-width: @grid-float-breakpoint-max) {
594
+ // Dropdowns get custom display
595
+ .open .dropdown-menu {
596
+ > .dropdown-header {
597
+ border-color: @navbar-inverse-border;
598
+ }
599
+ .divider {
600
+ background-color: @navbar-inverse-border;
601
+ }
602
+ > li > a {
603
+ color: @navbar-inverse-link-color;
604
+ &:hover,
605
+ &:focus {
606
+ color: @navbar-inverse-link-hover-color;
607
+ background-color: @navbar-inverse-link-hover-bg;
608
+ }
609
+ }
610
+ > .active > a {
611
+ &,
612
+ &:hover,
613
+ &:focus {
614
+ color: @navbar-inverse-link-active-color;
615
+ background-color: @navbar-inverse-link-active-bg;
616
+ }
617
+ }
618
+ > .disabled > a {
619
+ &,
620
+ &:hover,
621
+ &:focus {
622
+ color: @navbar-inverse-link-disabled-color;
623
+ background-color: @navbar-inverse-link-disabled-bg;
624
+ }
625
+ }
626
+ }
627
+ }
628
+ }
629
+
630
+ .navbar-link {
631
+ color: @navbar-inverse-link-color;
632
+ &:hover {
633
+ color: @navbar-inverse-link-hover-color;
634
+ }
635
+ }
636
+
637
+ .btn-link {
638
+ color: @navbar-inverse-link-color;
639
+ &:hover,
640
+ &:focus {
641
+ color: @navbar-inverse-link-hover-color;
642
+ }
643
+ &[disabled],
644
+ fieldset[disabled] & {
645
+ &:hover,
646
+ &:focus {
647
+ color: @navbar-inverse-link-disabled-color;
648
+ }
649
+ }
650
+ }
651
+ }