.overlay { --sidepeek-desktop-width: 560px; position: fixed; inset: 0; z-index: var(--sidepeek-z-index); background-color: var(--UI-Opacity-Almost-Black-30); } .modal { position: fixed; top: 0; right: auto; bottom: 0; width: 100%; height: 100vh; background-color: var(--Background-Primary); &[data-entering] { animation: slide-in 250ms; } &[data-exiting] { animation: slide-in 250ms reverse; } } .dialog { height: 100%; outline: none; overflow: auto; --sidepeek-header-height: auto; } .aside { position: relative; display: grid; grid-template-rows: min-content auto; min-height: 100dvh; } .header { position: sticky; top: 0; z-index: 2; background-color: var(--Background-Primary); } .headerContent { display: flex; justify-content: flex-end; border-bottom: 1px solid var(--Base-Border-Subtle); align-items: flex-start; padding: var(--Space-x4); &:has(.heading) { justify-content: space-between; } } .heading { color: var(--Text-Heading); text-wrap: balance; hyphens: auto; } .sidePeekContent { padding: var(--Space-x4); } @media screen and (min-width: 1367px) { .modal { right: 0; width: var(--sidepeek-desktop-width); } } @keyframes slide-in { from { right: calc(-1 * var(--sidepeek-desktop-width)); } to { right: 0; } }