.viewport { position: relative; overflow: visible; } .staticGrid, .editorGrid { position: relative; overflow: visible; } .editorGrid { position: absolute; inset: 0 auto auto 0; } .editorGrid:not(:global(.grid-stack-editing)) { visibility: hidden; } .staticItem { overflow: visible; transition: left 220ms ease, top 220ms ease, width 220ms ease, height 220ms ease; } .editorEntry { position: relative; width: 100%; height: 100%; overflow: visible; cursor: grab; user-select: none; } .editorEntry:active { cursor: grabbing; } .editorEntry:focus-visible, .editorEntry[data-keyboard-editing="true"] { outline: 2px solid var(--mantine-primary-color-filled); outline-offset: 2px; border-radius: var(--mantine-radius-md); } .dragAffordance { position: absolute; top: 6px; left: 50%; z-index: 7; display: grid; width: 28px; height: 18px; color: var(--mantine-color-dimmed); pointer-events: none; place-items: center; background-color: color-mix(in srgb, var(--mantine-color-body) 88%, transparent); border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-xl); opacity: 0.8; transform: translateX(-50%); transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, opacity 160ms ease; } .dragAffordance::before { width: 12px; height: 8px; content: ""; background-image: radial-gradient(circle, currentColor 1.25px, transparent 1.5px); background-size: 6px 4px; } .editorEntry:hover .dragAffordance, .editorEntry:focus-visible .dragAffordance, .editorEntry[data-keyboard-editing="true"] .dragAffordance { color: var(--mantine-primary-color-filled); background-color: var(--mantine-color-body); border-color: var(--mantine-primary-color-filled); opacity: 1; } .editorLoading { position: absolute; inset: 0; z-index: 20; overflow: hidden; } .editorLoadingItem { background-color: var(--mantine-color-default); border: 1px solid var(--mantine-color-default-border); border-radius: var(--mantine-radius-md); } .liveRegion { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; } @media (prefers-reduced-motion: reduce) { .staticItem, .dragAffordance { transition: none; } }