|
|
e8ec7a |
//
|
|
|
e8ec7a |
// Dropdown menus
|
|
|
e8ec7a |
// --------------------------------------------------
|
|
|
e8ec7a |
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Dropdown arrow/caret
|
|
|
e8ec7a |
.caret {
|
|
|
e8ec7a |
display: inline-block;
|
|
|
e8ec7a |
width: 0;
|
|
|
e8ec7a |
height: 0;
|
|
|
e8ec7a |
margin-left: 2px;
|
|
|
e8ec7a |
vertical-align: middle;
|
|
|
e8ec7a |
border-top: $caret-width-base solid $dropdown-caret-color;
|
|
|
e8ec7a |
border-right: $caret-width-base solid transparent;
|
|
|
e8ec7a |
border-left: $caret-width-base solid transparent;
|
|
|
e8ec7a |
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
|
|
|
e8ec7a |
// we can just straight up remove this.
|
|
|
e8ec7a |
border-bottom: 0 dotted;
|
|
|
e8ec7a |
content: "";
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// The dropdown wrapper (div)
|
|
|
e8ec7a |
.dropdown {
|
|
|
e8ec7a |
position: relative;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Prevent the focus on the dropdown toggle when closing dropdowns
|
|
|
e8ec7a |
.dropdown-toggle:focus {
|
|
|
e8ec7a |
outline: 0;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// The dropdown menu (ul)
|
|
|
e8ec7a |
.dropdown-menu {
|
|
|
e8ec7a |
position: absolute;
|
|
|
e8ec7a |
top: 100%;
|
|
|
e8ec7a |
left: 0;
|
|
|
e8ec7a |
z-index: $zindex-dropdown;
|
|
|
e8ec7a |
display: none; // none by default, but block on "open" of the menu
|
|
|
e8ec7a |
float: left;
|
|
|
e8ec7a |
min-width: 160px;
|
|
|
e8ec7a |
padding: 5px 0;
|
|
|
e8ec7a |
margin: 2px 0 0; // override default ul
|
|
|
e8ec7a |
list-style: none;
|
|
|
e8ec7a |
font-size: $font-size-base;
|
|
|
e8ec7a |
background-color: $dropdown-bg;
|
|
|
e8ec7a |
border: 1px solid $dropdown-fallback-border; // IE8 fallback
|
|
|
e8ec7a |
border: 1px solid $dropdown-border;
|
|
|
e8ec7a |
border-radius: $border-radius-base;
|
|
|
e8ec7a |
@include box-shadow(0 6px 12px rgba(0,0,0,.175));
|
|
|
e8ec7a |
background-clip: padding-box;
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Aligns the dropdown menu to right
|
|
|
e8ec7a |
&.pull-right {
|
|
|
e8ec7a |
right: 0;
|
|
|
e8ec7a |
left: auto;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Dividers (basically an hr) within the dropdown
|
|
|
e8ec7a |
.divider {
|
|
|
e8ec7a |
@include nav-divider($dropdown-divider-bg);
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Links within the dropdown menu
|
|
|
e8ec7a |
> li > a {
|
|
|
e8ec7a |
display: block;
|
|
|
e8ec7a |
padding: 3px 20px;
|
|
|
e8ec7a |
clear: both;
|
|
|
e8ec7a |
font-weight: normal;
|
|
|
e8ec7a |
line-height: $line-height-base;
|
|
|
e8ec7a |
color: $dropdown-link-color;
|
|
|
e8ec7a |
white-space: nowrap; // prevent links from randomly breaking onto new lines
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Hover/Focus state
|
|
|
e8ec7a |
.dropdown-menu > li > a {
|
|
|
e8ec7a |
&:hover,
|
|
|
e8ec7a |
&:focus {
|
|
|
e8ec7a |
text-decoration: none;
|
|
|
e8ec7a |
color: $dropdown-link-hover-color;
|
|
|
e8ec7a |
background-color: $dropdown-link-hover-bg;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Active state
|
|
|
e8ec7a |
.dropdown-menu > .active > a {
|
|
|
e8ec7a |
&,
|
|
|
e8ec7a |
&:hover,
|
|
|
e8ec7a |
&:focus {
|
|
|
e8ec7a |
color: $dropdown-link-active-color;
|
|
|
e8ec7a |
text-decoration: none;
|
|
|
e8ec7a |
outline: 0;
|
|
|
e8ec7a |
background-color: $dropdown-link-active-bg;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Disabled state
|
|
|
e8ec7a |
//
|
|
|
e8ec7a |
// Gray out text and ensure the hover/focus state remains gray
|
|
|
e8ec7a |
|
|
|
e8ec7a |
.dropdown-menu > .disabled > a {
|
|
|
e8ec7a |
&,
|
|
|
e8ec7a |
&:hover,
|
|
|
e8ec7a |
&:focus {
|
|
|
e8ec7a |
color: $dropdown-link-disabled-color;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
// Nuke hover/focus effects
|
|
|
e8ec7a |
.dropdown-menu > .disabled > a {
|
|
|
e8ec7a |
&:hover,
|
|
|
e8ec7a |
&:focus {
|
|
|
e8ec7a |
text-decoration: none;
|
|
|
e8ec7a |
background-color: transparent;
|
|
|
e8ec7a |
background-image: none; // Remove CSS gradient
|
|
|
e8ec7a |
@include reset-filter();
|
|
|
e8ec7a |
cursor: not-allowed;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Open state for the dropdown
|
|
|
e8ec7a |
.open {
|
|
|
e8ec7a |
// Show the menu
|
|
|
e8ec7a |
> .dropdown-menu {
|
|
|
e8ec7a |
display: block;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Remove the outline when :focus is triggered
|
|
|
e8ec7a |
> a {
|
|
|
e8ec7a |
outline: 0;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Dropdown section headers
|
|
|
e8ec7a |
.dropdown-header {
|
|
|
e8ec7a |
display: block;
|
|
|
e8ec7a |
padding: 3px 20px;
|
|
|
e8ec7a |
font-size: $font-size-small;
|
|
|
e8ec7a |
line-height: $line-height-base;
|
|
|
e8ec7a |
color: $dropdown-header-color;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Backdrop to catch body clicks on mobile, etc.
|
|
|
e8ec7a |
.dropdown-backdrop {
|
|
|
e8ec7a |
position: fixed;
|
|
|
e8ec7a |
left: 0;
|
|
|
e8ec7a |
right: 0;
|
|
|
e8ec7a |
bottom: 0;
|
|
|
e8ec7a |
top: 0;
|
|
|
e8ec7a |
z-index: $zindex-dropdown - 10;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Right aligned dropdowns
|
|
|
e8ec7a |
.pull-right > .dropdown-menu {
|
|
|
e8ec7a |
right: 0;
|
|
|
e8ec7a |
left: auto;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Allow for dropdowns to go bottom up (aka, dropup-menu)
|
|
|
e8ec7a |
//
|
|
|
e8ec7a |
// Just add .dropup after the standard .dropdown class and you're set, bro.
|
|
|
e8ec7a |
// TODO: abstract this so that the navbar fixed styles are not placed here?
|
|
|
e8ec7a |
|
|
|
e8ec7a |
.dropup,
|
|
|
e8ec7a |
.navbar-fixed-bottom .dropdown {
|
|
|
e8ec7a |
// Reverse the caret
|
|
|
e8ec7a |
.caret {
|
|
|
e8ec7a |
// Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this
|
|
|
e8ec7a |
// gets fixed, restore `border-top: 0;`.
|
|
|
e8ec7a |
border-top: 0 dotted;
|
|
|
e8ec7a |
border-bottom: 4px solid $dropdown-caret-color;
|
|
|
e8ec7a |
content: "";
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
// Different positioning for bottom up menu
|
|
|
e8ec7a |
.dropdown-menu {
|
|
|
e8ec7a |
top: auto;
|
|
|
e8ec7a |
bottom: 100%;
|
|
|
e8ec7a |
margin-bottom: 1px;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|
|
|
e8ec7a |
|
|
|
e8ec7a |
// Component alignment
|
|
|
e8ec7a |
//
|
|
|
e8ec7a |
// Reiterate per navbar.less and the modified component alignment there.
|
|
|
e8ec7a |
|
|
|
e8ec7a |
@media (min-width: $grid-float-breakpoint) {
|
|
|
e8ec7a |
.navbar-right {
|
|
|
e8ec7a |
.dropdown-menu {
|
|
|
e8ec7a |
right: 0;
|
|
|
e8ec7a |
left: auto;
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
}
|
|
|
e8ec7a |
|