UNPKG

pxt-core

Version:

Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors

523 lines (454 loc) • 13 kB
/******************************* Blockly Toolbox *******************************/ .blocklyToolbox, .monacoToolboxDiv { background: var(--pxt-target-background3) !important; color: var(--pxt-target-foreground3); overflow-x: visible; overflow-y: auto; padding-top: 0; z-index: @blocklyToolboxZIndex; /* so blocks go over toolbox when dragging */ -webkit-tap-highlight-color: transparent; -webkit-transition: width 1s, background 0.3s; /* Safari */ -moz-transition: width 1s, background 0.3s; /* Mozilla */ -webkit-transition-timing-function: ease-in; /* Mozilla */ -o-transition: width 1s, background 0.3s; /* Opera */ transition: width 1s, background 0.3s; transition-timing-function: ease-in; height: 100%; } .blocklyToolbox text, .monacoToolboxDiv text, span.blocklyTreeIcon { user-select: none; -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; cursor: inherit; } .blocklyToolbox.blocklyToolboxDeleting { background: var(--pxt-colors-red-background) !important; filter: brightness(1.2) saturate(0.8); } .monacoToolboxDiv.invisible { display: none !important; } .debugger .blocklyToolbox { width: 20%; } .debugger .blocklyToolbox, .debuggerToolbox { height: 100%; } /******************************* Monaco Flyout Only *******************************/ #root.flyoutOnly { // Hide toolbox categories section & flyout header .monacoToolboxDiv, .monacoFlyoutHeading { display: none; } #monacoEditorInner { display: flex; flex-direction: row; #monacoFlyoutWidget { position: relative; border-radius: 0; border-right: 5px solid var(--pxt-neutral-alpha80); } } } /******************************* Toolbox root *******************************/ div.blocklyTreeRoot { padding: 0; } div.blocklyTreeRoot:focus { outline: none; } /******************************* Toolbox tree row *******************************/ div.blocklyTreeRow { line-height: 22px; margin-bottom: 3px; padding-right: 8px; white-space: nowrap; height: 100%; cursor: pointer; } div.blocklyTreeRow:not(.blocklyTreeSelected):hover { background-color: var(--pxt-target-background3-hover); } div.blocklyTreeSeparator { border-bottom: solid var(--pxt-target-stencil3) 1px; height: 0; margin: 5px 0; } /* This horrendous selector and the next are for subcategories in the Blockly toolbox */ div.blocklyTreeRoot div div div div div.blocklyTreeRow { border-left-width: 12px !important; padding-left: 0px !important; } div.blocklyTreeRoot div div div div div.blocklyTreeRow span.blocklyTreeLabel { font-size: 1rem; } /******************************* Toolbox tree label *******************************/ /* Blockly toolbox font size same as the page font */ span.blocklyTreeLabel { padding: 0 3px; vertical-align: middle; font-family: @pageFont !important; font-weight: 200; font-size: 1.15rem; cursor: pointer; } span.blocklyTreeLabel, text.blocklyText { user-drag: none; user-select: none; -moz-user-select: none; -webkit-user-drag: none; -webkit-user-select: none; -ms-user-select: none; } /******************************* Toolbox selected *******************************/ .blocklyTreeSelected .blocklyTreeLabel { // Has to contrast with block colors color: var(--pxt-target-background3); } .blocklyTreeSelected .blocklyTreeIcon { // Has to contrast with block colors color: var(--pxt-target-background3); } .blocklyTreeSelected .blocklyTreeIcon.image-icon { // Has to contrast with block colors background-color: var(--pxt-target-background3); } /******************************* Toolbox Label *******************************/ .toolbox-title { font-weight: 700; font-size: 1.2rem; padding: .5rem 1rem; border-bottom: var(--pxt-target-stencil3); user-select: none; } @media only screen and (max-width: @largestMobileScreen) { .toolbox-title { font-size: .75rem; padding: 0 0.2rem; } } /******************************* Toolbox search *******************************/ /* Blockly Search bar */ .blocklySearchInputField { border: 0 !important; border-radius: 0 !important; } @media only screen and (max-width: @largestMobileScreen) { .blocklySearchInputField { font-size: .75rem; } } /******************************* Toolbox delete *******************************/ /* The trash icon inside the toolbox */ #blocklyTrashIcon { position: absolute; top: 30%; left: 0; text-align: center; width: 100px; height: 80px; z-index: @blocklyTrashIconZIndex; font-size:5rem; color: var(--pxt-primary-background); } .flyoutOnly #blocklyTrashIcon { top: auto; bottom: 5%; left: 10rem; } .blocklyToolboxDelete .blocklyTreeLabel { cursor: url("<<<PATH>>>/handdelete.cur") auto; } /******************************* Toolbox tree icon *******************************/ /* Blockly toolbox icons */ span.blocklyTreeIcon { opacity: 1; margin: 0.0em 0.25em 0.0em 0.25em; width: 30px; font-family: 'Icons'; font-style: normal; font-weight: normal; text-decoration: inherit; text-align: center; speak: none; font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; backface-visibility: hidden; font-size: 1.3rem; height: 100%; display: none; vertical-align: middle; &:not(.image-icon) { background: none !important; } } .blocklyTreeIcon.brandIcon { font-family: 'brand-icons'; } div.blocklyTreeIcon span { vertical-align: middle; } .blocklyTreeIcon.blocklyTreeIconfunctions { font-family: xicon !important; } .blocklyFlyoutLabelIcon.blocklyFlyoutIconfunctions { font-family: xicon !important; } .blocklyFlyoutLabelIcon.brandIcon { font-family: 'brand-icons'; } .blocklyTreeIcon.image-icon { background-color: var(--block-meta-color); mask-image: var(--image-icon-url); width: 30px; height: 100%; mask-size: 20px !important; mask-repeat: no-repeat !important; mask-position: 50% 50% !important; } #search { .blocklyTreeRow { border-left-color: var(--pxt-target-foreground3); &:not(.blocklyTreeSelected) .blocklyTreeIcon { color: var(--pxt-target-foreground3); } } } /******************************* Toolbox Animation *******************************/ #monacoEditorToolbox { .blocklyTreeRoot > div > div > .blocklyTreeAnimate { animation: gliss 0.6s ease-in-out; } } @keyframes gliss { 50% { border-left-width: 1.5rem; } } @keyframes glisssmall { 0% { width: 50px; } 50% { border-left-width: 1rem; } 100% { width: 50px; } } /******************************* Blockly Accessibility *******************************/ .blocklyTreeRow:focus { outline: none; } .blocklyTreeRow:not(.blocklyTreeSelected):focus { background-color: var(--pxt-target-background3-hover); } .blocklyToolbox .blocklyTreeRoot [role="treeitem"]:focus-visible { outline: none; } /******************************* Inverted Toolbox *******************************/ #root.hc .invertedToolbox { div.blocklyTreeRow { background-color: var(--pxt-primary-background); color: var(--pxt-primary-foreground); } div.blocklyTreeRow .blocklyTreeIcon:not(.blocklyTreeIconsearch) { color: var(--block-meta-color); } div.blocklyTreeRow.blocklyTreeSelected { background-color: var(--block-meta-color); color: var(--pxt-primary-foreground); .blocklyTreeIcon, .blocklyTreeLabel { color: var(--pxt-primary-foreground); } } } .invertedToolbox .blocklyTreeRoot { div.blocklyTreeRow { background-color: var(--block-meta-color); color: var(--pxt-primary-foreground); } div.blocklyTreeRow.blocklyTreeSelected { background-color: var(--block-meta-color); } div.blocklyTreeRow:hover { background-color: var(--block-faded-color); color: var(--pxt-primary-foreground); } #search { .blocklyTreeRow { border-left-color: var(--pxt-primary-foreground); } .blocklyTreeIcon { color: var(--pxt-primary-foreground); } } } /******************************* Colored Toolbox *******************************/ .coloredToolbox .blocklyTreeRoot { div.blocklyTreeRow { color: var(--block-meta-color); border-left: 8px solid var(--block-meta-color); } div.blocklyTreeRow.blocklyTreeSelected { background-color: var(--block-meta-color); color: var(--pxt-primary-foreground); } } /******************************* Media Adjustments *******************************/ /* Large Monitor */ @media only screen and (min-width: @largeMonitorBreakpoint) { /* Blockly */ div.blocklyToolbox, div.monacoToolboxDiv { min-width: @blocklyRowWidthWide; } div.blocklyTreeRow { min-height: @blocklyRowHeightWide; } span.blocklyTreeIcon { line-height: @blocklyRowHeightWide; min-height: @blocklyRowHeightWide; } #root:not(.flyoutOnly) #blocklyTrashIcon { width: @blocklyRowWidthWide; } } /* Small Monitor */ @media only screen and (min-width: @computerBreakpoint) and (max-width: @largestSmallMonitor) { /* Blockly row */ div.blocklyToolbox, div.monacoToolboxDiv { min-width: @blocklyRowWidthComputer; } div.blocklyTreeRow { min-height: @blocklyRowHeightComputer; } span.blocklyTreeIcon { line-height: @blocklyRowHeightComputer; min-height: @blocklyRowHeightComputer; } #root:not(.flyoutOnly) #blocklyTrashIcon { width: @blocklyRowWidthComputer; } } /* Tablet */ @media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) { /* Blockly */ div.blocklyToolbox, div.monacoToolboxDiv { min-width: @blocklyRowWidthTablet; } div.blocklyTreeRow { min-height: @blocklyRowHeightTablet; border-left-width: 12px !important; } span.blocklyTreeIcon { line-height: @blocklyRowHeightTablet; min-height: @blocklyRowHeightTablet; } #root:not(.flyoutOnly) #blocklyTrashIcon { width: @blocklyRowWidthTablet; } div.blocklyTreeRoot div div div div div.blocklyTreeRow { border-left-width: 18px !important; } } /* Mobile */ @media only screen and (max-width: @largestMobileScreen) { div.blocklyToolbox, div.monacoToolboxDiv { min-width: @blocklyRowWidthMobile; } div.blocklyTreeRow { min-height: @blocklyRowHeightMobile; border-left-width: 6px !important; } span.blocklyTreeIcon { line-height: @blocklyRowHeightMobile; min-height: @blocklyRowHeightMobile; } #root:not(.flyoutOnly) #blocklyTrashIcon { width: @blocklyRowWidthMobile; } #monacoEditorToolbox { .blocklyTreeRoot > div > div > .blocklyTreeAnimate { animation: glisssmall 0.6s ease-in-out; } } } /* >= Small Monitor (Small Monitor + Large Monitor + Wide Monitor) */ @media only screen and (min-width: @computerBreakpoint) { /* Blockly */ div.blocklyTreeRow { border-left-width: 12px !important; } div.blocklyTreeRoot div div:not(#advanced) div div div.blocklyTreeRow { border-left-width: 18px !important; } } /* <= Small Monitor (Mobile + Tablet + Small Monitor) */ @media only screen and (max-width: @largestSmallMonitor) { /* Blockly */ span.blocklyTreeLabel { font-size:1rem; } } /* <= Tablet (Mobile + Tablet) */ @media only screen and (max-width: @largestTabletScreen) { /* Blockly */ span.blocklyTreeLabel { font-size:1rem; } } /* Mobile */ @media only screen and (max-width: @largestMobileScreen) { /* Hide blockly tree labels on mobile */ span.blocklyTreeLabel, div.blocklyTreeRow:hover span.blocklyTreeLabel, div.blocklyTreeRow.blocklyTreeSelected:hover span.blocklyTreeLabel { display: none !important; } div.blocklyTreeRow { padding-right: 0; text-align: center; } div.blocklyTreeRoot div div div div div.blocklyTreeRow { border-left-width: 8px !important; } /* Blockly trash icon */ #root:not(.flyoutOnly) #blocklyTrashIcon { font-size: 3rem; } /* Hide the blockly toolbox search */ .blocklySearchInput.ui.icon.input { input { padding-right: 0 !important; padding-left: 0.2rem; } i.icon { display: none; } } }