insomnia/app/ui/css/components/modal.less
Gregory Schier 56a86168c4 Nunjucks Variable Editor Modal (#110)
* Fixed duplication kve bug

* Some minor css

* Fix modal refs

* Got variable modal showing

* A bit more

* Errors and debounced render

* Finished naive editors

* Some key value editor fixes

* Yet even more one-line fixes

* Added some transitions

* Small fixes

* Added key flattening util
2017-03-08 22:23:23 -08:00

141 lines
2.7 KiB
Plaintext

@import '../constants/dimensions';
@import '../constants/colors';
.modal {
// Hidden state
opacity: 0;
z-index: -999999; // Component updates this manually
transition: opacity 250ms;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
padding: @padding-lg;
&.modal--open {
opacity: 1;
}
&:focus {
outline: 0;
}
&.modal--fixed-height .modal__content {
height: 100%;
}
.modal__backdrop {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
}
.modal__content {
position: relative;
top: 1rem;
transform: scale(0.95);
transition: transform 150ms ease-out, top 200ms ease-out;
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);
width: @modal-width;
max-width: 100%;
max-height: 100%;
margin: auto;
background-color: var(--color-bg);
color: var(--color-font);
border: 1px solid @hl-sm;
}
&.modal--open .modal__content {
transform: scale(1.0);
top: 0;
}
&.modal--wide .modal__content {
width: @modal-width-wide;
}
&.modal--fixed-top .modal__content {
margin: 0 auto auto auto;
}
.modal__header {
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%;
}
.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;
}
.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;
}