<!--
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: #7F0055;
        font-weight: bold;
        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: #00f;
      }
      .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: bold;
      }
    </style>
  </template>
</dom-module>