Repository: python-graphblas/python-graphblas (language: python)

Issue:
ENH: python-graphblas could use a logo!
Any volunteers?  Please respect copywrite licenses.


Discussion / hints:
lmao, so I spent some time doodling.  These are pretty rough.  Enjoy!
![Project 3_1](https://user-images.githubusercontent.com/2058401/167239424-d65b9863-f2e5-4637-b15e-1139d3c1be49.png)
![Notes 3 20220506004541b](https://user-images.githubusercontent.com/2058401/167239460-6476f22f-6454-47ab-8853-a9813aeb1c20.png)
Thoughts and impressions?  Of these, I think maybe one or two have promise.  The rest were included for fun and brainstorming.

Also, I can't shake the feeling that I'm straight up copying some other logos from memory...
For my lack of innovation  😅:

![Python_GraphBLAS_logo](https://user-images.githubusercontent.com/78448465/167701906-f5a9313f-8c49-49b7-acb5-b9f383451e4f.svg)

![Python_GraphBLAS_logo](https://user-images.githubusercontent.com/78448465/167707768-650427e6-1f2e-483b-b631-79d64a185a7c.svg)


Heh, [Python logo] + [GraphBLAS logo] is a natural take for `python-graphblas`.

A different take: how about a mascot instead?  Everybody loves mascots, right? 😸 
I had some fun with [DALL-E mini (https://huggingface.co/spaces/dalle-mini/dalle-mini)](https://huggingface.co/spaces/dalle-mini/dalle-mini) and generated these:
![graph_logos2](https://user-images.githubusercontent.com/2058401/172948743-36f37a87-44d4-4759-8a9b-ad02b35b29c0.PNG)

Lots of interesting, fun things here.  If I had to call out one of them, I think 47 is pretty neat.  So is the style of 83 where the middle node is a cube.

Larger versions of these are available upon request.
How about something like this?

![python-graphblas-sketch](https://user-images.githubusercontent.com/2807270/179295665-ca160f2a-5d4e-4f46-85e1-fd7e65b5b439.jpg)

We could even drop the `python-` part given that we have a snake as part of the word `graphblas` and the library is imported as `graphblas`.

We obviously need a real artist to make this look good, but it gives the general idea.
![logo-light](https://user-images.githubusercontent.com/2807270/182746937-3ac8a12f-0fdf-424f-b63a-c5ef76672e1f.svg)
![logo-dark](https://user-images.githubusercontent.com/2807270/182746944-52da2783-016c-4004-b9c7-c97b69ba8dd7.svg)


Just made these up in Inkscape. Let me know what you think.

I liked in the doodles the variations that combine matrix brackets and graphs/networks, since it reflects matrix-operations on graphs.
Sketch of latest proposal:

![IMG_20230913_115600700-small](https://github.com/python-graphblas/python-graphblas/assets/2058401/2b3ca4c9-23db-4ec0-aaa8-0695ca1a9dd1)
I've started experimenting with versions of the above sketch. Runnable and modifiable code is here:
https://gist.github.com/eriknw/10b20fb5c3b137ed84e5d30b00a9a788
Example images (transparent background, black background, white background):
![python_graphblas_logo0](https://github.com/python-graphblas/python-graphblas/assets/2058401/1ad9d72a-1b51-41cc-a01d-3b8a0bc535cc)
![python_graphblas_logo0_black](https://github.com/python-graphblas/python-graphblas/assets/2058401/ba6a612e-860a-4ae4-ab76-3dd2fcc2d6c5)
![python_graphblas_logo0_white](https://github.com/python-graphblas/python-graphblas/assets/2058401/30d9e046-fce8-4a1e-a4d5-279192509c9a)
This is meant as a beginning... what do people think? (I don't fully trust my judgement here)

Fix patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index bff5b80cd..565e1dc0d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -51,7 +51,7 @@ repos:
       - id: isort
   # Let's keep `pyupgrade` even though `ruff --fix` probably does most of it
   - repo: https://github.com/asottile/pyupgrade
-    rev: v3.13.0
+    rev: v3.14.0
     hooks:
       - id: pyupgrade
         args: [--py39-plus]
@@ -80,14 +80,14 @@ repos:
         # These versions need updated manually
         - flake8==6.1.0
         - flake8-bugbear==23.9.16
-        - flake8-simplify==0.20.0
+        - flake8-simplify==0.21.0
   - repo: https://github.com/asottile/yesqa
     rev: v1.5.0
     hooks:
       - id: yesqa
         additional_dependencies: *flake8_dependencies
   - repo: https://github.com/codespell-project/codespell
-    rev: v2.2.5
+    rev: v2.2.6
     hooks:
       - id: codespell
         types_or: [python, rst, markdown]
diff --git a/README.md b/README.md
index 4581ef54a..4509e44ac 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-![Python-graphblas](https://raw.githubusercontent.com/python-graphblas/python-graphblas/main/docs/_static/img/logo-name-medium.svg)
+![Python-graphblas](https://raw.githubusercontent.com/python-graphblas/python-graphblas/main/docs/_static/img/logo-horizontal-medium-big.svg)
 
 [![conda-forge](https://img.shields.io/conda/vn/conda-forge/python-graphblas.svg)](https://anaconda.org/conda-forge/python-graphblas)
 [![pypi](https://img.shields.io/pypi/v/python-graphblas.svg)](https://pypi.python.org/pypi/python-graphblas/)
diff --git a/binder/environment.yml b/binder/environment.yml
index ef72a4d2b..11cd98e0c 100644
--- a/binder/environment.yml
+++ b/binder/environment.yml
@@ -2,9 +2,11 @@ name: graphblas
 channels:
     - conda-forge
 dependencies:
-    - python=3.10
+    - python=3.11
     - python-graphblas
     - matplotlib
     - networkx
     - pandas
     - scipy
+    - drawsvg
+    - cairosvg
diff --git a/docs/_static/img/logo-horizontal-dark.svg b/docs/_static/img/logo-horizontal-dark.svg
new file mode 100644
index 000000000..be9e5ccca
--- /dev/null
+++ b/docs/_static/img/logo-horizontal-dark.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="243.093" height="67.371" xmlns:v="https://vecta.io/nano"><g transform="scale(.42585697941226663)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(83.753 11.229)"><svg width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#c9d1d9" stroke="#c9d1d9"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/logo-horizontal-light.svg b/docs/_static/img/logo-horizontal-light.svg
new file mode 100644
index 000000000..5894eed9a
--- /dev/null
+++ b/docs/_static/img/logo-horizontal-light.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="243.093" height="67.371" xmlns:v="https://vecta.io/nano"><g transform="scale(.42585697941226663)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(83.753 11.229)"><svg width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#39393a" stroke="#39393a"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/logo-horizontal-medium-big.svg b/docs/_static/img/logo-horizontal-medium-big.svg
new file mode 100644
index 000000000..649c2aef3
--- /dev/null
+++ b/docs/_static/img/logo-horizontal-medium-big.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="486.186" height="134.742" xmlns:v="https://vecta.io/nano"><g transform="scale(.8517139588245333)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(167.506 22.457)"><svg width="318.68" height="89.828" viewBox="0 0 41.983 11.883"><g fill="#848487" stroke="#848487"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/logo-horizontal-medium.svg b/docs/_static/img/logo-horizontal-medium.svg
new file mode 100644
index 000000000..038781a3f
--- /dev/null
+++ b/docs/_static/img/logo-horizontal-medium.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="243.093" height="67.371" xmlns:v="https://vecta.io/nano"><g transform="scale(.42585697941226663)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(83.753 11.229)"><svg width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#848487" stroke="#848487"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/logo-name-light.svg b/docs/_static/img/logo-name-light.svg
index e9d9738ee..3331ae561 100644
--- a/docs/_static/img/logo-name-light.svg
+++ b/docs/_static/img/logo-name-light.svg
@@ -1,1 +1,1 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g stroke="#000"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#B"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#B" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs ><path id="B" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#39393a" stroke="#39393a"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#B"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#B" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs ><path id="B" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg>
diff --git a/docs/_static/img/logo-name-medium-big.svg b/docs/_static/img/logo-name-medium-big.svg
new file mode 100644
index 000000000..7bb245898
--- /dev/null
+++ b/docs/_static/img/logo-name-medium-big.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="318.68" height="89.828" viewBox="0 0 41.983 11.883"><g fill="#848487" stroke="#848487"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#B"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#B" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs ><path id="B" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg>
diff --git a/docs/_static/img/logo-name-medium.svg b/docs/_static/img/logo-name-medium.svg
index 2c718ba26..3128fda35 100644
--- a/docs/_static/img/logo-name-medium.svg
+++ b/docs/_static/img/logo-name-medium.svg
@@ -1,1 +1,1 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="318.68" height="89.828" viewBox="0 0 41.983 11.883"><g fill="#818081" stroke="#818081"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#B"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#B" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs ><path id="B" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#848487" stroke="#848487"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#B"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#B" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs ><path id="B" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg>
diff --git a/docs/_static/img/logo-vertical-dark.svg b/docs/_static/img/logo-vertical-dark.svg
new file mode 100644
index 000000000..25dcefc17
--- /dev/null
+++ b/docs/_static/img/logo-vertical-dark.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="159.34" height="146.236" xmlns:v="https://vecta.io/nano"><g transform="matrix(.593144 0 0 .593144 26.556667 0)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(0 101.322)"><svg width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#c9d1d9" stroke="#c9d1d9"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/logo-vertical-light.svg b/docs/_static/img/logo-vertical-light.svg
new file mode 100644
index 000000000..1cb22644d
--- /dev/null
+++ b/docs/_static/img/logo-vertical-light.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="159.34" height="146.236" xmlns:v="https://vecta.io/nano"><g transform="matrix(.593144 0 0 .593144 26.556667 0)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(0 101.322)"><svg width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#39393a" stroke="#39393a"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/logo-vertical-medium.svg b/docs/_static/img/logo-vertical-medium.svg
new file mode 100644
index 000000000..db2fcaefe
--- /dev/null
+++ b/docs/_static/img/logo-vertical-medium.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="159.34" height="146.236" xmlns:v="https://vecta.io/nano"><g transform="matrix(.593144 0 0 .593144 26.556667 0)"><svg width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307V-10.26L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg></g><g transform="translate(0 101.322)"><svg width="159.34" height="44.914" viewBox="0 0 41.983 11.883"><g fill="#848487" stroke="#848487"><path d="M3.501 1.189q-.172 0-.328.031-.156.031-.333.107v1.236q.095.071.265.116.17.045.395.045.344 0 .516-.22.172-.22.172-.566 0-.362-.184-.555-.184-.195-.505-.195zM2.804.974q.016.078.028.142.242-.093.412-.133.17-.04.342-.04.477 0 .733.271.258.271.258.733 0 .437-.284.731-.281.293-.747.293-.261 0-.433-.045-.17-.047-.272-.111v.948h-.368v-2.5q-.005-.124-.021-.289zm3.275 1.572L6.74.974h.398L6.135 3.088q-.084.169-.172.297-.088.127-.198.215-.107.089-.256.135-.147.047-.363.047-.17 0-.377-.035l.067-.275q.142.045.298.045.147 0 .247-.036.1-.035.174-.102.074-.067.13-.166.058-.098.119-.224.035-.064.063-.18L4.923.974h.395zM7.312.974h.363V.477h.368v.497h.612l-.04.249h-.572v1.135q0 .169.07.271.072.102.223.102.081 0 .205-.018.123-.02.163-.029l.028.249q-.047.007-.198.022-.149.016-.235.016-.295 0-.461-.115-.163-.115-.163-.424v-1.21h-.363zM9.224.088h.368v1.037q.126-.058.33-.12.207-.062.468-.062.395 0 .605.178.212.178.212.482v1.336h-.368l.002-1.319q0-.209-.133-.326-.133-.116-.414-.116-.177 0-.363.047-.186.047-.34.111v1.603h-.368zm3.795 2.653q.193 0 .337-.071.144-.071.286-.257.144-.186.144-.504 0-.278-.198-.506-.195-.229-.575-.229-.379 0-.586.218-.205.218-.205.571 0 .302.147.469.149.167.298.238.151.069.351.069zm.016.231q-.591 0-.893-.286-.302-.286-.302-.757 0-.422.323-.704.323-.282.861-.282.549 0 .847.293.3.293.3.73 0 .415-.314.711-.314.295-.821.295zm1.788-1.745q0-.118-.021-.253h.356q.021.08.028.175.161-.082.391-.144.233-.062.463-.062.356 0 .563.162.209.162.209.46v1.374h-.368v-1.35q0-.177-.119-.293-.119-.118-.335-.118-.216 0-.428.051-.212.051-.372.131v1.579h-.368zm3.872.278l-.058.224h-1.224l.058-.224z" stroke-width=".184"/><g stroke-width=".149"><path d="M2.199 7.528q.289 0 .489-.093.205-.098.335-.275.13-.177.186-.424.061-.247.061-.55 0-.228-.065-.438-.065-.214-.2-.373-.13-.158-.335-.252-.205-.098-.484-.098-.34 0-.564.112-.224.107-.359.284-.135.177-.191.401-.056.224-.056.452 0 .233.07.456.075.224.219.401.149.177.368.289.224.107.526.107zM1.114 9.433q-.21.228-.326.456-.112.228-.112.442 0 .284.121.466.121.186.312.293.191.107.429.149.238.042.475.042.13 0 .312-.019.186-.014.382-.051.2-.037.391-.102.196-.061.349-.154.154-.093.247-.224.098-.126.098-.293 0-.163-.102-.293-.098-.126-.265-.224-.163-.098-.391-.177-.224-.079-.769-.182-.363-.056-.568-.075-.2-.023-.354-.033-.154-.014-.228-.023zm3.302-4.215q-.186-.005-.345.019-.158.023-.312.07.116.177.196.405.084.224.084.526 0 .456-.158.792-.158.331-.424.55-.265.214-.61.321-.345.102-.717.102-.317 0-.657-.079-.075.009-.191.051-.116.042-.228.112-.107.07-.186.163-.079.088-.079.196 0 .121.163.191.163.07.429.121.265.047.941.14.713.116 1.048.214.34.093.606.252.266.158.429.387.163.233.163.568 0 .321-.121.554-.121.233-.326.396-.2.168-.466.27-.265.107-.559.168-.293.061-.596.079-.298.023-.568.023-.429 0-.787-.075-.354-.075-.61-.233-.256-.154-.401-.396-.144-.238-.144-.568 0-.177.061-.354.065-.172.172-.331.112-.158.252-.293.144-.135.303-.242-.126-.061-.247-.126-.121-.07-.219-.154-.093-.088-.154-.2-.061-.116-.061-.27 0-.168.098-.307.102-.14.247-.252.149-.112.312-.186.163-.075.289-.107-.391-.224-.592-.568-.2-.349-.2-.871 0-.424.168-.75.172-.331.447-.55.275-.219.629-.331.354-.116.722-.116.321 0 .643.088.321.088.601.265.363-.14.703-.196.345-.056.652-.056l-.084.596zm1.756-.61q.033.121.047.326.019.2.019.526.359-.429.838-.68.484-.252 1.006-.252.061 0 .126.009.07.009.102.019l-.158.769q-.14-.037-.354-.037-.619 0-1.029.279-.41.279-.526.55v3.521h-.736V5.302q-.009-.601-.028-.694z"/><use xlink:href="#A"/><path d="M16.503 5.158q-.345 0-.657.079-.312.079-.666.275v3.163q.191.182.531.298.34.116.792.116.689 0 1.034-.564.345-.564.345-1.449 0-.927-.368-1.421-.368-.498-1.011-.498zm-1.397-.55q.033.2.056.363.484-.238.824-.34.34-.102.685-.102.955 0 1.467.694.517.694.517 1.877 0 1.118-.568 1.872-.564.75-1.495.75-.522 0-.866-.116-.34-.121-.545-.284v2.427h-.736v-6.4q-.009-.317-.042-.741zm4.779-2.268h.736v2.655q.252-.149.661-.307.415-.158.936-.158.792 0 1.211.456.424.456.424 1.234v3.419h-.736l.005-3.377q0-.536-.265-.834-.265-.298-.829-.298-.354 0-.727.121-.373.121-.68.284v4.103h-.736zm6.12 6.628q.373.191 1.029.191.89 0 1.29-.606.405-.61.405-1.425 0-.96-.373-1.463-.373-.508-1.025-.508-.391 0-.75.116-.354.116-.578.284zm-.736-6.628h.736v2.683q.224-.191.606-.34.387-.154.904-.154.964 0 1.477.671.517.671.517 1.844 0 1.234-.601 1.952-.601.717-2.021.717-.331 0-.796-.037-.466-.033-.82-.075zm5.422 0h.736v6.269q0 .284.112.387.112.102.391.102.037 0 .107-.005.075-.005.149-.014l.107.429q-.084.037-.186.075-.102.037-.214.065-.112.033-.224.047-.112.019-.21.019-.363 0-.568-.233-.2-.233-.2-.694z"/><use xlink:href="#A" x="24.043"/><path d="M38.624 8.423q.317.345.652.536.335.191.843.191.512 0 .843-.214.331-.219.331-.596 0-.261-.168-.447-.168-.191-.675-.373-.191-.065-.75-.256-.526-.14-.987-.475-.461-.335-.461-.95 0-.587.498-.946.498-.363 1.29-.363.279 0 .517.033.242.028.452.098.214.07.401.182.191.112.368.279l-.424.508q-.317-.275-.619-.401-.298-.126-.685-.126-.475 0-.787.177-.307.177-.307.517 0 .326.289.522.289.191.685.307.21.065.415.135.205.07.415.135.661.238.95.559.289.321.289.843 0 .652-.536 1.039-.536.387-1.323.387-.615 0-1.09-.154-.47-.158-.913-.615z"/></g></g><defs><path id="A" d="M11.957 7.002q-.633.014-1.09.116-.456.098-.75.27-.293.172-.433.405-.14.233-.14.512 0 .396.224.582.224.186.619.186.214 0 .424-.047.214-.047.415-.126.2-.079.382-.186.186-.112.349-.238zm-2.93-1.77q.172-.158.401-.289.233-.13.489-.224.261-.093.536-.14.279-.051.554-.051.773 0 1.23.387.456.387.456 1.076v2.24q0 .275.019.452.019.177.065.279.051.102.13.144.084.037.21.037.158 0 .321-.033l.116.34q-.126.121-.359.196-.228.075-.494.075-.293 0-.475-.205-.177-.21-.228-.596-.396.368-.866.587-.466.214-1.001.214-.293 0-.55-.084-.252-.088-.438-.252-.186-.163-.293-.401-.102-.238-.102-.54 0-.405.154-.703.158-.298.415-.508.256-.21.587-.34.335-.13.689-.205.359-.075.713-.098.354-.028.652-.028v-.517q0-.494-.256-.717-.256-.224-.717-.224-.261 0-.489.061-.224.061-.419.154-.196.093-.359.205-.163.112-.293.214z"/></defs></svg></g></svg>
\ No newline at end of file
diff --git a/docs/_static/img/python-graphblas-logo.svg b/docs/_static/img/python-graphblas-logo.svg
new file mode 100644
index 000000000..2422973ff
--- /dev/null
+++ b/docs/_static/img/python-graphblas-logo.svg
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="179.091" height="158.201" viewBox="-95 -95 179.091 158.201" xmlns:v="https://vecta.io/nano"><g stroke="#409dc1" stroke-width="12"><path d="M48.977-47.215l-69.282 15.307v73.91l69.282-15.307v-36.955L14.336-2.606" fill="none"/><path d="M-20.305-33.907l-40-26.513"/></g><g fill="#ff8552"><circle cx="-60.305" cy="-60.42" r="17"/><circle cx="-20.305" cy="-33.907" r="17"/><circle cx="48.977" cy="-49.215" r="17"/><circle cx="-20.305" cy="40.003" r="17"/><circle cx="48.977" cy="24.696" r="17"/><circle cx="48.977" cy="-12.259" r="11"/><circle cx="14.336" cy="-4.606" r="11"/></g><path d="M-86.223-86.118V54.424h21.316q3.135 0 4.493 1.149 1.358 1.254 1.358 3.239 0 1.985-1.358 3.135-1.358 1.254-4.493 1.254H-95V-95h30.094q3.135 0 4.493 1.254 1.358 1.254 1.358 3.239 0 1.881-1.358 3.135-1.358 1.254-4.493 1.254zM75.209 54.424V-86.118H53.997q-3.135 0-4.493-1.254-1.358-1.254-1.358-3.135 0-1.985 1.358-3.239Q50.862-95 53.997-95h30.094V63.201H53.997q-3.135 0-4.493-1.254-1.358-1.149-1.358-3.135 0-1.881 1.358-3.135 1.358-1.254 4.493-1.254z" fill="#409dc1"/></svg>
diff --git a/docs/conf.py b/docs/conf.py
index 2e6f616d8..283f6d047 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -55,14 +55,16 @@
 #
 html_theme = "pydata_sphinx_theme"
 
+html_favicon = "_static/img/python-graphblas-logo.svg"
+
 # 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"]
 html_theme_options = {
     "logo": {
-        "image_light": "_static/img/logo-name-light.svg",
-        "image_dark": "_static/img/logo-name-dark.svg",
+        "image_light": "_static/img/logo-horizontal-light.svg",
+        "image_dark": "_static/img/logo-horizontal-dark.svg",
     },
     "github_url": "https://github.com/python-graphblas/python-graphblas",
 }
diff --git a/environment.yml b/environment.yml
index 1a7fb6fa8..4455f4ac6 100644
--- a/environment.yml
+++ b/environment.yml
@@ -48,6 +48,9 @@ dependencies:
     - numpydoc
     - pydata-sphinx-theme
     - sphinx-panels
+    # For building logo
+    - drawsvg
+    - cairosvg
     # EXTRA (optional; uncomment as desired)
     # - autoflake
     # - black
diff --git a/notebooks/logos_and_colors.ipynb b/notebooks/logos_and_colors.ipynb
new file mode 100644
index 000000000..7b64a2208
--- /dev/null
+++ b/notebooks/logos_and_colors.ipynb
@@ -0,0 +1,1467 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "1ade2e62-38f4-4017-a0d3-e09f8587c376",
+   "metadata": {},
+   "source": [
+    "# Logos and Color Palette of Python-graphblas\n",
+    "\n",
+    "To create a minimal environment to run this notebook:\n",
+    "```bash\n",
+    "$ conda create -n drawsvg -c conda-forge drawsvg cairosvg scipy jupyter\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "bf42676c-190a-4803-a567-09e0ed260d6a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import drawsvg as draw\n",
+    "import numpy as np\n",
+    "from scipy.spatial.transform import Rotation"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "876a6128-94e4-4fb0-938d-0980a2033701",
+   "metadata": {},
+   "source": [
+    "## Define color palette"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "786f9c9e-d999-4286-bf79-009ca1681604",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# primary\n",
+    "blue = \"#409DC1\"\n",
+    "orange = \"#FF8552\"\n",
+    "dark_gray = \"#39393A\"\n",
+    "light_gray = \"#C3C3C7\"\n",
+    "\n",
+    "# Neutral, light/dark compatible\n",
+    "medium_gray = \"#848487\"\n",
+    "\n",
+    "# secondary\n",
+    "light_blue = \"#81B7CC\"\n",
+    "light_orange = \"#FFBB9E\"\n",
+    "red = \"#6D213C\"\n",
+    "light_red = \"#BA708A\"\n",
+    "green = \"#85FFC7\"\n",
+    "\n",
+    "french_rose = \"#FA4B88\"  # ;)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "adb66550-f1e8-4846-a12a-e178fe801295",
+   "metadata": {},
+   "source": [
+    "## Display color palette"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "983b0cb8-db8b-4ad0-ad5a-36975d59289e",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"750\" height=\"500\" viewBox=\"-375.0 -250.0 750 500\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-375\" y=\"-250\" width=\"750\" height=\"500\" fill=\"white\" />\n",
+       "<text x=\"0.0\" y=\"-200\" font-size=\"37.5\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">Primary</text>\n",
+       "<rect x=\"-337.5\" y=\"-175\" width=\"150\" height=\"150\" fill=\"#409DC1\" />\n",
+       "<text x=\"-262.5\" y=\"-50\" font-size=\"25\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#409DC1</text>\n",
+       "<rect x=\"-162.5\" y=\"-175\" width=\"150\" height=\"150\" fill=\"#FF8552\" />\n",
+       "<text x=\"-87.5\" y=\"-50\" font-size=\"25\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#FF8552</text>\n",
+       "<rect x=\"12.5\" y=\"-175\" width=\"150\" height=\"150\" fill=\"#39393A\" />\n",
+       "<text x=\"87.5\" y=\"-50\" font-size=\"25\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"white\">#39393A</text>\n",
+       "<rect x=\"187.5\" y=\"-175\" width=\"150\" height=\"150\" fill=\"#C3C3C7\" />\n",
+       "<text x=\"262.5\" y=\"-50\" font-size=\"25\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#C3C3C7</text>\n",
+       "<rect x=\"-337.5\" y=\"0\" width=\"675\" height=\"45\" fill=\"#848487\" />\n",
+       "<text x=\"0.0\" y=\"30\" font-size=\"22.5\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#848487</text>\n",
+       "<text x=\"0.0\" y=\"224\" font-size=\"30.0\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">Secondary</text>\n",
+       "<rect x=\"-337.5\" y=\"65\" width=\"119\" height=\"119\" fill=\"#81B7CC\" />\n",
+       "<text x=\"-278.0\" y=\"164\" font-size=\"20\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#81B7CC</text>\n",
+       "<rect x=\"-198.5\" y=\"65\" width=\"119\" height=\"119\" fill=\"#FFBB9E\" />\n",
+       "<text x=\"-139.0\" y=\"164\" font-size=\"20\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#FFBB9E</text>\n",
+       "<rect x=\"-59.5\" y=\"65\" width=\"119\" height=\"119\" fill=\"#6D213C\" />\n",
+       "<text x=\"0.0\" y=\"164\" font-size=\"20\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"white\">#6D213C</text>\n",
+       "<rect x=\"79.5\" y=\"65\" width=\"119\" height=\"119\" fill=\"#BA708A\" />\n",
+       "<text x=\"139.0\" y=\"164\" font-size=\"20\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#BA708A</text>\n",
+       "<rect x=\"218.5\" y=\"65\" width=\"119\" height=\"119\" fill=\"#85FFC7\" />\n",
+       "<text x=\"278.0\" y=\"164\" font-size=\"20\" text-anchor=\"middle\" font-family=\"Arial\" fill=\"black\">#85FFC7</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6d1eb50>"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "d = draw.Drawing(750, 500, origin=\"center\")\n",
+    "d.append(\n",
+    "    draw.Rectangle(-375, -250, 750, 500, fill=\"white\")\n",
+    ")  # Add `stroke=\"black\"` border to see boundaries for testing\n",
+    "\n",
+    "dy = 25\n",
+    "dx = 0\n",
+    "w = h = 150\n",
+    "b = 25\n",
+    "x = -400 + 62.5 + dx\n",
+    "y = -200 + dy\n",
+    "\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        \"Primary\",\n",
+    "        x=x + 1.5 * (b + w) + w / 2,\n",
+    "        y=y - b,\n",
+    "        font_size=1.5 * b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x, y, w, h, fill=blue))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        blue.upper(),\n",
+    "        x=x + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + b + w, y, w, h, fill=orange))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        orange.upper(),\n",
+    "        x=x + (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + 2 * (b + w), y, w, h, fill=dark_gray))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        dark_gray.upper(),\n",
+    "        x=x + 2 * (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"white\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + 3 * (b + w), y, w, h, fill=light_gray))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        light_gray.upper(),\n",
+    "        x=x + 3 * (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "\n",
+    "d.draw(draw.Rectangle(x, -25 + dy, 675, 45, fill=medium_gray))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        medium_gray.upper(),\n",
+    "        x=x + 675 / 2,\n",
+    "        y=-25 + 30 + dy,\n",
+    "        font_size=22.5,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "\n",
+    "y = 40 + dy\n",
+    "w = h = 119\n",
+    "b = 20\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        \"Secondary\",\n",
+    "        x=x + 2 * (b + w) + w / 2,\n",
+    "        y=y + h + 2 * b,\n",
+    "        font_size=1.5 * b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x, y, w, h, fill=light_blue))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        light_blue.upper(),\n",
+    "        x=x + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + b + w, y, w, h, fill=light_orange))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        light_orange.upper(),\n",
+    "        x=x + (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + 2 * (b + w), y, w, h, fill=red))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        red.upper(),\n",
+    "        x=x + 2 * (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"white\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + 3 * (b + w), y, w, h, fill=light_red))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        light_red.upper(),\n",
+    "        x=x + 3 * (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "d.draw(draw.Rectangle(x + 4 * (b + w), y, w, h, fill=green))\n",
+    "d.draw(\n",
+    "    draw.Text(\n",
+    "        green.upper(),\n",
+    "        x=x + 4 * (b + w) + w / 2,\n",
+    "        y=y + h - b,\n",
+    "        font_size=b,\n",
+    "        text_anchor=\"middle\",\n",
+    "        font_family=\"Arial\",\n",
+    "        fill=\"black\",\n",
+    "    )\n",
+    ")\n",
+    "\n",
+    "color_palette = d\n",
+    "d"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e59c3941-c73b-455e-88f2-4b3aae228421",
+   "metadata": {},
+   "source": [
+    "## Display color wheel"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "c27e8ef2-04f2-4752-9c3b-cf297a0c87a5",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def create_color_wheel(color_wheel):\n",
+    "    d = draw.Drawing(300, 300, origin=\"center\")\n",
+    "    theta = np.pi / 3\n",
+    "\n",
+    "    angle = 0\n",
+    "    for i, color in enumerate(color_wheel):\n",
+    "        angle = i * np.pi / 3\n",
+    "        clip = draw.ClipPath()\n",
+    "        if i == 5:\n",
+    "            angle_offset = theta\n",
+    "        else:\n",
+    "            angle_offset = theta * 1.05\n",
+    "        clip.append(\n",
+    "            draw.Lines(\n",
+    "                0,\n",
+    "                0,\n",
+    "                300 * np.sin(angle),\n",
+    "                300 * np.cos(angle),\n",
+    "                300 * np.sin(angle + angle_offset),\n",
+    "                300 * np.cos(angle + angle_offset),\n",
+    "                close=True,\n",
+    "            )\n",
+    "        )\n",
+    "        if i == 0:\n",
+    "            clip = None\n",
+    "        d.append(draw.Circle(0, 0, 145, fill=color, clip_path=clip))\n",
+    "\n",
+    "    angle = 3 * theta\n",
+    "    for i, color in enumerate(color_wheel):\n",
+    "        angle = ((i + 3) % 6) * np.pi / 3\n",
+    "        clip = draw.ClipPath()\n",
+    "        if i == 5:\n",
+    "            angle_offset = theta\n",
+    "        else:\n",
+    "            angle_offset = theta * 1.05\n",
+    "        clip.append(\n",
+    "            draw.Lines(\n",
+    "                0,\n",
+    "                0,\n",
+    "                300 * np.sin(angle),\n",
+    "                300 * np.cos(angle),\n",
+    "                300 * np.sin(angle + angle_offset),\n",
+    "                300 * np.cos(angle + angle_offset),\n",
+    "                close=True,\n",
+    "            )\n",
+    "        )\n",
+    "        if i == 0:\n",
+    "            clip = None\n",
+    "        d.append(draw.Circle(0, 0, 105, fill=color, clip_path=clip))\n",
+    "\n",
+    "    angle = theta\n",
+    "    for i, color in enumerate(color_wheel):\n",
+    "        angle = ((i + 1) % 6) * np.pi / 3\n",
+    "        clip = draw.ClipPath()\n",
+    "        if i == 5:\n",
+    "            angle_offset = theta\n",
+    "        else:\n",
+    "            angle_offset = theta * 1.05\n",
+    "        clip.append(\n",
+    "            draw.Lines(\n",
+    "                0,\n",
+    "                0,\n",
+    "                300 * np.sin(angle),\n",
+    "                300 * np.cos(angle),\n",
+    "                300 * np.sin(angle + angle_offset),\n",
+    "                300 * np.cos(angle + angle_offset),\n",
+    "                close=True,\n",
+    "            )\n",
+    "        )\n",
+    "        if i == 0:\n",
+    "            clip = None\n",
+    "        d.append(draw.Circle(0, 0, 65, fill=color, clip_path=clip))\n",
+    "\n",
+    "    d.append(draw.Circle(0, 0, 25, fill=medium_gray))\n",
+    "    return d"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "2564bf63-8293-4828-8e38-d00a3b96b067",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"300\" height=\"300\" viewBox=\"-150.0 -150.0 300 300\">\n",
+       "<defs>\n",
+       "<clipPath id=\"siZyOlhj0\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj1\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj2\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj3\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj4\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L-7.347880794884119e-14,300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj5\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj6\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj7\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L267.3019572565103,136.19714992186405 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj8\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj9\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L3.6739403974420595e-14,-300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj10\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj11\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj12\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj13\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"siZyOlhj14\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L259.8076211353316,150.00000000000003 Z\" />\n",
+       "</clipPath>\n",
+       "</defs>\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#409DC1\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#C3C3C7\" clip-path=\"url(#siZyOlhj0)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#81B7CC\" clip-path=\"url(#siZyOlhj1)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#39393A\" clip-path=\"url(#siZyOlhj2)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FF8552\" clip-path=\"url(#siZyOlhj3)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FFBB9E\" clip-path=\"url(#siZyOlhj4)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#409DC1\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#C3C3C7\" clip-path=\"url(#siZyOlhj5)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#81B7CC\" clip-path=\"url(#siZyOlhj6)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#39393A\" clip-path=\"url(#siZyOlhj7)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FF8552\" clip-path=\"url(#siZyOlhj8)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FFBB9E\" clip-path=\"url(#siZyOlhj9)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#409DC1\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#C3C3C7\" clip-path=\"url(#siZyOlhj10)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#81B7CC\" clip-path=\"url(#siZyOlhj11)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#39393A\" clip-path=\"url(#siZyOlhj12)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FF8552\" clip-path=\"url(#siZyOlhj13)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FFBB9E\" clip-path=\"url(#siZyOlhj14)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"25\" fill=\"#848487\" />\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7fae2cd02c90>"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Standard\n",
+    "standard_wheel = create_color_wheel(\n",
+    "    [\n",
+    "        blue,\n",
+    "        light_gray,\n",
+    "        light_blue,\n",
+    "        dark_gray,\n",
+    "        orange,\n",
+    "        light_orange,\n",
+    "    ]\n",
+    ")\n",
+    "standard_wheel"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "7a500a39-4114-49bb-aa19-912c6a8a8d95",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"300\" height=\"300\" viewBox=\"-150.0 -150.0 300 300\">\n",
+       "<defs>\n",
+       "<clipPath id=\"MWxVblYW0\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW1\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW2\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW3\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW4\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L-7.347880794884119e-14,300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW5\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW6\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW7\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L267.3019572565103,136.19714992186405 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW8\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW9\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L3.6739403974420595e-14,-300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW10\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW11\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW12\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW13\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"MWxVblYW14\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L259.8076211353316,150.00000000000003 Z\" />\n",
+       "</clipPath>\n",
+       "</defs>\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#C3C3C7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#409DC1\" clip-path=\"url(#MWxVblYW0)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#85FFC7\" clip-path=\"url(#MWxVblYW1)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#39393A\" clip-path=\"url(#MWxVblYW2)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FF8552\" clip-path=\"url(#MWxVblYW3)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#6D213C\" clip-path=\"url(#MWxVblYW4)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#C3C3C7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#409DC1\" clip-path=\"url(#MWxVblYW5)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#85FFC7\" clip-path=\"url(#MWxVblYW6)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#39393A\" clip-path=\"url(#MWxVblYW7)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FF8552\" clip-path=\"url(#MWxVblYW8)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#6D213C\" clip-path=\"url(#MWxVblYW9)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#C3C3C7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#409DC1\" clip-path=\"url(#MWxVblYW10)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#85FFC7\" clip-path=\"url(#MWxVblYW11)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#39393A\" clip-path=\"url(#MWxVblYW12)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FF8552\" clip-path=\"url(#MWxVblYW13)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#6D213C\" clip-path=\"url(#MWxVblYW14)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"25\" fill=\"#848487\" />\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7fae280f5dd0>"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# High contrast\n",
+    "high_wheel = create_color_wheel(\n",
+    "    [\n",
+    "        light_gray,\n",
+    "        blue,\n",
+    "        green,\n",
+    "        dark_gray,\n",
+    "        orange,\n",
+    "        red,\n",
+    "    ]\n",
+    ")\n",
+    "high_wheel"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "8f404efe-2b88-4bdf-9102-2e6ad9389ca3",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"300\" height=\"300\" viewBox=\"-150.0 -150.0 300 300\">\n",
+       "<defs>\n",
+       "<clipPath id=\"jE1v6evo0\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo1\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo2\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo3\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo4\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L-7.347880794884119e-14,300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo5\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo6\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo7\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L267.3019572565103,136.19714992186405 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo8\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo9\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L3.6739403974420595e-14,-300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo10\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo11\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo12\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo13\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"jE1v6evo14\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L259.8076211353316,150.00000000000003 Z\" />\n",
+       "</clipPath>\n",
+       "</defs>\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#85FFC7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#BA708A\" clip-path=\"url(#jE1v6evo0)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FF8552\" clip-path=\"url(#jE1v6evo1)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#81B7CC\" clip-path=\"url(#jE1v6evo2)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FFBB9E\" clip-path=\"url(#jE1v6evo3)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#409DC1\" clip-path=\"url(#jE1v6evo4)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#85FFC7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#BA708A\" clip-path=\"url(#jE1v6evo5)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FF8552\" clip-path=\"url(#jE1v6evo6)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#81B7CC\" clip-path=\"url(#jE1v6evo7)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FFBB9E\" clip-path=\"url(#jE1v6evo8)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#409DC1\" clip-path=\"url(#jE1v6evo9)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#85FFC7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#BA708A\" clip-path=\"url(#jE1v6evo10)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FF8552\" clip-path=\"url(#jE1v6evo11)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#81B7CC\" clip-path=\"url(#jE1v6evo12)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FFBB9E\" clip-path=\"url(#jE1v6evo13)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#409DC1\" clip-path=\"url(#jE1v6evo14)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"25\" fill=\"#848487\" />\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6cfc090>"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Low contrast\n",
+    "low_wheel = create_color_wheel(\n",
+    "    [\n",
+    "        green,\n",
+    "        light_red,\n",
+    "        orange,\n",
+    "        light_blue,\n",
+    "        light_orange,\n",
+    "        blue,\n",
+    "    ]\n",
+    ")\n",
+    "low_wheel"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "fd913698-ea45-4219-8003-0fd30124d091",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"300\" height=\"300\" viewBox=\"-150.0 -150.0 300 300\">\n",
+       "<defs>\n",
+       "<clipPath id=\"DmR47qMG0\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG1\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG2\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG3\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG4\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L-7.347880794884119e-14,300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG5\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG6\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG7\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L267.3019572565103,136.19714992186405 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG8\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG9\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L3.6739403974420595e-14,-300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG10\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG11\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG12\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG13\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"DmR47qMG14\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L259.8076211353316,150.00000000000003 Z\" />\n",
+       "</clipPath>\n",
+       "</defs>\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#C3C3C7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#BA708A\" clip-path=\"url(#DmR47qMG0)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FA4B88\" clip-path=\"url(#DmR47qMG1)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#6D213C\" clip-path=\"url(#DmR47qMG2)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FF8552\" clip-path=\"url(#DmR47qMG3)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#FFBB9E\" clip-path=\"url(#DmR47qMG4)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#C3C3C7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#BA708A\" clip-path=\"url(#DmR47qMG5)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FA4B88\" clip-path=\"url(#DmR47qMG6)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#6D213C\" clip-path=\"url(#DmR47qMG7)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FF8552\" clip-path=\"url(#DmR47qMG8)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#FFBB9E\" clip-path=\"url(#DmR47qMG9)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#C3C3C7\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#BA708A\" clip-path=\"url(#DmR47qMG10)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FA4B88\" clip-path=\"url(#DmR47qMG11)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#6D213C\" clip-path=\"url(#DmR47qMG12)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FF8552\" clip-path=\"url(#DmR47qMG13)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#FFBB9E\" clip-path=\"url(#DmR47qMG14)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"25\" fill=\"#848487\" />\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7fae28108390>"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Warm :)\n",
+    "warm_wheel = create_color_wheel(\n",
+    "    [\n",
+    "        light_gray,  # or dark_gray\n",
+    "        light_red,\n",
+    "        french_rose,  # ;)\n",
+    "        red,\n",
+    "        orange,\n",
+    "        light_orange,\n",
+    "    ]\n",
+    ")\n",
+    "warm_wheel"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "c7a3a5e6-4be4-4def-9687-00d1e3f80375",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"300\" height=\"300\" viewBox=\"-150.0 -150.0 300 300\">\n",
+       "<defs>\n",
+       "<clipPath id=\"x6Ob6LhI0\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI1\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI2\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI3\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI4\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L-7.347880794884119e-14,300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI5\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI6\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI7\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L267.3019572565103,136.19714992186405 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI8\">\n",
+       "<path d=\"M0,0 L259.8076211353316,150.00000000000003 L251.60117038362728,-163.391710504508 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI9\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L3.6739403974420595e-14,-300.0 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI10\">\n",
+       "<path d=\"M0,0 L259.8076211353316,-149.99999999999994 L-15.70078687288307,-299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI11\">\n",
+       "<path d=\"M0,0 L3.6739403974420595e-14,-300.0 L-267.3019572565103,-136.19714992186408 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI12\">\n",
+       "<path d=\"M0,0 L-259.8076211353315,-150.00000000000014 L-251.60117038362728,163.39171050450798 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI13\">\n",
+       "<path d=\"M0,0 L-259.8076211353316,150.00000000000003 L15.700786872883166,299.58886042637215 Z\" />\n",
+       "</clipPath>\n",
+       "<clipPath id=\"x6Ob6LhI14\">\n",
+       "<path d=\"M0,0 L0.0,300.0 L259.8076211353316,150.00000000000003 Z\" />\n",
+       "</clipPath>\n",
+       "</defs>\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#81B7CC\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#C3C3C7\" clip-path=\"url(#x6Ob6LhI0)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#409DC1\" clip-path=\"url(#x6Ob6LhI1)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#BA708A\" clip-path=\"url(#x6Ob6LhI2)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#85FFC7\" clip-path=\"url(#x6Ob6LhI3)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"145\" fill=\"#39393A\" clip-path=\"url(#x6Ob6LhI4)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#81B7CC\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#C3C3C7\" clip-path=\"url(#x6Ob6LhI5)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#409DC1\" clip-path=\"url(#x6Ob6LhI6)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#BA708A\" clip-path=\"url(#x6Ob6LhI7)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#85FFC7\" clip-path=\"url(#x6Ob6LhI8)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"105\" fill=\"#39393A\" clip-path=\"url(#x6Ob6LhI9)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#81B7CC\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#C3C3C7\" clip-path=\"url(#x6Ob6LhI10)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#409DC1\" clip-path=\"url(#x6Ob6LhI11)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#BA708A\" clip-path=\"url(#x6Ob6LhI12)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#85FFC7\" clip-path=\"url(#x6Ob6LhI13)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"65\" fill=\"#39393A\" clip-path=\"url(#x6Ob6LhI14)\" />\n",
+       "<circle cx=\"0\" cy=\"0\" r=\"25\" fill=\"#848487\" />\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6d356d0>"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Cool\n",
+    "cool_wheel = create_color_wheel(\n",
+    "    [\n",
+    "        light_blue,\n",
+    "        light_gray,\n",
+    "        blue,\n",
+    "        light_red,\n",
+    "        green,\n",
+    "        dark_gray,\n",
+    "    ]\n",
+    ")\n",
+    "cool_wheel"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "343256c8-35a7-4c89-aa60-c6bf60930c09",
+   "metadata": {},
+   "source": [
+    "## Create logos"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "7855cd3f-8155-4d11-9730-b6041578e112",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "default_angles = [\n",
+    "    180,  # Don't modify this\n",
+    "    30,  # How much of the \"left face\" to see\n",
+    "    22.5,  # How much of the \"top face\" to see\n",
+    "]\n",
+    "R = Rotation.from_euler(\"ZYX\", default_angles, degrees=True).as_matrix()\n",
+    "\n",
+    "gcube = np.array(\n",
+    "    [\n",
+    "        [-1, 1, -1],\n",
+    "        [-1, 1, 1],\n",
+    "        [1, 1, 1],\n",
+    "        [-1, -1, 1],\n",
+    "        [1, -1, 1],\n",
+    "        [1, 0, 1],\n",
+    "        [0, 0, 1],\n",
+    "    ]\n",
+    ")\n",
+    "gcube_major = gcube[:5]  # Big circles\n",
+    "gcube_minor = gcube[5:]  # Small circles\n",
+    "lines = np.array(\n",
+    "    [\n",
+    "        [gcube[1], gcube[0]],\n",
+    "    ]\n",
+    ")\n",
+    "Gpath = np.array(\n",
+    "    [\n",
+    "        gcube[2],\n",
+    "        gcube[1],\n",
+    "        gcube[3],\n",
+    "        gcube[4],\n",
+    "        gcube[5],\n",
+    "        gcube[6],\n",
+    "    ]\n",
+    ")\n",
+    "\n",
+    "\n",
+    "def create_logo(\n",
+    "    *,\n",
+    "    bracket_color=None,\n",
+    "    bg_color=None,\n",
+    "    edge_color=None,\n",
+    "    edge_width=8,\n",
+    "    edge_border_color=\"white\",\n",
+    "    edge_border_width=16,\n",
+    "    node_color=None,\n",
+    "    large_node_width=16,\n",
+    "    small_node_width=8,\n",
+    "    node_border_color=\"white\",\n",
+    "    node_stroke_width=4,\n",
+    "    large_border=True,\n",
+    "    g_color=None,\n",
+    "    angles=None,\n",
+    "):\n",
+    "    if angles is None:\n",
+    "        angles = default_angles\n",
+    "    if edge_color is None:\n",
+    "        edge_color = blue\n",
+    "    if bracket_color is None:\n",
+    "        bracket_color = edge_color\n",
+    "    if node_color is None:\n",
+    "        node_color = orange\n",
+    "    if g_color is None:\n",
+    "        g_color = edge_color\n",
+    "\n",
+    "    d = draw.Drawing(190, 190, origin=\"center\")\n",
+    "    if bg_color:\n",
+    "        d.append(\n",
+    "            draw.Rectangle(-95, -95, 190, 190, fill=bg_color)\n",
+    "        )  # Add `stroke=\"black\"` border to see boundaries for testing\n",
+    "\n",
+    "    scale = 40\n",
+    "    dx = 0\n",
+    "    dy = -2\n",
+    "\n",
+    "    if edge_border_width:\n",
+    "        # Add white border around lines\n",
+    "        d.append(\n",
+    "            draw.Lines(\n",
+    "                *(((Gpath @ R) * scale)[:, :2] * [-1, 1]).ravel().tolist(),\n",
+    "                fill=\"none\",\n",
+    "                stroke=edge_border_color,\n",
+    "                stroke_width=edge_border_width,\n",
+    "            )\n",
+    "        )\n",
+    "        for (x0, y0, z0), (x1, y1, z1) in ((lines @ R) * scale).tolist():\n",
+    "            x0 = -x0\n",
+    "            x1 = -x1  # Just live with this\n",
+    "            d.append(\n",
+    "                draw.Line(\n",
+    "                    x0 + dx,\n",
+    "                    y0 + dy,\n",
+    "                    x1 + dx,\n",
+    "                    y1 + dy,\n",
+    "                    stroke=edge_border_color,\n",
+    "                    stroke_width=edge_border_width,\n",
+    "                )\n",
+    "            )\n",
+    "\n",
+    "    # Add edges\n",
+    "    d.append(\n",
+    "        draw.Lines(\n",
+    "            *(((Gpath @ R) * scale)[:, :2] * [-1, 1]).ravel().tolist(),\n",
+    "            fill=\"none\",\n",
+    "            stroke=g_color,\n",
+    "            stroke_width=edge_width,\n",
+    "        )\n",
+    "    )\n",
+    "    for (x0, y0, z0), (x1, y1, z1) in ((lines @ R) * scale).tolist():\n",
+    "        x0 = -x0\n",
+    "        x1 = -x1\n",
+    "        d.append(\n",
+    "            draw.Line(\n",
+    "                x0 + dx, y0 + dy, x1 + dx, y1 + dy, stroke=edge_color, stroke_width=edge_width\n",
+    "            )\n",
+    "        )\n",
+    "\n",
+    "    # Add vertices\n",
+    "    for x, y, z in ((gcube_major @ R) * scale).tolist():\n",
+    "        x = -x\n",
+    "        d.append(\n",
+    "            draw.Circle(\n",
+    "                x + dx,\n",
+    "                y + dy,\n",
+    "                large_node_width,\n",
+    "                fill=node_color,\n",
+    "                stroke=node_border_color,\n",
+    "                stroke_width=node_stroke_width if large_border else 0,\n",
+    "            )\n",
+    "        )\n",
+    "    for x, y, z in ((gcube_minor @ R) * scale).tolist():\n",
+    "        x = -x\n",
+    "        d.append(\n",
+    "            draw.Circle(\n",
+    "                x + dx,\n",
+    "                y + dy,\n",
+    "                small_node_width,\n",
+    "                fill=node_color,\n",
+    "                stroke=node_border_color,\n",
+    "                stroke_width=node_stroke_width,\n",
+    "            )\n",
+    "        )\n",
+    "\n",
+    "    # Add brackets\n",
+    "    d.append(\n",
+    "        draw.Text(\n",
+    "            \"[\",\n",
+    "            x=-85,\n",
+    "            y=52,\n",
+    "            font_size=214,\n",
+    "            text_anchor=\"middle\",\n",
+    "            font_family=\"Courier New\",\n",
+    "            fill=bracket_color,\n",
+    "        )\n",
+    "    )\n",
+    "    d.append(\n",
+    "        draw.Text(\n",
+    "            \"]\",\n",
+    "            x=85,\n",
+    "            y=52,\n",
+    "            font_size=214,\n",
+    "            text_anchor=\"middle\",\n",
+    "            font_family=\"Courier New\",\n",
+    "            fill=bracket_color,\n",
+    "        )\n",
+    "    )\n",
+    "\n",
+    "    return d"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "4325e0b8-dbbb-4219-a2b3-4d9cdee2bdc8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "logo_defaults = dict(\n",
+    "    bracket_color=blue,\n",
+    "    edge_color=blue,\n",
+    "    node_color=orange,\n",
+    "    edge_border_width=0,\n",
+    "    edge_width=12,\n",
+    "    small_node_width=11,\n",
+    "    large_node_width=17,\n",
+    "    node_border_color=\"none\",\n",
+    "    node_stroke_width=0,\n",
+    ")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "f886df89-b3b5-4671-bcc0-98e8705feb5a",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-95\" y=\"-95\" width=\"190\" height=\"190\" fill=\"white\" />\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#409DC1\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#409DC1\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6cead50>"
+      ]
+     },
+     "execution_count": 12,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "create_logo(bg_color=\"white\", **logo_defaults)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "68e01137-55e3-4973-bf97-4fcd36c8c662",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-95\" y=\"-95\" width=\"190\" height=\"190\" fill=\"black\" />\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#409DC1\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#409DC1\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6ce9d10>"
+      ]
+     },
+     "execution_count": 13,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "create_logo(bg_color=\"black\", **logo_defaults)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "id": "b1d5e928-16c5-4377-aee1-1489ab45efc8",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#409DC1\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#409DC1\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6ca4750>"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "# Transparent background\n",
+    "logo = create_logo(**logo_defaults)\n",
+    "logo"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b187c131-d337-4a7b-ab54-80ebe0f48ab4",
+   "metadata": {},
+   "source": [
+    "## Alternatives with gray brackets\n",
+    "### Background-agnostic (works with light and dark mode)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "acca9b2e-2f54-4b86-9a33-2c57502f6160",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-95\" y=\"-95\" width=\"190\" height=\"190\" fill=\"white\" />\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#848487\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#848487\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6d5cad0>"
+      ]
+     },
+     "execution_count": 15,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "medium_logo = create_logo(**{**logo_defaults, \"bracket_color\": medium_gray})\n",
+    "create_logo(bg_color=\"white\", **{**logo_defaults, \"bracket_color\": medium_gray})"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 16,
+   "id": "f5d0086d-b50e-49eb-9aae-b0953cdc0045",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-95\" y=\"-95\" width=\"190\" height=\"190\" fill=\"black\" />\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#848487\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#848487\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6ce0310>"
+      ]
+     },
+     "execution_count": 16,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "create_logo(bg_color=\"black\", **{**logo_defaults, \"bracket_color\": medium_gray})"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "c4dce89d-e34c-4190-a068-7e78cdeea745",
+   "metadata": {},
+   "source": [
+    "### For light mode"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "id": "27137343-141a-422e-abd6-123af3416ea4",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-95\" y=\"-95\" width=\"190\" height=\"190\" fill=\"white\" />\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#39393A\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#39393A\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6d5a2d0>"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "light_logo = create_logo(**{**logo_defaults, \"bracket_color\": dark_gray})\n",
+    "create_logo(bg_color=\"white\", **{**logo_defaults, \"bracket_color\": dark_gray})"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "8a70b0f7-c3c4-44ae-af09-8992400f362e",
+   "metadata": {},
+   "source": [
+    "### For dark mode"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "3ab9bb40-d7a8-4788-9971-54a5779d284d",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/svg+xml": [
+       "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",
+       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n",
+       "     width=\"190\" height=\"190\" viewBox=\"-95.0 -95.0 190 190\">\n",
+       "<defs>\n",
+       "</defs>\n",
+       "<rect x=\"-95\" y=\"-95\" width=\"190\" height=\"190\" fill=\"black\" />\n",
+       "<path d=\"M54.641016151377535,-31.352306986329594 L-14.641016151377546,-16.044969691726 L-14.641016151377537,57.86539290917693 L54.64101615137754,42.558055614573334 L54.641016151377535,5.602874314121871 L19.999999999999996,13.25654296142367\" fill=\"none\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<path d=\"M-14.641016151377546,-18.044969691726 L-54.64101615137754,-44.558055614573334\" stroke=\"#409DC1\" stroke-width=\"12\" />\n",
+       "<circle cx=\"-54.64101615137754\" cy=\"-44.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377546\" cy=\"-18.044969691726\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"-33.352306986329594\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"-14.641016151377537\" cy=\"55.86539290917693\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.64101615137754\" cy=\"40.558055614573334\" r=\"17\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"54.641016151377535\" cy=\"3.6028743141218706\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<circle cx=\"19.999999999999996\" cy=\"11.25654296142367\" r=\"11\" fill=\"#FF8552\" stroke=\"none\" stroke-width=\"0\" />\n",
+       "<text x=\"-85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#C3C3C7\">[</text>\n",
+       "<text x=\"85\" y=\"52\" font-size=\"214\" text-anchor=\"middle\" font-family=\"Courier New\" fill=\"#C3C3C7\">]</text>\n",
+       "</svg>"
+      ],
+      "text/plain": [
+       "<drawsvg.drawing.Drawing at 0x7facf6d6ca10>"
+      ]
+     },
+     "execution_count": 18,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "dark_logo = create_logo(**{**logo_defaults, \"bracket_color\": light_gray})\n",
+    "create_logo(bg_color=\"black\", **{**logo_defaults, \"bracket_color\": light_gray})"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "id": "d53046c1-8cbb-47fa-a88b-4d98958df26b",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "if False:\n",
+    "    logo.save_svg(\"python-graphblas-logo.svg\")\n",
+    "    light_logo.save_svg(\"python-graphblas-logo-light.svg\")\n",
+    "    medium_logo.save_svg(\"python-graphblas-logo-medium.svg\")\n",
+    "    dark_logo.save_svg(\"python-graphblas-logo-dark.svg\")\n",
+    "    color_palette.save_svg(\"color-palette.svg\")\n",
+    "    standard_wheel.save_svg(\"color-wheel.svg\")\n",
+    "    high_wheel.save_svg(\"color-wheel-high.svg\")\n",
+    "    low_wheel.save_svg(\"color-wheel-low.svg\")\n",
+    "    warm_wheel.save_svg(\"color-wheel-warm.svg\")\n",
+    "    cool_wheel.save_svg(\"color-wheel-cool.svg\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "51093fab-600b-47d7-9809-fa0f16e7246f",
+   "metadata": {},
+   "source": [
+    "### *NOTE: The font in the SVG files should be converted to paths, because not all systems have Courier New*\n",
+    "Also, SVG files can be minified here: https://vecta.io/nano"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "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.11.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/scripts/check_versions.sh b/scripts/check_versions.sh
index a76fee1d2..9051ebe6e 100755
--- a/scripts/check_versions.sh
+++ b/scripts/check_versions.sh
@@ -4,12 +4,12 @@
 # This may be helpful when updating dependency versions in CI.
 # Tip: add `--json` for more information.
 conda search 'flake8-bugbear[channel=conda-forge]>=23.9.16'
-conda search 'flake8-simplify[channel=conda-forge]>=0.20.0'
+conda search 'flake8-simplify[channel=conda-forge]>=0.21.0'
 conda search 'numpy[channel=conda-forge]>=1.26.0'
 conda search 'pandas[channel=conda-forge]>=2.1.1'
-conda search 'scipy[channel=conda-forge]>=1.11.2'
+conda search 'scipy[channel=conda-forge]>=1.11.3'
 conda search 'networkx[channel=conda-forge]>=3.1'
-conda search 'awkward[channel=conda-forge]>=2.4.3'
+conda search 'awkward[channel=conda-forge]>=2.4.4'
 conda search 'sparse[channel=conda-forge]>=0.14.0'
 conda search 'fast_matrix_market[channel=conda-forge]>=1.7.3'
 conda search 'numba[channel=conda-forge]>=0.57.1'


Test patch:
diff --git a/.github/workflows/test_and_build.yml b/.github/workflows/test_and_build.yml
index 5f1ab7dde..e3930a853 100644
--- a/.github/workflows/test_and_build.yml
+++ b/.github/workflows/test_and_build.yml
@@ -206,7 +206,12 @@ jobs:
           else
             psgver=""
           fi
-          if [[ ${npver} == "=1.25" || ${npver} == "=1.26" ]] ; then
+          if [[ ${npver} == "=1.26" ]] ; then
+            numbaver=""
+            if [[ ${spver} == "=1.8" || ${spver} == "=1.9" ]] ; then
+              spver=$(python -c 'import random ; print(random.choice(["=1.10", "=1.11", ""]))')
+            fi
+          elif [[ ${npver} == "=1.25" ]] ; then
             numbaver=""
             if [[ ${spver} == "=1.8" ]] ; then
               spver=$(python -c 'import random ; print(random.choice(["=1.9", "=1.10", "=1.11", ""]))')
@@ -260,7 +265,7 @@ jobs:
             pyyaml${yamlver} ${sparse} pandas${pdver} scipy${spver} numpy${npver} ${awkward} \
             networkx${nxver} ${numba} ${fmm} ${psg} \
             ${{ matrix.slowtask == 'pytest_bizarro' && 'black' || '' }} \
-            ${{ matrix.slowtask == 'notebooks' && 'matplotlib nbconvert jupyter "ipython>=7"' || '' }} \
+            ${{ matrix.slowtask == 'notebooks' && 'matplotlib nbconvert jupyter "ipython>=7" drawsvg' || '' }} \
             ${{ steps.sourcetype.outputs.selected == 'upstream' && 'cython' || '' }} \
             ${{ steps.sourcetype.outputs.selected != 'wheel' && '"graphblas>=7.4"' || '' }} \
             ${{ contains(steps.pyver.outputs.selected, 'pypy') && 'pypy' || '' }} \