.dropdown { @include clearfix(); position: relative; input[type='submit'], input[type='reset'], input[type='button'], button, .button { padding: 0 5em 0 1em; display: block; width: 100%; height: 3em; line-height: 3em; text-align: start; float: left; } .action-secondary { opacity: 0.8; } input[type='submit'], input[type='reset'], input[type='button'], button { line-height: inherit; } ul { @include unlist(); background-color: $color-teal; position: absolute; overflow: hidden; top: 100%; inset-inline-start: -2000px; z-index: 500; opacity: 0; li { float: none; border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px 0 0; overflow: hidden; a:focus, button:focus { border: 3px solid $color-focus-outline; } } // Media for Windows High Contrast @media (forced-colors: $media-forced-colours) { li { border-width: 1px; } li:hover { border-color: Highlight; } li a, li button { forced-color-adjust: none; background-color: $color-black; border-color: $color-white; color: $color-white; } li a:focus, li button:focus { background-color: $color-black; forced-color-adjust: none; border: 4px solid #0ff; color: $color-white; } } a { box-sizing: border-box; white-space: nowrap; position: relative; text-decoration: none; display: block; color: $color-white; padding: 1em; font-weight: normal; &:hover { background-color: $color-teal-darker; } &.icon { padding-inline-end: 5em; // stylelint-disable-next-line max-nesting-depth &:before, &:after { inset-inline-end: 1em; } } &.shortcut { padding-inline-end: 7em; } } a, input[type='submit'], input[type='reset'], input[type='button'], .button, button { border-radius: 0; font-size: 0.95em; -webkit-font-smoothing: auto; } label { padding: 1.3em; } .kbd { position: absolute; inset-inline-end: 1em; font-weight: 600; font-size: 0.8em; color: rgba(0, 0, 0, 0.3); } } &.open ul { box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.2); opacity: 1; inset-inline-start: 0; display: block; } &.match-width ul { width: 100%; min-width: 110px; li { white-space: nowrap; } } &.dropup ul { box-shadow: 0 -3px 3px 0 rgba(0, 0, 0, 0.2); top: auto; bottom: 100%; li { border-width: 0 0 1px; } } .dropdown-toggle { color: $color-white; background-color: $color-teal; line-height: 2.8em; cursor: pointer; height: 100%; border-inline-start: 1px solid rgba(255, 255, 255, 0.2); position: absolute; inset-inline-end: 0; padding: 0 0.5em; text-align: center; &:before, &:after { margin: 0; } &:before { width: 1em; font-size: 1.2rem; } &:hover { background-color: $color-teal-darker; } svg.icon { // TODO: remove svg qualifier once the icon font styles are gone @include svg-icon(1.3em); } } .bicolor + .dropdown-toggle { background-color: $color-teal-darker; &:hover { background-color: $color-teal-dark; } } &.open .dropdown-toggle { background-color: $color-teal-darker; } .bicolor:hover { background-color: $color-teal-dark; } // Styles for dropdowns which are also buttons e.g page editor &.dropdown-button { // Media for Windows High Contrast @media (forced-colors: $media-forced-colours) { button { border-color: ActiveText; } button:hover { border-color: Highlight; } a.button.bicolor.button:hover { border-color: Highlight; } } .dropdown-toggle { border-radius: 0 3px 3px 0; // Media for Windows High Contrast @media (forced-colors: $media-forced-colours) { background: transparent; box-sizing: border-box; border: 1px solid ActiveText; } } .dropdown-toggle:hover { // Media for Windows High Contrast @media (forced-colors: $media-forced-colours) { background-color: transparent; border: 1px solid Highlight; } } &.open { > input[type='button'], > input[type='submit'], > button, > .button { border-radius: 3px 3px 0 0; } .dropdown-toggle { border-radius: 0 3px 0 0; } } } &.dropdown-button--white { ul { background-color: $color-grey-3; } li a, li .button { background-color: $color-white; color: $color-button; border: 0; &:hover { background-color: $color-grey-4; } &.no { color: $color-button-no; } &.warning { color: $color-button-warning; } } } &.dropup.dropdown-button { &.open { > input[type='button'], > input[type='submit'], > button, > .button { border-radius: 0 0 3px 3px; } .dropdown-toggle { border-radius: 0 0 3px; } } } } .dropdown.white { ul { background-color: $color-white; li { border-top: 1px solid rgba(0, 0, 0, 0.1); } a { color: $color-grey-2; &:hover { background-color: $color-grey-3; } } } } .dropdown.warning { ul { background-color: $color-button-warning; } .dropdown-toggle { background-color: $color-button-warning; &:hover { background-color: $color-button-warning-hover; } } } // Transitions // stylelint-disable-next-line no-duplicate-selectors .dropdown ul { @include transition(opacity 0.2s linear); } .dropdown-button { .button svg.icon { // TODO: leave only class when iconfont styles are removed @include svg-icon(); } }