// The dropdown wrapper (`
`) .dropup, .dropright, .dropdown, .dropleft position: relative .dropdown-toggle // Generate the caret automatically +caret // The dropdown menu .dropdown-menu position: absolute top: 100% left: 0 z-index: $zindex-dropdown display: none // none by default, but block on "open" of the menu float: left min-width: $dropdown-min-width padding: $dropdown-padding-y 0 margin: $dropdown-spacer 0 0 // override default ul font-size: $font-size-base // Redeclare because nesting can cause inheritance issues color: $body-color text-align: left // Ensures proper alignment if parent has it changed (e.g., modal footer) list-style: none background-color: $dropdown-bg background-clip: padding-box border: $dropdown-border-width solid $dropdown-border-color +border-radius($dropdown-border-radius) +box-shadow($dropdown-box-shadow) .dropdown-menu-right right: 0 left: auto // Allow for dropdowns to go bottom up (aka, dropup-menu) // Just add .dropup after the standard .dropdown class and you're set. .dropup .dropdown-menu top: auto bottom: 100% margin-top: 0 margin-bottom: $dropdown-spacer .dropdown-toggle +caret(up) .dropright .dropdown-menu top: 0 right: auto left: 100% margin-top: 0 margin-left: $dropdown-spacer .dropdown-toggle +caret(right) &::after vertical-align: 0 .dropleft .dropdown-menu top: 0 right: 100% left: auto margin-top: 0 margin-right: $dropdown-spacer .dropdown-toggle +caret(left) &::before vertical-align: 0 // When enabled Popper.js, reset basic dropdown position // stylelint-disable no-duplicate-selectors .dropdown-menu &[x-placement^="top"], &[x-placement^="right"], &[x-placement^="bottom"], &[x-placement^="left"] right: auto bottom: auto // stylelint-enable no-duplicate-selectors // Dividers (basically an `
`) within the dropdown .dropdown-divider +nav-divider($dropdown-divider-bg) // Links, buttons, and more within the dropdown menu // // `