{-# LANGUAGE OverloadedStrings #-}
-- | Defines functions to create accompanying .css files for HTML generators.
module Language.Drasil.HTML.CSS (
  genericCSS
) where

import Prettyprinter (Doc, vcat)

-- | Generic CSS used for stylizing the 'LayoutObj' language when outputted in
-- HTML format.
genericCSS :: Doc ann
genericCSS :: forall ann. Doc ann
genericCSS = [Doc ann] -> Doc ann
forall ann. [Doc ann] -> Doc ann
vcat [
  Doc ann
"body {min-width: 400px; max-width: 1400px;}",
  Doc ann
".title {text-align: center;}",
  Doc ann
".author {text-align: center;}",
  Doc ann
".paragraph {text-align: justify;}",
  Doc ann
".cases {",
  Doc ann
"  display: inline-block;",
  Doc ann
"  vertical-align: middle;}",
  Doc ann
".case {",
  Doc ann
"  float: right;",
  Doc ann
"  padding-left: 1em;}",
  Doc ann
".cases > span {",
  Doc ann
"  display: block;",
  Doc ann
"  padding-top: 0.1em;",
  Doc ann
"  padding-left: 0em;}",
  Doc ann
".casebr {",
  Doc ann
"  display: inline-block;",
  Doc ann
"  vertical-align: middle;",
  Doc ann
"  margin: 0 0.2em 0.4ex;",
  Doc ann
"  text-align: center;",
  Doc ann
"  font-size: 500%;}",
  Doc ann
".caption {",
  Doc ann
"  text-align: center;",
  Doc ann
"  font-weight: bold;",
  Doc ann
"  padding-bottom: 1%;",
  Doc ann
"  line-height: 0;}",
  Doc ann
".fraction {",
  Doc ann
"  display: inline-block;",
  Doc ann
"  vertical-align: middle;",
  Doc ann
"  margin: 0 0.2em 0.4ex;",
  Doc ann
"  text-align: center;}",
  Doc ann
".fraction > span {",
  Doc ann
"  display: block;",
  Doc ann
"  padding-top: 0.15em;}",
  Doc ann
".fdn {border-top: thin solid black;}",
  Doc ann
".table {",
  Doc ann
"  text-align: left;",
  Doc ann
"  padding-left: 1%;",
  Doc ann
"  width: 90%;",
  Doc ann
"  margin-bottom: 2%;",
  Doc ann
"  margin-top: 2%}",
  Doc ann
"table, th, td {",
  Doc ann
"  border-collapse: collapse;",
  Doc ann
"  margin-left: auto;",
  Doc ann
"  margin-right: auto;}",
  Doc ann
"th, td {border: 1px solid black; padding: 0.5em;}",
  Doc ann
".defn-table {width: 75%; margin-top: 1%; margin-bottom: 1%;}",
  Doc ann
".defn-table th {width: 15%;}",
  Doc ann
"section {width: 80%; margin: 0 auto; text-align: left;}",
  Doc ann
"section > section {width: 100%}",
  Doc ann
"section h1 { font-size: 2em; }",
  Doc ann
"section h2 { font-size: 1.5em; }",
  Doc ann
"section h3 { font-size: 1.17em; }",
  Doc ann
".code {",
  Doc ann
"  display: inline-block;",
  Doc ann
"  text-align: left;",
  Doc ann
"  font-family: Monaco, Consolas, \"Andale Mono\",\"DejaVu Sans Mono\", monospace;",
  Doc ann
"  font-size: 95%;",
  Doc ann
"  line-height: 140%;",
  Doc ann
"  white-space: pre;",
  Doc ann
"  white-space: pre-wrap;",
  Doc ann
"  white-space: -moz-pre-wrap;",
  Doc ann
"  white-space: -o-pre-wrap;",
  Doc ann
"  background: #faf8f0;}",
  Doc ann
".list {text-align: left;}",
  Doc ann
"figure {",
  Doc ann
"text-align: center;",
  Doc ann
"font-weight: bold;",
  Doc ann
"}",
  Doc ann
"figure > img {",
  Doc ann
"max-width: 100%;",
  Doc ann
"}",
  Doc ann
".matrix {",
  Doc ann
"  position: relative;",
  Doc ann
"  display: inline-table;",
  Doc ann
"  margin: 10px;",
  Doc ann
"  vertical-align: middle;}",
  Doc ann
".matrix:before, .matrix:after {",
  Doc ann
"  content: \"\";",
  Doc ann
"  position: absolute;",
  Doc ann
"  top: 0;",
  Doc ann
"  border: 1px solid #000;",
  Doc ann
"  width: 5px;",
  Doc ann
"  height: 100%;}",
  Doc ann
".matrix:before {",
  Doc ann
"  left: -5px;",
  Doc ann
"  border-right: 0px;}",
  Doc ann
".matrix:after {",
  Doc ann
"  right: -5px;",
  Doc ann
"  border-left: 0px;}",
  Doc ann
".matrix td {",
  Doc ann
"  padding: 5px;",
  Doc ann
"  text-align: center;",
  Doc ann
"  border: 0px;}",
  Doc ann
"ul.hide-list-style {",
  Doc ann
"  list-style-type: none;}",
  Doc ann
"ul.hide-list-style-no-indent {",
  Doc ann
"  list-style-type: none;",
  Doc ann
"padding: 0;}",
  Doc ann
"dl.reference-list {",
  Doc ann
"  display: grid;",
  Doc ann
"  grid-template-columns: auto 1fr;",
  Doc ann
"  gap: 20px;",
  Doc ann
"  align-items: start;}",
  Doc ann
"dd {",
  Doc ann
"  margin: 0;}"
  ]