feat: ✨ code highlighting styles
parent
44a25e5c29
commit
701e67c177
@ -0,0 +1,304 @@
|
|||||||
|
@use '@lucas-labs/lui-micro/color' as color;
|
||||||
|
@use '@lucas-labs/lui-micro/var' as var;
|
||||||
|
|
||||||
|
|
||||||
|
@mixin chroma {
|
||||||
|
.chroma .code-inner{
|
||||||
|
font: 14px var.get('code-font-family');
|
||||||
|
}
|
||||||
|
|
||||||
|
/* NameBuiltinPseudo */
|
||||||
|
.chroma .bp {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* Comment */
|
||||||
|
.chroma .c {
|
||||||
|
color: color.get('elevated/7');
|
||||||
|
}
|
||||||
|
/* CommentSingle */
|
||||||
|
.chroma .c1 {
|
||||||
|
color: color.get('elevated/7');
|
||||||
|
}
|
||||||
|
/* CommentHashbang */
|
||||||
|
.chroma .ch {
|
||||||
|
color: color.get('elevated/7');
|
||||||
|
}
|
||||||
|
/* CommentMultiline */
|
||||||
|
.chroma .cm {
|
||||||
|
color: color.get('elevated/7');
|
||||||
|
}
|
||||||
|
/* CommentPreproc */
|
||||||
|
.chroma .cp {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
/* CommentPreprocFile */
|
||||||
|
.chroma .cpf {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
/* CommentSpecial */
|
||||||
|
.chroma .cs {
|
||||||
|
color: color.get('elevated/7');
|
||||||
|
}
|
||||||
|
/* LiteralStringDelimiter */
|
||||||
|
.chroma .dl {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
/* NameFunctionMagic */
|
||||||
|
.chroma .fm {
|
||||||
|
}
|
||||||
|
/* Generic */
|
||||||
|
.chroma .g {
|
||||||
|
}
|
||||||
|
/* GenericDeleted */
|
||||||
|
.chroma .gd {
|
||||||
|
color: color.get('theme');
|
||||||
|
background-color: rgba(#{color.get('palette/red/base', 'rgb')}, 0.15);
|
||||||
|
}
|
||||||
|
/* GenericEmph */
|
||||||
|
.chroma .ge {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
/* GenericHeading */
|
||||||
|
.chroma .gh {
|
||||||
|
color: color.get('palette/teal/base');
|
||||||
|
}
|
||||||
|
/* GenericInserted */
|
||||||
|
.chroma .gi {
|
||||||
|
color: color.get('theme');
|
||||||
|
background-color: rgba(#{color.get('palette/green/base', 'rgb')}, 0.15);
|
||||||
|
}
|
||||||
|
/* GenericUnderline */
|
||||||
|
.chroma .gl {
|
||||||
|
}
|
||||||
|
/* GenericOutput */
|
||||||
|
.chroma .go {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* GenericPrompt */
|
||||||
|
.chroma .gp {
|
||||||
|
color: color.get('elevated/7');
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
/* GenericError */
|
||||||
|
.chroma .gr {
|
||||||
|
color: color.get('palette/brown/base');
|
||||||
|
}
|
||||||
|
/* GenericStrong */
|
||||||
|
.chroma .gs {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
/* GenericTraceback */
|
||||||
|
.chroma .gt {
|
||||||
|
color: color.get('palette/brown/base');
|
||||||
|
}
|
||||||
|
/* GenericSubheading */
|
||||||
|
.chroma .gu {
|
||||||
|
color: color.get('palette/teal/base');
|
||||||
|
}
|
||||||
|
/* LiteralNumberIntegerLong */
|
||||||
|
.chroma .il {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* Keyword */
|
||||||
|
.chroma .k {
|
||||||
|
color: color.get('palette/purple/base');
|
||||||
|
}
|
||||||
|
/* KeywordConstant */
|
||||||
|
.chroma .kc {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* KeywordDeclaration */
|
||||||
|
.chroma .kd {
|
||||||
|
color: color.get('palette/purple/base');
|
||||||
|
}
|
||||||
|
/* KeywordNamespace */
|
||||||
|
.chroma .kn {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* KeywordPseudo */
|
||||||
|
.chroma .kp {
|
||||||
|
color: color.get('palette/purple/base');
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
/* KeywordReserved */
|
||||||
|
.chroma .kr {
|
||||||
|
color: color.get('palette/purple/base');
|
||||||
|
}
|
||||||
|
/* KeywordType */
|
||||||
|
.chroma .kt {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* Literal */
|
||||||
|
.chroma .l {
|
||||||
|
}
|
||||||
|
/* LiteralDate */
|
||||||
|
.chroma .ld {
|
||||||
|
}
|
||||||
|
/* LiteralNumber */
|
||||||
|
.chroma .m {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* LiteralNumberBin */
|
||||||
|
.chroma .mb {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* LiteralNumberFloat */
|
||||||
|
.chroma .mf {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* LiteralNumberHex */
|
||||||
|
.chroma .mh {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* LiteralNumberInteger */
|
||||||
|
.chroma .mi {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* LiteralNumberOct */
|
||||||
|
.chroma .mo {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* Name */
|
||||||
|
.chroma .n {
|
||||||
|
color: color.get('palette/violet/base');
|
||||||
|
}
|
||||||
|
/* NameAttribute */
|
||||||
|
.chroma .na {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameBuiltin */
|
||||||
|
.chroma .nb {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* NameClass */
|
||||||
|
.chroma .nc {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameDecorator */
|
||||||
|
.chroma .nd {
|
||||||
|
color: color.get('palette/pink/base');
|
||||||
|
}
|
||||||
|
/* NameException */
|
||||||
|
.chroma .ne {
|
||||||
|
color: color.get('palette/brown/base');
|
||||||
|
}
|
||||||
|
/* NameFunction */
|
||||||
|
.chroma .nf {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
/* NameEntity */
|
||||||
|
.chroma .ni {
|
||||||
|
color: color.get('palette/pink/base');
|
||||||
|
}
|
||||||
|
/* NameLabel */
|
||||||
|
.chroma .nl {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameNamespace */
|
||||||
|
.chroma .nn {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameConstant */
|
||||||
|
.chroma .no {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameTag */
|
||||||
|
.chroma .nt {
|
||||||
|
color: color.get('palette/purple/base');
|
||||||
|
}
|
||||||
|
/* NameVariable */
|
||||||
|
.chroma .nv {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* NameOther */
|
||||||
|
.chroma .nx {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* Operator */
|
||||||
|
.chroma .o {
|
||||||
|
color: color.get('palette/teal/base');
|
||||||
|
}
|
||||||
|
/* OperatorWord */
|
||||||
|
.chroma .ow {
|
||||||
|
color: color.get('palette/teal/base');
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
/* Punctuation */
|
||||||
|
.chroma .p {
|
||||||
|
color: color.get('elevated/9');
|
||||||
|
}
|
||||||
|
/* NameProperty */
|
||||||
|
.chroma .py {
|
||||||
|
}
|
||||||
|
/* LiteralString */
|
||||||
|
.chroma .s {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringSingle */
|
||||||
|
.chroma .s1 {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringDouble */
|
||||||
|
.chroma .s2 {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringAffix */
|
||||||
|
.chroma .sa {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringBacktick */
|
||||||
|
.chroma .sb {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringChar */
|
||||||
|
.chroma .sc {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringDoc */
|
||||||
|
.chroma .sd {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringEscape */
|
||||||
|
.chroma .se {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringHeredoc */
|
||||||
|
.chroma .sh {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringInterpol */
|
||||||
|
.chroma .si {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringRegex */
|
||||||
|
.chroma .sr {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringSymbol */
|
||||||
|
.chroma .ss {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* LiteralStringOther */
|
||||||
|
.chroma .sx {
|
||||||
|
color: color.get('palette/green/base');
|
||||||
|
}
|
||||||
|
/* NameVariableClass */
|
||||||
|
.chroma .vc {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameVariableGlobal */
|
||||||
|
.chroma .vg {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
/* NameVariableInstance */
|
||||||
|
.chroma .vi {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
/* NameVariableMagic */
|
||||||
|
.chroma .vm {
|
||||||
|
}
|
||||||
|
/* TextWhitespace */
|
||||||
|
.chroma .w {
|
||||||
|
color: color.get('elevated/4');
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,95 @@
|
|||||||
|
@use '@lucas-labs/lui-micro/color' as color;
|
||||||
|
|
||||||
|
@mixin codemirror {
|
||||||
|
.CodeMirror,
|
||||||
|
.CodeMirror.cm-s-default,
|
||||||
|
.CodeMirror.cm-s-paper {
|
||||||
|
.cm-property {
|
||||||
|
color: color.get('text')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-header {
|
||||||
|
color: color.get('text')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-quote {
|
||||||
|
color: color.get('palette/green/base')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-keyword {
|
||||||
|
color: color.get('palette/purple/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-atom {
|
||||||
|
color: color.get('palette/red/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-number {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-def {
|
||||||
|
color: color.get('text')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-variable-2 {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-variable-3 {
|
||||||
|
color: color.get('palette/teal/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-comment {
|
||||||
|
color: color.get('elevation/6')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-string {
|
||||||
|
color: color.get('palette/green/base')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-string-2 {
|
||||||
|
color: color.get('palette/green/base')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-meta {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-qualifier {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-builtin {
|
||||||
|
color: color.get('palette/orange/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-bracket {
|
||||||
|
color: color.get('text')
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-tag {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-attribute {
|
||||||
|
color: color.get('palette/yellow/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-hr {
|
||||||
|
color: color.get('elevation/9');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-url {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-link {
|
||||||
|
color: color.get('palette/blue/base');
|
||||||
|
}
|
||||||
|
|
||||||
|
.cm-error {
|
||||||
|
color: color.get('palette/red/base');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,155 @@
|
|||||||
|
@use '@lucas-labs/lui-micro/color' as color;
|
||||||
|
|
||||||
|
@mixin monaco {
|
||||||
|
$surface0: #{color.get('elevation/4')};
|
||||||
|
$subtext0: #{color.get('elevation/10')};
|
||||||
|
$overlay2: #{color.get('elevation/9')};
|
||||||
|
$mantle: #{color.get('elevation/0')};
|
||||||
|
$base: #{color.get('elevation/3')};
|
||||||
|
$accent: #{color.get('primary/base')};
|
||||||
|
$text: #{color.get('text')};
|
||||||
|
$mauve: #{color.get('palette/purple/base')};
|
||||||
|
$peach: #{color.get('palette/orange/base')};
|
||||||
|
$teal: #{color.get('palette/teal/base')};
|
||||||
|
$green: #{color.get('palette/green/base')};
|
||||||
|
$blue: #{color.get('palette/blue/base')};
|
||||||
|
$pink: #{color.get('palette/pink/base')};
|
||||||
|
|
||||||
|
.monaco-editor {
|
||||||
|
--vscode-editor-background: #{$mantle} !important;
|
||||||
|
--vscode-editorGutter-background: #{$mantle} !important;
|
||||||
|
|
||||||
|
// selected text
|
||||||
|
.selected-text {
|
||||||
|
background-color: $surface0 !important;
|
||||||
|
}
|
||||||
|
// line numbers
|
||||||
|
.margin-view-overlays .line-numbers {
|
||||||
|
color: $subtext0 !important;
|
||||||
|
}
|
||||||
|
.line-numbers.active-line-number {
|
||||||
|
color: $accent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// current / cursor line
|
||||||
|
.view-overlays .current-line,
|
||||||
|
.margin-view-overlays .current-line-margin {
|
||||||
|
background-color: #{color.get('elevation/2')} !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note: all of the hotpink stuff is there so it's easily visible, since these editor scope mappings are a mess
|
||||||
|
|
||||||
|
// plaintext
|
||||||
|
.mtk1 {
|
||||||
|
color: $text !important;
|
||||||
|
}
|
||||||
|
.mtk2 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
// decorators
|
||||||
|
.mtk3 {
|
||||||
|
color: $peach !important;
|
||||||
|
}
|
||||||
|
// shell arguments
|
||||||
|
.mtk4 {
|
||||||
|
color: $teal !important;
|
||||||
|
}
|
||||||
|
// css constants & pre-defineds
|
||||||
|
.mtk5 {
|
||||||
|
color: $text !important;
|
||||||
|
}
|
||||||
|
// keywords
|
||||||
|
.mtk6 {
|
||||||
|
color: $mauve !important;
|
||||||
|
}
|
||||||
|
// numbers
|
||||||
|
.mtk7 {
|
||||||
|
color: $peach !important;
|
||||||
|
}
|
||||||
|
// comments
|
||||||
|
.mtk8 {
|
||||||
|
color: $overlay2 !important;
|
||||||
|
}
|
||||||
|
// sometimes a keyword, apparently
|
||||||
|
.mtk9 {
|
||||||
|
color: $mauve !important;
|
||||||
|
}
|
||||||
|
// braces, brackets, parentheses
|
||||||
|
.mtk10 {
|
||||||
|
color: $subtext0 !important;
|
||||||
|
}
|
||||||
|
// arrow brackets & equal signs in HTML
|
||||||
|
.mtk11 {
|
||||||
|
color: $teal !important;
|
||||||
|
}
|
||||||
|
// @ sign in javascript ¯\_(ツ)_/¯
|
||||||
|
.mtk12 {
|
||||||
|
color: $teal !important;
|
||||||
|
}
|
||||||
|
.mtk13 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
.mtk14 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
// regex, css classnames, and HTML keywords (huh)
|
||||||
|
.mtk15 {
|
||||||
|
color: $mauve !important;
|
||||||
|
}
|
||||||
|
// shebangs
|
||||||
|
.mtk16 {
|
||||||
|
color: $overlay2 !important;
|
||||||
|
}
|
||||||
|
.mtk17 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
.mtk18 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
// glob operator i guess
|
||||||
|
.mtk19 {
|
||||||
|
color: $teal !important;
|
||||||
|
}
|
||||||
|
.mtk20 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
// strings
|
||||||
|
.mtk21 {
|
||||||
|
color: $green !important;
|
||||||
|
}
|
||||||
|
.mtk22 {
|
||||||
|
color: #ff69b4 !important;
|
||||||
|
}
|
||||||
|
// functions
|
||||||
|
.mtk23 {
|
||||||
|
color: $blue !important;
|
||||||
|
}
|
||||||
|
// shell variables
|
||||||
|
.mtk24 {
|
||||||
|
color: $peach !important;
|
||||||
|
}
|
||||||
|
// weird variables
|
||||||
|
.mtk25 {
|
||||||
|
color: $pink !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// .bracket-highlighting-0 {
|
||||||
|
// color: color.mix($text, $red, 40%) !important;
|
||||||
|
// }
|
||||||
|
// .bracket-highlighting-1 {
|
||||||
|
// color: color.mix($text, $peach, 40%) !important;
|
||||||
|
// }
|
||||||
|
// .bracket-highlighting-2 {
|
||||||
|
// color: color.mix($text, $yellow, 40%) !important;
|
||||||
|
// }
|
||||||
|
// .bracket-highlighting-3 {
|
||||||
|
// color: color.mix($text, $green, 40%) !important;
|
||||||
|
// }
|
||||||
|
// .bracket-highlighting-4 {
|
||||||
|
// color: color.mix($text, $blue, 40%) !important;
|
||||||
|
// }
|
||||||
|
// .bracket-highlighting-5 {
|
||||||
|
// color: color.mix($text, $mauve, 40%) !important;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
@ -1,2 +1,5 @@
|
|||||||
@forward './repo';
|
@forward './repo';
|
||||||
@forward './issues';
|
@forward './issues';
|
||||||
|
@forward './chroma';
|
||||||
|
@forward './codemirror';
|
||||||
|
@forward './monaco';
|
Loading…
Reference in New Issue