0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-29 17:36:49 +01:00
wagtail/client/scss/components/_dropdown.legacy.scss
Thibaud Colas 14280ad7ea
Convert all UI code to CSS logical properties (#8051)
- Rewrite all styles to use logical properties
- Update Stylelint configuration to include logical properties checks
2022-03-15 13:21:06 +00:00

357 lines
6.7 KiB
SCSS

.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%;
// Remove once we drop support for Safari 13.
// stylelint-disable-next-line property-disallowed-list
left: -2000px;
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 {
// Remove once we drop support for Safari 13.
// stylelint-disable-next-line property-disallowed-list
right: 1em;
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;
// Remove once we drop support for Safari 13.
// stylelint-disable-next-line property-disallowed-list
right: 1em;
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;
// Remove once we drop support for Safari 13.
// stylelint-disable-next-line property-disallowed-list
left: 0;
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;
// Remove once we drop support for Safari 13.
// stylelint-disable-next-line property-disallowed-list
right: 0;
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();
margin-inline-end: 0.5em;
}
}