MediaWiki:Vector-darkmode.less/darksyntax.less
Jump to navigation
Jump to search
/* ==========================
Extension:CodeMirror syntax highlighting
Classes explained here:
<https://meta.wikimedia.org/wiki/Community_Tech/Wikitext_editor_syntax_highlighting>
Colors based on the One Dark syntax theme:
<https://github.com/atom/atom/tree/master/packages/one-dark-syntax>
========================== */
/* --------------------------
COLORS
-------------------------- */
// define the following commented vars in the file that is importing /darksyntax.less
//@codemirror-background: ;
//@codemirror-text-color: ;
//@codemirror-selection-color: ;
//@codemirror-bracket-matcher-background: ;
@codemirror-red: #df6c75;
@codemirror-orange: #ca9564;
@codemirror-yellow: #e5c07b;
@codemirror-green: #98c379;
@codemirror-cyan: #56b6c2;
@codemirror-blue: #61afef;
@codemirror-purple: #c678dd;
.codemirror-lighten(@codemirror-color) {
color: desaturate( lighten( @codemirror-color, 7% ), 5% );
}
.codemirror-darken(@codemirror-color) {
color: saturate( darken( @codemirror-color, 7% ), 5% );
}
/* --------------------------
EDITOR
-------------------------- */
.CodeMirror {
background: @codemirror-background;
caret-color: @codemirror-blue; // cursor color
// text color
pre {
color: @codemirror-text-color;
}
}
// for visedit source editor - need to reapply because of wgl-darkmode specificity
.ve-init-mw-desktopArticleTarget .CodeMirror {
background: transparent;
}
// cursor color (again??)
.CodeMirror-cursor {
border-left-color: @codemirror-blue;
}
/* --------------------------
HEADINGS
-------------------------- */
pre.cm-mw-section- {
&1,
&2,
&3,
&4,
&5,
&6 {
color: @white;
}
&1 {
font-size: 1.7em;
}
&2 {
font-size: 1.35em;
}
&3 {
font-size: 1.1em;
}
}
// equals signs
.cm-mw-section-header {
.codemirror-darken( @codemirror-green );
}
/* --------------------------
PUNCTUATION
-------------------------- */
.cm-mw-apostrophes-bold,
.cm-mw-apostrophes-italic,
.cm-mw-doubleUnderscore,
.cm-mw-indenting,
.cm-mw-signature,
.cm-mw-hr,
.cm-mw-list {
.codemirror-darken( @codemirror-blue );
}
.cm-mw-doubleUnderscore,
.cm-mw-indenting,
.cm-mw-signature,
.cm-mw-hr,
.cm-mw-list {
background: fade( @codemirror-blue, 10% );
}
.cm-mw-skipformatting {
background: fade( @codemirror-blue, 50% );
}
.cm-mw-mnemonic {
color: @codemirror-green;
}
.cm-mw-comment {
color: @codemirror-text-color;
opacity: .7;
}
/* --------------------------
LINKS
-------------------------- */
.cm-mw-link-pagename,
.cm-mw-link,
.cm-mw-extlink,
.cm-mw-free-extlink {
color: @codemirror-blue;
}
.cm-mw-link-tosection,
.cm-mw-extlink-protocol,
.cm-mw-free-extlink-protocol {
.codemirror-lighten( @codemirror-blue );
}
.cm-mw-link-bracket,
.cm-mw-link-delimiter,
.cm-mw-extlink-bracket {
.codemirror-darken( @codemirror-blue );
}
/* --------------------------
TEMPLATES
-------------------------- */
.cm-mw-template-bracket,
.cm-mw-template-delimiter {
.codemirror-darken( @codemirror-orange );
}
.cm-mw-template-name,
.cm-mw-template-argument-name {
color: @codemirror-orange;
}
.cm-mw-template {
.codemirror-lighten( @codemirror-orange );
}
/* --------------------------
TABLES
-------------------------- */
.cm-mw-table-bracket,
.cm-mw-table-delimiter {
.codemirror-darken( @codemirror-cyan );
}
.cm-mw-table-definition {
color: @codemirror-cyan;
}
/* --------------------------
VARIABLES
-------------------------- */
.cm-mw-templatevariable-bracket,
.cm-mw-templatevariable-delimiter {
.codemirror-darken( @codemirror-purple );
}
.cm-mw-templatevariable-name,
.cm-mw-templatevariable {
color: @codemirror-purple;
}
/* --------------------------
PARSER FUNCTIONS
-------------------------- */
.cm-mw-parserfunction-bracket {
.codemirror-darken( @codemirror-red );
}
.cm-mw-parserfunction-name,
.cm-mw-parserfunction-delimiter {
color: @codemirror-red;
}
/* --------------------------
TEXT SELECTION
-------------------------- */
// selected text
.CodeMirror-selected {
background-color: fade( @codemirror-selection-color, 10% );
.CodeMirror-focused & {
background-color: fade( @codemirror-selection-color, 20% );
}
}
// don't combine these two groups
.CodeMirror-line::selection,
.CodeMirror-line > span::selection,
.CodeMirror-line > span > span::selection {
background: fade( @codemirror-selection-color, 20% );
}
.CodeMirror-line::-moz-selection,
.CodeMirror-line > span::-moz-selection,
.CodeMirror-line > span > span::-moz-selection {
background: fade( @codemirror-selection-color, 20% );
}
/* --------------------------
HTML TAGS
-------------------------- */
.cm-mw-htmltag-bracket,
.cm-mw-exttag-bracket {
.codemirror-darken( @codemirror-green );
}
.cm-mw-htmltag-name,
.cm-mw-htmltag-attribute,
.cm-mw-exttag-name,
.cm-mw-exttag-attribute {
color: @codemirror-green;
}
pre.cm-mw-exttag {
background: fade( @white, 5% );
}
/* --------------------------
BRACKET MATCHING
-------------------------- */
.cm-mw-matchingbracket {
background-color: @codemirror-bracket-matcher-background;
box-shadow: inset 0 0 1px 0 @codemirror-blue; // original is 0 0 1px 1px, no spread so it wont eat the cursor
}