github.com/kayoticsully/syncthing@v0.8.9-0.20140724133906-c45a2fdc03f8/assets/bootstrap-3.1.1/less/navbar.less (about) 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 max-height: @navbar-collapse-max-height; 52 overflow-x: visible; 53 padding-right: @navbar-padding-horizontal; 54 padding-left: @navbar-padding-horizontal; 55 border-top: 1px solid transparent; 56 box-shadow: inset 0 1px 0 rgba(255,255,255,.1); 57 &:extend(.clearfix all); 58 -webkit-overflow-scrolling: touch; 59 60 &.in { 61 overflow-y: auto; 62 } 63 64 @media (min-width: @grid-float-breakpoint) { 65 width: auto; 66 border-top: 0; 67 box-shadow: none; 68 69 &.collapse { 70 display: block !important; 71 height: auto !important; 72 padding-bottom: 0; // Override default setting 73 overflow: visible !important; 74 } 75 76 &.in { 77 overflow-y: visible; 78 } 79 80 // Undo the collapse side padding for navbars with containers to ensure 81 // alignment of right-aligned contents. 82 .navbar-fixed-top &, 83 .navbar-static-top &, 84 .navbar-fixed-bottom & { 85 padding-left: 0; 86 padding-right: 0; 87 } 88 } 89 } 90 91 92 // Both navbar header and collapse 93 // 94 // When a container is present, change the behavior of the header and collapse. 95 96 .container, 97 .container-fluid { 98 > .navbar-header, 99 > .navbar-collapse { 100 margin-right: -@navbar-padding-horizontal; 101 margin-left: -@navbar-padding-horizontal; 102 103 @media (min-width: @grid-float-breakpoint) { 104 margin-right: 0; 105 margin-left: 0; 106 } 107 } 108 } 109 110 111 // 112 // Navbar alignment options 113 // 114 // Display the navbar across the entirety of the page or fixed it to the top or 115 // bottom of the page. 116 117 // Static top (unfixed, but 100% wide) navbar 118 .navbar-static-top { 119 z-index: @zindex-navbar; 120 border-width: 0 0 1px; 121 122 @media (min-width: @grid-float-breakpoint) { 123 border-radius: 0; 124 } 125 } 126 127 // Fix the top/bottom navbars when screen real estate supports it 128 .navbar-fixed-top, 129 .navbar-fixed-bottom { 130 position: fixed; 131 right: 0; 132 left: 0; 133 z-index: @zindex-navbar-fixed; 134 135 // Undo the rounded corners 136 @media (min-width: @grid-float-breakpoint) { 137 border-radius: 0; 138 } 139 } 140 .navbar-fixed-top { 141 top: 0; 142 border-width: 0 0 1px; 143 } 144 .navbar-fixed-bottom { 145 bottom: 0; 146 margin-bottom: 0; // override .navbar defaults 147 border-width: 1px 0 0; 148 } 149 150 151 // Brand/project name 152 153 .navbar-brand { 154 float: left; 155 padding: @navbar-padding-vertical @navbar-padding-horizontal; 156 font-size: @font-size-large; 157 line-height: @line-height-computed; 158 height: @navbar-height; 159 160 &:hover, 161 &:focus { 162 text-decoration: none; 163 } 164 165 @media (min-width: @grid-float-breakpoint) { 166 .navbar > .container &, 167 .navbar > .container-fluid & { 168 margin-left: -@navbar-padding-horizontal; 169 } 170 } 171 } 172 173 174 // Navbar toggle 175 // 176 // Custom button for toggling the `.navbar-collapse`, powered by the collapse 177 // JavaScript plugin. 178 179 .navbar-toggle { 180 position: relative; 181 float: right; 182 margin-right: @navbar-padding-horizontal; 183 padding: 9px 10px; 184 .navbar-vertical-align(34px); 185 background-color: transparent; 186 background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 187 border: 1px solid transparent; 188 border-radius: @border-radius-base; 189 190 // We remove the `outline` here, but later compensate by attaching `:hover` 191 // styles to `:focus`. 192 &:focus { 193 outline: none; 194 } 195 196 // Bars 197 .icon-bar { 198 display: block; 199 width: 22px; 200 height: 2px; 201 border-radius: 1px; 202 } 203 .icon-bar + .icon-bar { 204 margin-top: 4px; 205 } 206 207 @media (min-width: @grid-float-breakpoint) { 208 display: none; 209 } 210 } 211 212 213 // Navbar nav links 214 // 215 // Builds on top of the `.nav` components with its own modifier class to make 216 // the nav the full height of the horizontal nav (above 768px). 217 218 .navbar-nav { 219 margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal; 220 221 > li > a { 222 padding-top: 10px; 223 padding-bottom: 10px; 224 line-height: @line-height-computed; 225 } 226 227 @media (max-width: @grid-float-breakpoint-max) { 228 // Dropdowns get custom display when collapsed 229 .open .dropdown-menu { 230 position: static; 231 float: none; 232 width: auto; 233 margin-top: 0; 234 background-color: transparent; 235 border: 0; 236 box-shadow: none; 237 > li > a, 238 .dropdown-header { 239 padding: 5px 15px 5px 25px; 240 } 241 > li > a { 242 line-height: @line-height-computed; 243 &:hover, 244 &:focus { 245 background-image: none; 246 } 247 } 248 } 249 } 250 251 // Uncollapse the nav 252 @media (min-width: @grid-float-breakpoint) { 253 float: left; 254 margin: 0; 255 256 > li { 257 float: left; 258 > a { 259 padding-top: @navbar-padding-vertical; 260 padding-bottom: @navbar-padding-vertical; 261 } 262 } 263 264 &.navbar-right:last-child { 265 margin-right: -@navbar-padding-horizontal; 266 } 267 } 268 } 269 270 271 // Component alignment 272 // 273 // Repurpose the pull utilities as their own navbar utilities to avoid specificity 274 // issues with parents and chaining. Only do this when the navbar is uncollapsed 275 // though so that navbar contents properly stack and align in mobile. 276 277 @media (min-width: @grid-float-breakpoint) { 278 .navbar-left { .pull-left(); } 279 .navbar-right { .pull-right(); } 280 } 281 282 283 // Navbar form 284 // 285 // Extension of the `.form-inline` with some extra flavor for optimum display in 286 // our navbars. 287 288 .navbar-form { 289 margin-left: -@navbar-padding-horizontal; 290 margin-right: -@navbar-padding-horizontal; 291 padding: 10px @navbar-padding-horizontal; 292 border-top: 1px solid transparent; 293 border-bottom: 1px solid transparent; 294 @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); 295 .box-shadow(@shadow); 296 297 // Mixin behavior for optimum display 298 .form-inline(); 299 300 .form-group { 301 @media (max-width: @grid-float-breakpoint-max) { 302 margin-bottom: 5px; 303 } 304 } 305 306 // Vertically center in expanded, horizontal navbar 307 .navbar-vertical-align(@input-height-base); 308 309 // Undo 100% width for pull classes 310 @media (min-width: @grid-float-breakpoint) { 311 width: auto; 312 border: 0; 313 margin-left: 0; 314 margin-right: 0; 315 padding-top: 0; 316 padding-bottom: 0; 317 .box-shadow(none); 318 319 // Outdent the form if last child to line up with content down the page 320 &.navbar-right:last-child { 321 margin-right: -@navbar-padding-horizontal; 322 } 323 } 324 } 325 326 327 // Dropdown menus 328 329 // Menu position and menu carets 330 .navbar-nav > li > .dropdown-menu { 331 margin-top: 0; 332 .border-top-radius(0); 333 } 334 // Menu position and menu caret support for dropups via extra dropup class 335 .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { 336 .border-bottom-radius(0); 337 } 338 339 340 // Buttons in navbars 341 // 342 // Vertically center a button within a navbar (when *not* in a form). 343 344 .navbar-btn { 345 .navbar-vertical-align(@input-height-base); 346 347 &.btn-sm { 348 .navbar-vertical-align(@input-height-small); 349 } 350 &.btn-xs { 351 .navbar-vertical-align(22); 352 } 353 } 354 355 356 // Text in navbars 357 // 358 // Add a class to make any element properly align itself vertically within the navbars. 359 360 .navbar-text { 361 .navbar-vertical-align(@line-height-computed); 362 363 @media (min-width: @grid-float-breakpoint) { 364 float: left; 365 margin-left: @navbar-padding-horizontal; 366 margin-right: @navbar-padding-horizontal; 367 368 // Outdent the form if last child to line up with content down the page 369 &.navbar-right:last-child { 370 margin-right: 0; 371 } 372 } 373 } 374 375 // Alternate navbars 376 // -------------------------------------------------- 377 378 // Default navbar 379 .navbar-default { 380 background-color: @navbar-default-bg; 381 border-color: @navbar-default-border; 382 383 .navbar-brand { 384 color: @navbar-default-brand-color; 385 &:hover, 386 &:focus { 387 color: @navbar-default-brand-hover-color; 388 background-color: @navbar-default-brand-hover-bg; 389 } 390 } 391 392 .navbar-text { 393 color: @navbar-default-color; 394 } 395 396 .navbar-nav { 397 > li > a { 398 color: @navbar-default-link-color; 399 400 &:hover, 401 &:focus { 402 color: @navbar-default-link-hover-color; 403 background-color: @navbar-default-link-hover-bg; 404 } 405 } 406 > .active > a { 407 &, 408 &:hover, 409 &:focus { 410 color: @navbar-default-link-active-color; 411 background-color: @navbar-default-link-active-bg; 412 } 413 } 414 > .disabled > a { 415 &, 416 &:hover, 417 &:focus { 418 color: @navbar-default-link-disabled-color; 419 background-color: @navbar-default-link-disabled-bg; 420 } 421 } 422 } 423 424 .navbar-toggle { 425 border-color: @navbar-default-toggle-border-color; 426 &:hover, 427 &:focus { 428 background-color: @navbar-default-toggle-hover-bg; 429 } 430 .icon-bar { 431 background-color: @navbar-default-toggle-icon-bar-bg; 432 } 433 } 434 435 .navbar-collapse, 436 .navbar-form { 437 border-color: @navbar-default-border; 438 } 439 440 // Dropdown menu items 441 .navbar-nav { 442 // Remove background color from open dropdown 443 > .open > a { 444 &, 445 &:hover, 446 &:focus { 447 background-color: @navbar-default-link-active-bg; 448 color: @navbar-default-link-active-color; 449 } 450 } 451 452 @media (max-width: @grid-float-breakpoint-max) { 453 // Dropdowns get custom display when collapsed 454 .open .dropdown-menu { 455 > li > a { 456 color: @navbar-default-link-color; 457 &:hover, 458 &:focus { 459 color: @navbar-default-link-hover-color; 460 background-color: @navbar-default-link-hover-bg; 461 } 462 } 463 > .active > a { 464 &, 465 &:hover, 466 &:focus { 467 color: @navbar-default-link-active-color; 468 background-color: @navbar-default-link-active-bg; 469 } 470 } 471 > .disabled > a { 472 &, 473 &:hover, 474 &:focus { 475 color: @navbar-default-link-disabled-color; 476 background-color: @navbar-default-link-disabled-bg; 477 } 478 } 479 } 480 } 481 } 482 483 484 // Links in navbars 485 // 486 // Add a class to ensure links outside the navbar nav are colored correctly. 487 488 .navbar-link { 489 color: @navbar-default-link-color; 490 &:hover { 491 color: @navbar-default-link-hover-color; 492 } 493 } 494 495 } 496 497 // Inverse navbar 498 499 .navbar-inverse { 500 background-color: @navbar-inverse-bg; 501 border-color: @navbar-inverse-border; 502 503 .navbar-brand { 504 color: @navbar-inverse-brand-color; 505 &:hover, 506 &:focus { 507 color: @navbar-inverse-brand-hover-color; 508 background-color: @navbar-inverse-brand-hover-bg; 509 } 510 } 511 512 .navbar-text { 513 color: @navbar-inverse-color; 514 } 515 516 .navbar-nav { 517 > li > a { 518 color: @navbar-inverse-link-color; 519 520 &:hover, 521 &:focus { 522 color: @navbar-inverse-link-hover-color; 523 background-color: @navbar-inverse-link-hover-bg; 524 } 525 } 526 > .active > a { 527 &, 528 &:hover, 529 &:focus { 530 color: @navbar-inverse-link-active-color; 531 background-color: @navbar-inverse-link-active-bg; 532 } 533 } 534 > .disabled > a { 535 &, 536 &:hover, 537 &:focus { 538 color: @navbar-inverse-link-disabled-color; 539 background-color: @navbar-inverse-link-disabled-bg; 540 } 541 } 542 } 543 544 // Darken the responsive nav toggle 545 .navbar-toggle { 546 border-color: @navbar-inverse-toggle-border-color; 547 &:hover, 548 &:focus { 549 background-color: @navbar-inverse-toggle-hover-bg; 550 } 551 .icon-bar { 552 background-color: @navbar-inverse-toggle-icon-bar-bg; 553 } 554 } 555 556 .navbar-collapse, 557 .navbar-form { 558 border-color: darken(@navbar-inverse-bg, 7%); 559 } 560 561 // Dropdowns 562 .navbar-nav { 563 > .open > a { 564 &, 565 &:hover, 566 &:focus { 567 background-color: @navbar-inverse-link-active-bg; 568 color: @navbar-inverse-link-active-color; 569 } 570 } 571 572 @media (max-width: @grid-float-breakpoint-max) { 573 // Dropdowns get custom display 574 .open .dropdown-menu { 575 > .dropdown-header { 576 border-color: @navbar-inverse-border; 577 } 578 .divider { 579 background-color: @navbar-inverse-border; 580 } 581 > li > a { 582 color: @navbar-inverse-link-color; 583 &:hover, 584 &:focus { 585 color: @navbar-inverse-link-hover-color; 586 background-color: @navbar-inverse-link-hover-bg; 587 } 588 } 589 > .active > a { 590 &, 591 &:hover, 592 &:focus { 593 color: @navbar-inverse-link-active-color; 594 background-color: @navbar-inverse-link-active-bg; 595 } 596 } 597 > .disabled > a { 598 &, 599 &:hover, 600 &:focus { 601 color: @navbar-inverse-link-disabled-color; 602 background-color: @navbar-inverse-link-disabled-bg; 603 } 604 } 605 } 606 } 607 } 608 609 .navbar-link { 610 color: @navbar-inverse-link-color; 611 &:hover { 612 color: @navbar-inverse-link-hover-color; 613 } 614 } 615 616 }