#
# Copyright (c) 2017, 2023 Contributors to the Eclipse Foundation
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# This Source Code may also be made available under the following Secondary
# Licenses when the conditions for such availability set forth in the
# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
# version 2 with the GNU Classpath Exception, which is available at
# https://www.gnu.org/software/classpath/license.html.
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
#

extends: base
page:
  margin: [30,50,30,50]
  size: Letter
font:
  catalog:
    # Noto Serif supports Latin, Latin-1 Supplement, Latin Extended-A, Greek, Cyrillic, Vietnamese & an assortment of symbols
    Noto Serif:
      normal: GEM_FONTS_DIR/notoserif-regular-subset.ttf
      bold: GEM_FONTS_DIR/notoserif-bold-subset.ttf
      italic: GEM_FONTS_DIR/notoserif-italic-subset.ttf
      bold_italic: GEM_FONTS_DIR/notoserif-bold_italic-subset.ttf
    # M+ 1mn supports ASCII and the circled numbers used for conums
    M+ 1mn:
      normal: GEM_FONTS_DIR/mplus1mn-regular-subset.ttf
      bold: GEM_FONTS_DIR/mplus1mn-bold-subset.ttf
      italic: GEM_FONTS_DIR/mplus1mn-italic-subset.ttf
      bold_italic: GEM_FONTS_DIR/mplus1mn-bold_italic-subset.ttf
    # M+ 1p supports Latin, Latin-1 Supplement, Latin Extended, Greek, Cyrillic, Vietnamese, Japanese & an assortment of symbols
    # It also provides arrows for ->, <-, => and <= replacements in case these glyphs are missing from font
    M+ 1p Fallback:
      normal: GEM_FONTS_DIR/mplus1p-regular-fallback.ttf
      bold: GEM_FONTS_DIR/mplus1p-regular-fallback.ttf
      italic: GEM_FONTS_DIR/mplus1p-regular-fallback.ttf
      bold_italic: GEM_FONTS_DIR/mplus1p-regular-fallback.ttf
  fallbacks:
    - M+ 1p Fallback
base:
  font:
    color: #151e3d
    family: Noto Serif
    size: 9
  line-height-length: 11.5
  line-height: $base-line-height-length / $base-font-size
prose:
  margin-bottom: 8
image:
  width: 70%
  align: center
codespan:
  font:
    size: 0.94em
    family: M+ 1mn
    color: #281e5d
code:
  font:
    size: 0.94em
    color: #281e5d
    family: M+ 1mn
  border-width: 0
  padding: [4,4,4,20]
#  background-color: #f7f7f7
sidebar:
  border-width: 0
  title:
    align: center
admonition:
  label:
    vertical-align: top
  padding: [4, 8, 4, 8]
  column-rule:
    style: solid
    width: 1
    color: #f0f0f0
  icon:
    tip:
      stroke-color: #FFC300
    warning:
      stroke-color: #FF5733
    caution:
      stroke-color: #FF5733
heading:
  font:
    color: #001861
    size: 11
    style: bold
  line-height: 1.2
  h2-font-size: $base-font-size * 1.3
  h3-font-size: $base-font-size * 1.2
  h4-font-size: $base-font-size * 1.1
  h5-font-size: $base-font-size * 1.0
  margin-bottom: $base-line-height-length
link:
  font-color: #002FA7
list:
  indent: $base-font-size * 1.5
  item-spacing: 2
table:
  font-size: 0.94em
  caption:
    text-align: center
    side: top
    font-size: 0.94em
  grid:
    color: #f0f0f0
    style: solid
    width: 1
  border:
    width: 1
    color: #f0f0f0
  head:
    background-color: #f0f0f0
  cell:
    padding: 6
footer:
  border-width: 0
quote:
  font-style: italic
  font-color: #001861
  font-size: 1.1em
  #  background-color: #f1f1f1
  border-color: #000000
  border-radius: 2
  border-style: dotted
  padding: [10,20,10,25]
title_page:
  align: right
  logo:
    top: 10%
  title:
    top: 55%
    font_size: $heading-h1-font-size
    font_color: 999999
    line_height: 0.9
  subtitle:
    font_size: $heading-h3-font-size
    font_style: bold_italic
    line_height: 1
  authors:
    margin_top: $base-font-size * 1.25
    font_size: $base-font-size * 1.25
    font_color: 181818
  revision:
    margin_top: $base_font_size * 1.25
