| // | |
| // Navs | |
| // -------------------------------------------------- | |
| // Base class | |
| // -------------------------------------------------- | |
| .nav { | |
| margin-bottom: 0; | |
| padding-left: 0; // Override default ul/ol | |
| list-style: none; | |
| @include clearfix; | |
| > li { | |
| position: relative; | |
| display: block; | |
| > a { | |
| position: relative; | |
| display: block; | |
| padding: $nav-link-padding; | |
| &:hover, | |
| &:focus { | |
| text-decoration: none; | |
| background-color: $nav-link-hover-bg; | |
| } | |
| } | |
| // Disabled state sets text to gray and nukes hover/tab effects | |
| &.disabled > a { | |
| color: $nav-disabled-link-color; | |
| &:hover, | |
| &:focus { | |
| color: $nav-disabled-link-hover-color; | |
| text-decoration: none; | |
| background-color: transparent; | |
| cursor: $cursor-disabled; | |
| } | |
| } | |
| } | |
| // Open dropdowns | |
| .open > a { | |
| &, | |
| &:hover, | |
| &:focus { | |
| background-color: $nav-link-hover-bg; | |
| border-color: $link-color; | |
| } | |
| } | |
| // Nav dividers (deprecated with v3.0.1) | |
| // | |
| // This should have been removed in v3 with the dropping of `.nav-list`, but | |
| // we missed it. We don't currently support this anywhere, but in the interest | |
| // of maintaining backward compatibility in case you use it, it's deprecated. | |
| .nav-divider { | |
| @include nav-divider; | |
| } | |
| // Prevent IE8 from misplacing imgs | |
| // | |
| // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989 | |
| > li > a > img { | |
| max-width: none; | |
| } | |
| } | |
| // Tabs | |
| // ------------------------- | |
| // Give the tabs something to sit on | |
| .nav-tabs { | |
| border-bottom: 1px solid $nav-tabs-border-color; | |
| > li { | |
| float: left; | |
| // Make the list-items overlay the bottom border | |
| margin-bottom: -1px; | |
| // Actual tabs (as links) | |
| > a { | |
| margin-right: 2px; | |
| line-height: $line-height-base; | |
| border: 1px solid transparent; | |
| border-radius: $border-radius-base $border-radius-base 0 0; | |
| &:hover { | |
| border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color; | |
| } | |
| } | |
| // Active state, and its :hover to override normal :hover | |
| &.active > a { | |
| &, | |
| &:hover, | |
| &:focus { | |
| color: $nav-tabs-active-link-hover-color; | |
| background-color: $nav-tabs-active-link-hover-bg; | |
| border: 1px solid $nav-tabs-active-link-hover-border-color; | |
| border-bottom-color: transparent; | |
| cursor: default; | |
| } | |
| } | |
| } | |
| // pulling this in mainly for less shorthand | |
| &.nav-justified { | |
| @extend .nav-justified; | |
| @extend .nav-tabs-justified; | |
| } | |
| } | |
| // Pills | |
| // ------------------------- | |
| .nav-pills { | |
| > li { | |
| float: left; | |
| // Links rendered as pills | |
| > a { | |
| border-radius: $nav-pills-border-radius; | |
| } | |
| + li { | |
| margin-left: 2px; | |
| } | |
| // Active state | |
| &.active > a { | |
| &, | |
| &:hover, | |
| &:focus { | |
| color: $nav-pills-active-link-hover-color; | |
| background-color: $nav-pills-active-link-hover-bg; | |
| } | |
| } | |
| } | |
| } | |
| // Stacked pills | |
| .nav-stacked { | |
| > li { | |
| float: none; | |
| + li { | |
| margin-top: 2px; | |
| margin-left: 0; // no need for this gap between nav items | |
| } | |
| } | |
| } | |
| // Nav variations | |
| // -------------------------------------------------- | |
| // Justified nav links | |
| // ------------------------- | |
| .nav-justified { | |
| width: 100%; | |
| > li { | |
| float: none; | |
| > a { | |
| text-align: center; | |
| margin-bottom: 5px; | |
| } | |
| } | |
| > .dropdown .dropdown-menu { | |
| top: auto; | |
| left: auto; | |
| } | |
| @media (min-width: $screen-sm-min) { | |
| > li { | |
| display: table-cell; | |
| width: 1%; | |
| > a { | |
| margin-bottom: 0; | |
| } | |
| } | |
| } | |
| } | |
| // Move borders to anchors instead of bottom of list | |
| // | |
| // Mixin for adding on top the shared `.nav-justified` styles for our tabs | |
| .nav-tabs-justified { | |
| border-bottom: 0; | |
| > li > a { | |
| // Override margin from .nav-tabs | |
| margin-right: 0; | |
| border-radius: $border-radius-base; | |
| } | |
| > .active > a, | |
| > .active > a:hover, | |
| > .active > a:focus { | |
| border: 1px solid $nav-tabs-justified-link-border-color; | |
| } | |
| @media (min-width: $screen-sm-min) { | |
| > li > a { | |
| border-bottom: 1px solid $nav-tabs-justified-link-border-color; | |
| border-radius: $border-radius-base $border-radius-base 0 0; | |
| } | |
| > .active > a, | |
| > .active > a:hover, | |
| > .active > a:focus { | |
| border-bottom-color: $nav-tabs-justified-active-link-border-color; | |
| } | |
| } | |
| } | |
| // Tabbable tabs | |
| // ------------------------- | |
| // Hide tabbable panes to start, show them when `.active` | |
| .tab-content { | |
| > .tab-pane { | |
| display: none; | |
| } | |
| > .active { | |
| display: block; | |
| } | |
| } | |
| // Dropdowns | |
| // ------------------------- | |
| // Specific dropdowns | |
| .nav-tabs .dropdown-menu { | |
| // make dropdown border overlap tab border | |
| margin-top: -1px; | |
| // Remove the top rounded corners here since there is a hard edge above the menu | |
| @include border-top-radius(0); | |
| } |