pxt-core
Version:
Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors
440 lines (380 loc) • 11.4 kB
text/less
/* Import all components */
@import 'themes/default/globals/site.variables';
@import 'themes/pxt/globals/site.variables';
@import 'spriteeditor.less';
@import 'melodyeditor.less';
/* Reference import */
@import (reference) "semantic.less";
/*******************************
Monaco Area Layout
*******************************/
.monacoEditorArea {
display: flex;
flex-direction: row;
width: 100%;
height: 100%;
}
.monacoToolboxDiv {
height: 100%;
}
.monacoEditorRightArea {
display: flex;
flex-direction: column;
height: 100%;
}
/*******************************
Monaco Editor
*******************************/
.monaco-editor {
background-color: var(--pxt-target-background1) ;
color: var(--pxt-target-foreground1) ;
.monaco-editor-background, .margin {
background-color: var(--pxt-target-background1) ;
color: var(--pxt-target-foreground1) ;
}
}
.monaco-editor .monaco-scrollable-element.editor-scrollable {
margin-left: .5rem;
}
/* Monaco Editor Line number colors, changed from the default light theme */
.monaco-editor.vs .line-numbers {
color: var(--pxt-target-foreground1) ;
}
/* Monaco Editor Line number background, changed from the default light theme */
.monaco-editor.vs .margin-view-overlays.monaco-editor-background {
background: var(--pxt-neutral-alpha10) ;
}
/* Monaco Editor Current line highlighting, only needed for the light theme */
.monaco-editor.vs .current-line {
background: var(--pxt-colors-blue-alpha10) ;
}
/* Monaco Editor Suggest Widget, styling */
.monaco-editor .suggest-widget {
border-radius:5px;
z-index: @monacoSuggestZIndex ;
}
.monaco-list-row.focused {
background-color: var(--pxt-colors-blue-background) ;
color: var(--pxt-colors-blue-foreground) ;
a {
color: var(--pxt-colors-blue-foreground) ;
}
}
.monaco-editor.vs .suggest-widget:not(.frozen) .monaco-list .monaco-list-row .monaco-highlighted-label .highlight {
color: var(--pxt-colors-blue-background) ;
}
.monaco-editor.vs .suggest-widget:not(.frozen) .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight {
color: var(--pxt-colors-blue-foreground) ;
}
.monaco-editor.vs .suggest-widget .details > .monaco-scrollable-element > .body > .type, .monaco-editor .suggest-widget .monaco-list .monaco-list-row .type-label {
color: var(--pxt-colors-orange-background) ;
}
/* Monaco Editor Rename Widget: default positioning causes scroll with transparent editor toolbar, so we reposition */
.monaco-editor .rename-box {
bottom: 3rem;
}
/* The view lines in the monaco editor sometimes ignore the editor width and cause a scrollbar to appear */
.monaco-editor.vs {
overflow: hidden;
}
/* Monaco Editor Main tokens */
.monaco-editor .highlight-statement {
background-color: var(--pxt-target-background1-hover);
color: var(--pxt-target-foreground1-hover) ;
}
/* Monaco Toolbox */
.monacoToolboxDiv {
z-index: @blocklyToolboxZIndex;
}
// Hover elements
.monaco-editor-hover {
z-index: @menuBarZIndex+1 ;
}
/*
* Monaco drops this in the bottom right by default,
* but we end up using that position for simulator / toolbar depending on view.
*/
.monaco-editor .iPadShowKeyboard {
top: 0 ;
}
@keyframes bobbing {
0% {
transform: translateY(0px);
}
25% {
transform: translateY(3px);
}
75% {
transform: translateY(-3px);
}
100% {
transform: translateY(0px);
}
}
.pxt-monaco-glyph-highlight {
animation: bobbing 1s linear infinite;
}
/*******************************
Monaco Flyout
*******************************/
.monacoFlyout {
font-family: Consolas, Monaco, Menlo, "Ubuntu Mono", source-code-pro, monospace;
background: var(--pxt-neutral-background3);
color: var(--pxt-neutral-foreground3);
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
z-index: @monacoFlyoutZIndex;
position: absolute;
top: 0px;
bottom: 0px;
.monacoFlyoutLabel {
vertical-align: middle;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
color: var(--pxt-neutral-foreground3);
font-size: 15px;
&:focus-visible {
border-color: var(--pxt-neutral-stencil3);
border-width: 4px 0px 4px 4px;
border-style: solid;
outline: none;
}
.monacoFlyoutHeadingIcon {
display: inline-block;
}
.monacoFlyoutLabelText {
display: inline-block;
font-size: 1.5rem;
line-height: 1.5rem;
font-family: @pageFont;
vertical-align: middle;
}
}
.monacoBlock {
color: var(--pxt-neutral-foreground3);
border-bottom: 1px solid var(--pxt-neutral-stencil3);
.monacoDraggableBlock {
width: 100%;
margin-bottom: 0.75rem;
border-radius: 0.25rem;
color: var(--pxt-neutral-foreground3);
padding: .25rem 0.75rem;
cursor: pointer;
display: inline-block;
-moz-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
user-select: none;
position: relative;
font-family: Consolas, Monaco, Menlo, "Ubuntu Mono", source-code-pro, monospace;
span {
word-wrap: break-word;
}
span.sig {
opacity: 0.6;
margin-left: 10px;
}
span.sigPrefix {
opacity: 0.6;
}
span.docs {
display: block; /* enable as needed */
color: var(--pxt-neutral-foreground3);
font-size: 70%;
max-width: 22rem;
}
}
.separator {
border-top: 1px solid;
margin: 0.25rem 0;
}
.monacoDraggableBlock {
font-family: @pageFont;
width: auto;
}
.description {
font-family: @pageFont;
}
.signature {
margin-top: 0.5rem;
font-weight: 600;
span {
display: inline-block;
width: calc(~'100% - 1.75rem');
word-wrap: break-word;
}
.blockHelp {
float: right;
color: var(--pxt-neutral-foreground3);
i {
font-size: 1.25rem;
}
}
.blockHelp:hover {
text-decoration: none;
}
}
.argName {
font-family: Consolas, Monaco, Menlo, "Ubuntu Mono", source-code-pro, monospace;
font-weight: 600;
background: var(--pxt-neutral-alpha20);
color: var(--pxt-neutral-foreground3);
padding: 0 .5rem;
display: inline-block;
border-radius: 0.8rem;
line-height: 1.75rem;
}
.paramName {
font-weight: 800;
}
.paramDescription:before {
content: '-';
margin: 0.5rem;
font-family: @pageFont;
}
.paramDescription {
font-family: @pageFont;
}
.detail .params,
.signature {
display: none;
}
&.expand {
color: var(--pxt-neutral-foreground3);
border-color: var(--pxt-neutral-stencil3);
border-width: 4px 0px 4px 4px;
border-style: solid;
cursor: grab;
outline: none;
.blockHandle,
.detail .params,
.signature {
display: block;
}
.blockHandle {
border-color: var(--pxt-neutral-foreground3);
border-width: 4px 4px 4px 0px;
border-style: solid;
}
}
&.hover {
cursor: grab;
.blockHandle {
display: block;
}
}
.blockHandle {
display: none;
position: absolute;
width: 2rem;
right: -0.9rem;
border-radius: 0 1rem 1rem 0;
background: var(--pxt-neutral-background3-alpha90);
color: var(--pxt-neutral-foreground3);
i.bars {
display: block;
position: relative;
top: calc(~'50% - 0.75rem');
transform: rotate(90deg);
font-size: 1.5rem;
}
}
}
.monacoBlock:not(.expand) {
background-color: transparent;
}
}
#monacoFlyoutWrapper {
overflow-x: visible;
overflow-y: auto;
height: 100%;
-webkit-overflow-scrolling: touch;
& > div {
padding: 1rem;
max-width: 350px;
}
}
.monacoFlyoutHeading .monacoFlyoutHeadingText {
color: var(--pxt-neutral-foreground3);
vertical-align: middle ;
}
.monacoFlyoutHeadingText {
font-family: @pageFont;
}
.monacoFlyoutHeadingIcon {
font-size: 1.5rem ;
vertical-align: middle ;
}
.monacoFlyoutLabelLine {
border: none;
border-top: 1px dotted var(--pxt-neutral-stencil3);
height:1px;
}
#monacoDraggingBlock {
position: absolute;
padding: 0.6rem;
color: var(--pxt-neutral-foreground3);
border-radius: 0.25rem;
pointer-events: none;
touch-action: none;
font-family: Consolas, Monaco, Menlo, "Ubuntu Mono", source-code-pro, monospace;
white-space: nowrap;
}
/* Limit color interferences with semantic anchor element */
.monaco-action-bar .action-label {
color: inherit ;
}
/*******************************
(Do not override)
*******************************/
/* Monaco Editor Errors */
.monaco-editor .error-view-zone {
font-family: Consolas, Monaco, Menlo, "Ubuntu Mono", source-code-pro, monospace;
width: initial ;
}
.monaco-editor.vs-dark .error-view-zone {
color: var(--pxt-neutral-foreground3);
}
.monaco-editor .error-view-zone .marker-widget {
border-radius: 2px ;
padding-left: 10px ;
padding-right: 20px ;
}
/* Fix for monaco editor Signature bug in Safari */
.monaco-editor .parameter-hints-widget {
flex-direction: row ;
z-index: @monacoHintsZIndex ;
}
.line-numbers {
display:none;
}
.monacoToolboxDiv {
display: inline-block;
overflow-x: visible;
overflow-y: auto;
vertical-align: top;
}
.monacoToolboxDiv.hide {
display: none;
}
#monacoEditorInner {
position: relative ;
display: inline-block;
overflow: hidden;
}
/*******************************
Monaco Accessibility
*******************************/
.monacoDraggableBlock:focus {
outline: none; /* We highlight the focused item in the toolbox, no need to outline */
}
.monaco-field-editor-frame {
padding: 4px;
position: relative;
}
.pxt-view-zone {
width: 100%;
z-index: calc(@monacoFlyoutZIndex - 1);
}