@import '../constants/colors'; @import '../constants/dimensions'; @import '../constants/fonts'; .editor { box-sizing: border-box; height: 100% !important; width: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; grid-template-columns: 100%; .editor__container { height: 100%; width: 100%; position: relative; } .CodeMirror { position: absolute; left: 0; right: 0; top: 0; bottom: 0; } .editor__toolbar { display: flex; flex-direction: row; align-items: center; //justify-content: flex-end; border-top: 1px solid @hl-md; height: @line-height-xs; input { font-family: @font-monospace; margin-right: 0; width: 100%; margin-left: @padding-md; } button { color: @hl; padding: @padding-xs @padding-md; height: 100%; } } .CodeMirror { height: 100% !important; width: 100%; box-sizing: border-box; padding-top: @padding-sm; } .CodeMirror * { font-family: @font-monospace; } .CodeMirror, .cm-s-seti.CodeMirror, // Hack because seti theme is dumb .CodeMirror-gutters, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler { // Let the background behind show through background-color: transparent !important; border: 0; } .CodeMirror-linenumber, .CodeMirror-guttermarker-subtle { color: @hl-xl !important; } .CodeMirror-gutter { background-color: @bg-super-dark; } &.editor--light-theme .CodeMirror-gutter { background-color: @bg-super-light; } .CodeMirror-scroll { cursor: text; // Show text cursor everywhere (not just in .Codemirror-lines) } .CodeMirror-lines { // Scroll past the end padding-bottom: 30px; } .CodeMirror-placeholder { color: @hl-xxl; } .CodeMirror-lint-marker-error { width: 100%; height: 1em; display: flex; background: none; text-align: center; &::after { color: darken(@danger, 10); text-align: center; width: 100%; font-size: 0.7em; // because the circle is so large content: '⬤'; } } &.editor--readonly .CodeMirror-cursors, &.editor--readonly .CodeMirror-activeline-background { opacity: 0; } } // Search dialog (and others) .CodeMirror-dialog { background: @bg-super-dark; } // Tooltip for errors .CodeMirror-lint-tooltip { background-color: @bg-light; color: @font-light-bg; border-radius: 0; font-size: @font-size-md; padding: @padding-xs @padding-sm; z-index: 99999; .CodeMirror-lint-message-error { background-image: none; padding-left: 0; } &::after { display: none; } } /* Based on Sublime Text's Monokai theme */ .editor:not(.editor--light-theme) { .cm-s-default.CodeMirror { color: #f8f8f2; } .cm-s-default div.CodeMirror-selected { //background: #49483E; background: @hl-xl; } .cm-s-default .CodeMirror-line::selection, .cm-s-default .CodeMirror-line > span::selection, .cm-s-default .CodeMirror-line > span > span::selection { //background: rgba(73, 72, 62, .99); } .cm-s-default .CodeMirror-line::-moz-selection, .cm-s-default .CodeMirror-line > span::-moz-selection, .cm-s-default .CodeMirror-line > span > span::-moz-selection { //background: rgba(73, 72, 62, .99); } .cm-s-default .CodeMirror-gutters { //background: #272822; border-right: 0; } .cm-s-default .CodeMirror-guttermarker { color: white; } .cm-s-default .CodeMirror-guttermarker-subtle { color: #d0d0d0; } .cm-s-default .CodeMirror-linenumber { color: #d0d0d0; } .cm-s-default .CodeMirror-cursor { border-left: 1px solid #f8f8f0; } .cm-s-default span.cm-comment, .cm-s-default span.cm-qualifier { color: @hl; } .cm-s-default span.cm-atom { color: lighten(@surprise, 5); } .cm-s-default span.cm-number { color: lighten(@surprise, 5); } .cm-s-default span.cm-property, .cm-s-default span.cm-attribute { color: lighten(@success, 5); } .cm-s-default span.cm-keyword { color: #f92672; } .cm-s-default span.cm-builtin { color: #66d9ef; } .cm-s-default span.cm-string { color: lighten(@notice, 5); } .cm-s-default span.cm-variable { color: #f8f8f2; } .cm-s-default span.cm-variable-2 { color: #9effff; } .cm-s-default span.cm-variable-3 { color: #66d9ef; } .cm-s-default span.cm-def { color: #fd971f; } .cm-s-default span.cm-bracket { color: #f8f8f2; } .cm-s-default span.cm-tag { color: darken(@danger, 3); } .cm-s-default span.cm-header { color: lighten(@surprise, 5); } .cm-s-default span.cm-link { color: lighten(@surprise, 5); } .cm-s-default span.cm-error { background: @danger; color: #f8f8f0; } .cm-s-default .CodeMirror-activeline-background { background: @hl-md; } .cm-s-default .CodeMirror-matchingbracket { text-decoration: underline; color: inherit !important; } } .editor--light-theme { .cm-s-default span { color: @font-light-bg; } .cm-s-default span.cm-string { color: saturate(darken(@notice, 30), 100); } .cm-s-default span.cm-property, .cm-s-default span.cm-attribute { color: saturate(darken(@success, 15), 100); } .cm-s-default span.cm-atom, .cm-s-default span.cm-number { color: saturate(darken(@surprise, 30), 100); } .cm-s-default .CodeMirror-activeline-background { background: @hl-md; } .cm-s-default .CodeMirror-matchingbracket { text-decoration: underline; color: inherit !important; } }