
// Language syntax highlighting

.comment {
  color: @light-gray;
  font-style: italic;
}

.entity {
  &.name.type {
    color: @light-orange;
  }

  &.other.inherited-class {
    color: @green;
  }
}

.keyword {
  color: @purple;

  &.control {
    color: @purple;
  }

  &.operator {
    color: @syntax-text-color;
  }

  &.other.special-method {
    color: @blue;
  }

  &.other.unit {
    color: @orange;
  }
}

.storage {
  color: @purple;
}

.constant {
  color: @orange;

  &.character.escape {
    color: @cyan;
  }

  &.numeric {
    color: @orange;
  }

  &.other.color {
    color: @cyan;
  }

  &.other.symbol {
    color: @cyan;
  }
}

.variable {
  color: @red;

  &.interpolation {
    color: @dark-red;
  }

  &.parameter.function {
    color: @syntax-text-color;
  }
}

.invalid.illegal {
  background-color: @red;
  color: @syntax-background-color;
}

.string {
  color: @green;

  &.regexp {
    color: @cyan;
  }

  &.other.link {
    color: @red;
  }
}

.punctuation {
  &.definition {
    &.comment {
      color: @light-gray;
    }

    &.parameters,
    &.array {
      color: @syntax-text-color;
    }

    &.heading,
    &.identity {
      color: @blue;
    }

    &.bold {
      color: @light-orange;
      font-weight: bold;
    }

    &.italic {
      color: @purple;
      font-style: italic;
    }
  }

  &.section.embedded {
    color: @dark-red;
  }
}

.support {
  &.class {
    color: @light-orange;
  }

  &.function  {
    color: @cyan;

    &.any-method {
      color: @blue;
    }
  }
}

.entity {
  &.name.function {
    color: @blue;
  }

  &.name.class, &.name.type.class {
    color: @light-orange;
  }

  &.name.section {
    color: @blue;
  }

  &.name.tag {
    color: @red;
  }

  &.other.attribute-name {
    color: @orange;

    &.id {
      color: @blue;
    }
  }
}

.meta {
  &.class {
    color: @light-orange;
  }

  &.link {
    color: @orange;
  }

  &.require {
    color: @blue;
  }

  &.selector {
    color: @purple;
  }

  &.separator {
    background-color: #373b41;
    color: @syntax-text-color;
  }

  &.tag {
    color: @syntax-text-color;
  }
}

.none {
  color: @syntax-text-color;
}


// Languages -------------------------------------------------

.markup {
  &.bold {
    color: @orange;
    font-weight: bold;
  }

  &.changed {
    color: @purple;
  }

  &.deleted {
    color: @red;
  }

  &.italic {
    color: @purple;
    font-style: italic;
  }

  &.heading .punctuation.definition.heading {
    color: @blue;
  }

  &.inserted {
    color: @green;
  }

  &.list {
    color: @red;
  }

  &.quote {
    color: @orange;
  }

  &.raw.inline {
    color: @green;
  }
}

.source.gfm {
  .markup {
    -webkit-font-smoothing: auto;
    &.heading {
      color: @red;
    }

    &.link {
      color: @blue;
    }
  }

  .link .entity {
    color: @cyan;
  }
}

.ruby {
  &.symbol > .punctuation {
    color: inherit;
  }
}
