@use '@lucas-labs/lui-micro/color' as color;
@use '@lucas-labs/lui-micro/var' as var;


// variables: (
//     'base-font-size': 16px,
//     'font-family': 'Roboto, sans-serif',
//     'code-font-family': '"Source Code Pro", "Roboto Mono", Consolas, monospace',
// ),

@mixin make-chroma-styles {
    .chroma .code-inner{
        font: 14px var.get('code-font-family');
    }

    /* NameBuiltinPseudo */
    .chroma .bp {
        color: color.get('theme/peach/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('theme/blue/base');
    }
    /* CommentPreprocFile */
    .chroma .cpf {
        color: color.get('theme/blue/base');
    }
    /* CommentSpecial */
    .chroma .cs {
        color: color.get('elevated/7');
    }
    /* LiteralStringDelimiter */
    .chroma .dl {
        color: color.get('theme/blue/base');
    }
    /* NameFunctionMagic */
    .chroma .fm {
    }
    /* Generic */
    .chroma .g {
    }
    /* GenericDeleted */
    .chroma .gd {
        color: color.get('theme');
        background-color: rgba(#{color.get('theme/red/base', 'rgb')}, 0.15);
    }
    /* GenericEmph */
    .chroma .ge {
        font-style: italic;
    }
    /* GenericHeading */
    .chroma .gh {
        color: color.get('theme/sky/base');
    }
    /* GenericInserted */
    .chroma .gi {
        color: color.get('theme');
        background-color: rgba(#{color.get('theme/green/base', 'rgb')}, 0.15);
    }
    /* GenericUnderline */
    .chroma .gl {
    }
    /* GenericOutput */
    .chroma .go {
        color: color.get('theme/peach/base');
    }
    /* GenericPrompt */
    .chroma .gp {
        color: color.get('elevated/7');
        font-weight: bold;
    }
    /* GenericError */
    .chroma .gr {
        color: color.get('theme/maroon/base');
    }
    /* GenericStrong */
    .chroma .gs {
        font-weight: bold;
    }
    /* GenericTraceback */
    .chroma .gt {
        color: color.get('theme/maroon/base');
    }
    /* GenericSubheading */
    .chroma .gu {
        color: color.get('theme/sky/base');
    }
    /* LiteralNumberIntegerLong */
    .chroma .il {
        color: color.get('theme/peach/base');
    }
    /* Keyword */
    .chroma .k {
        color: color.get('theme/mauve/base');
    }
    /* KeywordConstant */
    .chroma .kc {
        color: color.get('theme/yellow/base');
    }
    /* KeywordDeclaration */
    .chroma .kd {
        color: color.get('theme/mauve/base');
    }
    /* KeywordNamespace */
    .chroma .kn {
        color: color.get('theme/yellow/base');
    }
    /* KeywordPseudo */
    .chroma .kp {
        color: color.get('theme/mauve/base');
        font-weight: bold;
    }
    /* KeywordReserved */
    .chroma .kr {
        color: color.get('theme/mauve/base');
    }
    /* KeywordType */
    .chroma .kt {
        color: color.get('theme/yellow/base');
    }
    /* Literal */
    .chroma .l {
    }
    /* LiteralDate */
    .chroma .ld {
    }
    /* LiteralNumber */
    .chroma .m {
        color: color.get('theme/peach/base');
    }
    /* LiteralNumberBin */
    .chroma .mb {
        color: color.get('theme/peach/base');
    }
    /* LiteralNumberFloat */
    .chroma .mf {
        color: color.get('theme/peach/base');
    }
    /* LiteralNumberHex */
    .chroma .mh {
        color: color.get('theme/peach/base');
    }
    /* LiteralNumberInteger */
    .chroma .mi {
        color: color.get('theme/peach/base');
    }
    /* LiteralNumberOct */
    .chroma .mo {
        color: color.get('theme/peach/base');
    }
    /* Name */
    .chroma .n {
        color: color.get('theme/lavender/base');
    }
    /* NameAttribute */
    .chroma .na {
        color: color.get('theme/yellow/base');
    }
    /* NameBuiltin */
    .chroma .nb {
        color: color.get('theme/peach/base');
    }
    /* NameClass */
    .chroma .nc {
        color: color.get('theme/yellow/base');
    }
    /* NameDecorator */
    .chroma .nd {
        color: color.get('theme/pink/base');
    }
    /* NameException */
    .chroma .ne {
        color: color.get('theme/maroon/base');
    }
    /* NameFunction */
    .chroma .nf {
        color: color.get('theme/blue/base');
    }
    /* NameEntity */
    .chroma .ni {
        color: color.get('theme/pink/base');
    }
    /* NameLabel */
    .chroma .nl {
        color: color.get('theme/yellow/base');
    }
    /* NameNamespace */
    .chroma .nn {
        color: color.get('theme/yellow/base');
    }
    /* NameConstant */
    .chroma .no {
        color: color.get('theme/yellow/base');
    }
    /* NameTag */
    .chroma .nt {
        color: color.get('theme/mauve/base');
    }
    /* NameVariable */
    .chroma .nv {
        color: color.get('theme/peach/base');
    }
    /* NameOther */
    .chroma .nx {
        color: color.get('theme/peach/base');
    }
    /* Operator */
    .chroma .o {
        color: color.get('theme/sky/base');
    }
    /* OperatorWord */
    .chroma .ow {
        color: color.get('theme/sky/base');
        font-weight: bold;
    }
    /* Punctuation */
    .chroma .p {
        color: color.get('elevated/9');
    }
    /* NameProperty */
    .chroma .py {
    }
    /* LiteralString */
    .chroma .s {
        color: color.get('theme/green/base');
    }
    /* LiteralStringSingle */
    .chroma .s1 {
        color: color.get('theme/green/base');
    }
    /* LiteralStringDouble */
    .chroma .s2 {
        color: color.get('theme/green/base');
    }
    /* LiteralStringAffix */
    .chroma .sa {
        color: color.get('theme/green/base');
    }
    /* LiteralStringBacktick */
    .chroma .sb {
        color: color.get('theme/green/base');
    }
    /* LiteralStringChar */
    .chroma .sc {
        color: color.get('theme/green/base');
    }
    /* LiteralStringDoc */
    .chroma .sd {
        color: color.get('theme/green/base');
    }
    /* LiteralStringEscape */
    .chroma .se {
        color: color.get('theme/blue/base');
    }
    /* LiteralStringHeredoc */
    .chroma .sh {
        color: color.get('theme/green/base');
    }
    /* LiteralStringInterpol */
    .chroma .si {
        color: color.get('theme/green/base');
    }
    /* LiteralStringRegex */
    .chroma .sr {
        color: color.get('theme/blue/base');
    }
    /* LiteralStringSymbol */
    .chroma .ss {
        color: color.get('theme/green/base');
    }
    /* LiteralStringOther */
    .chroma .sx {
        color: color.get('theme/green/base');
    }
    /* NameVariableClass */
    .chroma .vc {
        color: color.get('theme/yellow/base');
    }
    /* NameVariableGlobal */
    .chroma .vg {
        color: color.get('theme/peach/base');
    }
    /* NameVariableInstance */
    .chroma .vi {
        color: color.get('theme/yellow/base');
    }
    /* NameVariableMagic */
    .chroma .vm {
    }
    /* TextWhitespace */
    .chroma .w {
        color: color.get('elevated/4');
    }
}
