blob: ee575f05e979aee6de25965ddd71a3022c602443 [file] [log] [blame]
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
@import "widgets/theme";
// The opacity changes are only transitional. Once the `modalFadeOut` animation
// reaches the end, the Mithril component that renders .modal-backdrop
// (and .modal-dialog) is fully destroyed and removed from the DOM.
// We use keyframes+animation, rather than transition, because the former allow
// hooking the onanimationend events to synchronize the Mithril removal with
// the end of the CSS animation.
@keyframes modalFadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes modalFadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.modal-backdrop {
position: absolute;
z-index: 99;
background-color: rgba(0, 0, 0, 0.6);
top: 0;
left: 0;
right: 0;
bottom: 0;
backdrop-filter: blur(2px);
animation: modalFadeIn 0.25s var(--anim-easing);
animation-fill-mode: both;
&.modal-fadeout {
animation: modalFadeOut 0.25s var(--anim-easing);
animation-fill-mode: both;
}
}
.modal-dialog {
position: absolute;
z-index: 100;
background-color: #fff;
margin: auto;
min-width: 25vw;
min-height: 10vh;
padding: 30px;
max-width: 90vw;
max-height: 90vh;
border-radius: $pf-border-radius;
overflow-y: auto;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-family: Roboto, sans-serif;
font-weight: 300;
&.modal-dialog-valign-top {
top: 1rem;
transform: translate(-50%, 0);
}
> header {
display: flex;
justify-content: space-between;
align-items: center;
h2 {
margin-top: 0;
margin-bottom: 0;
font-family: "Roboto", sans-serif;
font-weight: 600;
font-size: 1.25rem;
line-height: 1.25;
color: #262f3c;
box-sizing: border-box;
}
button {
background: transparent;
border: 0;
}
} // header
main {
font-size: 1rem;
margin-top: 2rem;
margin-bottom: 2rem;
line-height: 1.5;
color: rgba(0, 0, 0, 0.8);
.small-font {
font-size: 0.9rem;
}
}
footer {
display: flex;
justify-content: space-around;
} // footer
.modal-btn {
font-size: 0.875rem;
padding-left: 1rem;
padding-right: 1rem;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
background-color: #e6e6e6;
color: rgba(0, 0, 0, 0.8);
border: 2px solid transparent;
border-radius: 4px;
cursor: pointer;
text-transform: none;
overflow: visible;
margin: 5px;
transform: translateZ(0);
transition: border-color 0.25s var(--anim-easing),
background-color 0.25s var(--anim-easing);
&:focus {
border-color: #03a9f4;
}
&:hover {
background-color: #ececec;
}
}
.modal-btn-primary {
background-color: hsl(215deg, 22%, 19%);
color: #fff;
&:hover {
background-color: hsl(215deg, 22%, 35%);
}
}
}
.help {
table {
margin-bottom: 15px;
td {
min-width: 250px;
}
td:first-child {
font-family: var(--monospace-font);
}
}
h2 {
font: inherit;
font-weight: bold;
}
}
.modal-pre {
white-space: pre-line;
font-size: 13px;
}
.modal-logs,
.modal-bash {
white-space: pre-wrap;
border: 1px solid #999;
background: #eee;
font-size: 10px;
font-family: var(--monospace-font);
margin-top: 10px;
margin-bottom: 10px;
min-height: 50px;
max-height: 40vh;
overflow: auto;
}
.modal-bash {
margin: 0;
padding: 5px 0;
overflow: auto;
min-height: 0;
}
.modal-textarea {
display: block;
margin-top: 10px;
margin-bottom: 10px;
width: 100%;
}
.modal-small {
font-size: 0.75rem;
}