From 098f5b9e5c4536fd955985f7bc5d4c90f58939b8 Mon Sep 17 00:00:00 2001
From: Frederik Hennig <frederik.hennig@fau.de>
Date: Mon, 25 Nov 2024 10:07:55 +0100
Subject: [PATCH] fix pystencils logo geometry. Add light and dark mode logos
 for new doc theme. Pin pydata theme dependency.

The pydata theme dependency is pinned to 0.15.4 to work around an issue with the sidebar overlay in 0.16; see [this discussion](https://github.com/executablebooks/sphinx-book-theme/issues/865)
---
 docs/source/_static/img/logo copy.png         | Bin 10116 -> 0 bytes
 ...ogo_large.svg => pystencils-logo-dark.svg} | 411 ++++++++--------
 .../_static/img/pystencils-logo-light.svg     | 465 ++++++++++++++++++
 docs/source/conf.py                           |  15 +-
 pyproject.toml                                |   3 +-
 5 files changed, 691 insertions(+), 203 deletions(-)
 delete mode 100644 docs/source/_static/img/logo copy.png
 rename docs/source/_static/img/{logo_large.svg => pystencils-logo-dark.svg} (52%)
 create mode 100644 docs/source/_static/img/pystencils-logo-light.svg

diff --git a/docs/source/_static/img/logo copy.png b/docs/source/_static/img/logo copy.png
deleted file mode 100644
index 784183cd932787cfce3cf6c38e77622f40699e8f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10116
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

diff --git a/docs/source/_static/img/logo_large.svg b/docs/source/_static/img/pystencils-logo-dark.svg
similarity index 52%
rename from docs/source/_static/img/logo_large.svg
rename to docs/source/_static/img/pystencils-logo-dark.svg
index 8b4155d3a..28c8bcaab 100644
--- a/docs/source/_static/img/logo_large.svg
+++ b/docs/source/_static/img/pystencils-logo-dark.svg
@@ -2,443 +2,460 @@
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="379.82614mm"
-   height="189.91307mm"
-   viewBox="0 0 1345.8407 672.92033"
-   id="svg2"
+   width="49.310894mm"
+   height="48.976913mm"
+   viewBox="0 0 49.310894 48.976913"
    version="1.1"
-   inkscape:version="0.92.3 (2405546, 2018-03-11)"
-   sodipodi:docname="logo_large.svg"
-   inkscape:export-filename="/home/martin/code/pycodegen/pystencils/doc/img/github_repo_card.png"
-   inkscape:export-xdpi="85.599998"
-   inkscape:export-ydpi="85.599998">
+   id="svg1"
+   inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
+   sodipodi:docname="pystencils-logo-dark.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview1"
+     pagecolor="#ffffff"
+     bordercolor="#111111"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="1"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showguides="true"
+     inkscape:lockguides="false"
+     showgrid="false"
+     inkscape:zoom="4"
+     inkscape:cx="73.125"
+     inkscape:cy="102.5"
+     inkscape:window-width="1920"
+     inkscape:window-height="1039"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1">
+    <inkscape:grid
+       id="grid4"
+       units="mm"
+       originx="4.6554451"
+       originy="-0.83749382"
+       spacingx="0.99999998"
+       spacingy="1"
+       empcolor="#0099e5"
+       empopacity="0.30196078"
+       color="#0099e5"
+       opacity="0.14901961"
+       empspacing="5"
+       enabled="true"
+       visible="false" />
+    <sodipodi:guide
+       position="38.829266,-5.2751542"
+       orientation="1,0"
+       id="guide2"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="10.481264,-5.2751542"
+       orientation="1,0"
+       id="guide3"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="24.655266,8.8988453"
+       orientation="0,-1"
+       id="guide4"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="24.655266,-19.449154"
+       orientation="0,-1"
+       id="guide5"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
   <defs
-     id="defs4">
-    <inkscape:path-effect
-       effect="spiro"
-       id="path-effect4188"
-       is_visible="true" />
+     id="defs1">
     <inkscape:path-effect
        effect="spiro"
-       id="path-effect4188-5"
-       is_visible="true" />
+       id="path-effect5"
+       is_visible="true"
+       lpeversion="0" />
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469697"
+       height="1.3493938"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4596">
+       id="filter4608-0"
+       x="-0.17469697"
+       width="1.3493938">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4598" />
+         id="feGaussianBlur4610-2" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4600" />
+         id="feComposite4612-5" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4602" />
+         id="feComposite4614-7" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4604" />
+         id="feColorMatrix4616-6" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4606" />
+         id="feBlend4618-9" />
     </filter>
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469697"
+       height="1.3493938"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4608">
+       id="filter4632-1"
+       x="-0.17469697"
+       width="1.3493938">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4610" />
+         id="feGaussianBlur4634-9" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4612" />
+         id="feComposite4636-8" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4614" />
+         id="feComposite4638-7" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4616" />
+         id="feColorMatrix4640-6" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4618" />
+         id="feBlend4642-5" />
     </filter>
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469697"
+       height="1.3493938"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4620">
+       id="filter4620-1"
+       x="-0.17469697"
+       width="1.3493938">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4622" />
+         id="feGaussianBlur4622-1" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4624" />
+         id="feComposite4624-4" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4626" />
+         id="feComposite4626-8" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4628" />
+         id="feColorMatrix4628-5" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4630" />
+         id="feBlend4630-7" />
     </filter>
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469697"
+       height="1.3493938"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4632">
+       id="filter4596-6"
+       x="-0.17469697"
+       width="1.3493938">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4634" />
+         id="feGaussianBlur4598-6" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4636" />
+         id="feComposite4600-9" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4638" />
+         id="feComposite4602-1" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4640" />
+         id="feColorMatrix4604-4" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4642" />
+         id="feBlend4606-3" />
     </filter>
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4188-5-6"
+       is_visible="true"
+       lpeversion="0" />
     <inkscape:path-effect
        effect="spiro"
        id="path-effect4188-7"
-       is_visible="true" />
+       is_visible="true"
+       lpeversion="0" />
     <inkscape:path-effect
        effect="spiro"
-       id="path-effect4188-5-6"
-       is_visible="true" />
+       id="path-effect4188-5-6-3"
+       is_visible="true"
+       lpeversion="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4188-7-2"
+       is_visible="true"
+       lpeversion="0" />
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469696"
+       height="1.3493939"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4596-6">
+       id="filter4608-0-5"
+       x="-0.17469696"
+       width="1.3493939">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4598-6" />
+         id="feGaussianBlur4610-2-5" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4600-9" />
+         id="feComposite4612-5-4" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4602-1" />
+         id="feComposite4614-7-7" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4604-4" />
+         id="feColorMatrix4616-6-6" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4606-3" />
+         id="feBlend4618-9-5" />
     </filter>
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469696"
+       height="1.3493939"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4620-1">
+       id="filter4620-1-7"
+       x="-0.17469696"
+       width="1.3493939">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4622-1" />
+         id="feGaussianBlur4622-1-4" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4624-4" />
+         id="feComposite4624-4-5" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4626-8" />
+         id="feComposite4626-8-2" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4628-5" />
+         id="feColorMatrix4628-5-5" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4630-7" />
+         id="feBlend4630-7-4" />
     </filter>
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469696"
+       height="1.3493939"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4632-1">
+       id="filter4596-6-3"
+       x="-0.17469696"
+       width="1.3493939">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4634-9" />
+         id="feGaussianBlur4598-6-0" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4636-8" />
+         id="feComposite4600-9-7" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4638-7" />
+         id="feComposite4602-1-8" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4640-6" />
+         id="feColorMatrix4604-4-6" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4642-5" />
+         id="feBlend4606-3-8" />
     </filter>
     <filter
-       y="-0.25"
-       height="1.5"
+       y="-0.17469696"
+       height="1.3493939"
        inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
        inkscape:menu="Shadows and Glows"
        inkscape:label="Dark And Glow"
        style="color-interpolation-filters:sRGB"
-       id="filter4608-0">
+       id="filter4632-1-4"
+       x="-0.17469696"
+       width="1.3493939">
       <feGaussianBlur
          stdDeviation="5"
          result="result6"
-         id="feGaussianBlur4610-2" />
+         id="feGaussianBlur4634-9-9" />
       <feComposite
          result="result8"
          in="SourceGraphic"
          operator="atop"
          in2="result6"
-         id="feComposite4612-5" />
+         id="feComposite4636-8-2" />
       <feComposite
          result="result9"
          operator="over"
          in2="SourceAlpha"
          in="result8"
-         id="feComposite4614-7" />
+         id="feComposite4638-7-0" />
       <feColorMatrix
          values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
          result="result10"
-         id="feColorMatrix4616-6" />
+         id="feColorMatrix4640-6-6" />
       <feBlend
          in="result10"
          mode="normal"
          in2="result6"
-         id="feBlend4618-9" />
+         id="feBlend4642-5-8" />
     </filter>
   </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.70000001"
-     inkscape:cx="545.01294"
-     inkscape:cy="35.725386"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="3840"
-     inkscape:window-height="2061"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0">
-    <inkscape:grid
-       type="xygrid"
-       id="grid4176"
-       originx="267.20477"
-       originy="315.17846" />
-  </sodipodi:namedview>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
   <g
      inkscape:label="Layer 1"
      inkscape:groupmode="layer"
      id="layer1"
-     transform="translate(267.20477,-694.6203)">
-    <text
-       xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:34.78659058px;line-height:125%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, ';letter-spacing:0px;word-spacing:0px;fill:#252525;fill-opacity:1;stroke:none;stroke-width:4.34832382px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="159.99139"
-       y="964.43109"
-       id="text1392-1"
-       inkscape:export-xdpi="70.669998"
-       inkscape:export-ydpi="70.669998"><tspan
-         sodipodi:role="line"
-         id="tspan1390-1"
-         x="159.99139"
-         y="964.43109"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:156.53968811px;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, Bold';fill:#252525;fill-opacity:1;stroke-width:4.34832382px">pystencils</tspan></text>
+     transform="translate(4.6554452,-0.83749467)">
     <g
-       id="g9986"
-       transform="matrix(4.1201463,0,0,4.1201463,-399.75066,866.02979)"
-       inkscape:export-xdpi="70.669998"
-       inkscape:export-ydpi="70.669998">
-      <path
-         inkscape:connector-curvature="0"
-         inkscape:original-d="M 60.891002,27.333516 H 118.64865"
-         inkscape:path-effect="#path-effect4188-7"
-         id="path4186-6"
-         d="M 60.891002,27.333516 H 118.64865"
-         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.78799796;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.70388345" />
-      <path
-         sodipodi:nodetypes="cc"
-         inkscape:connector-curvature="0"
-         inkscape:original-d="M 89.922623,-0.47572315 C 31.237244,132.88729 89.846228,36.88339 89.846228,56.13594"
-         inkscape:path-effect="#path-effect4188-5-6"
-         id="path4186-3-9"
-         d="M 89.922623,-0.47572315 89.846228,56.13594"
-         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.78799796;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.70388345" />
+       id="g24"
+       transform="translate(1.812973e-4,-8.5216229e-5)">
+      <rect
+         style="display:inline;opacity:1;fill:#ffffff;fill-opacity:0.701961;stroke-width:0.409154"
+         id="rect1"
+         width="28.348"
+         height="1.396094"
+         x="5.825819"
+         y="19.277994"
+         inkscape:label="axis-H" />
+      <rect
+         style="opacity:1;fill:#ffffff;fill-opacity:0.701961;stroke-width:0.409154"
+         id="rect2"
+         width="28.348"
+         height="1.396094"
+         x="5.8020415"
+         y="-20.697866"
+         transform="rotate(90)"
+         inkscape:label="axis-V" />
       <circle
-         transform="matrix(0.21391721,0,0,0.21391721,27.733834,-23.442344)"
+         transform="matrix(0.10711925,0,0,0.10711925,-10.838025,-5.3822253)"
          r="34.345188"
-         cy="108.02044"
-         cx="291.42902"
-         id="path4136-76"
-         style="opacity:1;fill:#e69f00;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4596-6)" />
+         cy="236.72931"
+         cx="155.56349"
+         id="path4136-7-0"
+         style="fill:#009e73;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4608-0-5)"
+         inkscape:label="circle-L" />
       <circle
-         transform="matrix(0.21391721,0,0,0.21391721,27.733834,-23.442344)"
+         transform="matrix(0.10711925,0,0,0.10711925,-11.109448,-4.9954233)"
          r="34.345188"
          cy="365.43817"
          cx="290.41885"
          id="path4136-6-0"
-         style="opacity:1;fill:#0072b2;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4620-1)" />
+         style="fill:#0072b2;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4620-1-7)"
+         inkscape:label="circle-B" />
       <circle
-         transform="matrix(0.21391721,0,0,0.21391721,27.733834,-23.442344)"
+         transform="matrix(0.10711925,0,0,0.10711925,-11.20464,-5.7690267)"
          r="34.345188"
-         cy="236.72931"
-         cx="422.24377"
-         id="path4136-3-9"
-         style="opacity:1;fill:#999999;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4632-1)" />
+         cy="108.02044"
+         cx="291.42902"
+         id="path4136-76"
+         style="fill:#e69f00;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4596-6-3)"
+         inkscape:label="circle-T" />
       <circle
-         transform="matrix(0.21391721,0,0,0.21391721,27.733834,-23.442344)"
+         transform="matrix(0.10711925,0,0,0.10711925,-11.056616,-5.2185227)"
          r="34.345188"
          cy="236.72931"
-         cx="155.56349"
-         id="path4136-7-0"
-         style="opacity:1;fill:#009e73;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4608-0)" />
+         cx="422.24377"
+         id="path4136-3-9"
+         style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4632-1-4)"
+         inkscape:label="circle-R" />
     </g>
     <text
        xml:space="preserve"
-       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.7668047px;line-height:125%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, ';letter-spacing:0px;word-spacing:0px;fill:#252525;fill-opacity:0.70629368;stroke:none;stroke-width:1.09585059px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="229.96391"
-       y="1071.713"
-       id="text1392-1-3"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11667px;line-height:125%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, ';letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-4.7506952"
+       y="47.69986"
+       id="text1392-1"
        inkscape:export-xdpi="70.669998"
        inkscape:export-ydpi="70.669998"><tspan
          sodipodi:role="line"
-         id="tspan1390-1-6"
-         x="229.96391"
-         y="1071.713"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:62.0406723px;line-height:105.99999428%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, Bold';fill:#252525;fill-opacity:0.70629368;stroke-width:1.09585059px">speed up stencil </tspan><tspan
-         sodipodi:role="line"
-         x="229.96391"
-         y="1137.4761"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:62.0406723px;line-height:105.99999428%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, Bold';fill:#252525;fill-opacity:0.70629368;stroke-width:1.09585059px"
-         id="tspan109">computations on</tspan><tspan
-         sodipodi:role="line"
-         x="229.96391"
-         y="1203.2393"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:62.0406723px;line-height:105.99999428%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, Bold';fill:#252525;fill-opacity:0.70629368;stroke-width:1.09585059px"
-         id="tspan107">numpy arrays</tspan></text>
+         id="tspan1390-1"
+         x="-4.7506952"
+         y="47.69986"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.525px;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, Bold';fill:#cccccc;fill-opacity:1;stroke-width:0.264583px">pystencils</tspan></text>
   </g>
 </svg>
diff --git a/docs/source/_static/img/pystencils-logo-light.svg b/docs/source/_static/img/pystencils-logo-light.svg
new file mode 100644
index 000000000..519a4816a
--- /dev/null
+++ b/docs/source/_static/img/pystencils-logo-light.svg
@@ -0,0 +1,465 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="49.310894mm"
+   height="48.976913mm"
+   viewBox="0 0 49.310894 48.976913"
+   version="1.1"
+   id="svg1"
+   inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
+   sodipodi:docname="pystencils-logo-light.svg"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview1"
+     pagecolor="#ffffff"
+     bordercolor="#111111"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="1"
+     inkscape:deskcolor="#d1d1d1"
+     inkscape:document-units="mm"
+     showguides="true"
+     inkscape:lockguides="false"
+     showgrid="false"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="33.410795"
+     inkscape:cy="140.00714"
+     inkscape:window-width="1920"
+     inkscape:window-height="1039"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1">
+    <inkscape:grid
+       id="grid4"
+       units="mm"
+       originx="4.6554451"
+       originy="-0.837491"
+       spacingx="0.99999998"
+       spacingy="1"
+       empcolor="#0099e5"
+       empopacity="0.30196078"
+       color="#0099e5"
+       opacity="0.14901961"
+       empspacing="5"
+       enabled="true"
+       visible="false" />
+    <sodipodi:guide
+       position="38.829267,-5.2751543"
+       orientation="1,0"
+       id="guide2"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="10.481264,-5.2751543"
+       orientation="1,0"
+       id="guide3"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="24.655266,8.8988446"
+       orientation="0,-1"
+       id="guide4"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="24.655266,-19.449154"
+       orientation="0,-1"
+       id="guide5"
+       inkscape:locked="false" />
+  </sodipodi:namedview>
+  <defs
+     id="defs1">
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect5"
+       is_visible="true"
+       lpeversion="0" />
+    <filter
+       y="-0.17469697"
+       height="1.3493938"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4608-0"
+       x="-0.17469697"
+       width="1.3493938">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4610-2" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4612-5" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4614-7" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4616-6" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4618-9" />
+    </filter>
+    <filter
+       y="-0.17469697"
+       height="1.3493938"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4632-1"
+       x="-0.17469697"
+       width="1.3493938">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4634-9" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4636-8" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4638-7" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4640-6" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4642-5" />
+    </filter>
+    <filter
+       y="-0.17469697"
+       height="1.3493938"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4620-1"
+       x="-0.17469697"
+       width="1.3493938">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4622-1" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4624-4" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4626-8" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4628-5" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4630-7" />
+    </filter>
+    <filter
+       y="-0.17469697"
+       height="1.3493938"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4596-6"
+       x="-0.17469697"
+       width="1.3493938">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4598-6" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4600-9" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4602-1" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4604-4" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4606-3" />
+    </filter>
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4188-5-6"
+       is_visible="true"
+       lpeversion="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4188-7"
+       is_visible="true"
+       lpeversion="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4188-5-6-3"
+       is_visible="true"
+       lpeversion="0" />
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4188-7-2"
+       is_visible="true"
+       lpeversion="0" />
+    <filter
+       y="-0.17469696"
+       height="1.3493939"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4608-0-5"
+       x="-0.17469696"
+       width="1.3493939">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4610-2-5" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4612-5-4" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4614-7-7" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4616-6-6" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4618-9-5" />
+    </filter>
+    <filter
+       y="-0.17469696"
+       height="1.3493939"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4620-1-7"
+       x="-0.17469696"
+       width="1.3493939">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4622-1-4" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4624-4-5" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4626-8-2" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4628-5-5" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4630-7-4" />
+    </filter>
+    <filter
+       y="-0.17469696"
+       height="1.3493939"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4596-6-3"
+       x="-0.17469696"
+       width="1.3493939">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4598-6-0" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4600-9-7" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4602-1-8" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4604-4-6" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4606-3-8" />
+    </filter>
+    <filter
+       y="-0.17469696"
+       height="1.3493939"
+       inkscape:menu-tooltip="Darkens the edge with an inner blur and adds a flexible glow"
+       inkscape:menu="Shadows and Glows"
+       inkscape:label="Dark And Glow"
+       style="color-interpolation-filters:sRGB"
+       id="filter4632-1-4"
+       x="-0.17469696"
+       width="1.3493939">
+      <feGaussianBlur
+         stdDeviation="5"
+         result="result6"
+         id="feGaussianBlur4634-9-9" />
+      <feComposite
+         result="result8"
+         in="SourceGraphic"
+         operator="atop"
+         in2="result6"
+         id="feComposite4636-8-2" />
+      <feComposite
+         result="result9"
+         operator="over"
+         in2="SourceAlpha"
+         in="result8"
+         id="feComposite4638-7-0" />
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 "
+         result="result10"
+         id="feColorMatrix4640-6-6" />
+      <feBlend
+         in="result10"
+         mode="normal"
+         in2="result6"
+         id="feBlend4642-5-8" />
+    </filter>
+  </defs>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(4.6554451,-0.83749467)">
+    <g
+       id="g25"
+       transform="translate(1.812973e-4,-8.5216229e-5)">
+      <g
+         id="g24">
+        <rect
+           style="display:inline;opacity:1;fill:#000000;fill-opacity:0.701961;stroke-width:0.409154"
+           id="rect1"
+           width="28.348"
+           height="1.396094"
+           x="5.825819"
+           y="19.277994"
+           inkscape:label="axis-H" />
+        <rect
+           style="opacity:1;fill:#000000;fill-opacity:0.701961;stroke-width:0.409154"
+           id="rect2"
+           width="28.348"
+           height="1.396094"
+           x="5.8020415"
+           y="-20.697866"
+           transform="rotate(90)"
+           inkscape:label="axis-V" />
+        <circle
+           transform="matrix(0.10711925,0,0,0.10711925,-10.838025,-5.3822253)"
+           r="34.345188"
+           cy="236.72931"
+           cx="155.56349"
+           id="path4136-7-0"
+           style="fill:#009e73;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4608-0-5)"
+           inkscape:label="circle-L" />
+        <circle
+           transform="matrix(0.10711925,0,0,0.10711925,-11.109448,-4.9954233)"
+           r="34.345188"
+           cy="365.43817"
+           cx="290.41885"
+           id="path4136-6-0"
+           style="fill:#0072b2;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4620-1-7)"
+           inkscape:label="circle-B" />
+        <circle
+           transform="matrix(0.10711925,0,0,0.10711925,-11.20464,-5.7690267)"
+           r="34.345188"
+           cy="108.02044"
+           cx="291.42902"
+           id="path4136-76"
+           style="fill:#e69f00;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4596-6-3)"
+           inkscape:label="circle-T" />
+        <circle
+           transform="matrix(0.10711925,0,0,0.10711925,-11.056616,-5.2185227)"
+           r="34.345188"
+           cy="236.72931"
+           cx="422.24377"
+           id="path4136-3-9"
+           style="fill:#999999;fill-opacity:1;stroke:none;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;filter:url(#filter4632-1-4)"
+           inkscape:label="circle-R" />
+      </g>
+      <text
+         xml:space="preserve"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.11667px;line-height:125%;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, ';letter-spacing:0px;word-spacing:0px;fill:#252525;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="-4.7508764"
+         y="47.699944"
+         id="text1392-1"
+         inkscape:export-xdpi="70.669998"
+         inkscape:export-ydpi="70.669998"
+         inkscape:label="text1392-1"><tspan
+           sodipodi:role="line"
+           id="tspan1390-1"
+           x="-4.7508764"
+           y="47.699944"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:9.525px;font-family:'Latin Modern Mono Light';-inkscape-font-specification:'Latin Modern Mono Light, Bold';fill:#252525;fill-opacity:1;stroke-width:0.264583px">pystencils</tspan></text>
+    </g>
+  </g>
+</svg>
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 03d43b19b..e88859b99 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -4,7 +4,6 @@ import re
 from pystencils import __version__ as pystencils_version
 
 project = "pystencils"
-html_logo = "_static/img/logo.png"
 html_title = "pystencils Documentation"
 
 copyright = (
@@ -72,13 +71,19 @@ myst_enable_extensions = [
 html_theme = "sphinx_book_theme"
 html_static_path = ["_static"]
 html_css_files = [
-    'css/fixtables.css',
+    "css/fixtables.css",
 ]
+html_theme_options = {
+    "logo": {
+        "image_light": "_static/img/pystencils-logo-light.svg",
+        "image_dark": "_static/img/pystencils-logo-dark.svg",
+    }
+}
 
 # NbSphinx configuration
 
-nbsphinx_execute = 'never'
-nbsphinx_codecell_lexer = 'python3'
+nbsphinx_execute = "never"
+nbsphinx_codecell_lexer = "python3"
 
 #   BibTex
-bibtex_bibfiles = ['pystencils.bib']
+bibtex_bibfiles = ["pystencils.bib"]
diff --git a/pyproject.toml b/pyproject.toml
index f0ec014a5..d9a33c9d7 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -46,7 +46,8 @@ use_cython = [
 ]
 doc = [
     'sphinx',
-    'sphinx-book-theme',
+    'pydata-sphinx-theme==0.15.4',
+    'sphinx-book-theme==1.1.3',  # workaround for https://github.com/executablebooks/sphinx-book-theme/issues/865
     'sphinxcontrib-bibtex',
     'sphinx_autodoc_typehints',
     'pandoc',
-- 
GitLab