@import "../../css/units.css"; @import "../../css/colors.css"; .page-wrapper { height: 100%; } .body-wrapper { height: calc(100% - $menu-bar-height); background-color: $ui-background-blue; } .flex-wrapper { display: flex; /* Make 2 columns: a) for the blocks + workspace panes, and b) for combined stage menu + stage + sprite/stage selectors */ flex-direction: row; height: 100%; /* Stop scrollbar popping in and out from scratch-blocks border issue https://github.com/LLK/scratch-gui/issues/318 */ overflow-y: hidden; } .editor-wrapper { flex-basis: 600px; flex-grow: 1; flex-shrink: 0; position: relative; display: flex; flex-direction: column; } .tab-list { height: $stage-menu-height; width: 250px; /* Match width of the toolbox */ display: flex; align-items: flex-end; flex-shrink: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 500; font-size: 0.80rem; /* Overrides for react-tabs styling */ margin: 0 !important; border-bottom: 0 !important; } .tab { flex-grow: 1; height: 80%; margin-left: -0.5rem; border-radius: 1rem 1rem 0 0; border: $ui-pane-border 1px solid; padding: 0.125rem 1rem 0; font-size: 0.7rem; background-color: #F6F8FA; color: #9AA1B5; display: flex; justify-content: center; align-items: center; user-select: none; } /* Use z-indices to force left-on-top for tabs */ .tab:nth-of-type(1) { margin-left: 0; z-index: 3; } .tab:nth-of-type(2) { z-index: 2; } .tab:nth-of-type(3) { z-index: 1; } .tab.is-selected { color: $motion-primary; background-color: #FFFFFF; z-index: 4; /* Make sure selected is always above */ } .tab img { margin-right: 0.125rem; filter: grayscale(100%); } .tab.is-selected img { filter: none; } /* Tab style overrides from react-tabs */ .tab.is-selected:after { display: none; } .tab.is-selected:focus { outline: none; box-shadow: none; border-color: $ui-pane-border; } .tab.is-selected:focus:after { display: none; } /* Body of the tabs */ .tabs { position: relative; flex-grow: 1; flex-shrink: 0; display: flex; flex-direction: column; } .tab-panel { position: relative; flex-grow: 1; flex-shrink: 0; display: none; } .tab-panel.is-selected { display: flex; } .blocks-wrapper { flex-grow: 1; position: relative; } .stage-and-target-wrapper { /* Makes rows for children: 1) stage menu 2) stage 3) sprite/stage selectors Only reason we need this, is so .targetWrapper, which holds the selectors, goes to full vertical height of the window */ display: flex; flex-direction: column; /* Fix the max width to max stage size (defined in layout_constants.js) + gutter size */ max-width: calc(480px + calc($space * 2)); } .stage-wrapper { padding-left: $space; padding-right: $space; /* Hides negative space between edge of rounded corners + container, when selected */ user-select: none; } .target-wrapper { display: flex; flex-grow: 1; flex-basis: 0; padding-top: $space; padding-left: $space; padding-right: $space; /* For making the sprite-selector a scrollable pane @todo: Not working in Safari */ /* TODO this also breaks the thermometer menu */ /* overflow: hidden; */ } .extension-button-container { width: 3.25rem; height: 3.25rem; position: absolute; bottom: 0; left: 0; z-index: 50; /** Force extension button above the ScratchBlocks flyout. */ background: $motion-primary; border: 1px solid $motion-primary; box-sizing: content-box; /* To match scratch-block vertical toolbox borders */ } $fade-out-distance: 15px; .extension-button-container:before { content: ""; position: absolute; top: calc(calc(-1 * $fade-out-distance) - 1px); left: -1px; background: linear-gradient(rgba(0, 0, 0, 0),rgba(0, 0, 0, 0.15)); height: $fade-out-distance; width: calc(100% + 0.5px); } .extension-button { background: none; border: none; outline: none; width: 100%; height: 100%; cursor: pointer; } .extension-button-icon { width: 1.75rem; height: 1.75rem; } .extension-button > div { margin-top: 0; }