zulip/static/styles/modal.css
Ganesh Pawar c439b9d3af modal: Make the modal content scrollable instead of the whole modal.
Earlier, if the content of the modal (apart from the header and footer)
overflowed, the whole modal would become scrollable which would hide
the modal header and footer on scrolling. This commit makes only
the modal content scrollable and keeps the modal header and
footer static.
2022-09-14 15:45:36 -07:00

206 lines
3.6 KiB
CSS

.modal-body {
max-height: 60vh;
}
.modal-bg {
background-color: hsl(0, 0%, 98%);
}
/* Styles for the Micromodal-based modals */
.modal__overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: hsla(0, 0%, 0%, 0.6);
display: flex;
justify-content: center;
align-items: center;
z-index: 105;
}
.modal__container {
display: flex;
flex-direction: column;
background-color: hsl(0, 0%, 100%);
max-width: calc(100% - 32px);
max-height: 96%;
width: 32.5rem;
border-radius: 4px;
box-sizing: border-box;
}
.modal__header {
padding: 16px 24px;
display: flex;
justify-content: space-between;
align-items: center;
}
.modal__footer {
display: flex;
justify-content: flex-end;
align-items: center;
padding: 20px 24px;
border-top: 1px solid hsla(0, 0%, 100%, 0.2);
}
.modal__title {
margin: 0;
font-size: 1.375rem;
font-weight: 600;
line-height: 1.25;
/* help_link_widget margin for the fa-circle-o. */
.help_link_widget {
margin-left: 5px;
}
}
.modal__close {
&::before {
content: "\2715";
}
margin-right: -4px;
background: transparent;
border: 0;
&:hover {
background: hsl(0, 0%, 90%);
}
}
.modal__content {
display: flex;
font-size: 1rem;
overflow-y: auto;
padding: 0 24px;
line-height: 1.5;
}
.modal__btn {
font-size: 0.875rem;
padding: 0.5rem 1rem;
background-color: hsl(0, 0%, 90%);
border-radius: 0.25rem;
border-width: 0;
cursor: pointer;
appearance: button;
text-transform: none;
overflow: visible;
line-height: 1.15;
margin: 0;
will-change: transform;
backface-visibility: hidden;
transform: translateZ(0);
transition: transform 0.25s ease-out;
&:disabled {
background-color: hsl(0, 0%, 83%);
cursor: not-allowed;
}
}
.modal__btn:focus,
.modal__btn:hover {
transform: scale(1.05);
}
.dialog_cancel_button {
background: hsl(0, 0%, 100%);
border: 1px solid hsla(300, 2%, 11%, 0.3);
&:hover {
background: hsl(0, 0%, 97%);
}
}
.dialog_submit_button {
margin-left: 12px;
background-color: hsl(240, 96%, 68%);
color: hsl(0, 0%, 100%) !important;
}
#read_receipts_error,
#dialog_error {
margin-bottom: 10px;
}
.email_field {
margin-top: 10px;
.email_field_textarea {
width: 97%;
resize: vertical;
}
.border-top {
border-top: 1px solid hsla(300, 2%, 11%, 0.3);
padding-top: 10px;
}
.email-body {
margin-left: 20px;
margin-top: 20px;
}
}
@keyframes mmfadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes mmfadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.micromodal {
display: none;
}
.micromodal.modal--opening,
.micromodal.modal--open {
display: block;
}
.micromodal[aria-hidden="true"] .modal__overlay {
animation: mmfadeOut 75ms cubic-bezier(0, 0, 0.2, 1);
}
.micromodal[aria-hidden="false"] .modal__overlay {
animation: mmfadeIn 120ms cubic-bezier(0, 0, 0.2, 1);
}
.micromodal[aria-hidden="true"] .modal__container {
animation: mmfadeOut 75ms cubic-bezier(0, 0, 0.2, 1);
}
.micromodal[aria-hidden="false"] .modal__container {
animation: mmfadeIn 120ms cubic-bezier(0, 0, 0.2, 1);
}
.micromodal .modal__container,
.micromodal .modal__overlay {
will-change: transform;
}
.modal__spinner .loading_indicator_spinner {
height: 16px;
path {
fill: hsl(0, 0%, 100%);
}
}