@gmfe/react 2.14.17 → 2.14.19-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 (376) hide show
  1. package/package.json +3 -3
  2. package/src/common/hooks/index.js +3 -3
  3. package/src/common/hooks/use_mutation_observer.js +25 -25
  4. package/src/common/util.js +52 -52
  5. package/src/component/affix/affix.stories.js +13 -13
  6. package/src/component/affix/index.js +21 -21
  7. package/src/component/box/box.js +31 -31
  8. package/src/component/box/box.stories.js +94 -94
  9. package/src/component/box/box_form.js +77 -77
  10. package/src/component/box/box_panel.js +91 -91
  11. package/src/component/box/box_table.js +51 -51
  12. package/src/component/box/index.js +6 -6
  13. package/src/component/box/style.less +39 -39
  14. package/src/component/button/button.stories.js +91 -91
  15. package/src/component/button/index.js +92 -92
  16. package/src/component/button/style.less +114 -114
  17. package/src/component/calendar/calendar.js +52 -52
  18. package/src/component/calendar/calendar.stories.js +57 -57
  19. package/src/component/calendar/content.js +89 -89
  20. package/src/component/calendar/day.js +109 -109
  21. package/src/component/calendar/head.js +243 -243
  22. package/src/component/calendar/index.js +4 -4
  23. package/src/component/calendar/range_calendar.js +150 -150
  24. package/src/component/calendar/style.less +140 -140
  25. package/src/component/calendar/week.js +27 -27
  26. package/src/component/carousel/carousel.js +178 -178
  27. package/src/component/carousel/stories.js +50 -50
  28. package/src/component/carousel/style.less +48 -48
  29. package/src/component/cascader/cascader.js +443 -443
  30. package/src/component/cascader/cascader.select.js +195 -195
  31. package/src/component/cascader/stories.js +240 -240
  32. package/src/component/cascader/style.less +122 -122
  33. package/src/component/checkbox/checkbox.js +86 -86
  34. package/src/component/checkbox/checkbox_group.js +66 -66
  35. package/src/component/checkbox/index.js +4 -4
  36. package/src/component/checkbox/stories.js +103 -103
  37. package/src/component/checkbox/style.less +88 -88
  38. package/src/component/collapse/collapse.stories.js +18 -18
  39. package/src/component/collapse/index.js +36 -36
  40. package/src/component/color_picker/index.js +190 -190
  41. package/src/component/color_picker/stories.js +17 -17
  42. package/src/component/color_picker/style.less +41 -41
  43. package/src/component/date_picker/date_picker.stories.js +102 -102
  44. package/src/component/date_picker/index.js +217 -217
  45. package/src/component/date_picker/overlay.js +119 -119
  46. package/src/component/date_picker/style.less +22 -22
  47. package/src/component/date_picker/time_select.js +62 -62
  48. package/src/component/date_range_picker/date_range_picker.stories.js +196 -196
  49. package/src/component/date_range_picker/index.js +206 -206
  50. package/src/component/date_range_picker/left.js +127 -127
  51. package/src/component/date_range_picker/overlay.js +202 -202
  52. package/src/component/date_range_picker/style.less +46 -46
  53. package/src/component/date_range_picker/time_range_select.js +150 -150
  54. package/src/component/date_range_picker/two.js +129 -129
  55. package/src/component/date_range_picker/util.js +42 -42
  56. package/src/component/dialog/index.js +240 -240
  57. package/src/component/dialog/stories.js +125 -125
  58. package/src/component/divider/index.js +28 -28
  59. package/src/component/divider/stories.js +5 -5
  60. package/src/component/divider/style.less +15 -15
  61. package/src/component/drawer/index.js +107 -107
  62. package/src/component/drawer/style.less +43 -43
  63. package/src/component/drop_down/drop_down.js +84 -84
  64. package/src/component/drop_down/drop_down_item.js +43 -43
  65. package/src/component/drop_down/drop_down_items.js +22 -22
  66. package/src/component/drop_down/index.js +5 -5
  67. package/src/component/drop_down/stories.js +38 -38
  68. package/src/component/drop_down/style.less +21 -21
  69. package/src/component/drop_select/index.js +208 -208
  70. package/src/component/drop_select/style.less +69 -69
  71. package/src/component/dropper/index.js +62 -62
  72. package/src/component/dropper/style.less +18 -18
  73. package/src/component/editable_text/editable_text.stories.js +47 -47
  74. package/src/component/editable_text/index.js +106 -106
  75. package/src/component/editable_text/style.less +29 -29
  76. package/src/component/filter_select/filter.select.js +416 -416
  77. package/src/component/filter_select/multiple.filter.select.js +425 -425
  78. package/src/component/filter_select/style.less +117 -117
  79. package/src/component/flex/index.js +132 -132
  80. package/src/component/flex/stories.js +13 -13
  81. package/src/component/flex/style.less +101 -101
  82. package/src/component/flip_number/index.js +196 -196
  83. package/src/component/flip_number/stories.js +25 -25
  84. package/src/component/flip_number/utils.js +50 -50
  85. package/src/component/form/form.js +153 -153
  86. package/src/component/form/form.stories.js +553 -553
  87. package/src/component/form/form_block.js +59 -59
  88. package/src/component/form/form_button.js +29 -29
  89. package/src/component/form/form_group.js +173 -173
  90. package/src/component/form/form_item.js +163 -163
  91. package/src/component/form/form_panel.js +71 -71
  92. package/src/component/form/index.js +8 -8
  93. package/src/component/form/style.less +130 -130
  94. package/src/component/form/util.js +13 -13
  95. package/src/component/function_set/function_set.stories.js +91 -91
  96. package/src/component/function_set/index.js +98 -98
  97. package/src/component/function_set/overlay.js +56 -56
  98. package/src/component/grid/col.js +72 -72
  99. package/src/component/grid/grid.stories.js +123 -123
  100. package/src/component/grid/index.js +4 -4
  101. package/src/component/grid/mixin.less +48 -48
  102. package/src/component/grid/row.js +44 -44
  103. package/src/component/grid/style.less +26 -26
  104. package/src/component/grid/util.js +11 -11
  105. package/src/component/icon_down_up/index.js +28 -28
  106. package/src/component/icon_down_up/stories.js +18 -18
  107. package/src/component/icon_down_up/style.less +8 -8
  108. package/src/component/image_preview/index.js +20 -20
  109. package/src/component/image_preview/preview_modal.js +193 -193
  110. package/src/component/image_preview/style.less +119 -119
  111. package/src/component/img_uploader/index.js +149 -149
  112. package/src/component/img_uploader/index.stories.js +51 -51
  113. package/src/component/img_uploader/style.less +22 -22
  114. package/src/component/input/index.js +19 -19
  115. package/src/component/input_number/index.js +73 -73
  116. package/src/component/input_number/number.js +158 -158
  117. package/src/component/input_number/stories.js +21 -21
  118. package/src/component/input_number/style.less +10 -10
  119. package/src/component/layout_root/index.js +165 -165
  120. package/src/component/lazy_img/index.js +68 -68
  121. package/src/component/level_list/index.js +120 -120
  122. package/src/component/level_list/level_item.js +64 -64
  123. package/src/component/level_list/level_list.stories.js +139 -139
  124. package/src/component/level_list/style.less +47 -47
  125. package/src/component/level_list/util.js +22 -22
  126. package/src/component/level_select/index.js +240 -240
  127. package/src/component/level_select/level_select.stories.js +67 -67
  128. package/src/component/list/base.js +155 -155
  129. package/src/component/list/index.js +93 -93
  130. package/src/component/list/list.stories.js +99 -99
  131. package/src/component/list/style.less +58 -58
  132. package/src/component/loading/index.js +45 -45
  133. package/src/component/loading/loading_chunk.js +59 -59
  134. package/src/component/loading/loading_full_screen.js +62 -62
  135. package/src/component/loading/stories.js +46 -46
  136. package/src/component/loading/style.less +92 -92
  137. package/src/component/mask/index.js +34 -34
  138. package/src/component/mask/style.less +10 -10
  139. package/src/component/modal/clean_modal.js +36 -36
  140. package/src/component/modal/index.js +293 -293
  141. package/src/component/modal/right_side_modal.js +37 -37
  142. package/src/component/modal/stories.js +96 -96
  143. package/src/component/modal/style.less +145 -145
  144. package/src/component/more_select/base.js +517 -517
  145. package/src/component/more_select/index.js +91 -91
  146. package/src/component/more_select/stories.js +261 -261
  147. package/src/component/more_select/style.less +130 -130
  148. package/src/component/nav/index.js +269 -269
  149. package/src/component/nav/nav.stories.js +133 -133
  150. package/src/component/nav/style.less +156 -156
  151. package/src/component/nprogress/index.js +34 -34
  152. package/src/component/nprogress/stories.js +22 -22
  153. package/src/component/nprogress/style.less +39 -39
  154. package/src/component/pagination/base.js +67 -67
  155. package/src/component/pagination/left.js +65 -65
  156. package/src/component/pagination/page.js +120 -120
  157. package/src/component/pagination/page_peek.js +96 -96
  158. package/src/component/pagination/pagination.js +54 -54
  159. package/src/component/pagination/pagination.stories.js +104 -104
  160. package/src/component/pagination/pagination_text.js +71 -71
  161. package/src/component/pagination/pagination_v2.js +30 -30
  162. package/src/component/pagination/right.js +67 -67
  163. package/src/component/pagination/style.less +52 -52
  164. package/src/component/pagination/util.js +5 -5
  165. package/src/component/picture_preview/index.js +21 -21
  166. package/src/component/popover/index.js +373 -373
  167. package/src/component/popover/stories.js +101 -101
  168. package/src/component/popup/index.js +4 -4
  169. package/src/component/popup/popup.js +172 -172
  170. package/src/component/popup/popup_content_confirm.js +67 -67
  171. package/src/component/popup/style.less +105 -105
  172. package/src/component/price/index.js +147 -147
  173. package/src/component/price/stories.js +34 -34
  174. package/src/component/progress/index.js +101 -101
  175. package/src/component/progress/stories.js +60 -60
  176. package/src/component/progress/style.less +88 -88
  177. package/src/component/progress_circle/index.js +116 -116
  178. package/src/component/progress_circle/stories.js +54 -54
  179. package/src/component/progress_circle/style.less +17 -17
  180. package/src/component/radio/index.js +4 -4
  181. package/src/component/radio/radio.js +76 -76
  182. package/src/component/radio/radio_group.js +51 -51
  183. package/src/component/radio/stories.js +80 -80
  184. package/src/component/radio/style.less +63 -63
  185. package/src/component/recommend_input/index.js +118 -118
  186. package/src/component/recommend_input/recommend_input.stories.js +56 -56
  187. package/src/component/recommend_input/style.less +25 -25
  188. package/src/component/select/index.js +4 -4
  189. package/src/component/select/option.js +22 -22
  190. package/src/component/select/select.js +186 -186
  191. package/src/component/select/select.stories.js +79 -79
  192. package/src/component/select/style.less +4 -4
  193. package/src/component/selection/index.js +132 -132
  194. package/src/component/selection/selection.stories.js +41 -41
  195. package/src/component/selection/style.less +67 -67
  196. package/src/component/sheet/index.js +7 -7
  197. package/src/component/sheet/sheet.js +348 -348
  198. package/src/component/sheet/sheet_action.js +16 -16
  199. package/src/component/sheet/sheet_batch_action.js +16 -16
  200. package/src/component/sheet/sheet_column.js +21 -21
  201. package/src/component/sheet/sheet_select.js +31 -31
  202. package/src/component/sheet/stories.js +210 -210
  203. package/src/component/sheet/style.less +95 -95
  204. package/src/component/steps/index.js +66 -66
  205. package/src/component/steps/steps.stories.js +15 -15
  206. package/src/component/steps/style.less +39 -39
  207. package/src/component/storage/index.js +54 -54
  208. package/src/component/storage/stories.js +38 -38
  209. package/src/component/switch/index.js +118 -118
  210. package/src/component/switch/stories.js +7 -7
  211. package/src/component/switch/style.less +70 -70
  212. package/src/component/table_select/index.js +152 -152
  213. package/src/component/table_select/style.less +12 -12
  214. package/src/component/table_select/table_select.stories.js +91 -91
  215. package/src/component/table_select/util.js +21 -21
  216. package/src/component/tabs/style.less +33 -33
  217. package/src/component/tabs/tabs.js +97 -97
  218. package/src/component/tabs/tabs.stories.js +48 -48
  219. package/src/component/time_span/style.less +45 -45
  220. package/src/component/time_span/time_span.js +183 -183
  221. package/src/component/time_span/time_span.stories.js +66 -66
  222. package/src/component/time_span/time_span_picker.js +112 -112
  223. package/src/component/time_span/time_span_picker.stories.js +71 -71
  224. package/src/component/tip/index.js +168 -168
  225. package/src/component/tip/stories.js +54 -54
  226. package/src/component/tip/style.less +41 -41
  227. package/src/component/tool_tip/index.js +58 -58
  228. package/src/component/tool_tip/stories.js +36 -36
  229. package/src/component/transfer/box.js +186 -141
  230. package/src/component/transfer/index.js +4 -4
  231. package/src/component/transfer/stories.js +108 -118
  232. package/src/component/transfer/style.less +34 -34
  233. package/src/component/transfer/transfer.js +181 -173
  234. package/src/component/transfer/transfer_group.js +178 -178
  235. package/src/component/transfer_v2/index.js +171 -171
  236. package/src/component/transfer_v2/transfer_v2.stories.js +226 -226
  237. package/src/component/tree/bottom.js +41 -41
  238. package/src/component/tree/index.js +205 -205
  239. package/src/component/tree/item.js +154 -154
  240. package/src/component/tree/list.js +151 -151
  241. package/src/component/tree/style.less +147 -147
  242. package/src/component/tree/tree.stories.js +241 -241
  243. package/src/component/tree/util.js +24 -24
  244. package/src/component/tree_v2/bottom.js +40 -40
  245. package/src/component/tree_v2/index.js +260 -260
  246. package/src/component/tree_v2/list.js +230 -230
  247. package/src/component/tree_v2/style.less +38 -38
  248. package/src/component/tree_v2/tree.stories.js +419 -419
  249. package/src/component/tree_v2/util.js +185 -185
  250. package/src/component/uploader/index.js +108 -108
  251. package/src/component/uploader/style.less +24 -24
  252. package/src/component/uploader/uploader.stories.js +51 -51
  253. package/src/css/arrow.less +56 -56
  254. package/src/css/bg.less +52 -52
  255. package/src/css/border.less +40 -40
  256. package/src/css/cover.less +236 -236
  257. package/src/css/cursor.less +19 -19
  258. package/src/css/display.less +16 -16
  259. package/src/css/distance.less +324 -324
  260. package/src/css/error.less +10 -10
  261. package/src/css/other.less +16 -16
  262. package/src/css/overflow.less +23 -23
  263. package/src/css/position.less +11 -11
  264. package/src/css/rotate.less +28 -28
  265. package/src/css/shadow.less +11 -11
  266. package/src/css/stories.js +104 -104
  267. package/src/css/svg.less +51 -51
  268. package/src/css/text.less +120 -120
  269. package/src/css/variables.less +62 -62
  270. package/src/event_type.js +16 -16
  271. package/src/fonts/glyphicons-halflings-regular.svg +542 -542
  272. package/src/index.js +237 -237
  273. package/src/index.less +108 -108
  274. package/src/less/.csscomb.json +304 -304
  275. package/src/less/.csslintrc +19 -19
  276. package/src/less/alerts.less +72 -72
  277. package/src/less/badges.less +65 -65
  278. package/src/less/bootstrap.less +51 -51
  279. package/src/less/breadcrumbs.less +25 -25
  280. package/src/less/button-groups.less +253 -253
  281. package/src/less/buttons.less +186 -186
  282. package/src/less/carousel.less +269 -269
  283. package/src/less/close.less +33 -33
  284. package/src/less/code.less +68 -68
  285. package/src/less/component-animations.less +39 -39
  286. package/src/less/custom.less +37 -37
  287. package/src/less/dropdowns.less +215 -215
  288. package/src/less/forms.less +612 -612
  289. package/src/less/glyphicons.less +1614 -1614
  290. package/src/less/grid.less +76 -76
  291. package/src/less/input-groups.less +175 -175
  292. package/src/less/jumbotron.less +53 -53
  293. package/src/less/labels.less +64 -64
  294. package/src/less/list-group.less +126 -126
  295. package/src/less/media.less +66 -66
  296. package/src/less/mixins/alerts.less +14 -14
  297. package/src/less/mixins/background-variant.less +9 -9
  298. package/src/less/mixins/border-radius.less +21 -21
  299. package/src/less/mixins/buttons.less +65 -65
  300. package/src/less/mixins/center-block.less +7 -7
  301. package/src/less/mixins/clearfix.less +22 -22
  302. package/src/less/mixins/forms.less +84 -84
  303. package/src/less/mixins/gradients.less +59 -59
  304. package/src/less/mixins/grid-framework.less +96 -96
  305. package/src/less/mixins/grid.less +134 -134
  306. package/src/less/mixins/hide-text.less +21 -21
  307. package/src/less/mixins/image.less +25 -25
  308. package/src/less/mixins/labels.less +12 -12
  309. package/src/less/mixins/list-group.less +30 -30
  310. package/src/less/mixins/nav-divider.less +10 -10
  311. package/src/less/mixins/nav-vertical-align.less +9 -9
  312. package/src/less/mixins/opacity.less +8 -8
  313. package/src/less/mixins/pagination.less +24 -24
  314. package/src/less/mixins/panels.less +24 -24
  315. package/src/less/mixins/progress-bar.less +10 -10
  316. package/src/less/mixins/reset-filter.less +8 -8
  317. package/src/less/mixins/reset-text.less +18 -18
  318. package/src/less/mixins/resize.less +6 -6
  319. package/src/less/mixins/responsive-visibility.less +21 -21
  320. package/src/less/mixins/size.less +10 -10
  321. package/src/less/mixins/tab-focus.less +9 -9
  322. package/src/less/mixins/table-row.less +28 -28
  323. package/src/less/mixins/text-emphasis.less +9 -9
  324. package/src/less/mixins/text-overflow.less +8 -8
  325. package/src/less/mixins/vendor-prefixes.less +254 -254
  326. package/src/less/mixins.less +36 -36
  327. package/src/less/modals.less +163 -163
  328. package/src/less/navbar.less +651 -651
  329. package/src/less/navs.less +236 -236
  330. package/src/less/normalize.less +424 -424
  331. package/src/less/pager.less +54 -54
  332. package/src/less/pagination.less +90 -90
  333. package/src/less/panels.less +274 -274
  334. package/src/less/popovers.less +140 -140
  335. package/src/less/print.less +103 -103
  336. package/src/less/progress-bars.less +92 -92
  337. package/src/less/responsive-embed.less +35 -35
  338. package/src/less/responsive-utilities.less +209 -209
  339. package/src/less/scaffolding.less +154 -154
  340. package/src/less/tables.less +228 -228
  341. package/src/less/theme.less +344 -344
  342. package/src/less/thumbnails.less +35 -35
  343. package/src/less/tooltip.less +115 -115
  344. package/src/less/type.less +352 -352
  345. package/src/less/utilities.less +57 -57
  346. package/src/less/variables.less +833 -833
  347. package/src/less/wells.less +29 -29
  348. package/src/sotries.js +4 -4
  349. package/src/validator/index.js +10 -10
  350. package/src/validator/rules.js +66 -66
  351. package/src/validator/type.js +10 -10
  352. package/src/validator/validator.js +86 -86
  353. package/src/var.less +4 -4
  354. package/svg/calendar-month.svg +8 -8
  355. package/svg/calendar-year.svg +13 -13
  356. package/svg/calendar.svg +17 -17
  357. package/svg/check-detail.svg +18 -18
  358. package/svg/close-circle.svg +13 -13
  359. package/svg/closeup.svg +20 -20
  360. package/svg/delete.svg +10 -10
  361. package/svg/down-small.svg +1 -1
  362. package/svg/down.svg +1 -1
  363. package/svg/edit-box.svg +17 -17
  364. package/svg/edit-pen.svg +17 -17
  365. package/svg/empty.svg +27 -27
  366. package/svg/expand.svg +21 -21
  367. package/svg/left-small.svg +1 -1
  368. package/svg/more.svg +10 -10
  369. package/svg/next.svg +40 -40
  370. package/svg/pen.svg +12 -12
  371. package/svg/remove.svg +1 -1
  372. package/svg/right-small.svg +1 -1
  373. package/svg/search.svg +8 -8
  374. package/svg/setting.svg +17 -17
  375. package/svg/up-small.svg +1 -1
  376. 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
+ }