<!--
Copyright (C) 2016 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<dom-module id="gr-theme-default">
  <template>
    <style>
      /**
       * @overview Highlight.js emits the following classes that do not have
       * styles here:
       *    subst, symbol, class, function, doctag, meta-string, section, name,
       *    builtin-name, bulletm, code, formula, quote, addition, deletion,
       *    attribute
       * @see {@link http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html}
       */

      .gr-syntax-meta {
         color: #FF1717;
      }
      .gr-syntax-keyword {
        color: #9E0069;
        line-height: 1em;
      }
      .gr-syntax-number,
      .gr-syntax-selector-class {
        color: #164;
      }
      .gr-syntax-variable {
        color: black;
      }
      .gr-syntax-template-variable {
        color: #0000C0;
      }
      .gr-syntax-comment {
        color: #3F7F5F;
      }
      .gr-syntax-string,
      .gr-syntax-selector-id {
        color: #2A00FF;
      }
      .gr-syntax-built_in {
        color: #30a;
      }
      .gr-syntax-tag {
        color: #170;
      }
      .gr-syntax-link,
      .gr-syntax-meta-keyword {
        color: #219;
      }
      .gr-syntax-type {
        color: var(--color-link);
      }
      .gr-syntax-title {
        color: #0000C0;
      }
      .gr-syntax-attr,
      .gr-syntax-literal { /* XML/HTML Attribute */
        color: #219;
      }
      .gr-syntax-selector-pseudo,
      .gr-syntax-regexp,
      .gr-syntax-selector-attr,
      .gr-syntax-template-tag {
        color: #FA8602;
      }
      .gr-syntax-emphasis {
        font-style: italic;
      }
      .gr-syntax-strong {
        font-weight: 700;
      }
    </style>
  </template>
</dom-module>