system-clients 3.2.77 → 3.2.78

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 (272) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/.eslintrc.js +16 -16
  4. package/.gradle/7.4/checksums/checksums.lock +0 -0
  5. package/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
  6. package/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
  7. package/CHANGELOG.md +51 -51
  8. package/README.md +36 -36
  9. package/SystemClient.iml +8 -8
  10. package/build/css-loaders.js +34 -34
  11. package/build/dev-client.js +8 -8
  12. package/build/example-server.js +80 -80
  13. package/build/release.sh +28 -28
  14. package/build/utils.js +71 -71
  15. package/build/webpack.base.conf.js +85 -85
  16. package/build/webpack.dev.conf.js +31 -31
  17. package/build/webpack.example.conf.js +49 -49
  18. package/build/webpack.prod.conf.js +60 -60
  19. package/build/webpack.test.conf.js +31 -31
  20. package/build.gradle +6 -6
  21. package/config/dev.env.js +6 -6
  22. package/config/index.js +38 -38
  23. package/config/prod.env.js +3 -3
  24. package/config/test.env.js +6 -6
  25. package/doc/Login.md +7 -7
  26. package/examples/LoginPage/App.vue +21 -21
  27. package/examples/LoginPage/index.html +11 -11
  28. package/examples/LoginPage/main.js +15 -15
  29. package/examples/ReadCard/App.vue +23 -23
  30. package/examples/ReadCard/index.html +11 -11
  31. package/examples/ReadCard/main.js +12 -12
  32. package/index.html +21 -21
  33. package/package.json +105 -105
  34. package/release.bat +5 -5
  35. package/src/App.vue +24 -24
  36. package/src/LodopFuncs.js +123 -123
  37. package/src/assets/binding.svg +1 -1
  38. package/src/assets/unbind.svg +1 -1
  39. package/src/assets//345/205/254/345/221/212.svg +1 -1
  40. package/src/assets//347/207/203/346/260/224/347/274/264/350/264/271.eps +116 -116
  41. package/src/assets//350/201/224/347/263/273/346/210/221/344/273/254.svg +1 -1
  42. package/src/components/List.vue +51 -51
  43. package/src/components/Main.vue +923 -923
  44. package/src/components/TabButton.vue +201 -201
  45. package/src/components/Table.js +74 -74
  46. package/src/components/Tabs.vue +67 -67
  47. package/src/components/Util.js +343 -343
  48. package/src/components/addressManage/AddressCascadingMenu.vue +145 -145
  49. package/src/components/common/ProgressBase.vue +83 -83
  50. package/src/components/equipment/EquipmentManage.vue +65 -65
  51. package/src/components/equipment/PcAdd.vue +105 -105
  52. package/src/components/equipment/PcList.vue +119 -119
  53. package/src/components/equipment/PcManage.vue +60 -60
  54. package/src/components/equipment/PhoneAdd.vue +107 -107
  55. package/src/components/equipment/PhoneList.vue +112 -112
  56. package/src/components/equipment/PhoneManage.vue +60 -60
  57. package/src/components/equipment/PosAdd.vue +323 -323
  58. package/src/components/equipment/PosList.vue +294 -294
  59. package/src/components/equipment/PosManage.vue +138 -138
  60. package/src/components/equipment/PosManageBoth.vue +125 -125
  61. package/src/components/equipment/PosParamAdd.vue +236 -236
  62. package/src/components/equipment/PosParamList.vue +121 -121
  63. package/src/components/equipment/PosParamManage.vue +51 -51
  64. package/src/components/materialManage/materialData.vue +44 -44
  65. package/src/components/materialManage/materialList.vue +255 -255
  66. package/src/components/parammanage/ParamManage.vue +42 -42
  67. package/src/components/parammanage/ParamManages.vue +43 -43
  68. package/src/components/parammanage/ParamPage.vue +337 -337
  69. package/src/components/parammanage/ParamPages.vue +222 -222
  70. package/src/components/parammanage/SinglePage.vue +235 -235
  71. package/src/components/parammanage/SinglePages.vue +167 -167
  72. package/src/components/server/AddChangeMsg.vue +66 -66
  73. package/src/components/server/ChangeDeclare.vue +45 -45
  74. package/src/components/server/IconTree.vue +26 -26
  75. package/src/components/server/ImageVieweTest.vue +56 -56
  76. package/src/components/server/ImageViewer.vue +350 -350
  77. package/src/components/server/LeftTree.vue +111 -111
  78. package/src/components/server/LoadData.vue +55 -55
  79. package/src/components/server/Login.vue +566 -566
  80. package/src/components/server/LoginPage.vue +235 -235
  81. package/src/components/server/LoginView.vue +128 -128
  82. package/src/components/server/Menu.vue +188 -188
  83. package/src/components/server/ModifyPw.vue +125 -125
  84. package/src/components/server/PcdBuildingSelect.vue +241 -241
  85. package/src/components/server/ResSelect.vue +155 -155
  86. package/src/components/server/ResSelectGroup.vue +198 -198
  87. package/src/components/server/RightTree.vue +348 -348
  88. package/src/components/server/RoleSelector.vue +88 -88
  89. package/src/components/server/TestResSelect.vue +58 -58
  90. package/src/components/server/TestResSelectGroup.vue +388 -388
  91. package/src/components/server/TestRightTree.vue +42 -42
  92. package/src/filiale/baole/Login.vue +568 -568
  93. package/src/filiale/baole/system.js +5 -5
  94. package/src/filiale/chengtou/Login.vue +537 -537
  95. package/src/filiale/chengtou/system.js +5 -5
  96. package/src/filiale/dongguan/Login.vue +900 -900
  97. package/src/filiale/dongguan/Main.vue +715 -715
  98. package/src/filiale/dongguan/system.js +6 -6
  99. package/src/filiale/furuike/Login.vue +583 -583
  100. package/src/filiale/furuike/Main.vue +827 -827
  101. package/src/filiale/furuike/system.js +7 -7
  102. package/src/filiale/gehua/Main.vue +807 -807
  103. package/src/filiale/gehua/system.js +6 -6
  104. package/src/filiale/konggang/Login.vue +470 -470
  105. package/src/filiale/konggang/system.js +7 -7
  106. package/src/filiale/qianneng/Login.vue +566 -566
  107. package/src/filiale/qianneng/Main.vue +816 -816
  108. package/src/filiale/qianneng/ModifyPw.vue +107 -107
  109. package/src/filiale/qianneng/system.js +11 -11
  110. package/src/filiale/rizhao/LeftTree.vue +111 -111
  111. package/src/filiale/rizhao/Login.vue +791 -791
  112. package/src/filiale/rizhao/Main.vue +611 -611
  113. package/src/filiale/rizhao/system.js +14 -14
  114. package/src/filiale/shiquan/Login.vue +564 -564
  115. package/src/filiale/shiquan/system.js +8 -8
  116. package/src/filiale/tianyi/Login.vue +571 -571
  117. package/src/filiale/tianyi/system.js +5 -5
  118. package/src/filiale/tongchuan/Login.vue +561 -561
  119. package/src/filiale/tongchuan/Main.vue +1019 -1019
  120. package/src/filiale/tongchuan/system.js +7 -7
  121. package/src/filiale/wenxi/Login.vue +535 -535
  122. package/src/filiale/wenxi/Main.vue +785 -785
  123. package/src/filiale/wenxi/system.js +10 -10
  124. package/src/filiale/wuhai/LeftTree.vue +141 -141
  125. package/src/filiale/wuhai/Main.vue +807 -807
  126. package/src/filiale/wuhai/system.js +10 -10
  127. package/src/filiale/yuchuan/Login.vue +889 -889
  128. package/src/filiale/yuchuan/Main.vue +864 -864
  129. package/src/filiale/yuchuan/system.js +10 -10
  130. package/src/filiale/zhoukou/Main.vue +807 -807
  131. package/src/filiale/zhoukou/system.js +6 -6
  132. package/src/index.js +7 -7
  133. package/src/plugins/EncryptUtil.js +53 -53
  134. package/src/plugins/GetLoginInfoService.js +536 -536
  135. package/src/plugins/HeatGetLoginInfoService.js +491 -491
  136. package/src/plugins/validation.js +15 -15
  137. package/src/project/ProjectPage.vue +24 -24
  138. package/src/project/State.js +17 -17
  139. package/src/stores/AppData.js +38 -38
  140. package/src/stores/HeatAppData.js +38 -38
  141. package/src/styles/fonts/glyphicons-halflings-regular.svg +288 -288
  142. package/src/styles/less/.csscomb.json +304 -304
  143. package/src/styles/less/.csslintrc +19 -19
  144. package/src/styles/less/alerts.less +73 -73
  145. package/src/styles/less/aofeng/animate.min.css +10 -10
  146. package/src/styles/less/aofeng/expandcss.less +569 -569
  147. package/src/styles/less/aofeng/login.less +367 -367
  148. package/src/styles/less/aofeng/standard.less +2507 -2507
  149. package/src/styles/less/aofeng/themeOne/BinaryTemplate.less +690 -690
  150. package/src/styles/less/aofeng/themeOne/loginStyle.less +1586 -1586
  151. package/src/styles/less/aofeng/themeOne/systemStyle.less +2650 -2650
  152. package/src/styles/less/aofeng/themeOne.less +17 -17
  153. package/src/styles/less/aofeng/themeTwo/newStyle1.less +415 -415
  154. package/src/styles/less/aofeng/themeTwo.less +3 -3
  155. package/src/styles/less/badges.less +66 -66
  156. package/src/styles/less/bootstrap.less +66 -66
  157. package/src/styles/less/breadcrumbs.less +26 -26
  158. package/src/styles/less/button-groups.less +247 -247
  159. package/src/styles/less/buttons.less +172 -172
  160. package/src/styles/less/carousel.less +269 -269
  161. package/src/styles/less/close.less +34 -34
  162. package/src/styles/less/code.less +69 -69
  163. package/src/styles/less/component-animations.less +33 -33
  164. package/src/styles/less/dropdowns.less +216 -216
  165. package/src/styles/less/fonts-list.less +25 -25
  166. package/src/styles/less/forms.less +626 -626
  167. package/src/styles/less/glyphicons.less +305 -305
  168. package/src/styles/less/grid.less +84 -84
  169. package/src/styles/less/input-groups.less +167 -167
  170. package/src/styles/less/jumbotron.less +52 -52
  171. package/src/styles/less/labels.less +64 -64
  172. package/src/styles/less/list-group.less +141 -141
  173. package/src/styles/less/manageStyle/manageChile.less +180 -180
  174. package/src/styles/less/manageStyle/manageStyle/manageChile.less +180 -180
  175. package/src/styles/less/manageStyle/manageStyle/manageStyle.less +1102 -1102
  176. package/src/styles/less/manageStyle/manageStyle/safeStyle.less +498 -498
  177. package/src/styles/less/manageStyle/manageStyle.less +1102 -1102
  178. package/src/styles/less/manageStyle/safeStyle.less +498 -498
  179. package/src/styles/less/media.less +66 -66
  180. package/src/styles/less/mixins/alerts.less +14 -14
  181. package/src/styles/less/mixins/background-variant.less +9 -9
  182. package/src/styles/less/mixins/border-radius.less +18 -18
  183. package/src/styles/less/mixins/buttons.less +69 -69
  184. package/src/styles/less/mixins/center-block.less +7 -7
  185. package/src/styles/less/mixins/clearfix.less +22 -22
  186. package/src/styles/less/mixins/forms.less +90 -90
  187. package/src/styles/less/mixins/gradients.less +59 -59
  188. package/src/styles/less/mixins/grid-framework.less +92 -92
  189. package/src/styles/less/mixins/grid.less +122 -122
  190. package/src/styles/less/mixins/hide-text.less +21 -21
  191. package/src/styles/less/mixins/image.less +33 -33
  192. package/src/styles/less/mixins/labels.less +12 -12
  193. package/src/styles/less/mixins/list-group.less +30 -30
  194. package/src/styles/less/mixins/nav-divider.less +10 -10
  195. package/src/styles/less/mixins/nav-vertical-align.less +9 -9
  196. package/src/styles/less/mixins/opacity.less +8 -8
  197. package/src/styles/less/mixins/pagination.less +24 -24
  198. package/src/styles/less/mixins/panels.less +24 -24
  199. package/src/styles/less/mixins/progress-bar.less +10 -10
  200. package/src/styles/less/mixins/reset-filter.less +8 -8
  201. package/src/styles/less/mixins/reset-text.less +18 -18
  202. package/src/styles/less/mixins/resize.less +6 -6
  203. package/src/styles/less/mixins/responsive-visibility.less +15 -15
  204. package/src/styles/less/mixins/size.less +10 -10
  205. package/src/styles/less/mixins/tab-focus.less +9 -9
  206. package/src/styles/less/mixins/table-row.less +44 -44
  207. package/src/styles/less/mixins/text-emphasis.less +9 -9
  208. package/src/styles/less/mixins/text-overflow.less +8 -8
  209. package/src/styles/less/mixins/vendor-prefixes.less +227 -227
  210. package/src/styles/less/mixins.less +40 -40
  211. package/src/styles/less/modals.less +151 -151
  212. package/src/styles/less/navbar.less +660 -660
  213. package/src/styles/less/navs.less +285 -285
  214. package/src/styles/less/normalize.less +424 -424
  215. package/src/styles/less/pager.less +76 -76
  216. package/src/styles/less/pagination.less +89 -89
  217. package/src/styles/less/panels.less +275 -275
  218. package/src/styles/less/popovers.less +131 -131
  219. package/src/styles/less/print.less +101 -101
  220. package/src/styles/less/progress-bars.less +87 -87
  221. package/src/styles/less/responsive-embed.less +35 -35
  222. package/src/styles/less/responsive-utilities.less +194 -194
  223. package/src/styles/less/scaffolding.less +161 -161
  224. package/src/styles/less/stand.less +207 -207
  225. package/src/styles/less/tables.less +312 -312
  226. package/src/styles/less/theme.less +291 -291
  227. package/src/styles/less/thumbnails.less +36 -36
  228. package/src/styles/less/tooltip.less +102 -102
  229. package/src/styles/less/type.less +316 -316
  230. package/src/styles/less/utilities.less +55 -55
  231. package/src/styles/less/variables.less +899 -899
  232. package/src/styles/less/wells.less +29 -29
  233. package/src/system.js +121 -121
  234. package/src/systemphone.js +11 -11
  235. package/src/util/Daiban.json +12 -12
  236. package/src/util/LdapHelper.js +75 -75
  237. package/test/e2e/custom-assertions/elementCount.js +26 -26
  238. package/test/e2e/nightwatch.conf.js +40 -40
  239. package/test/e2e/runner.js +30 -30
  240. package/test/e2e/specs/test.js +14 -14
  241. package/test/unit/.eslintrc +5 -5
  242. package/test/unit/index.js +13 -13
  243. package/test/unit/init.js +10 -10
  244. package/test/unit/karma.conf.js +49 -49
  245. package/test/unit/specs/base64.spec.js +5 -5
  246. package/test/unit/specs/components/parammanage/ParamPage.spec.js +20 -20
  247. package/test/unit/specs/components/parammanage/SinglePage.spec.js +20 -20
  248. package/test/unit/specs/components/server/LeftTree/App.vue +18 -18
  249. package/test/unit/specs/components/server/LeftTree/LeftTree.spec.js +22 -22
  250. package/test/unit/specs/components/server/LoadData.spec.js +24 -24
  251. package/test/unit/specs/components/server/Login.spec.js +61 -61
  252. package/test/unit/specs/components/server/RightTree.spec.js +50 -50
  253. package/test/unit/specs/plugins/GetLoginInfoService.spec.js +55 -55
  254. package/test/unit/test.html +76 -76
  255. package/yarn-error.log +6896 -6896
  256. package/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
  257. package/.gradle/7.4/executionHistory/executionHistory.bin +0 -0
  258. package/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
  259. package/.gradle/7.4/fileChanges/last-build.bin +0 -0
  260. package/.gradle/7.4/fileHashes/fileHashes.bin +0 -0
  261. package/.gradle/7.4/gc.properties +0 -0
  262. package/.gradle/8.0.2/checksums/checksums.lock +0 -0
  263. package/.gradle/8.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  264. package/.gradle/8.0.2/dependencies-accessors/gc.properties +0 -0
  265. package/.gradle/8.0.2/fileChanges/last-build.bin +0 -0
  266. package/.gradle/8.0.2/fileHashes/fileHashes.lock +0 -0
  267. package/.gradle/8.0.2/gc.properties +0 -0
  268. package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  269. package/.gradle/buildOutputCleanup/cache.properties +0 -2
  270. package/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  271. package/.gradle/file-system.probe +0 -0
  272. package/.gradle/vcs-1/gc.properties +0 -0
@@ -1,660 +1,660 @@
1
- //
2
- // Navbars
3
- // --------------------------------------------------
4
-
5
-
6
- // Wrapper and base class
7
- //
8
- // Provide a static navbar from which we expand to create full-width, fixed, and
9
- // other navbar variations.
10
-
11
- .navbar {
12
- position: relative;
13
- min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
14
- margin-bottom: @navbar-margin-bottom;
15
- border: 1px solid transparent;
16
-
17
- // Prevent floats from breaking the navbar
18
- &:extend(.clearfix all);
19
-
20
- @media (min-width: @grid-float-breakpoint) {
21
- border-radius: @navbar-border-radius;
22
- }
23
- }
24
-
25
-
26
- // Navbar heading
27
- //
28
- // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
29
- // styling of responsive aspects.
30
-
31
- .navbar-header {
32
- &:extend(.clearfix all);
33
-
34
- @media (min-width: @grid-float-breakpoint) {
35
- float: left;
36
- }
37
- }
38
-
39
-
40
- // Navbar collapse (body)
41
- //
42
- // Group your navbar content into this for easy collapsing and expanding across
43
- // various device sizes. By default, this content is collapsed when <768px, but
44
- // will expand past that for a horizontal display.
45
- //
46
- // To start (on mobile devices) the navbar links, forms, and buttons are stacked
47
- // vertically and include a `max-height` to overflow in case you have too much
48
- // content for the user's viewport.
49
-
50
- .navbar-collapse {
51
- overflow-x: visible;
52
- padding-right: @navbar-padding-horizontal;
53
- padding-left: @navbar-padding-horizontal;
54
- border-top: 1px solid transparent;
55
- box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
56
- &:extend(.clearfix all);
57
- -webkit-overflow-scrolling: touch;
58
-
59
- &.in {
60
- overflow-y: auto;
61
- }
62
-
63
- @media (min-width: @grid-float-breakpoint) {
64
- width: auto;
65
- border-top: 0;
66
- box-shadow: none;
67
-
68
- &.collapse {
69
- display: block !important;
70
- height: auto !important;
71
- padding-bottom: 0; // Override default setting
72
- overflow: visible !important;
73
- }
74
-
75
- &.in {
76
- overflow-y: visible;
77
- }
78
-
79
- // Undo the collapse side padding for navbars with containers to ensure
80
- // alignment of right-aligned contents.
81
- .navbar-fixed-top &,
82
- .navbar-static-top &,
83
- .navbar-fixed-bottom & {
84
- padding-left: 0;
85
- padding-right: 0;
86
- }
87
- }
88
- }
89
-
90
- .navbar-fixed-top,
91
- .navbar-fixed-bottom {
92
- .navbar-collapse {
93
- max-height: @navbar-collapse-max-height;
94
-
95
- @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
96
- max-height: 200px;
97
- }
98
- }
99
- }
100
-
101
-
102
- // Both navbar header and collapse
103
- //
104
- // When a container is present, change the behavior of the header and collapse.
105
-
106
- .container,
107
- .container-fluid {
108
- > .navbar-header,
109
- > .navbar-collapse {
110
- margin-right: -@navbar-padding-horizontal;
111
- margin-left: -@navbar-padding-horizontal;
112
-
113
- @media (min-width: @grid-float-breakpoint) {
114
- margin-right: 0;
115
- margin-left: 0;
116
- }
117
- }
118
- }
119
-
120
-
121
- //
122
- // Navbar alignment options
123
- //
124
- // Display the navbar across the entirety of the page or fixed it to the top or
125
- // bottom of the page.
126
-
127
- // Static top (unfixed, but 100% wide) navbar
128
- .navbar-static-top {
129
- z-index: @zindex-navbar;
130
- border-width: 0 0 1px;
131
-
132
- @media (min-width: @grid-float-breakpoint) {
133
- border-radius: 0;
134
- }
135
- }
136
-
137
- // Fix the top/bottom navbars when screen real estate supports it
138
- .navbar-fixed-top,
139
- .navbar-fixed-bottom {
140
- position: fixed;
141
- right: 0;
142
- left: 0;
143
- z-index: @zindex-navbar-fixed;
144
-
145
- // Undo the rounded corners
146
- @media (min-width: @grid-float-breakpoint) {
147
- border-radius: 0;
148
- }
149
- }
150
- .navbar-fixed-top {
151
- top: 0;
152
- border-width: 0 0 1px;
153
- }
154
- .navbar-fixed-bottom {
155
- bottom: 0;
156
- margin-bottom: 0; // override .navbar defaults
157
- border-width: 1px 0 0;
158
- }
159
-
160
-
161
- // Brand/project name
162
-
163
- .navbar-brand {
164
- float: left;
165
- padding: @navbar-padding-vertical @navbar-padding-horizontal;
166
- font-size: @font-size-large;
167
- line-height: @line-height-computed;
168
- height: @navbar-height;
169
-
170
- &:hover,
171
- &:focus {
172
- text-decoration: none;
173
- }
174
-
175
- > img {
176
- display: block;
177
- }
178
-
179
- @media (min-width: @grid-float-breakpoint) {
180
- .navbar > .container &,
181
- .navbar > .container-fluid & {
182
- margin-left: -@navbar-padding-horizontal;
183
- }
184
- }
185
- }
186
-
187
-
188
- // Navbar toggle
189
- //
190
- // Custom button for toggling the `.navbar-collapse`, powered by the collapse
191
- // JavaScript plugin.
192
-
193
- .navbar-toggle {
194
- position: relative;
195
- float: right;
196
- margin-right: @navbar-padding-horizontal;
197
- padding: 9px 10px;
198
- .navbar-vertical-align(34px);
199
- background-color: transparent;
200
- background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
201
- border: 1px solid transparent;
202
- border-radius: @border-radius-base;
203
-
204
- // We remove the `outline` here, but later compensate by attaching `:hover`
205
- // styles to `:focus`.
206
- &:focus {
207
- outline: 0;
208
- }
209
-
210
- // Bars
211
- .icon-bar {
212
- display: block;
213
- width: 22px;
214
- height: 2px;
215
- border-radius: 1px;
216
- }
217
- .icon-bar + .icon-bar {
218
- margin-top: 4px;
219
- }
220
-
221
- @media (min-width: @grid-float-breakpoint) {
222
- display: none;
223
- }
224
- }
225
-
226
-
227
- // Navbar nav links
228
- //
229
- // Builds on top of the `.nav` components with its own modifier class to make
230
- // the nav the full height of the horizontal nav (above 768px).
231
-
232
- .navbar-nav {
233
- margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
234
-
235
- > li > a {
236
- padding-top: 10px;
237
- padding-bottom: 10px;
238
- line-height: @line-height-computed;
239
- }
240
-
241
- @media (max-width: @grid-float-breakpoint-max) {
242
- // Dropdowns get custom display when collapsed
243
- .open .dropdown-menu {
244
- position: static;
245
- float: none;
246
- width: auto;
247
- margin-top: 0;
248
- background-color: transparent;
249
- border: 0;
250
- box-shadow: none;
251
- > li > a,
252
- .dropdown-header {
253
- padding: 5px 15px 5px 25px;
254
- }
255
- > li > a {
256
- line-height: @line-height-computed;
257
- &:hover,
258
- &:focus {
259
- background-image: none;
260
- }
261
- }
262
- }
263
- }
264
-
265
- // Uncollapse the nav
266
- @media (min-width: @grid-float-breakpoint) {
267
- float: left;
268
- margin: 0;
269
-
270
- > li {
271
- float: left;
272
- > a {
273
- padding-top: @navbar-padding-vertical;
274
- padding-bottom: @navbar-padding-vertical;
275
- }
276
- }
277
- }
278
- }
279
-
280
-
281
- // Navbar form
282
- //
283
- // Extension of the `.form-inline` with some extra flavor for optimum display in
284
- // our navbars.
285
-
286
- .navbar-form {
287
- margin-left: -@navbar-padding-horizontal;
288
- margin-right: -@navbar-padding-horizontal;
289
- padding: 10px @navbar-padding-horizontal;
290
- border-top: 1px solid transparent;
291
- border-bottom: 1px solid transparent;
292
- @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
293
- .box-shadow(@shadow);
294
-
295
- // Mixin behavior for optimum display
296
- .form-inline();
297
-
298
- .form-group {
299
- @media (max-width: @grid-float-breakpoint-max) {
300
- margin-bottom: 5px;
301
-
302
- &:last-child {
303
- margin-bottom: 0;
304
- }
305
- }
306
- }
307
-
308
- // Vertically center in expanded, horizontal navbar
309
- .navbar-vertical-align(@input-height-base);
310
-
311
- // Undo 100% width for pull classes
312
- @media (min-width: @grid-float-breakpoint) {
313
- width: auto;
314
- border: 0;
315
- margin-left: 0;
316
- margin-right: 0;
317
- padding-top: 0;
318
- padding-bottom: 0;
319
- .box-shadow(none);
320
- }
321
- }
322
-
323
-
324
- // Dropdown menus
325
-
326
- // Menu position and menu carets
327
- .navbar-nav > li > .dropdown-menu {
328
- margin-top: 0;
329
- .border-top-radius(0);
330
- }
331
- // Menu position and menu caret support for dropups via extra dropup class
332
- .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
333
- margin-bottom: 0;
334
- .border-top-radius(@navbar-border-radius);
335
- .border-bottom-radius(0);
336
- }
337
-
338
-
339
- // Buttons in navbars
340
- //
341
- // Vertically center a button within a navbar (when *not* in a form).
342
-
343
- .navbar-btn {
344
- .navbar-vertical-align(@input-height-base);
345
-
346
- &.btn-sm {
347
- .navbar-vertical-align(@input-height-small);
348
- }
349
- &.btn-xs {
350
- .navbar-vertical-align(22);
351
- }
352
- }
353
-
354
-
355
- // Text in navbars
356
- //
357
- // Add a class to make any element properly align itself vertically within the navbars.
358
-
359
- .navbar-text {
360
- .navbar-vertical-align(@line-height-computed);
361
-
362
- @media (min-width: @grid-float-breakpoint) {
363
- float: left;
364
- margin-left: @navbar-padding-horizontal;
365
- margin-right: @navbar-padding-horizontal;
366
- }
367
- }
368
-
369
-
370
- // Component alignment
371
- //
372
- // Repurpose the pull utilities as their own navbar utilities to avoid specificity
373
- // issues with parents and chaining. Only do this when the navbar is uncollapsed
374
- // though so that navbar contents properly stack and align in mobile.
375
- //
376
- // Declared after the navbar components to ensure more specificity on the margins.
377
-
378
- @media (min-width: @grid-float-breakpoint) {
379
- .navbar-left { .pull-left(); }
380
- .navbar-right {
381
- .pull-right();
382
- margin-right: -@navbar-padding-horizontal;
383
-
384
- ~ .navbar-right {
385
- margin-right: 0;
386
- }
387
- }
388
- }
389
-
390
-
391
- // Alternate navbars
392
- // --------------------------------------------------
393
-
394
- // Default navbar
395
- .navbar-default {
396
- background-color: @navbar-default-bg;
397
- border-color: @navbar-default-border;
398
-
399
- .navbar-brand {
400
- color: @navbar-default-brand-color;
401
- &:hover,
402
- &:focus {
403
- color: @navbar-default-brand-hover-color;
404
- background-color: @navbar-default-brand-hover-bg;
405
- }
406
- }
407
-
408
- .navbar-text {
409
- color: @navbar-default-color;
410
- }
411
-
412
- .navbar-nav {
413
- > li > a {
414
- color: @navbar-default-link-color;
415
-
416
- &:hover,
417
- &:focus {
418
- color: @navbar-default-link-hover-color;
419
- background-color: @navbar-default-link-hover-bg;
420
- }
421
- }
422
- > .active > a {
423
- &,
424
- &:hover,
425
- &:focus {
426
- color: @navbar-default-link-active-color;
427
- background-color: @navbar-default-link-active-bg;
428
- }
429
- }
430
- > .disabled > a {
431
- &,
432
- &:hover,
433
- &:focus {
434
- color: @navbar-default-link-disabled-color;
435
- background-color: @navbar-default-link-disabled-bg;
436
- }
437
- }
438
- }
439
-
440
- .navbar-toggle {
441
- border-color: @navbar-default-toggle-border-color;
442
- &:hover,
443
- &:focus {
444
- background-color: @navbar-default-toggle-hover-bg;
445
- }
446
- .icon-bar {
447
- background-color: @navbar-default-toggle-icon-bar-bg;
448
- }
449
- }
450
-
451
- .navbar-collapse,
452
- .navbar-form {
453
- border-color: @navbar-default-border;
454
- }
455
-
456
- // Dropdown menu items
457
- .navbar-nav {
458
- // Remove background color from open dropdown
459
- > .open > a {
460
- &,
461
- &:hover,
462
- &:focus {
463
- background-color: @navbar-default-link-active-bg;
464
- color: @navbar-default-link-active-color;
465
- }
466
- }
467
-
468
- @media (max-width: @grid-float-breakpoint-max) {
469
- // Dropdowns get custom display when collapsed
470
- .open .dropdown-menu {
471
- > li > a {
472
- color: @navbar-default-link-color;
473
- &:hover,
474
- &:focus {
475
- color: @navbar-default-link-hover-color;
476
- background-color: @navbar-default-link-hover-bg;
477
- }
478
- }
479
- > .active > a {
480
- &,
481
- &:hover,
482
- &:focus {
483
- color: @navbar-default-link-active-color;
484
- background-color: @navbar-default-link-active-bg;
485
- }
486
- }
487
- > .disabled > a {
488
- &,
489
- &:hover,
490
- &:focus {
491
- color: @navbar-default-link-disabled-color;
492
- background-color: @navbar-default-link-disabled-bg;
493
- }
494
- }
495
- }
496
- }
497
- }
498
-
499
-
500
- // Links in navbars
501
- //
502
- // Add a class to ensure links outside the navbar nav are colored correctly.
503
-
504
- .navbar-link {
505
- color: @navbar-default-link-color;
506
- &:hover {
507
- color: @navbar-default-link-hover-color;
508
- }
509
- }
510
-
511
- .btn-link {
512
- color: @navbar-default-link-color;
513
- &:hover,
514
- &:focus {
515
- color: @navbar-default-link-hover-color;
516
- }
517
- &[disabled],
518
- fieldset[disabled] & {
519
- &:hover,
520
- &:focus {
521
- color: @navbar-default-link-disabled-color;
522
- }
523
- }
524
- }
525
- }
526
-
527
- // Inverse navbar
528
-
529
- .navbar-inverse {
530
- background-color: @navbar-inverse-bg;
531
- border-color: @navbar-inverse-border;
532
-
533
- .navbar-brand {
534
- color: @navbar-inverse-brand-color;
535
- &:hover,
536
- &:focus {
537
- color: @navbar-inverse-brand-hover-color;
538
- background-color: @navbar-inverse-brand-hover-bg;
539
- }
540
- }
541
-
542
- .navbar-text {
543
- color: @navbar-inverse-color;
544
- }
545
-
546
- .navbar-nav {
547
- > li > a {
548
- color: @navbar-inverse-link-color;
549
-
550
- &:hover,
551
- &:focus {
552
- color: @navbar-inverse-link-hover-color;
553
- background-color: @navbar-inverse-link-hover-bg;
554
- }
555
- }
556
- > .active > a {
557
- &,
558
- &:hover,
559
- &:focus {
560
- color: @navbar-inverse-link-active-color;
561
- background-color: @navbar-inverse-link-active-bg;
562
- }
563
- }
564
- > .disabled > a {
565
- &,
566
- &:hover,
567
- &:focus {
568
- color: @navbar-inverse-link-disabled-color;
569
- background-color: @navbar-inverse-link-disabled-bg;
570
- }
571
- }
572
- }
573
-
574
- // Darken the responsive nav toggle
575
- .navbar-toggle {
576
- border-color: @navbar-inverse-toggle-border-color;
577
- &:hover,
578
- &:focus {
579
- background-color: @navbar-inverse-toggle-hover-bg;
580
- }
581
- .icon-bar {
582
- background-color: @navbar-inverse-toggle-icon-bar-bg;
583
- }
584
- }
585
-
586
- .navbar-collapse,
587
- .navbar-form {
588
- border-color: darken(@navbar-inverse-bg, 7%);
589
- }
590
-
591
- // Dropdowns
592
- .navbar-nav {
593
- > .open > a {
594
- &,
595
- &:hover,
596
- &:focus {
597
- background-color: @navbar-inverse-link-active-bg;
598
- color: @navbar-inverse-link-active-color;
599
- }
600
- }
601
-
602
- @media (max-width: @grid-float-breakpoint-max) {
603
- // Dropdowns get custom display
604
- .open .dropdown-menu {
605
- > .dropdown-header {
606
- border-color: @navbar-inverse-border;
607
- }
608
- .divider {
609
- background-color: @navbar-inverse-border;
610
- }
611
- > li > a {
612
- color: @navbar-inverse-link-color;
613
- &:hover,
614
- &:focus {
615
- color: @navbar-inverse-link-hover-color;
616
- background-color: @navbar-inverse-link-hover-bg;
617
- }
618
- }
619
- > .active > a {
620
- &,
621
- &:hover,
622
- &:focus {
623
- color: @navbar-inverse-link-active-color;
624
- background-color: @navbar-inverse-link-active-bg;
625
- }
626
- }
627
- > .disabled > a {
628
- &,
629
- &:hover,
630
- &:focus {
631
- color: @navbar-inverse-link-disabled-color;
632
- background-color: @navbar-inverse-link-disabled-bg;
633
- }
634
- }
635
- }
636
- }
637
- }
638
-
639
- .navbar-link {
640
- color: @navbar-inverse-link-color;
641
- &:hover {
642
- color: @navbar-inverse-link-hover-color;
643
- }
644
- }
645
-
646
- .btn-link {
647
- color: @navbar-inverse-link-color;
648
- &:hover,
649
- &:focus {
650
- color: @navbar-inverse-link-hover-color;
651
- }
652
- &[disabled],
653
- fieldset[disabled] & {
654
- &:hover,
655
- &:focus {
656
- color: @navbar-inverse-link-disabled-color;
657
- }
658
- }
659
- }
660
- }
1
+ //
2
+ // Navbars
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Wrapper and base class
7
+ //
8
+ // Provide a static navbar from which we expand to create full-width, fixed, and
9
+ // other navbar variations.
10
+
11
+ .navbar {
12
+ position: relative;
13
+ min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
14
+ margin-bottom: @navbar-margin-bottom;
15
+ border: 1px solid transparent;
16
+
17
+ // Prevent floats from breaking the navbar
18
+ &:extend(.clearfix all);
19
+
20
+ @media (min-width: @grid-float-breakpoint) {
21
+ border-radius: @navbar-border-radius;
22
+ }
23
+ }
24
+
25
+
26
+ // Navbar heading
27
+ //
28
+ // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
29
+ // styling of responsive aspects.
30
+
31
+ .navbar-header {
32
+ &:extend(.clearfix all);
33
+
34
+ @media (min-width: @grid-float-breakpoint) {
35
+ float: left;
36
+ }
37
+ }
38
+
39
+
40
+ // Navbar collapse (body)
41
+ //
42
+ // Group your navbar content into this for easy collapsing and expanding across
43
+ // various device sizes. By default, this content is collapsed when <768px, but
44
+ // will expand past that for a horizontal display.
45
+ //
46
+ // To start (on mobile devices) the navbar links, forms, and buttons are stacked
47
+ // vertically and include a `max-height` to overflow in case you have too much
48
+ // content for the user's viewport.
49
+
50
+ .navbar-collapse {
51
+ overflow-x: visible;
52
+ padding-right: @navbar-padding-horizontal;
53
+ padding-left: @navbar-padding-horizontal;
54
+ border-top: 1px solid transparent;
55
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
56
+ &:extend(.clearfix all);
57
+ -webkit-overflow-scrolling: touch;
58
+
59
+ &.in {
60
+ overflow-y: auto;
61
+ }
62
+
63
+ @media (min-width: @grid-float-breakpoint) {
64
+ width: auto;
65
+ border-top: 0;
66
+ box-shadow: none;
67
+
68
+ &.collapse {
69
+ display: block !important;
70
+ height: auto !important;
71
+ padding-bottom: 0; // Override default setting
72
+ overflow: visible !important;
73
+ }
74
+
75
+ &.in {
76
+ overflow-y: visible;
77
+ }
78
+
79
+ // Undo the collapse side padding for navbars with containers to ensure
80
+ // alignment of right-aligned contents.
81
+ .navbar-fixed-top &,
82
+ .navbar-static-top &,
83
+ .navbar-fixed-bottom & {
84
+ padding-left: 0;
85
+ padding-right: 0;
86
+ }
87
+ }
88
+ }
89
+
90
+ .navbar-fixed-top,
91
+ .navbar-fixed-bottom {
92
+ .navbar-collapse {
93
+ max-height: @navbar-collapse-max-height;
94
+
95
+ @media (max-device-width: @screen-xs-min) and (orientation: landscape) {
96
+ max-height: 200px;
97
+ }
98
+ }
99
+ }
100
+
101
+
102
+ // Both navbar header and collapse
103
+ //
104
+ // When a container is present, change the behavior of the header and collapse.
105
+
106
+ .container,
107
+ .container-fluid {
108
+ > .navbar-header,
109
+ > .navbar-collapse {
110
+ margin-right: -@navbar-padding-horizontal;
111
+ margin-left: -@navbar-padding-horizontal;
112
+
113
+ @media (min-width: @grid-float-breakpoint) {
114
+ margin-right: 0;
115
+ margin-left: 0;
116
+ }
117
+ }
118
+ }
119
+
120
+
121
+ //
122
+ // Navbar alignment options
123
+ //
124
+ // Display the navbar across the entirety of the page or fixed it to the top or
125
+ // bottom of the page.
126
+
127
+ // Static top (unfixed, but 100% wide) navbar
128
+ .navbar-static-top {
129
+ z-index: @zindex-navbar;
130
+ border-width: 0 0 1px;
131
+
132
+ @media (min-width: @grid-float-breakpoint) {
133
+ border-radius: 0;
134
+ }
135
+ }
136
+
137
+ // Fix the top/bottom navbars when screen real estate supports it
138
+ .navbar-fixed-top,
139
+ .navbar-fixed-bottom {
140
+ position: fixed;
141
+ right: 0;
142
+ left: 0;
143
+ z-index: @zindex-navbar-fixed;
144
+
145
+ // Undo the rounded corners
146
+ @media (min-width: @grid-float-breakpoint) {
147
+ border-radius: 0;
148
+ }
149
+ }
150
+ .navbar-fixed-top {
151
+ top: 0;
152
+ border-width: 0 0 1px;
153
+ }
154
+ .navbar-fixed-bottom {
155
+ bottom: 0;
156
+ margin-bottom: 0; // override .navbar defaults
157
+ border-width: 1px 0 0;
158
+ }
159
+
160
+
161
+ // Brand/project name
162
+
163
+ .navbar-brand {
164
+ float: left;
165
+ padding: @navbar-padding-vertical @navbar-padding-horizontal;
166
+ font-size: @font-size-large;
167
+ line-height: @line-height-computed;
168
+ height: @navbar-height;
169
+
170
+ &:hover,
171
+ &:focus {
172
+ text-decoration: none;
173
+ }
174
+
175
+ > img {
176
+ display: block;
177
+ }
178
+
179
+ @media (min-width: @grid-float-breakpoint) {
180
+ .navbar > .container &,
181
+ .navbar > .container-fluid & {
182
+ margin-left: -@navbar-padding-horizontal;
183
+ }
184
+ }
185
+ }
186
+
187
+
188
+ // Navbar toggle
189
+ //
190
+ // Custom button for toggling the `.navbar-collapse`, powered by the collapse
191
+ // JavaScript plugin.
192
+
193
+ .navbar-toggle {
194
+ position: relative;
195
+ float: right;
196
+ margin-right: @navbar-padding-horizontal;
197
+ padding: 9px 10px;
198
+ .navbar-vertical-align(34px);
199
+ background-color: transparent;
200
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
201
+ border: 1px solid transparent;
202
+ border-radius: @border-radius-base;
203
+
204
+ // We remove the `outline` here, but later compensate by attaching `:hover`
205
+ // styles to `:focus`.
206
+ &:focus {
207
+ outline: 0;
208
+ }
209
+
210
+ // Bars
211
+ .icon-bar {
212
+ display: block;
213
+ width: 22px;
214
+ height: 2px;
215
+ border-radius: 1px;
216
+ }
217
+ .icon-bar + .icon-bar {
218
+ margin-top: 4px;
219
+ }
220
+
221
+ @media (min-width: @grid-float-breakpoint) {
222
+ display: none;
223
+ }
224
+ }
225
+
226
+
227
+ // Navbar nav links
228
+ //
229
+ // Builds on top of the `.nav` components with its own modifier class to make
230
+ // the nav the full height of the horizontal nav (above 768px).
231
+
232
+ .navbar-nav {
233
+ margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;
234
+
235
+ > li > a {
236
+ padding-top: 10px;
237
+ padding-bottom: 10px;
238
+ line-height: @line-height-computed;
239
+ }
240
+
241
+ @media (max-width: @grid-float-breakpoint-max) {
242
+ // Dropdowns get custom display when collapsed
243
+ .open .dropdown-menu {
244
+ position: static;
245
+ float: none;
246
+ width: auto;
247
+ margin-top: 0;
248
+ background-color: transparent;
249
+ border: 0;
250
+ box-shadow: none;
251
+ > li > a,
252
+ .dropdown-header {
253
+ padding: 5px 15px 5px 25px;
254
+ }
255
+ > li > a {
256
+ line-height: @line-height-computed;
257
+ &:hover,
258
+ &:focus {
259
+ background-image: none;
260
+ }
261
+ }
262
+ }
263
+ }
264
+
265
+ // Uncollapse the nav
266
+ @media (min-width: @grid-float-breakpoint) {
267
+ float: left;
268
+ margin: 0;
269
+
270
+ > li {
271
+ float: left;
272
+ > a {
273
+ padding-top: @navbar-padding-vertical;
274
+ padding-bottom: @navbar-padding-vertical;
275
+ }
276
+ }
277
+ }
278
+ }
279
+
280
+
281
+ // Navbar form
282
+ //
283
+ // Extension of the `.form-inline` with some extra flavor for optimum display in
284
+ // our navbars.
285
+
286
+ .navbar-form {
287
+ margin-left: -@navbar-padding-horizontal;
288
+ margin-right: -@navbar-padding-horizontal;
289
+ padding: 10px @navbar-padding-horizontal;
290
+ border-top: 1px solid transparent;
291
+ border-bottom: 1px solid transparent;
292
+ @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
293
+ .box-shadow(@shadow);
294
+
295
+ // Mixin behavior for optimum display
296
+ .form-inline();
297
+
298
+ .form-group {
299
+ @media (max-width: @grid-float-breakpoint-max) {
300
+ margin-bottom: 5px;
301
+
302
+ &:last-child {
303
+ margin-bottom: 0;
304
+ }
305
+ }
306
+ }
307
+
308
+ // Vertically center in expanded, horizontal navbar
309
+ .navbar-vertical-align(@input-height-base);
310
+
311
+ // Undo 100% width for pull classes
312
+ @media (min-width: @grid-float-breakpoint) {
313
+ width: auto;
314
+ border: 0;
315
+ margin-left: 0;
316
+ margin-right: 0;
317
+ padding-top: 0;
318
+ padding-bottom: 0;
319
+ .box-shadow(none);
320
+ }
321
+ }
322
+
323
+
324
+ // Dropdown menus
325
+
326
+ // Menu position and menu carets
327
+ .navbar-nav > li > .dropdown-menu {
328
+ margin-top: 0;
329
+ .border-top-radius(0);
330
+ }
331
+ // Menu position and menu caret support for dropups via extra dropup class
332
+ .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
333
+ margin-bottom: 0;
334
+ .border-top-radius(@navbar-border-radius);
335
+ .border-bottom-radius(0);
336
+ }
337
+
338
+
339
+ // Buttons in navbars
340
+ //
341
+ // Vertically center a button within a navbar (when *not* in a form).
342
+
343
+ .navbar-btn {
344
+ .navbar-vertical-align(@input-height-base);
345
+
346
+ &.btn-sm {
347
+ .navbar-vertical-align(@input-height-small);
348
+ }
349
+ &.btn-xs {
350
+ .navbar-vertical-align(22);
351
+ }
352
+ }
353
+
354
+
355
+ // Text in navbars
356
+ //
357
+ // Add a class to make any element properly align itself vertically within the navbars.
358
+
359
+ .navbar-text {
360
+ .navbar-vertical-align(@line-height-computed);
361
+
362
+ @media (min-width: @grid-float-breakpoint) {
363
+ float: left;
364
+ margin-left: @navbar-padding-horizontal;
365
+ margin-right: @navbar-padding-horizontal;
366
+ }
367
+ }
368
+
369
+
370
+ // Component alignment
371
+ //
372
+ // Repurpose the pull utilities as their own navbar utilities to avoid specificity
373
+ // issues with parents and chaining. Only do this when the navbar is uncollapsed
374
+ // though so that navbar contents properly stack and align in mobile.
375
+ //
376
+ // Declared after the navbar components to ensure more specificity on the margins.
377
+
378
+ @media (min-width: @grid-float-breakpoint) {
379
+ .navbar-left { .pull-left(); }
380
+ .navbar-right {
381
+ .pull-right();
382
+ margin-right: -@navbar-padding-horizontal;
383
+
384
+ ~ .navbar-right {
385
+ margin-right: 0;
386
+ }
387
+ }
388
+ }
389
+
390
+
391
+ // Alternate navbars
392
+ // --------------------------------------------------
393
+
394
+ // Default navbar
395
+ .navbar-default {
396
+ background-color: @navbar-default-bg;
397
+ border-color: @navbar-default-border;
398
+
399
+ .navbar-brand {
400
+ color: @navbar-default-brand-color;
401
+ &:hover,
402
+ &:focus {
403
+ color: @navbar-default-brand-hover-color;
404
+ background-color: @navbar-default-brand-hover-bg;
405
+ }
406
+ }
407
+
408
+ .navbar-text {
409
+ color: @navbar-default-color;
410
+ }
411
+
412
+ .navbar-nav {
413
+ > li > a {
414
+ color: @navbar-default-link-color;
415
+
416
+ &:hover,
417
+ &:focus {
418
+ color: @navbar-default-link-hover-color;
419
+ background-color: @navbar-default-link-hover-bg;
420
+ }
421
+ }
422
+ > .active > a {
423
+ &,
424
+ &:hover,
425
+ &:focus {
426
+ color: @navbar-default-link-active-color;
427
+ background-color: @navbar-default-link-active-bg;
428
+ }
429
+ }
430
+ > .disabled > a {
431
+ &,
432
+ &:hover,
433
+ &:focus {
434
+ color: @navbar-default-link-disabled-color;
435
+ background-color: @navbar-default-link-disabled-bg;
436
+ }
437
+ }
438
+ }
439
+
440
+ .navbar-toggle {
441
+ border-color: @navbar-default-toggle-border-color;
442
+ &:hover,
443
+ &:focus {
444
+ background-color: @navbar-default-toggle-hover-bg;
445
+ }
446
+ .icon-bar {
447
+ background-color: @navbar-default-toggle-icon-bar-bg;
448
+ }
449
+ }
450
+
451
+ .navbar-collapse,
452
+ .navbar-form {
453
+ border-color: @navbar-default-border;
454
+ }
455
+
456
+ // Dropdown menu items
457
+ .navbar-nav {
458
+ // Remove background color from open dropdown
459
+ > .open > a {
460
+ &,
461
+ &:hover,
462
+ &:focus {
463
+ background-color: @navbar-default-link-active-bg;
464
+ color: @navbar-default-link-active-color;
465
+ }
466
+ }
467
+
468
+ @media (max-width: @grid-float-breakpoint-max) {
469
+ // Dropdowns get custom display when collapsed
470
+ .open .dropdown-menu {
471
+ > li > a {
472
+ color: @navbar-default-link-color;
473
+ &:hover,
474
+ &:focus {
475
+ color: @navbar-default-link-hover-color;
476
+ background-color: @navbar-default-link-hover-bg;
477
+ }
478
+ }
479
+ > .active > a {
480
+ &,
481
+ &:hover,
482
+ &:focus {
483
+ color: @navbar-default-link-active-color;
484
+ background-color: @navbar-default-link-active-bg;
485
+ }
486
+ }
487
+ > .disabled > a {
488
+ &,
489
+ &:hover,
490
+ &:focus {
491
+ color: @navbar-default-link-disabled-color;
492
+ background-color: @navbar-default-link-disabled-bg;
493
+ }
494
+ }
495
+ }
496
+ }
497
+ }
498
+
499
+
500
+ // Links in navbars
501
+ //
502
+ // Add a class to ensure links outside the navbar nav are colored correctly.
503
+
504
+ .navbar-link {
505
+ color: @navbar-default-link-color;
506
+ &:hover {
507
+ color: @navbar-default-link-hover-color;
508
+ }
509
+ }
510
+
511
+ .btn-link {
512
+ color: @navbar-default-link-color;
513
+ &:hover,
514
+ &:focus {
515
+ color: @navbar-default-link-hover-color;
516
+ }
517
+ &[disabled],
518
+ fieldset[disabled] & {
519
+ &:hover,
520
+ &:focus {
521
+ color: @navbar-default-link-disabled-color;
522
+ }
523
+ }
524
+ }
525
+ }
526
+
527
+ // Inverse navbar
528
+
529
+ .navbar-inverse {
530
+ background-color: @navbar-inverse-bg;
531
+ border-color: @navbar-inverse-border;
532
+
533
+ .navbar-brand {
534
+ color: @navbar-inverse-brand-color;
535
+ &:hover,
536
+ &:focus {
537
+ color: @navbar-inverse-brand-hover-color;
538
+ background-color: @navbar-inverse-brand-hover-bg;
539
+ }
540
+ }
541
+
542
+ .navbar-text {
543
+ color: @navbar-inverse-color;
544
+ }
545
+
546
+ .navbar-nav {
547
+ > li > a {
548
+ color: @navbar-inverse-link-color;
549
+
550
+ &:hover,
551
+ &:focus {
552
+ color: @navbar-inverse-link-hover-color;
553
+ background-color: @navbar-inverse-link-hover-bg;
554
+ }
555
+ }
556
+ > .active > a {
557
+ &,
558
+ &:hover,
559
+ &:focus {
560
+ color: @navbar-inverse-link-active-color;
561
+ background-color: @navbar-inverse-link-active-bg;
562
+ }
563
+ }
564
+ > .disabled > a {
565
+ &,
566
+ &:hover,
567
+ &:focus {
568
+ color: @navbar-inverse-link-disabled-color;
569
+ background-color: @navbar-inverse-link-disabled-bg;
570
+ }
571
+ }
572
+ }
573
+
574
+ // Darken the responsive nav toggle
575
+ .navbar-toggle {
576
+ border-color: @navbar-inverse-toggle-border-color;
577
+ &:hover,
578
+ &:focus {
579
+ background-color: @navbar-inverse-toggle-hover-bg;
580
+ }
581
+ .icon-bar {
582
+ background-color: @navbar-inverse-toggle-icon-bar-bg;
583
+ }
584
+ }
585
+
586
+ .navbar-collapse,
587
+ .navbar-form {
588
+ border-color: darken(@navbar-inverse-bg, 7%);
589
+ }
590
+
591
+ // Dropdowns
592
+ .navbar-nav {
593
+ > .open > a {
594
+ &,
595
+ &:hover,
596
+ &:focus {
597
+ background-color: @navbar-inverse-link-active-bg;
598
+ color: @navbar-inverse-link-active-color;
599
+ }
600
+ }
601
+
602
+ @media (max-width: @grid-float-breakpoint-max) {
603
+ // Dropdowns get custom display
604
+ .open .dropdown-menu {
605
+ > .dropdown-header {
606
+ border-color: @navbar-inverse-border;
607
+ }
608
+ .divider {
609
+ background-color: @navbar-inverse-border;
610
+ }
611
+ > li > a {
612
+ color: @navbar-inverse-link-color;
613
+ &:hover,
614
+ &:focus {
615
+ color: @navbar-inverse-link-hover-color;
616
+ background-color: @navbar-inverse-link-hover-bg;
617
+ }
618
+ }
619
+ > .active > a {
620
+ &,
621
+ &:hover,
622
+ &:focus {
623
+ color: @navbar-inverse-link-active-color;
624
+ background-color: @navbar-inverse-link-active-bg;
625
+ }
626
+ }
627
+ > .disabled > a {
628
+ &,
629
+ &:hover,
630
+ &:focus {
631
+ color: @navbar-inverse-link-disabled-color;
632
+ background-color: @navbar-inverse-link-disabled-bg;
633
+ }
634
+ }
635
+ }
636
+ }
637
+ }
638
+
639
+ .navbar-link {
640
+ color: @navbar-inverse-link-color;
641
+ &:hover {
642
+ color: @navbar-inverse-link-hover-color;
643
+ }
644
+ }
645
+
646
+ .btn-link {
647
+ color: @navbar-inverse-link-color;
648
+ &:hover,
649
+ &:focus {
650
+ color: @navbar-inverse-link-hover-color;
651
+ }
652
+ &[disabled],
653
+ fieldset[disabled] & {
654
+ &:hover,
655
+ &:focus {
656
+ color: @navbar-inverse-link-disabled-color;
657
+ }
658
+ }
659
+ }
660
+ }