123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- //
- // Dropdown menus
- // --------------------------------------------------
- // Dropdown arrow/caret
- .caret {
- display: inline-block;
- width: 0;
- height: 0;
- margin-left: 5px;
- vertical-align: middle;
- border-top: @caret-width-base-vertical solid;
- border-right: @caret-width-base solid transparent;
- border-left: @caret-width-base solid transparent;
- transition: border-color .25s, color .25s;
- }
- // The dropdown menu (ul)
- .dropdown-menu {
- z-index: @zindex-dropdown;
- background-color: @dropdown-bg;
- min-width: 220px;
- border: none;
- margin-top: 9px;
- padding: 0;
- font-size: ceil((@component-font-size-base * 0.933)); // ~14px
- border-radius: @dropdown-border-radius;
- box-shadow: none;
- // Dividers (basically an hr) within the dropdown
- .divider {
- .nav-divider(@dropdown-divider-bg);
- }
- // Links within the dropdown menu
- > li > a {
- padding: 8px 16px;
- line-height: 1.429; // 20px
- color: @dropdown-link-color;
- }
- > li:first-child > a:first-child {
- .border-top-radius(@dropdown-border-radius);
- }
- > li:last-child > a:first-child {
- .border-bottom-radius(@dropdown-border-radius);
- }
- // Typeahead (deprecated)
- &.typeahead {
- display: none;
- width: auto;
- margin-top: 5px;
- border: 2px solid @brand-secondary;
- padding: 5px 0;
- background-color: @inverse;
- border-radius: @border-radius-large;
- li {
- a {
- padding: 6px 14px;
- }
- &:first-child,
- &:last-child {
- a {
- padding: 6px 14px;
- border-radius: 0;
- }
- }
- }
- }
- }
- // Hover/Focus state
- .dropdown-menu > li > a {
- &:hover,
- &:focus {
- color: @dropdown-link-hover-color;
- background-color: @dropdown-link-hover-bg;
- }
- }
- // Active state
- .dropdown-menu > .active > a {
- &,
- &:hover,
- &:focus {
- color: @dropdown-link-active-color;
- background-color: @dropdown-link-active-bg;
- }
- }
- // Disabled state
- //
- // Gray out text and ensure the hover/focus state remains gray
- .dropdown-menu > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @dropdown-link-disabled-color;
- background-color: transparent;
- cursor: @cursor-disabled;
- }
- }
- // Menu positioning
- //
- // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
- // menu with the parent.
- .dropdown-menu-right {
- left: auto; // Reset the default from `.dropdown-menu`
- right: 0;
- }
- // With v3, we enabled auto-flipping if you have a dropdown within a right
- // aligned nav component. To enable the undoing of that, we provide an override
- // to restore the default dropdown menu alignment.
- //
- // This is only for left-aligning a dropdown menu within a `.navbar-right` or
- // `.pull-right` nav component.
- .dropdown-menu-left {
- left: 0;
- right: auto;
- }
- // Dropdown section headers
- .dropdown-header {
- padding: 8px 16px;
- line-height: 1.538; // 20px
- font-size: floor((@component-font-size-base * 0.867)); // 13px
- text-transform: uppercase;
- color: @dropdown-header-color;
- &:first-child {
- margin-top: 3px;
- }
- }
- // Backdrop to catch body clicks on mobile, etc.
- .dropdown-backdrop {
- z-index: (@zindex-dropdown - 10);
- }
- // Allow for dropdowns to go bottom up (aka, dropup-menu)
- //
- // Just add .dropup after the standard .dropdown class and you're set, bro.
- .dropup,
- .navbar-fixed-bottom .dropdown {
- // Reverse the caret
- .caret {
- border-bottom: @caret-width-base-vertical solid;
- margin-bottom: .25em;
- }
- // Different positioning for bottom up menu
- .dropdown-menu {
- margin-top: 0;
- margin-bottom: 9px;
- }
- }
- // Inversed Dropdown Menu
- //
- // ## Alternative color variation for dropdown
- .dropdown-menu-inverse {
- background-color: @dropdown-inverse-bg;
- // Dividers
- .divider {
- .nav-divider(@dropdown-inverse-divider-bg);
- }
- // Links within the dropdown menu
- > li > a {
- color: @dropdown-inverse-link-color;
- }
- // Hover/Focus state
- > li > a {
- &:hover,
- &:focus {
- color: @dropdown-inverse-link-hover-color;
- background-color: @dropdown-inverse-link-hover-bg;
- }
- }
- // Active state
- > .active > a {
- &,
- &:hover,
- &:focus {
- color: @dropdown-inverse-link-active-color;
- background-color: @dropdown-inverse-link-active-bg;
- }
- }
- // Disabled state
- //
- // Gray out text and ensure the hover/focus state remains gray
- > .disabled > a {
- &,
- &:hover,
- &:focus {
- color: @dropdown-inverse-link-disabled-color;
- }
- }
- // Nuke hover/focus effects
- > .disabled > a {
- &:hover,
- &:focus {
- background-color: transparent;
- }
- }
- // Dropdown section headers
- .dropdown-header {
- color: @dropdown-inverse-header-color;
- }
- }
- // Component alignment
- //
- // Reiterate per navbar.less and the modified component alignment there.
- @media (min-width: @grid-float-breakpoint) {
- .navbar-right {
- .dropdown-menu {
- .dropdown-menu-right();
- }
- // Necessary for overrides of the default right aligned menu.
- // Will remove come v4 in all likelihood.
- .dropdown-menu-left {
- .dropdown-menu-left();
- }
- }
- }
|