diff --git a/docs/_static/favicon/android-chrome-144x144.png b/docs/_static/favicon/android-chrome-144x144.png
new file mode 100644
index 0000000..df14761
--- /dev/null
+++ b/docs/_static/favicon/android-chrome-144x144.png
Binary files differ
diff --git a/docs/_static/favicon/apple-touch-icon-precomposed.png b/docs/_static/favicon/apple-touch-icon-precomposed.png
new file mode 100644
index 0000000..e44a461
--- /dev/null
+++ b/docs/_static/favicon/apple-touch-icon-precomposed.png
Binary files differ
diff --git a/docs/_static/favicon/apple-touch-icon.png b/docs/_static/favicon/apple-touch-icon.png
new file mode 100644
index 0000000..c571540
--- /dev/null
+++ b/docs/_static/favicon/apple-touch-icon.png
Binary files differ
diff --git a/docs/_static/favicon/browserconfig.xml b/docs/_static/favicon/browserconfig.xml
new file mode 100644
index 0000000..bad8da3
--- /dev/null
+++ b/docs/_static/favicon/browserconfig.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<browserconfig>
+    <msapplication>
+        <tile>
+            <square150x150logo src="/_static/favicon/mstile-150x150.png"/>
+            <TileColor>#00aba9</TileColor>
+        </tile>
+    </msapplication>
+</browserconfig>
diff --git a/docs/_static/favicon/favicon-16x16.png b/docs/_static/favicon/favicon-16x16.png
new file mode 100644
index 0000000..4a8be67
--- /dev/null
+++ b/docs/_static/favicon/favicon-16x16.png
Binary files differ
diff --git a/docs/_static/favicon/favicon-32x32.png b/docs/_static/favicon/favicon-32x32.png
new file mode 100644
index 0000000..53a0bfb
--- /dev/null
+++ b/docs/_static/favicon/favicon-32x32.png
Binary files differ
diff --git a/docs/_static/favicon/favicon.ico b/docs/_static/favicon/favicon.ico
new file mode 100644
index 0000000..75cce6d
--- /dev/null
+++ b/docs/_static/favicon/favicon.ico
Binary files differ
diff --git a/docs/_static/favicon/html_code.html b/docs/_static/favicon/html_code.html
new file mode 100644
index 0000000..d4ddfc6
--- /dev/null
+++ b/docs/_static/favicon/html_code.html
@@ -0,0 +1,9 @@
+<link rel="apple-touch-icon" sizes="152x152" href="/_static/favicon/apple-touch-icon.png">
+<link rel="icon" type="image/png" sizes="32x32" href="/_static/favicon/favicon-32x32.png">
+<link rel="icon" type="image/png" sizes="16x16" href="/_static/favicon/favicon-16x16.png">
+<link rel="manifest" href="/_static/favicon/site.webmanifest">
+<link rel="mask-icon" href="/_static/favicon/safari-pinned-tab.svg" color="#5bbad5">
+<link rel="shortcut icon" href="/_static/favicon/favicon.ico">
+<meta name="msapplication-TileColor" content="#00aba9">
+<meta name="msapplication-config" content="/_static/favicon/browserconfig.xml">
+<meta name="theme-color" content="#ffffff">
\ No newline at end of file
diff --git a/docs/_static/favicon/mstile-150x150.png b/docs/_static/favicon/mstile-150x150.png
new file mode 100644
index 0000000..335cf4a
--- /dev/null
+++ b/docs/_static/favicon/mstile-150x150.png
Binary files differ
diff --git a/docs/_static/favicon/safari-pinned-tab.svg b/docs/_static/favicon/safari-pinned-tab.svg
new file mode 100644
index 0000000..2aa83a4
--- /dev/null
+++ b/docs/_static/favicon/safari-pinned-tab.svg
@@ -0,0 +1 @@
+<svg version="1" xmlns="http://www.w3.org/2000/svg" width="238.667" height="238.667" viewBox="0 0 179.000000 179.000000"><path d="M59.9 2.9c-3.3 3.3-3.7 6.9-1.3 10.6C60.7 16.8 65 18 74.1 18c6.9 0 8 .2 9.3 2.2 3.6 5.1 1.2 10.1-5.7 11.3-4.5.9-8.7 5.4-8.7 9.4s4 7.9 9 8.7c6.6 1.1 9.4 8 5 12.4-1.9 1.9-3.3 2-20 2s-18.1-.1-20-2c-4.3-4.3-1.4-12 4.5-12 4.7 0 8.4-1.9 10.1-5.1 2.1-4.1 1.7-6.5-1.5-10.1l-2.9-3.3H19.8l-2.9 3.3c-4.5 5-3.6 10.7 2.1 13.7 1.6.8 4.2 1.5 5.8 1.5 5.7 0 8.4 7.8 4.2 12-1.7 1.7-3.3 2-12.6 2-10.3 0-10.6.1-13.5 2.9-2 2-2.9 3.9-2.9 6.1 0 2.2.9 4.1 2.9 6.1L5.8 82H107l3.2-2.8c4.3-4 4.3-8.4 0-12.4-2.4-2.1-4.3-2.8-7.2-2.8-5.1 0-8-2.7-8-7.3 0-6.3 1.3-6.7 22.8-6.7 18.6 0 19.1.1 20.6 2.2 3.5 4.9.5 11.8-4.9 11.8-3.5 0-7.1 2.5-8.5 6-1.4 3.5-.7 6 2.7 9.4l2.6 2.6h21.1c22.5-.1 22.7-.1 26-5.2 2.3-3.5 1.5-6.9-2.2-10.3-2.5-2.3-3.4-2.5-11.9-2.5-8 0-9.6-.3-11.3-2-3.9-3.9-1.6-12 3.4-12 .9 0 3-.7 4.6-1.5 5.7-3 6.6-8.7 2.1-13.7l-2.9-3.3-30.9-.3c-34-.3-33.3-.2-33.3-6.6 0-5.5 1-6.1 12.1-6.6 9.9-.5 10.2-.6 13-3.8 3.7-4.1 3.7-7.6 0-11.3L117.2 0H62.8l-2.9 2.9zM2.9 98.9c-2 2-2.9 3.9-2.9 6.1 0 2.2.9 4.1 2.9 6.1 2.9 2.8 3.2 2.9 13.5 2.9 9.3 0 10.9.3 12.6 2 2.4 2.4 2.6 6.7.5 9.7-1.1 1.5-2.8 2.2-7 2.5-8.8.7-13.3 6.5-10 12.9 2.9 5.5 5.2 5.9 38.9 5.9 30.4 0 30.5 0 32 2.2.9 1.2 1.6 3.2 1.6 4.3 0 1.1-.7 3.1-1.6 4.3-1.3 2-2.4 2.2-9.3 2.2-4.3 0-9.2.5-10.9 1.1-6.3 2.2-8.2 9.6-3.6 14.3l2.7 2.6h54.9l2.9-2.9c3.7-3.8 3.7-7.2 0-11.3-2.9-3.2-3.2-3.3-12.3-3.6-10.5-.4-12.8-1.6-12.8-6.6 0-6.3-1-6.1 32.9-6.6l31-.5 3-2.9c2.1-2 3.1-3.9 3.1-5.9 0-7-4.4-9.7-16.3-9.7-9.7 0-11.7-1.3-11.7-7.3s2-6.7 19.8-6.7c16.8 0 19-.6 21.2-6 1-2.4 1-3.6 0-6-2.5-6.1-1.5-6-51.5-6H80.8l-2.9 2.9c-3.6 3.7-3.8 7.9-.5 11.7 2 2.4 3.3 2.9 9.6 3.5 5.4.5 7.7 1.1 8.7 2.5 1.8 2.4 1.7 6.5-.3 9.2-1.5 2.2-1.8 2.2-26.4 2.2-24.6 0-24.9 0-26.4-2.2-1.9-2.7-2.1-6.8-.3-9.1.7-1 3.5-2.1 6.7-2.6 9.6-1.5 13.1-9.1 7.1-15.2L53.2 96H5.8l-2.9 2.9zm122.7 17.6c1.8 2.5 1.8 6.5-.2 9.3-1.3 1.9-2.4 2.2-8.1 2.2-7.8 0-10.3-1.6-10.3-6.5 0-5.9 2.7-7.6 11.4-7.2 4.3.3 6.2.8 7.2 2.2z"/></svg>
\ No newline at end of file
diff --git a/docs/_static/favicon/site.webmanifest b/docs/_static/favicon/site.webmanifest
new file mode 100644
index 0000000..d37a37a
--- /dev/null
+++ b/docs/_static/favicon/site.webmanifest
@@ -0,0 +1,13 @@
+{
+    "name": "",
+    "short_name": "",
+    "icons": [
+        {
+            "src": "/_static/favicon/android-chrome-144x144.png",
+            "sizes": "144x144",
+            "type": "image/png"
+        }
+    ],
+    "theme_color": "#ffffff",
+    "background_color": "#ffffff"
+}
diff --git a/docs/_static/skywater-favicon.png b/docs/_static/skywater-favicon.png
new file mode 100644
index 0000000..5c09b97
--- /dev/null
+++ b/docs/_static/skywater-favicon.png
Binary files differ
diff --git a/docs/_static/skywater-pdk-logo-top.png b/docs/_static/skywater-pdk-logo-top.png
new file mode 100644
index 0000000..fe7e334
--- /dev/null
+++ b/docs/_static/skywater-pdk-logo-top.png
Binary files differ
diff --git a/docs/_static/skywater-pdk-logo.png b/docs/_static/skywater-pdk-logo.png
new file mode 100644
index 0000000..19781b5
--- /dev/null
+++ b/docs/_static/skywater-pdk-logo.png
Binary files differ
diff --git a/docs/_templates/relbar.html b/docs/_templates/relbar.html
new file mode 100644
index 0000000..d693e3e
--- /dev/null
+++ b/docs/_templates/relbar.html
@@ -0,0 +1,13 @@
+{% extends '!relbar.html' %}
+
+{%- block extralinks -%}
+{{ super() }}
+
+<li class="md-tabs__item"><a href="https://www.skywatertechnology.com/" class="md-tabs__link"><i class="md-icon">business</i> SkyWater</a></li>
+<li class="md-tabs__item"><a href="https://efabless.com/open_shuttle_program" class="md-tabs__link"><i class="md-icon">precision_manufacturing</i> Shuttle Program</a></li>
+<li class="md-tabs__item"><a href="https://join.skywater.tools/" class="md-tabs__link"><i class="md-icon">chat_bubble</i> Chat</a></li>
+<li class="md-tabs__item"><a href="https://groups.google.com/g/skywater-pdk-users" class="md-tabs__link"><i class="md-icon">campaign</i>Announcements</a></li>
+<li class="md-tabs__item"><a href="https://groups.google.com/g/skywater-pdk-users" class="md-tabs__link"><i class="md-icon">mail</i> Mailing List</a></li>
+
+
+{%- endblock -%}
diff --git a/docs/conf.py b/docs/conf.py
index e60277c..8ba781d 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -14,13 +14,16 @@
 # limitations under the License.
 #
 # SPDX-License-Identifier: Apache-2.0
+
 #
 # Configuration file for the Sphinx documentation builder.
 #
 # This file does only contain a selection of the most common options. For a
 # full list see the documentation:
 # http://www.sphinx-doc.org/en/master/config
+
 # -- Path setup --------------------------------------------------------------
+
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
@@ -30,18 +33,26 @@
 import re
 # import sys
 # sys.path.insert(0, os.path.abspath('.'))
+
+
 # -- Project information -----------------------------------------------------
+
 project = 'SkyWater SKY130 PDK'
 copyright = '2020, SkyWater PDK Authors'
 author = 'SkyWater PDK Authors'
+
 # The short X.Y version
 version = ''
 # The full version, including alpha/beta/rc tags
 release = ''
+
+
 # -- General configuration ---------------------------------------------------
+
 # If your documentation needs a minimal Sphinx version, state it here.
 #
 # needs_sphinx = '1.0'
+
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
@@ -55,15 +66,19 @@
     'sphinx.ext.todo',
     'sphinxcontrib_hdl_diagrams',
 ]
+
 # Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
+
 # The suffix(es) of source filenames.
 # You can specify multiple suffix as a list of string:
 #
 # source_suffix = ['.rst', '.md']
 source_suffix = '.rst'
+
 # The master toctree document.
 master_doc = 'index'
+
 # Enable github links when not on readthedocs
 on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
 if not on_rtd:
@@ -80,6 +95,7 @@
     import subprocess
     subprocess.call('git fetch origin --unshallow', cwd=docs_dir, shell=True)
     subprocess.check_call('git fetch origin --tags', cwd=docs_dir, shell=True)
+
 # The version info for the project you're documenting, acts as replacement for
 # |version| and |release|, also used in various other places throughout the
 # built documents.
@@ -88,12 +104,14 @@
 release = re.sub('^v', '', os.popen('git describe ').read().strip())
 # The short X.Y version.
 version = release
+
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
 #
 # This is also used if you do content translation via gettext catalogs.
 # Usually you set "language" from the command line for these cases.
 language = None
+
 # List of patterns, relative to source directory, that match files and
 # directories to ignore when looking for source files.
 # This pattern also affects html_static_path and html_extra_path.
@@ -106,75 +124,60 @@
     'code-of-conduct.rst',
     'rules/periphery-rules.rst',
     'rules/device-details/*/index.rst',
+    'rules/summary/*-key.rst',
+    'rules/layers/*-key.rst',
+    'rules/hv/*-key.rst',
 ]
+
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = None
+
+
 # -- Options for HTML output -------------------------------------------------
+
 # Prefix each section label with the name of the document it is in, followed by
 # a colon. For example, index:Introduction for a section called Introduction
 # that appears in document index.rst. Useful for avoiding ambiguity when the
 # same section heading appears in different documents.
 #autosectionlabel_prefix_document = True
+
+
 # -- Options for HTML output -------------------------------------------------
+
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
 #
 html_theme = "sphinx_symbiflow_theme"
+
+html_logo = "_static/skywater-pdk-logo-top.png"
+
 # Theme options are theme-specific and customize the look and feel of a theme
 # further.  For a list of options available for each theme, see the
 # documentation.
-#
+# https://sphinx-symbiflow-theme.readthedocs.io/en/latest/customization.html
 html_theme_options = {
-    # Specify a list of menu in Header.
-    # Tuples forms:
-    #  ('Name', 'external url or path of pages in the document', boolean, 'icon name')
-    #
-    # Third argument:
-    # True indicates an external link.
-    # False indicates path of pages in the document.
-    #
-    # Fourth argument:
-    # Specify the icon name.
-    # For details see link.
-    # https://material.io/icons/
-    'header_links': [
-        ('Home', 'index', False, 'home'),
-        ("GitHub", "https://github.com/google/skywater-pdk", True, 'code'),
-        ("SkyWater", "https://www.skywatertechnology.com/", True, 'link'),
-    ],
-    # Customize css colors.
-    # For details see link.
-    # https://getmdl.io/customize/index.html
-    #
-    # Values: amber, blue, brown, cyan deep_orange, deep_purple, green, grey, indigo, light_blue,
-    #         light_green, lime, orange, pink, purple, red, teal, yellow(Default: indigo)
-    'primary_color': 'light_green',
-    # Values: Same as primary_color. (Default: pink)
-    'accent_color': 'teal',
-    # Customize layout.
-    # For details see link.
-    # https://getmdl.io/components/index.html#layout-section
-    'fixed_drawer': True,
-    'fixed_header': True,
-    'header_waterfall': True,
-    'header_scroll': False,
-    # Render title in header.
-    # Values: True, False (Default: False)
-    'show_header_title': False,
-    # Render title in drawer.
-    # Values: True, False (Default: True)
-    'show_drawer_title': True,
-    # Render footer.
-    # Values: True, False (Default: True)
-    'show_footer': True,
+    'nav_title': 'SkyWater ReRAM 130nm PDK',
+
+    'color_primary': 'light-green',
+    'color_accent': 'teal',
+
+    # Set the repo location to get a badge with stats
+    'github_url': 'https://github.com/google/skywater-pdk-libs-sky130_fd_pr_reram',
+    'repo_name': 'google/skywater-pdk-libs-sky130_fd_pr_reram',
+
+    'globaltoc_depth': 4,
+    'globaltoc_collapse': False,
+
     # Hide the symbiflow links
     'hide_symbiflow_links': True,
     'license_url' : 'https://www.apache.org/licenses/LICENSE-2.0',
 }
+
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
 html_static_path = ['_static']
+
 # Custom sidebar templates, must be a dictionary that maps document names
 # to template names.
 #
@@ -182,24 +185,33 @@
 # defined by theme itself.  Builtin themes are using these templates by
 # default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
 # 'searchbox.html']``.
+
 # -- Options for HTMLHelp output ---------------------------------------------
+
 # Output file base name for HTML help builder.
 htmlhelp_basename = 'skywater-pdk-doc'
+
+
 # -- Options for LaTeX output ------------------------------------------------
+
 latex_elements = {
     # The paper size ('letterpaper' or 'a4paper').
     #
     # 'papersize': 'letterpaper',
+
     # The font size ('10pt', '11pt' or '12pt').
     #
     # 'pointsize': '10pt',
+
     # Additional stuff for the LaTeX preamble.
     #
     # 'preamble': '',
+
     # Latex figure (float) alignment
     #
     # 'figure_align': 'htbp',
 }
+
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
@@ -217,14 +229,19 @@
         'manual',
     ),
 ]
+
 # -- Options for manual page output ------------------------------------------
+
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
     (master_doc, 'skywater-pdk', 'SkyWater SKY130 PDK Documentation',
      [author], 1)
 ]
+
+
 # -- Options for Texinfo output ----------------------------------------------
+
 # Grouping the document tree into Texinfo files. List of tuples
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
@@ -246,28 +263,41 @@
         'Miscellaneous',
     ),
 ]
+
 # -- Options for Epub output -------------------------------------------------
+
 # Bibliographic Dublin Core info.
 epub_title = project
+
 # The unique identifier of the text. This can be a ISBN number
 # or the project homepage.
 #
 # epub_identifier = ''
+
 # A unique identification for the text.
 #
 # epub_uid = ''
+
 # A list of files that should not be packed into the epub file.
 epub_exclude_files = ['search.html']
+
 # Enable the figures and numbers
 numfig = True
+
 # -- Extension configuration -------------------------------------------------
+
 # -- Options for todo extension ----------------------------------------------
+
 # If true, `todo` and `todoList` produce output, else they produce nothing.
 todo_include_todos = True
+
+
 import re
 from docutils.parsers.rst import directives, roles, nodes
+
 LIB_REGEX = re.compile('sky130_(?P<lib_src>[^_\s]*)_(?P<lib_type>[^_\s]*)(_(?P<lib_name>[^_\s]*))?')
 CELL_REGEX = re.compile('sky130_(?P<lib_src>[^_\s]*)_(?P<lib_type>[^_\s]*)(_(?P<lib_name>[^_\s]*))?__(?P<cell_name>[^\s]*)')
+
 def lib_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
     """Library name which gets colorized."""
     m = LIB_REGEX.match(text)
@@ -276,6 +306,7 @@
         prb = inliner.problematic(rawtext, rawtext, msg)
         return [prb], [msg]
     app = inliner.document.settings.env.app
+
     #lib_process_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter)
     #lib_src_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter)
     #lib_type_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter)
@@ -284,6 +315,7 @@
     lib_src = m.group('lib_src')
     lib_type = m.group('lib_type')
     lib_name = m.group('lib_name')
+
     r = [
         nodes.inline(lib_process, lib_process, classes=['lib-process']),
         nodes.inline('_', '_', options=options),
@@ -294,7 +326,10 @@
     if lib_name:
         r.append(nodes.inline('_', '_', options=options))
         r.append(nodes.inline(lib_name, lib_name, classes=['lib-name']))
+
     return r, []
+
+
 def cell_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
     """Cell name which gets colorized."""
     m = CELL_REGEX.match(text)
@@ -303,6 +338,7 @@
         prb = inliner.problematic(rawtext, rawtext, msg)
         return [prb], [msg]
     app = inliner.document.settings.env.app
+
     #lib_process_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter)
     #lib_src_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter)
     #lib_type_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter)
@@ -312,6 +348,7 @@
     lib_type = m.group('lib_type')
     lib_name = m.group('lib_name')
     cell_name = m.group('cell_name')
+
     r = [
         nodes.inline(lib_process, lib_process, classes=['lib-process']),
         nodes.inline('_', '_', options=options),
@@ -324,13 +361,18 @@
         r.append(nodes.inline(lib_name, lib_name, classes=['lib-name']))
     r.append(nodes.inline('__', '__', options=options))
     r.append(nodes.inline(cell_name, cell_name, classes=['cell-name']))
+
     return r, []
+
+
 def add_role(app, new_role_name):
     options = {
         'class': directives.class_option(new_role_name),
     }
     role = roles.CustomRole(new_role_name, roles.generic_custom_role, options, "")
     app.add_role(new_role_name, role)
+
+
 def setup(app):
     app.add_css_file('extra.css')
     add_role(app, 'cell_name')
@@ -342,7 +384,7 @@
     add_role(app, 'drc_tag')
     add_role(app, 'drc_flag')
     add_role(app, 'layer')
+
     app.add_role('lib', lib_role)
     app.add_role('cell', cell_role)
     app.add_role('model', cell_role)
-
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 6ffa95d..b585a69 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1,16 +1,22 @@
-git+https://github.com/SymbiFlow/sphinx_materialdesign_theme.git#egg=sphinx-symbiflow-theme
+git+https://github.com/SymbiFlow/sphinx_symbiflow_theme.git#egg=sphinx-symbiflow-theme
+
 docutils
 sphinx
 sphinx-autobuild
+
 # Verilog domain
 sphinx-verilog-domain
 # Verilog diagrams using Yosys + netlistsvg
 sphinxcontrib-hdl-diagrams
+
 # Module diagrams
 git+https://github.com/SymbiFlow/symbolator.git#egg=symbolator
 git+https://github.com/hdl/pyHDLparser.git#egg=hdlparse
+
 # pycairo
 # vext.gi
+
 restructuredtext-lint
 rstdoc
+
 tabulate
