pxt-core
Version:
Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors
364 lines (285 loc) • 7.98 kB
text/less
/* Import all components */
@import 'themes/default/globals/site.variables';
@import 'themes/pxt/globals/site.variables';
@import 'fieldeditors';
@import 'spriteeditor.less';
@import 'melodyeditor.less';
/*******************************
Blockly SVG
*******************************/
svg.blocklySvg {
background-color: @blocklySvgColor ;
}
#maineditor, #blocksEditor > div.loading {
background: @blocklySvgColor;
}
.blocksAndErrorList {
display: flex;
flex-direction: column;
height: 100%;
}
.blocksEditorOuter {
position: relative;
display: inline-block;
overflow: hidden;
height: 100%;
}
#blocksEditor {
position: absolute;
width: 100%;
height: 100%;
.injectionDiv svg {
overflow: visible;
}
> div.loading {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
z-index: 1;
opacity: 0.7;
}
}
.blocklyMainBackground {
stroke: none ;
}
.rtl text.blocklyText {
text-align: right;
}
body.blocklyMinimalBody {
min-width: initial;
overflow: initial;
}
@supports (-ms-accelerator:true) {
.rtl .blocklyPreview {
right: 50%;
left: auto;
}
}
/*******************************
Blockly Text
*******************************/
.pxt-renderer.classic-theme {
text.blocklyFlyoutLabelText, .blocklyFlyoutButton text.blocklyText {
font-family: @pageFont ;
}
text.blocklyText.blocklyBoldText {
font-weight: bold;
}
text.blocklyText.blocklyItalicizedText {
font-style: italic;
}
text.blocklyText.blocklyBoldItalicizedText {
font-weight: bold;
font-style: italic;
}
text.blocklyText.blocklyBubbleText {
fill: #fff;
}
.blocklyEditableText>text.semanticIcon, .blocklyNonEditableText>text.semanticIcon {
fill: #fff;
font-family: "Icons";
font-size: 19px;
}
.blocklyEditableText>text.semanticIcon.inverted {
fill: #000;
}
}
/* Used by custom field in grey expression blocks */
.blocklyGreyExpressionBlockText {
color: white;
}
/*******************************
Blockly Toolbox
*******************************/
.blocklyTreeIcon {
visibility: visible;
}
i.icon.blocklyTreeButton {
float: right;
line-height: 40px;
color: grey;
opacity: 0;
transition-property: opacity;
transition-duration: .5s;
}
.blocklyTreeRow:hover i.icon.blocklyTreeButton {
opacity: 1;
}
/*******************************
Blockly Flyout
*******************************/
.blocklyFlyoutButton {
fill: transparent ;
}
.blocklyFlyoutButton:hover {
fill: @blocklyFlyoutButtonColor ;
}
.blocklyFlyoutButtonBackground {
stroke: @blocklyFlyoutButtonColor ;
stroke-width: 3px ;
}
.blocklyFlyoutButton .blocklyText {
fill: white ;
}
.blocklyFlyoutButtonShadow {
fill: none ;
}
.blocklyFlyoutLabelText {
fill: @flyoutLabelColor ;
font-size: 1rem;
}
.blocklyFlyoutHeading .blocklyFlyoutLabelText {
fill: @flyoutLabelColor ;
font-size: 1.5rem;
}
.blocklyFlyoutLabelText:hover {
fill: @flyoutLabelColor ;
}
.blocklyFlyoutLabelIcon {
font-family: 'Icons';
font-size: 1.5rem;
}
line.blocklyFlyoutLine {
stroke: @flyoutLabelColor;
}
/* Opacity of blockly flyout background */
path.blocklyFlyoutBackground {
fill: @blocklyFlyoutColor ;
fill-opacity: @blocklyFlyoutColorOpacity ;
}
/*******************************
Field divs
*******************************/
div.blocklyWidgetDiv {
position: fixed;
/* Lower Z index for BlocklyWidgetDiv and grid picker tooltips */
z-index: @blocklyWidgetDivZIndex;
}
div.blocklyWidgetDiv.functioneditor {
/* The Blockly widget should appear above the function editor */
z-index: @blocklyWidgetDivFunctionEditorZIndex;
}
div.blocklyDropDownDiv {
z-index: @blocklyDropdownDivZIndex;
overflow: hidden;
}
div.blocklyTooltipDiv {
border: none ;
box-shadow: none ;
background-color: transparent ;
opacity: 1 ;
/* wrap the JS text inside a blockly Tooltip */
overflow-wrap: break-word;
}
div.blocklyTooltipDiv .ui.card .content .description {
/* override semantic, tooltip text should always be visible*/
display: inline;
}
/* Blockly Slider field */
.blocklyWidgetDiv .goog-slider-horizontal {
background: white;
border: 2px solid black;
border-radius: 5px;
}
/* (microbit only) This is to ensure the leds inside showLeds fill the entire checkbox */
text.blocklyCheckbox {
fill: #ff3030 ;
text-shadow: 0px 0px 6px #f00;
font-size: 17pt ;
}
/* (arcade only) Sets the correct background color for the sprite image field */
.pxt-renderer.classic-theme {
.blocklyNonEditableText > rect.blocklySpriteField,
.blocklyNonEditableText > rect.blocklyAnimationField,
.blocklyNonEditableText > rect.blocklyTilemapField,
.blocklyEditableText > rect.blocklySpriteField,
.blocklyEditableText > rect.blocklyAnimationField,
.blocklyEditableText > rect.blocklyTilemapField {
fill: #dedede;
stroke: #898989;
stroke-width: 1;
}
}
/*******************************
Blocks
*******************************/
/* Transulcent blocks when dragging */
.blocklyDragging>.blocklyPath {
fill-opacity: 0.7;
}
/* Fade out disabled blocks, but don't completely lose the colour */
.blocklyDisabled > .blocklyPathDark {
display: block ;
fill-opacity: 0.5;
}
.blocklyDisabled {
.blocklyNonEditableText .blocklyBlockBackground {
fill-opacity: 0.1 ;
}
}
/*******************************
Scrollbars
*******************************/
.blocklyScrollbarBackground {
fill: @blocklyScrollbarBackgroundColor;
}
.blocklyScrollbarHandle {
fill: @blocklyScrollbarColor;
opacity: @blocklyScrollbarOpacity;
}
.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle, .blocklyScrollbarHandle:hover, .blocklyScrollbarBackground:active+.blocklyScrollbarHandle, .blocklyScrollbarHandle:active {
stroke-width: 3;
stroke: @blocklyScrollbarColor;
}
/*******************************
Context menu
*******************************/
.blocklyWidgetDiv .blocklyContextMenu {
border: 1px solid rgba(34,36,38,.15);
box-shadow: 0 1px 2px 0 rgba(34,36,38,.15) ;
padding: 0 ;
}
.blocklyWidgetDiv .blocklyContextMenu .goog-menuitem {
margin: 0 ;
padding: .92857143em 1.14285714em ;
font: normal 13px @pageFont ;
}
.blocklyWidgetDiv .blocklyContextMenu .goog-menuitem-highlight, .blocklyWidgetDiv .blocklyContextMenu .goog-menuitem-hover {
border: none ;
padding: .92857143em 1.14285714em ;
background: rgba(0,0,0,.05) ;
}
/*******************************
Comments
*******************************/
.blocklyCommentForeignObject {
overflow: hidden;
}
.blocklyMinimalBody {
position: static; // override default 'position: fixed' for comment <body> element
border: 1px solid #FAF6BD; // match comment color
}
/*******************************
Workspace Search
*******************************/
.blockly-ws-searching {
path.blocklyPath:not(.blockly-ws-search-highlight-pxt) {
opacity: 0.6;
}
path.blocklyPath.blockly-ws-search-highlight-pxt.blockly-ws-search-current {
stroke: #FFF200;
stroke-width: 4px;
transition: none;
}
}
/*******************************
Media Adjustments
*******************************/
/* Mobile */
@media only screen and (max-width: @largestMobileScreen) {
text.blocklyCheckbox {
font-size: 17pt ;
}
}