gmx.css
Version:
A micro Material Design 3 based CSS-only framework.
95 lines (81 loc) • 2.15 kB
CSS
.dialog-trigger+input:not(:checked)+.dialog {
display: none;
}
.dialog-trigger+input:checked+.dialog {
display: block;
}
.dialog-trigger+input:checked::after {
content: '';
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
}
:is(dialog, .dialog) {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
margin: 0;
z-index: 20;
background: var(--m3-scheme-surface-container-high);
border: none;
border-radius: var(--m3-dialog-shape);
min-width: 35rem;
max-width: 35rem;
text-align: center;
padding: 1.45rem 1.5rem;
}
dialog:not(.bottom-sheet)[open],
.dialog-trigger+input:checked+.dialog:not(.bottom-sheet) {
animation: dialog-in .5s cubic-bezier(.05, .7, .1, 1), dialog-opacity .5s cubic-bezier(.05, .7, .1, 1);
}
@keyframes dialog-in {
0% {
transform: translate(-50%, -70%);
clip-path: inset(0 0 100% 0 round var(--m3-util-rounding-extra-large));
}
100% {
transform: translate(-50%, -50%);
clip-path: inset(0 0 0 0 round var(--m3-util-rounding-extra-large));
}
}
@keyframes dialog-opacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
:is(dialog, .dialog).bottom-sheet {
top: 100%;
transform: translate(-50%, -100%);
overflow: hidden;
background: var(--m3-scheme-surface-container-low);
color: var(--m3-scheme-on-surface);
border-radius: var(--m3-bottom-sheet-shape) var(--m3-bottom-sheet-shape) 0 0;
padding: 1rem 1rem;
border: none;
}
dialog[open].bottom-sheet,
.dialog-trigger+input:checked+.dialog.bottom-sheet {
animation: dialog-bottom .5s cubic-bezier(.05, .7, .1, 1);
}
@keyframes dialog-bottom {
0% {
transform: translate(-50%, 50%);
}
100% {
transform: translate(-50%, -100%);
}
}
dialog::backdrop,
.dialog-trigger+input:checked::after {
background: rgb(from var(--m3-scheme-scrim) r g b / 30%);
}
:is(dialog, .dialog) form {
text-align: right;
}