funkwhale/front/src/components/ui/modal.scss

150 lines
2.8 KiB
SCSS

.funkwhale.modal {
background: var(--background-color);
box-shadow: 0 2px 4px 2px rgba(#000, 0.2);
border-radius: 1rem;
max-width: min(90vw, 55rem);
width: 100%;
display: grid;
max-height: 90vh;
grid-template-rows: auto 1fr auto;
position: relative;
&.is-destructive {
border-top: 24px solid var(--fw-red-400);
> h2 {
&.destructive-header {
color: var(--fw-red-400);
}
}
}
> h2 {
font-size: 1.25em;
padding: 1.625rem 4.5rem;
line-height: 1.2;
text-align: center;
position: relative;
> .funkwhale.button {
font-size: 1rem;
position: absolute;
right: 1rem;
top: 50%;
transform: translateY(-49%);
}
}
.modal-content {
padding: 1rem 2rem 3rem 2rem;
overflow: auto;
position: relative;
> .alert-container {
position: sticky;
top: -1rem;
margin: -1rem -2rem 1rem;
display: grid;
grid-template-rows: 1fr;
&.v-enter-active,
&.v-leave-active {
transition: grid-template-rows 0.2s ease;
}
&.v-enter-from,
&.v-leave-to {
grid-template-rows: 0fr;
}
> div {
overflow: hidden;
}
}
}
.modal-shadow-top {
z-index: 2;
height: 16px;
width: 100%;
position: absolute;
top: 60px;
background:linear-gradient(var(--background-color), color-mix(in oklab, var(--background-color) 50%, transparent), color-mix(in oklab, var(--background-color) 20%, transparent), transparent);
}
.modal-shadow-bottom {
height: 32px;
margin-top: -32px;
position: sticky;
bottom: 0px;
background:linear-gradient(transparent, color-mix(in oklab, var(--background-color) 20%, transparent), color-mix(in oklab, var(--background-color) 50%, transparent), var(--background-color));
&:last-child{
border-bottom-right-radius: 1rem;
border-bottom-left-radius: 1rem;
}
}
.modal-actions {
padding: 0 2rem 1rem 2rem;
display: flex;
justify-content: space-between;
align-items: flex-start;
> :first-child {
margin-left: 0px !important;
}
> :last-child {
margin-right: 0px !important;
}
position: relative;
}
}
.funkwhale.overlay:has(.over-popover) {
// override z-index
z-index: 999999;
}
.funkwhale.overlay {
background: rgba(#000, .2);
position: fixed;
inset: 0;
z-index: 9001;
display: flex;
align-items: center;
justify-content: center;
&.v-enter-active,
&.v-leave-active {
transition: opacity 0.2s ease;
.funkwhale.modal {
transition: transform 0.2s ease;
}
}
&.v-enter-from,
&.v-leave-to {
opacity: 0;
.funkwhale.modal {
transform: translateY(1rem);
}
}
&.v-leave-to {
.funkwhale.modal {
transform: translateY(-1rem);
}
}
}