{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Building Themes from (S)CSS\n",
    "nbpresent themes are a simple data structure with a lot of flexibility. They reflect a data-driven view of style, and make some use of references, as for colors. More work needs to be done, especially surrounding reuse!\n",
    "\n",
    "In this notebook, we look at the themes from [revealjs](http://lab.hakim.se/reveal-js/#/themes) which has provided so many inspirations for nbpresent."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 407,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "b99bf53e-2a6c-48fb-9836-e7801140ad49"
    }
   },
   "outputs": [],
   "source": [
    "from os.path import join, basename, splitext, abspath\n",
    "from glob import glob\n",
    "import re\n",
    "from pprint import pprint\n",
    "from collections import defaultdict\n",
    "from copy import deepcopy\n",
    "import json\n",
    "from uuid import uuid4\n",
    "\n",
    "import colour\n",
    "\n",
    "import jinja2\n",
    "\n",
    "import yaml\n",
    "\n",
    "from IPython.display import Javascript, display, Markdown"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbpresent": {
     "id": "47eceb3f-0349-4c2a-ba8a-7d6141967962"
    }
   },
   "source": [
    "## Extract SCSS variables\n",
    "The revealjs themes are written in SCSS on a base template. Great! With one little regular expression we can pull out variable names, and have a pretty good idea of what they mean."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 383,
   "metadata": {
    "collapsed": true,
    "nbpresent": {
     "id": "6d2a6927-84b2-477f-b874-cc6269ae3444"
    }
   },
   "outputs": [],
   "source": [
    "var_re = r\"^(\\$.*)\\s*:\\s*(.*);\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Provide alternates\n",
    "All sizes in nbpresent are specified in [`rem`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-size#Rems), a device-aware measure that helps avoid surprises. reveal uses a selection of measures, mostly based on `em`. I figured these out just by trying it, but there may indeed be a more elegant and robust way to calculate these."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 384,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "d8a44030-eb5d-497c-a9d0-7349ed054bbc"
    }
   },
   "outputs": [],
   "source": [
    "sizes = {\n",
    "    \"38px\": 6,\n",
    "    \"36px\": 5,\n",
    "    \"30px\": 4,\n",
    "    \"1.0em\": 3,\n",
    "    \"1.00em\": 3,\n",
    "    \"1.3em\": 3.5,\n",
    "    \"1.55em\": 3.75,\n",
    "    \"1.6em\": 4,\n",
    "    \"2.11em\": 5,\n",
    "    \"2.5em\": 5.25,\n",
    "    \"3.77em\": 7\n",
    "}\n",
    "\n",
    "fonts = {\n",
    "    \"League Gothic\": \"Oswald\",\n",
    "    \"Palatino Linotype\": \"EB Garamond\"\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Headings\n",
    "Headings end up being really important, but are pretty verbose. While it's theoretically possible to use traditional CSS selectors like `h1, h2, h3{...}`, for the time being we store them all verbosely."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 385,
   "metadata": {
    "collapsed": true,
    "nbpresent": {
     "id": "43dd13a1-3801-4ea4-88d3-48325d053cbe"
    }
   },
   "outputs": [],
   "source": [
    "def update_headings(rules, directives):\n",
    "    for i in range(1, 8):\n",
    "        rules[\"h{}\".format(i)].update(directives)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reading themes\n",
    "While a bit verbose, they can be quite readable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 412,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def pretty(theme):\n",
    "    display(Markdown(\"\"\"```yaml\\n{}\\n```\"\"\".format(\n",
    "        yaml.safe_dump(yaml.safe_load(json.dumps(theme))))))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Importing the variables\n",
    "`make_theme` runs through all the variables it found, and tries to determine where they should go in the theme data model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 413,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "29d5fa6c-4381-41a5-953b-3e610991c587"
    }
   },
   "outputs": [],
   "source": [
    "def make_theme(scss, theme_id=None, theme=None):\n",
    "    theme = deepcopy(theme) or {}\n",
    "    theme[\"id\"] = theme_id = theme_id or str(uuid4())\n",
    "\n",
    "    palette = theme[\"palette\"] = theme.get(\"palette\", {})\n",
    "    backgrounds = theme[\"backgrounds\"] = theme.get(\"backgrounds\", {})\n",
    "    rules = theme[\"rules\"] = theme.get(\"rules\", defaultdict(dict))\n",
    "    base = theme[\"text-base\"] = rules[\"p\"] = rules[\"li\"] = theme.get(\"text-base\", {\"font-size\": 3})\n",
    "    \n",
    "    all_vars = dict([\n",
    "        (name, val)\n",
    "        for name, val in\n",
    "        re.findall(var_re, scss, flags=re.M)\n",
    "    ])\n",
    "    \n",
    "    # handle colors\n",
    "    for name, val in all_vars.items():\n",
    "        if \"Color\" in name and \"selection\" not in name and \"Hover\" not in name:\n",
    "            if val in all_vars:\n",
    "                val = all_vars[val]\n",
    "\n",
    "            cid = name[1:] \n",
    "            palette[cid] = {\n",
    "                \"id\": cid,\n",
    "                \"rgb\": [int(256 * c) for c in colour.Color(val).rgb]\n",
    "            }\n",
    "\n",
    "            if \"background\" in name:\n",
    "                backgrounds[cid] = {\n",
    "                    \"id\": cid,\n",
    "                    \"background-color\": cid\n",
    "                }\n",
    "            elif \"heading\" in name:\n",
    "                update_headings(rules, {\"color\": cid})\n",
    "            elif \"main\" in name:\n",
    "                base[\"color\"] = cid\n",
    "            elif \"link\" in name:\n",
    "                rules[\"a\"][\"color\"] = cid\n",
    "            else:\n",
    "                print(theme_id, name, val)\n",
    "        elif re.match(r\".*Font$\", name):\n",
    "            font = val.split(\",\")[0].replace(\"'\", \"\")\n",
    "            if font in fonts:\n",
    "                font = fonts[font]\n",
    "            \n",
    "            if \"heading\" in name:\n",
    "                update_headings(rules, {\"font-family\": font})\n",
    "            elif \"main\" in name:\n",
    "                base[\"font-family\"] = font\n",
    "        elif \"Size\" in name:\n",
    "            size = sizes[val]\n",
    "            if \"main\" in name:\n",
    "                base[\"font-size\"] = size\n",
    "            elif \"heading\" in name:\n",
    "                h = \"h{}\".format(*re.findall(r'\\d+', name))\n",
    "                rules[h][\"font-size\"] = size\n",
    "    return theme"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Whew!\n",
    "Great, we could parse some themes... where can we get them? A handy approach would be to use `git`: try uncommenting and running the line below: this will make a directory next to `nbpresent`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 414,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "d91d5568-94d7-47d7-83e8-8057406ba51c"
    }
   },
   "outputs": [],
   "source": [
    "#!git clone https://github.com/hakimel/reveal.js.git ../../revealjs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reveal details\n",
    "Let's capture the version of the reveal from which we extracted these."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 415,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "bfcf702f-c717-4845-aa18-f0a0d36afaf2"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3.2.0'"
      ]
     },
     "execution_count": 415,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "reveal = abspath(join(\"..\", \"..\", \"revealjs\"))\n",
    "reveal_version = json.load(open(join(reveal, \"package.json\")))[\"version\"]\n",
    "reveal_version"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The base theme\n",
    "`css/theme/template/settings.scss` gives us the reveal baseline. If we could inherit themes, we'd do something clever with references, but for the time being, we can just use it as a data baseline."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 416,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "86c40b6a-a7b9-4450-af72-d7a76c5cd43b"
    }
   },
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: ed85d078-af39-42e7-a9f7-d56cee9232ce\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [43, 43, 43]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [238, 238, 238]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [19, 218, 236]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [238, 238, 238]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Oswald, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Oswald, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Oswald, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Oswald, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Oswald}\n",
       "  h6: {color: headingColor, font-family: Oswald}\n",
       "  h7: {color: headingColor, font-family: Oswald}\n",
       "  li: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "settings = open(join(reveal, \"css\", \"theme\", \"template\", \"settings.scss\")).read()\n",
    "base_theme = make_theme(settings)\n",
    "pretty(base_theme)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reading the SCSS\n",
    "Since these aren't too big, let's build up a dictionary with:\n",
    "- the name of the them, indexing...\n",
    "- ...the SCSS source"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 390,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "51d7297d-bb2d-41b4-8002-8553f8911dbd"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11"
      ]
     },
     "execution_count": 390,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scss = dict([\n",
    "    (\n",
    "        \"{}-by-revealjs-{}\".format(splitext(basename(fname))[0],\n",
    "                                   reveal_version),\n",
    "        open(fname).read()\n",
    "    )\n",
    "    for fname in glob(join(reveal, \"css\", \"theme\", \"source\", \"*.scss\"))\n",
    "])\n",
    "len(scss)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Put it all together\n",
    "Let's use that dictionary to build some themes!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 391,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "3636386c-8790-4de3-9283-3a5af4b485a7"
    }
   },
   "outputs": [],
   "source": [
    "themes = dict([\n",
    "    (name, make_theme(s, name, base_theme))\n",
    "    for name, s in scss.items()])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 423,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "dd0c9be3-c04c-4e19-88d7-14de81d6eb16"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: black-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [34, 34, 34]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [256, 256, 256]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [66, 175, 250]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [256, 256, 256]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Source Sans Pro, font-size: 5.25}\n",
       "  h2: {color: headingColor, font-family: Source Sans Pro, font-size: 4}\n",
       "  h3: {color: headingColor, font-family: Source Sans Pro, font-size: 3.5}\n",
       "  h4: {color: headingColor, font-family: Source Sans Pro, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Source Sans Pro}\n",
       "  h6: {color: headingColor, font-family: Source Sans Pro}\n",
       "  h7: {color: headingColor, font-family: Source Sans Pro}\n",
       "  li: {color: mainColor, font-family: Source Sans Pro, font-size: 6}\n",
       "  p: {color: mainColor, font-family: Source Sans Pro, font-size: 6}\n",
       "text-base: {color: mainColor, font-family: Source Sans Pro, font-size: 6}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: simple-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [256, 256, 256]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [0, 0, 0]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [0, 0, 139]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [0, 0, 0]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: News Cycle, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: News Cycle, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: News Cycle, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: News Cycle, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: News Cycle}\n",
       "  h6: {color: headingColor, font-family: News Cycle}\n",
       "  h7: {color: headingColor, font-family: News Cycle}\n",
       "  li: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: sky-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [247, 251, 252]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [51, 51, 51]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [59, 117, 158]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [51, 51, 51]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Quicksand, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Quicksand, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Quicksand, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Quicksand, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Quicksand}\n",
       "  h6: {color: headingColor, font-family: Quicksand}\n",
       "  h7: {color: headingColor, font-family: Quicksand}\n",
       "  li: {color: mainColor, font-family: Open Sans, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Open Sans, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Open Sans, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: solarized-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [253, 246, 227]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [88, 110, 117]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [38, 139, 210]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [101, 123, 131]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Oswald, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Oswald, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Oswald, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Oswald, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Oswald}\n",
       "  h6: {color: headingColor, font-family: Oswald}\n",
       "  h7: {color: headingColor, font-family: Oswald}\n",
       "  li: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: beige-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [247, 243, 222]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [51, 51, 51]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [139, 116, 61]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [51, 51, 51]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Oswald, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Oswald, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Oswald, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Oswald, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Oswald}\n",
       "  h6: {color: headingColor, font-family: Oswald}\n",
       "  h7: {color: headingColor, font-family: Oswald}\n",
       "  li: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: blood-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [34, 34, 34]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [238, 238, 238]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [170, 34, 51]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [238, 238, 238]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Ubuntu, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Ubuntu, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Ubuntu, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Ubuntu, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Ubuntu}\n",
       "  h6: {color: headingColor, font-family: Ubuntu}\n",
       "  h7: {color: headingColor, font-family: Ubuntu}\n",
       "  li: {color: mainColor, font-family: Ubuntu, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Ubuntu, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Ubuntu, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: night-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [17, 17, 17]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [238, 238, 238]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [231, 173, 82]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [238, 238, 238]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Montserrat, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Montserrat, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Montserrat, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Montserrat, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Montserrat}\n",
       "  h6: {color: headingColor, font-family: Montserrat}\n",
       "  h7: {color: headingColor, font-family: Montserrat}\n",
       "  li: {color: mainColor, font-family: Open Sans, font-size: 4}\n",
       "  p: {color: mainColor, font-family: Open Sans, font-size: 4}\n",
       "text-base: {color: mainColor, font-family: Open Sans, font-size: 4}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: serif-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [240, 241, 235]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [56, 61, 61]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [81, 72, 61]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [0, 0, 0]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: EB Garamond, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: EB Garamond, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: EB Garamond, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: EB Garamond, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: EB Garamond}\n",
       "  h6: {color: headingColor, font-family: EB Garamond}\n",
       "  h7: {color: headingColor, font-family: EB Garamond}\n",
       "  li: {color: mainColor, font-family: EB Garamond, font-size: 5}\n",
       "  p: {color: mainColor, font-family: EB Garamond, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: EB Garamond, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: white-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [256, 256, 256]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [34, 34, 34]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [42, 118, 221]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [34, 34, 34]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Source Sans Pro, font-size: 5.25}\n",
       "  h2: {color: headingColor, font-family: Source Sans Pro, font-size: 4}\n",
       "  h3: {color: headingColor, font-family: Source Sans Pro, font-size: 3.5}\n",
       "  h4: {color: headingColor, font-family: Source Sans Pro, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Source Sans Pro}\n",
       "  h6: {color: headingColor, font-family: Source Sans Pro}\n",
       "  h7: {color: headingColor, font-family: Source Sans Pro}\n",
       "  li: {color: mainColor, font-family: Source Sans Pro, font-size: 6}\n",
       "  p: {color: mainColor, font-family: Source Sans Pro, font-size: 6}\n",
       "text-base: {color: mainColor, font-family: Source Sans Pro, font-size: 6}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: moon-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [0, 43, 54]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [238, 232, 213]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [38, 139, 210]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [147, 161, 161]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Oswald, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Oswald, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Oswald, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Oswald, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Oswald}\n",
       "  h6: {color: headingColor, font-family: Oswald}\n",
       "  h7: {color: headingColor, font-family: Oswald}\n",
       "  li: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "```yaml\n",
       "backgrounds:\n",
       "  backgroundColor: {background-color: backgroundColor, id: backgroundColor}\n",
       "id: league-by-revealjs-3.2.0\n",
       "palette:\n",
       "  backgroundColor:\n",
       "    id: backgroundColor\n",
       "    rgb: [43, 43, 43]\n",
       "  headingColor:\n",
       "    id: headingColor\n",
       "    rgb: [238, 238, 238]\n",
       "  linkColor:\n",
       "    id: linkColor\n",
       "    rgb: [19, 218, 236]\n",
       "  mainColor:\n",
       "    id: mainColor\n",
       "    rgb: [238, 238, 238]\n",
       "rules:\n",
       "  a: {color: linkColor}\n",
       "  h1: {color: headingColor, font-family: Oswald, font-size: 7}\n",
       "  h2: {color: headingColor, font-family: Oswald, font-size: 5}\n",
       "  h3: {color: headingColor, font-family: Oswald, font-size: 3.75}\n",
       "  h4: {color: headingColor, font-family: Oswald, font-size: 3}\n",
       "  h5: {color: headingColor, font-family: Oswald}\n",
       "  h6: {color: headingColor, font-family: Oswald}\n",
       "  h7: {color: headingColor, font-family: Oswald}\n",
       "  li: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "  p: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "text-base: {color: mainColor, font-family: Lato, font-size: 5}\n",
       "\n",
       "```"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "list(map(pretty, themes.values()));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Load the data\n",
    "This will load up all of the themes right into this presentation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 424,
   "metadata": {
    "collapsed": false,
    "nbpresent": {
     "id": "2bed9b21-bcf4-486d-8c7b-49e86b2221f6"
    }
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "require([\"nbextensions/nbpresent/js/nbpresent.min\"], function(nbpresent){\n",
       "    nbpresent.initialized().then(function(nbpresent){\n",
       "        nbpresent.mode.tree.set([\"themes\", \"theme\"], {\n",
       "  \"black-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          256,\n",
       "          256,\n",
       "          256\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          256,\n",
       "          256,\n",
       "          256\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          34,\n",
       "          34,\n",
       "          34\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          66,\n",
       "          175,\n",
       "          250\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"black-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 6,\n",
       "      \"font-family\": \"Source Sans Pro\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.5,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5.25,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 4,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 6,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 6,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"simple-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          0,\n",
       "          0,\n",
       "          0\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          0,\n",
       "          0,\n",
       "          0\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          256,\n",
       "          256,\n",
       "          256\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          0,\n",
       "          0,\n",
       "          139\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"simple-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Lato\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"News Cycle\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"sky-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          51,\n",
       "          51,\n",
       "          51\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          51,\n",
       "          51,\n",
       "          51\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          247,\n",
       "          251,\n",
       "          252\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          59,\n",
       "          117,\n",
       "          158\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"sky-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Open Sans\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Quicksand\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Open Sans\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Open Sans\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"solarized-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          101,\n",
       "          123,\n",
       "          131\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          88,\n",
       "          110,\n",
       "          117\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          253,\n",
       "          246,\n",
       "          227\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          38,\n",
       "          139,\n",
       "          210\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"solarized-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Lato\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"beige-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          51,\n",
       "          51,\n",
       "          51\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          51,\n",
       "          51,\n",
       "          51\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          247,\n",
       "          243,\n",
       "          222\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          139,\n",
       "          116,\n",
       "          61\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"beige-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Lato\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"blood-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          238,\n",
       "          238\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          238,\n",
       "          238\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          34,\n",
       "          34,\n",
       "          34\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          170,\n",
       "          34,\n",
       "          51\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"blood-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Ubuntu\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Ubuntu\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"night-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          238,\n",
       "          238\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          238,\n",
       "          238\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          17,\n",
       "          17,\n",
       "          17\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          231,\n",
       "          173,\n",
       "          82\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"night-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 4,\n",
       "      \"font-family\": \"Open Sans\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Montserrat\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 4,\n",
       "        \"font-family\": \"Open Sans\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 4,\n",
       "        \"font-family\": \"Open Sans\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"serif-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          0,\n",
       "          0,\n",
       "          0\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          56,\n",
       "          61,\n",
       "          61\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          240,\n",
       "          241,\n",
       "          235\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          81,\n",
       "          72,\n",
       "          61\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"serif-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"EB Garamond\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"EB Garamond\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"white-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          34,\n",
       "          34,\n",
       "          34\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          34,\n",
       "          34,\n",
       "          34\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          256,\n",
       "          256,\n",
       "          256\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          42,\n",
       "          118,\n",
       "          221\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"white-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 6,\n",
       "      \"font-family\": \"Source Sans Pro\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.5,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5.25,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 4,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 6,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 6,\n",
       "        \"font-family\": \"Source Sans Pro\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"moon-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          147,\n",
       "          161,\n",
       "          161\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          232,\n",
       "          213\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          0,\n",
       "          43,\n",
       "          54\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          38,\n",
       "          139,\n",
       "          210\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"moon-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Lato\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  },\n",
       "  \"league-by-revealjs-3.2.0\": {\n",
       "    \"palette\": {\n",
       "      \"mainColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          238,\n",
       "          238\n",
       "        ],\n",
       "        \"id\": \"mainColor\"\n",
       "      },\n",
       "      \"headingColor\": {\n",
       "        \"rgb\": [\n",
       "          238,\n",
       "          238,\n",
       "          238\n",
       "        ],\n",
       "        \"id\": \"headingColor\"\n",
       "      },\n",
       "      \"backgroundColor\": {\n",
       "        \"rgb\": [\n",
       "          43,\n",
       "          43,\n",
       "          43\n",
       "        ],\n",
       "        \"id\": \"backgroundColor\"\n",
       "      },\n",
       "      \"linkColor\": {\n",
       "        \"rgb\": [\n",
       "          19,\n",
       "          218,\n",
       "          236\n",
       "        ],\n",
       "        \"id\": \"linkColor\"\n",
       "      }\n",
       "    },\n",
       "    \"id\": \"league-by-revealjs-3.2.0\",\n",
       "    \"text-base\": {\n",
       "      \"color\": \"mainColor\",\n",
       "      \"font-size\": 5,\n",
       "      \"font-family\": \"Lato\"\n",
       "    },\n",
       "    \"rules\": {\n",
       "      \"h6\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h3\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3.75,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h1\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 7,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h4\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 3,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h7\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h2\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"h5\": {\n",
       "        \"color\": \"headingColor\",\n",
       "        \"font-family\": \"Oswald\"\n",
       "      },\n",
       "      \"p\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      },\n",
       "      \"a\": {\n",
       "        \"color\": \"linkColor\"\n",
       "      },\n",
       "      \"li\": {\n",
       "        \"color\": \"mainColor\",\n",
       "        \"font-size\": 5,\n",
       "        \"font-family\": \"Lato\"\n",
       "      }\n",
       "    },\n",
       "    \"backgrounds\": {\n",
       "      \"backgroundColor\": {\n",
       "        \"background-color\": \"backgroundColor\",\n",
       "        \"id\": \"backgroundColor\"\n",
       "      }\n",
       "    }\n",
       "  }\n",
       "});\n",
       "    });\n",
       "});"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "execution_count": 424,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Javascript(jinja2.Template(\"\"\"\n",
    "require([\"nbextensions/nbpresent/js/nbpresent.min\"], function(nbpresent){\n",
    "    nbpresent.initialized().then(function(nbpresent){\n",
    "        nbpresent.mode.tree.set([\"themes\", \"theme\"], {{ themes }});\n",
    "    });\n",
    "});\n",
    "\"\"\").render(themes=json.dumps(themes, indent=2)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Test it out!\n",
    "the two cells below have already been added to a slide... try opening the per-slide theme view to see it looks with different themes!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbpresent": {
     "id": "13d14ebc-e472-4e3e-99b6-1338579f86c9"
    }
   },
   "source": [
    "# h1 h1 [h1](#)\n",
    "## h2 h2 [h2](#)\n",
    "### h3 h3 [h3](#)\n",
    "### h4 h4 [h4](#)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "nbpresent": {
     "id": "2f19ed28-0cdc-4b53-adfb-391c796ea89e"
    }
   },
   "source": [
    "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae\n",
    "\n",
    "- bullets\n",
    "- [bullets](#)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Export the data\n",
    "Oh, yeah: I did this to actually make this available in nbpresent!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 433,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "es6_tmpl = jinja2.Template(\"\"\"/*\n",
    "THIS IS GENERATED CODE BY /notebooks/Importing revealjs themes.ipynb\n",
    "DO NOT EDIT DIRECTLY\n",
    "\n",
    "Source content:\n",
    "https://github.com/hakimel/reveal.js/tree/master/css/theme\n",
    "\n",
    "All original themes copyright their respective creators:\n",
    "\n",
    "    beige       Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n",
    "    black       Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n",
    "    blood       Author: Walther http://github.com/Walther\n",
    "    league      Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n",
    "    moon        Author: Achim Staebler\n",
    "    night       Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n",
    "    serif       Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.\n",
    "    simple      Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.\n",
    "    sky         Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n",
    "    solarized   Author: Achim Staebler\n",
    "    white       By Hakim El Hattab, http://hakim.se\n",
    "\n",
    "*/\n",
    "\n",
    "export const REVEAL_THEMES = {{ themes }};\n",
    "\"\"\")\n",
    "with open(join(\"..\", \"src\", \"es6\", \"theme\", \"theme\", \"reveal.es6\"), \"w\") as es6:\n",
    "    es6.write(es6_tmpl.render(themes=json.dumps(themes, indent=2)))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  },
  "nbpresent": {
   "slides": {
    "6da57621-8b76-4867-b508-39e19a720bd3": {
     "id": "6da57621-8b76-4867-b508-39e19a720bd3",
     "prev": "9c725117-4060-461a-a5a8-58274ced85b5",
     "regions": {
      "9bc6855a-26af-4b7d-8e45-7639d212074f": {
       "attrs": {
        "height": 1,
        "width": 1,
        "x": 0,
        "y": 0
       },
       "content": {
        "cell": "47eceb3f-0349-4c2a-ba8a-7d6141967962",
        "part": "source"
       },
       "id": "9bc6855a-26af-4b7d-8e45-7639d212074f"
      }
     },
     "theme": "617213c0-f7c2-4a42-b231-bddb7ff5db47"
    },
    "9c725117-4060-461a-a5a8-58274ced85b5": {
     "id": "9c725117-4060-461a-a5a8-58274ced85b5",
     "layout": "grid",
     "prev": null,
     "regions": {
      "19c31fc5-1597-4958-945f-274a3d9af802": {
       "attrs": {
        "height": 0.8333333333333334,
        "pad": 0.01,
        "treemap:weight": 1,
        "width": 0.3333333333333333,
        "x": 0.08333333333333333,
        "y": 0.08333333333333333
       },
       "content": {
        "cell": "13d14ebc-e472-4e3e-99b6-1338579f86c9",
        "part": "source"
       },
       "id": "19c31fc5-1597-4958-945f-274a3d9af802"
      },
      "f94fc9c4-f8a1-45a1-a909-b182b2828981": {
       "attrs": {
        "height": 0.8333333333333334,
        "pad": 0.01,
        "treemap:weight": 1,
        "width": 0.4166666666666667,
        "x": 0.5,
        "y": 0.08333333333333333
       },
       "content": {
        "cell": "2f19ed28-0cdc-4b53-adfb-391c796ea89e",
        "part": "source"
       },
       "id": "f94fc9c4-f8a1-45a1-a909-b182b2828981"
      }
     },
     "theme": "beige-by-revealjs-3.2.0"
    }
   },
   "themes": {
    "beige-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "beige-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        247,
        243,
        222
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        51,
        51,
        51
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        139,
        116,
        61
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        51,
        51,
        51
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "League Gothic"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Lato",
      "font-size": 5
     }
    },
    "black-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "black-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        34,
        34,
        34
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        256,
        256,
        256
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        66,
        175,
        250
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        256,
        256,
        256
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 5.25
      },
      "h2": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 4
      },
      "h3": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 3.5
      },
      "h4": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "Source Sans Pro"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "Source Sans Pro"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "Source Sans Pro"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Source Sans Pro",
      "font-size": 6
     }
    },
    "blood-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "blood-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        34,
        34,
        34
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        238,
        238,
        238
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        170,
        34,
        51
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        238,
        238,
        238
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "Ubuntu",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "Ubuntu",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "Ubuntu",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "Ubuntu",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "Ubuntu"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "Ubuntu"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "Ubuntu"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Ubuntu",
      "font-size": 5
     }
    },
    "league-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "league-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        43,
        43,
        43
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        238,
        238,
        238
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        19,
        218,
        236
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        238,
        238,
        238
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "League Gothic"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Lato",
      "font-size": 5
     }
    },
    "moon-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "moon-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        0,
        43,
        54
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        238,
        232,
        213
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        38,
        139,
        210
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        147,
        161,
        161
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "League Gothic"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Lato",
      "font-size": 5
     }
    },
    "night-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "night-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        17,
        17,
        17
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        238,
        238,
        238
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        231,
        173,
        82
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        238,
        238,
        238
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "Montserrat",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "Montserrat",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "Montserrat",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "Montserrat",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "Montserrat"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "Montserrat"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "Montserrat"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Open Sans",
      "font-size": 4
     }
    },
    "serif-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "serif-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        240,
        241,
        235
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        56,
        61,
        61
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        81,
        72,
        61
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        0,
        0,
        0
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "Palatino Linotype",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "Palatino Linotype",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "Palatino Linotype",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "Palatino Linotype",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "Palatino Linotype"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "Palatino Linotype"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "Palatino Linotype"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Palatino Linotype",
      "font-size": 5
     }
    },
    "simple-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "simple-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        256,
        256,
        256
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        0,
        0,
        0
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        0,
        0,
        139
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        0,
        0,
        0
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "News Cycle",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "News Cycle",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "News Cycle",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "News Cycle",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "News Cycle"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "News Cycle"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "News Cycle"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Lato",
      "font-size": 5
     }
    },
    "sky-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "sky-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        247,
        251,
        252
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        51,
        51,
        51
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        59,
        117,
        158
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        51,
        51,
        51
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "Quicksand",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "Quicksand",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "Quicksand",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "Quicksand",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "Quicksand"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "Quicksand"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "Quicksand"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Open Sans",
      "font-size": 5
     }
    },
    "solarized-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "solarized-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        253,
        246,
        227
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        88,
        110,
        117
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        38,
        139,
        210
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        101,
        123,
        131
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 7
      },
      "h2": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 5
      },
      "h3": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3.75
      },
      "h4": {
       "color": "headingColor",
       "font-family": "League Gothic",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "League Gothic"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "League Gothic"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Lato",
      "font-size": 5
     }
    },
    "theme": {
     "beige-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "beige-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         247,
         243,
         222
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         51,
         51,
         51
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         139,
         116,
         61
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         51,
         51,
         51
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Lato",
       "font-size": 5
      }
     },
     "black-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "black-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         34,
         34,
         34
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         256,
         256,
         256
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         66,
         175,
         250
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         256,
         256,
         256
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 5.25
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 4
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 3.5
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Source Sans Pro"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Source Sans Pro"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Source Sans Pro"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Source Sans Pro",
        "font-size": 6
       },
       "p": {
        "color": "mainColor",
        "font-family": "Source Sans Pro",
        "font-size": 6
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Source Sans Pro",
       "font-size": 6
      }
     },
     "blood-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "blood-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         34,
         34,
         34
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         238,
         238,
         238
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         170,
         34,
         51
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         238,
         238,
         238
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Ubuntu",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Ubuntu",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Ubuntu",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Ubuntu",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Ubuntu"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Ubuntu"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Ubuntu"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Ubuntu",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Ubuntu",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Ubuntu",
       "font-size": 5
      }
     },
     "league-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "league-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         43,
         43,
         43
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         238,
         238,
         238
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         19,
         218,
         236
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         238,
         238,
         238
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Lato",
       "font-size": 5
      }
     },
     "moon-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "moon-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         0,
         43,
         54
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         238,
         232,
         213
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         38,
         139,
         210
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         147,
         161,
         161
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Lato",
       "font-size": 5
      }
     },
     "night-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "night-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         17,
         17,
         17
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         238,
         238,
         238
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         231,
         173,
         82
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         238,
         238,
         238
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Montserrat",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Montserrat",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Montserrat",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Montserrat",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Montserrat"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Montserrat"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Montserrat"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Open Sans",
        "font-size": 4
       },
       "p": {
        "color": "mainColor",
        "font-family": "Open Sans",
        "font-size": 4
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Open Sans",
       "font-size": 4
      }
     },
     "serif-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "serif-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         240,
         241,
         235
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         56,
         61,
         61
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         81,
         72,
         61
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         0,
         0,
         0
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "EB Garamond",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "EB Garamond",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "EB Garamond",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "EB Garamond",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "EB Garamond"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "EB Garamond"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "EB Garamond"
       },
       "li": {
        "color": "mainColor",
        "font-family": "EB Garamond",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "EB Garamond",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "EB Garamond",
       "font-size": 5
      }
     },
     "simple-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "simple-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         256,
         256,
         256
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         0,
         0,
         0
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         0,
         0,
         139
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         0,
         0,
         0
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "News Cycle",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "News Cycle",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "News Cycle",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "News Cycle",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "News Cycle"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "News Cycle"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "News Cycle"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Lato",
       "font-size": 5
      }
     },
     "sky-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "sky-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         247,
         251,
         252
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         51,
         51,
         51
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         59,
         117,
         158
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         51,
         51,
         51
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Quicksand",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Quicksand",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Quicksand",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Quicksand",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Quicksand"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Quicksand"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Quicksand"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Open Sans",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Open Sans",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Open Sans",
       "font-size": 5
      }
     },
     "solarized-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "solarized-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         253,
         246,
         227
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         88,
         110,
         117
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         38,
         139,
         210
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         101,
         123,
         131
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 7
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 5
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3.75
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Oswald",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Oswald"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       },
       "p": {
        "color": "mainColor",
        "font-family": "Lato",
        "font-size": 5
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Lato",
       "font-size": 5
      }
     },
     "white-by-revealjs-3.2.0": {
      "backgrounds": {
       "backgroundColor": {
        "background-color": "backgroundColor",
        "id": "backgroundColor"
       }
      },
      "id": "white-by-revealjs-3.2.0",
      "palette": {
       "backgroundColor": {
        "id": "backgroundColor",
        "rgb": [
         256,
         256,
         256
        ]
       },
       "headingColor": {
        "id": "headingColor",
        "rgb": [
         34,
         34,
         34
        ]
       },
       "linkColor": {
        "id": "linkColor",
        "rgb": [
         42,
         118,
         221
        ]
       },
       "mainColor": {
        "id": "mainColor",
        "rgb": [
         34,
         34,
         34
        ]
       }
      },
      "rules": {
       "a": {
        "color": "linkColor"
       },
       "h1": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 5.25
       },
       "h2": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 4
       },
       "h3": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 3.5
       },
       "h4": {
        "color": "headingColor",
        "font-family": "Source Sans Pro",
        "font-size": 3
       },
       "h5": {
        "color": "headingColor",
        "font-family": "Source Sans Pro"
       },
       "h6": {
        "color": "headingColor",
        "font-family": "Source Sans Pro"
       },
       "h7": {
        "color": "headingColor",
        "font-family": "Source Sans Pro"
       },
       "li": {
        "color": "mainColor",
        "font-family": "Source Sans Pro",
        "font-size": 6
       },
       "p": {
        "color": "mainColor",
        "font-family": "Source Sans Pro",
        "font-size": 6
       }
      },
      "text-base": {
       "color": "mainColor",
       "font-family": "Source Sans Pro",
       "font-size": 6
      }
     }
    },
    "white-by-revealjs-3.2.0": {
     "backgrounds": {
      "backgroundColor": {
       "background-color": "backgroundColor",
       "id": "backgroundColor"
      }
     },
     "id": "white-by-revealjs-3.2.0",
     "palette": {
      "backgroundColor": {
       "id": "backgroundColor",
       "rgb": [
        256,
        256,
        256
       ]
      },
      "headingColor": {
       "id": "headingColor",
       "rgb": [
        34,
        34,
        34
       ]
      },
      "linkColor": {
       "id": "linkColor",
       "rgb": [
        42,
        118,
        221
       ]
      },
      "mainColor": {
       "id": "mainColor",
       "rgb": [
        34,
        34,
        34
       ]
      }
     },
     "rules": {
      "a": {
       "color": "linkColor"
      },
      "h1": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 5.25
      },
      "h2": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 4
      },
      "h3": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 3.5
      },
      "h4": {
       "color": "headingColor",
       "font-family": "Source Sans Pro",
       "font-size": 3
      },
      "h5": {
       "color": "headingColor",
       "font-family": "Source Sans Pro"
      },
      "h6": {
       "color": "headingColor",
       "font-family": "Source Sans Pro"
      },
      "h7": {
       "color": "headingColor",
       "font-family": "Source Sans Pro"
      }
     },
     "text-base": {
      "color": "mainColor",
      "font-family": "Source Sans Pro",
      "font-size": 6
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
