insomnia/app/ui/css/components/modal.less
2017-08-09 17:53:11 -07:00

139 lines
2.7 KiB
Plaintext

@import '../constants/dimensions';
@import '../constants/colors';
.modal {
// Hidden state
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
padding: @padding-lg;
&:focus {
outline: 0;
}
.modal__backdrop {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
}
.modal__content__wrapper {
width: @modal-width;
height: 100%;
max-width: 100%;
max-height: 100%;
margin: auto;
// We want pointer events to pass through to the backdrop so we can close it
pointer-events: none;
}
&.modal--fixed-height .modal__content {
height: 100%;
}
&.modal--wide .modal__content__wrapper {
width: @modal-width-wide;
}
.modal__content {
display: grid;
grid-template-columns: 100%;
grid-template-rows: auto minmax(0, 1fr) auto;
border-radius: @radius-md;
overflow: visible;
box-sizing: border-box;
box-shadow: 0 0 2rem 0 rgba(0, 0, 0, 0.2);
max-width: 100%;
max-height: 100%;
width: 100%;
background-color: var(--color-bg);
color: var(--color-font);
border: 1px solid @hl-sm;
// Since we disable pointer-events on the parent, re-enable them here
pointer-events: auto;
}
.modal__header {
overflow: hidden;
border-bottom: 1px solid @hl-md;
height: @line-height-md;
font-size: @font-size-lg;
line-height: @line-height-md;
background-color: var(--color-bg);
color: var(--color-font);
display: flex;
flex-direction: row;
.modal__header__children {
padding-left: @padding-md;
width: 100%;
& > * {
display: inline-block;
}
}
.modal__close-btn {
height: 100%;
}
}
&.modal--noescape .modal__close-btn {
display: none;
}
.modal__body {
overflow: auto;
min-height: 2rem;
box-sizing: border-box;
max-width: 100%;
background-color: var(--color-bg);
color: var(--color-font);
&.modal__body--no-scroll {
overflow: visible;
height: 100%;
}
}
.modal__footer {
border-top: 1px solid @hl-md;
background-color: var(--color-bg);
color: var(--color-font);
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
padding: 1px;
}
.modal__footer > *:last-child {
// Push last item of footer to right. This is very important to pull right
// if there is only a single item in the footer.
margin-left: auto;
}
.modal__content > *:last-child {
border-bottom-left-radius: @radius-md;
border-bottom-right-radius: @radius-md;
}
.modal__content > *:first-child {
border-top-left-radius: @radius-md;
border-top-right-radius: @radius-md;
}
}
.modals {
width: 0;
height: 0;
}