#ide-root { height: 100vh; /* for backwards compatibility */ height: 100dvh; /* needed for mobile devices */ .global-alerts { position: absolute; top: 0; left: 0; right: 0; display: flex; flex-direction: column; align-items: center; } .chat { position: relative; height: 100%; } .review-panel-wrapper { &.rp-state-overview { position: sticky; top: 0; height: 100%; } } } .global-alerts { height: 0; margin-top: var(--spacing-01); text-align: center; [role='alert'] { text-align: left; min-width: 400px; position: relative; z-index: 20; } } .ide-react-editor-sidebar { background-color: var(--file-tree-bg); height: 100%; color: var(--content-secondary-dark); } .ide-react-body { flex-grow: 1; background-color: var(--bg-light-secondary); overflow-y: hidden; z-index: 0; } .ide-react-main { height: 100%; display: flex; flex-direction: column; .toolbar.toolbar-header { position: static; flex-grow: 0; color: var(--neutral-20); } } .ide-react-symbol-palette { height: 100%; background-color: var(--bg-dark-tertiary); color: var(--neutral-20); } .ide-react-editor-panel { display: flex; flex-direction: column; } // Ensure an element with class "full-size", such as the binary file view, stays within the bounds of the panel .ide-react-panel { position: relative; container-type: size; } .ide-panel-group-resizing { background-color: var(--white); // Hide panel contents while resizing .ide-react-editor-content, .pdf { display: none !important; } } .modal.lock-editor-modal { display: flex !important; background-color: rgba($bg-dark-primary, 0.3); overflow-y: hidden; pointer-events: none; .modal-dialog { top: 25px; } } .out-of-sync-modal { .text-preview { margin-top: var(--spacing-05); .scroll-container { @include body-sm; max-height: 360px; width: 100%; background-color: var(--bg-light-primary); overflow: auto; border: 1px solid var(--border-primary-dark); padding: var(--spacing-04) var(--spacing-05); text-align: left; white-space: pre; font-family: monospace; } } } .horizontal-resize-handle { width: 7px !important; height: 100%; // Enable ::before and ::after pseudo-elements to position themselves correctly position: relative; background-color: var(--bg-dark-secondary); .custom-toggler { padding: 0; border-width: 0; } &.horizontal-resize-handle-enabled { &::before, &::after { // This SVG has the colour hard-coded to the current value of @ol-blue-gray-2, so if we changed @ol-blue-gray-2, // we'd have to change this SVG too content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='18' viewBox='0 0 7 18'%3E%3Cpath d='M2 0h3v3H2zM2 5h3v3H2zM2 10h3v3H2zM2 15h3v3H2z' style='fill:%239da7b7'/%3E%3C/svg%3E"); display: block; position: absolute; text-align: center; left: 0; width: 7px; height: 18px; } &::before { top: 25%; } &::after { top: 75%; } } &:not(.horizontal-resize-handle-enabled) { cursor: default; } .synctex-controls { left: -8px; margin: 0; // Ensure that SyncTex controls appear in front of PDF viewer controls and logs pane z-index: 12; } } .vertical-resize-handle { height: 6px; background-color: var(--bg-dark-secondary); &.vertical-resize-handle-enabled { &:hover { background-color: var(--bg-dark-primary); } } &:not(.vertical-resize-handle-enabled) { opacity: 0.5; cursor: default; } &::after { // This SVG has the colour hard-coded to the current value of @ol-blue-gray-2, so if we changed @ol-blue-gray-2, // we'd have to change this SVG too content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='6' viewBox='0 0 18 6'%3E%3Cpath d='M0 1.5h3v3H0zM5 1.5h3v3H5zM10 1.5h3v3h-3zM15 1.5h3v3h-3z' style='fill:%239da7b7'/%3E%3C/svg%3E"); display: block; text-align: center; line-height: 0; } } .vertical-resizable-resizer { background-color: var(--bg-dark-secondary); &:hover { background-color: var(--bg-dark-primary); } &::after { @include heading-sm; content: '\00b7\00b7\00b7\00b7'; display: block; color: var(--content-disabled); text-align: center; pointer-events: none; } } .vertical-resizable-resizer-disabled { pointer-events: none; opacity: 0.5; &::after { opacity: 0.5; } } .full-size { position: absolute; inset: 0; } .teaser-title { margin-top: 0; text-align: center; } .teaser-refresh-label { text-align: center; } .teaser-img { display: block; max-width: 100%; height: auto; margin-bottom: var(--spacing-03); } .teaser-video-container { margin: calc(var(--spacing-07) * -1) calc(var(--spacing-07) * -1) var(--spacing-02) calc(var(--spacing-07) * -1); overflow: hidden; } .teaser-video { width: 100%; height: auto; border-bottom: 1px solid var(--border-divider); }