158 lines
2.7 KiB
CSS
158 lines
2.7 KiB
CSS
/* Modal base styles - StreamYard/Google Material inspired */
|
|
.modal {
|
|
position: fixed;
|
|
inset: 0;
|
|
margin: auto;
|
|
padding: 0;
|
|
border: none;
|
|
border-radius: 8px;
|
|
background: transparent;
|
|
box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);
|
|
max-height: 90vh;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.modal::backdrop {
|
|
background-color: rgba(0, 0, 0, 0.32);
|
|
backdrop-filter: blur(2px);
|
|
}
|
|
|
|
/* Modal widths */
|
|
.modal-sm { width: 90%; max-width: 400px; }
|
|
.modal-md { width: 90%; max-width: 520px; }
|
|
.modal-lg { width: 90%; max-width: 720px; }
|
|
.modal-xl { width: 90%; max-width: 960px; }
|
|
|
|
.modalContent {
|
|
background-color: #ffffff;
|
|
color: #202124;
|
|
border-radius: 8px;
|
|
overflow: hidden;
|
|
display: flex;
|
|
flex-direction: column;
|
|
max-height: 90vh;
|
|
}
|
|
|
|
/* Header */
|
|
.modalHeader {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 16px 24px;
|
|
}
|
|
|
|
.modalTitle {
|
|
font-size: 16px;
|
|
font-weight: 400;
|
|
margin: 0;
|
|
color: #202124;
|
|
letter-spacing: 0.1px;
|
|
}
|
|
|
|
.closeButton {
|
|
background: transparent;
|
|
border: none;
|
|
font-size: 24px;
|
|
line-height: 1;
|
|
color: #5f6368;
|
|
cursor: pointer;
|
|
padding: 8px;
|
|
width: 40px;
|
|
height: 40px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
border-radius: 50%;
|
|
transition: background-color 0.2s ease, color 0.2s ease;
|
|
margin: -8px -8px -8px 0;
|
|
}
|
|
|
|
.closeButton:hover {
|
|
background-color: #f1f3f4;
|
|
color: #202124;
|
|
}
|
|
|
|
/* Modal body */
|
|
.modalBody {
|
|
padding: 20px 24px;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
flex: 1;
|
|
width: 100%;
|
|
max-width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* Footer */
|
|
.modalFooter {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 12px;
|
|
padding: 16px 24px;
|
|
border-top: 1px solid #e8eaed;
|
|
}
|
|
|
|
/* Responsive */
|
|
@media (max-width: 768px) {
|
|
.modal-sm,
|
|
.modal-md,
|
|
.modal-lg,
|
|
.modal-xl {
|
|
width: 95%;
|
|
max-width: none;
|
|
}
|
|
|
|
.modalBody {
|
|
padding: 20px;
|
|
}
|
|
|
|
.modalHeader,
|
|
.modalFooter {
|
|
padding: 16px 20px;
|
|
}
|
|
}
|
|
|
|
/* Animation */
|
|
@keyframes modalFadeIn {
|
|
from {
|
|
opacity: 0;
|
|
transform: scale(0.95);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
.modal[open] .modalContent {
|
|
animation: modalFadeIn 0.15s cubic-bezier(0.4, 0.0, 0.2, 1);
|
|
}
|
|
|
|
/* Dark mode */
|
|
[data-theme="dark"] .modalContent {
|
|
background-color: #2d2e30;
|
|
color: #e8eaed;
|
|
}
|
|
|
|
[data-theme="dark"] .modalHeader {
|
|
border-bottom-color: #5f6368;
|
|
}
|
|
|
|
[data-theme="dark"] .modalTitle {
|
|
color: #e8eaed;
|
|
}
|
|
|
|
[data-theme="dark"] .closeButton {
|
|
color: #9aa0a6;
|
|
}
|
|
|
|
[data-theme="dark"] .closeButton:hover {
|
|
background-color: #3c4043;
|
|
color: #e8eaed;
|
|
}
|
|
|
|
[data-theme="dark"] .modalFooter {
|
|
border-top-color: #5f6368;
|
|
}
|