mirror of
https://github.com/wagtail/wagtail.git
synced 2024-12-01 11:41:20 +01:00
daf0c96841
- Add w-dialog root classname to support overall styling of the dialog if a message is provided - Fix up layout of dynamic classes to avoid additional spaces - Fixes #11306
174 lines
3.8 KiB
SCSS
174 lines
3.8 KiB
SCSS
.w-dialog {
|
|
--w-dialog-close-icon-color: theme('colors.icon-primary');
|
|
|
|
position: fixed;
|
|
display: flex;
|
|
inset-inline-start: 0;
|
|
inset-inline-end: 0;
|
|
bottom: 0;
|
|
top: 0;
|
|
z-index: theme('zIndex.dialog');
|
|
padding: theme('spacing.4');
|
|
|
|
&[aria-hidden='true'] {
|
|
display: none;
|
|
}
|
|
|
|
&__overlay {
|
|
position: fixed;
|
|
inset-inline-start: 0;
|
|
inset-inline-end: 0;
|
|
bottom: 0;
|
|
top: 0;
|
|
opacity: theme('opacity.80');
|
|
background: theme('colors.black-50');
|
|
}
|
|
|
|
&__box {
|
|
width: 100%;
|
|
position: relative;
|
|
margin: auto;
|
|
max-width: theme('maxWidth.2xl');
|
|
z-index: theme('zIndex.dialog');
|
|
background: theme('colors.surface-page');
|
|
box-shadow: theme('boxShadow.DEFAULT');
|
|
border-radius: theme('borderRadius.md');
|
|
animation: theme('animation.fade-in');
|
|
|
|
@include media-breakpoint-up(sm) {
|
|
width: 600px;
|
|
}
|
|
@media (forced-colors: active) {
|
|
border: 5px solid currentColor;
|
|
}
|
|
}
|
|
|
|
&__close-button {
|
|
position: absolute;
|
|
display: inline-flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
background: transparent;
|
|
padding: 0;
|
|
top: theme('spacing.2');
|
|
inset-inline-end: theme('spacing.2');
|
|
width: theme('spacing.12');
|
|
height: theme('spacing.12');
|
|
}
|
|
|
|
&__close-icon {
|
|
width: theme('spacing.4');
|
|
height: theme('spacing.4');
|
|
color: var(--w-dialog-close-icon-color, #{theme('colors.icon-primary')});
|
|
}
|
|
|
|
&__content {
|
|
// Using apply for scrollbars to avoid having to overwrite scrollbar with excess css
|
|
overflow: auto;
|
|
padding: theme('spacing.8');
|
|
max-height: calc(100vh - 180px);
|
|
min-height: min(100vh - 180px, 320px);
|
|
|
|
@include media-breakpoint-up(sm) {
|
|
padding: theme('spacing.12');
|
|
}
|
|
|
|
@include media-breakpoint-up(md) {
|
|
padding-inline-start: theme('spacing.20');
|
|
padding-inline-end: theme('spacing.20');
|
|
}
|
|
}
|
|
|
|
&__icon {
|
|
position: absolute;
|
|
display: none;
|
|
width: theme('spacing.5');
|
|
height: theme('spacing.5');
|
|
color: theme('colors.icon-primary');
|
|
top: theme('spacing.[0.5]');
|
|
transform: translateY(theme('spacing.2'));
|
|
inset-inline-start: calc(0 - theme('spacing.10'));
|
|
|
|
@include media-breakpoint-up(md) {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
&__title {
|
|
position: relative;
|
|
margin-top: 0;
|
|
margin-bottom: theme('spacing.1');
|
|
}
|
|
|
|
&__subtitle {
|
|
margin-bottom: theme('spacing.4');
|
|
}
|
|
|
|
&__message {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: theme('spacing.5');
|
|
border-start-start-radius: theme('borderRadius.md');
|
|
border-start-end-radius: theme('borderRadius.md');
|
|
|
|
@media (forced-colors: active) {
|
|
border-bottom: 1px solid currentColor;
|
|
}
|
|
|
|
&--info {
|
|
background: theme('colors.info.50');
|
|
color: theme('colors.info.100');
|
|
}
|
|
|
|
&--warning {
|
|
background: theme('colors.warning.50');
|
|
color: theme('colors.primary.DEFAULT');
|
|
}
|
|
|
|
&--critical {
|
|
background: theme('colors.critical.50');
|
|
color: theme('colors.critical.200');
|
|
}
|
|
|
|
&--success {
|
|
background: theme('colors.positive.50');
|
|
color: theme('colors.positive.100');
|
|
}
|
|
}
|
|
|
|
&--message {
|
|
--w-dialog-close-icon-color: theme('colors.grey.600');
|
|
}
|
|
|
|
&__message-icon {
|
|
width: theme('spacing.5');
|
|
height: theme('spacing.5');
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
&__message-header {
|
|
margin-inline-start: theme('spacing[2.5]');
|
|
padding-inline-end: theme('spacing.8');
|
|
color: theme('colors.grey.600');
|
|
font-size: theme('fontSize.14');
|
|
}
|
|
|
|
&__message-description {
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
|
|
// Variant of the dialog which allows viewing other page content.
|
|
.w-dialog--floating {
|
|
pointer-events: none;
|
|
|
|
.w-dialog__box {
|
|
pointer-events: auto;
|
|
box-shadow: theme('boxShadow.md');
|
|
}
|
|
|
|
.w-dialog__overlay {
|
|
display: none;
|
|
}
|
|
}
|