diff --git a/README.md b/README.md
index 75a68b00..482f5172 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,11 @@
-# PRIK — Python Runtime Interop Kit
-
-**Generate native Python bindings for Fortran, with editable `.pyi` contracts
-and Pythonic APIs.**
-
-PRIK generates native Python bindings from Fortran projects, producing
-importable extensions and editable `.pyi` contracts for Pythonic APIs.
+
+
+
+
+**PRIK (Python Runtime Interop Kit)** generates native Python bindings from Fortran projects,
+producing importable extensions and editable `.pyi` contracts for shaping Pythonic APIs.
[](https://github.com/PyNumLab/prik/actions/workflows/tests.yml)
[](https://github.com/PyNumLab/prik/actions/workflows/static-analysis.yml)
diff --git a/docs/index.md b/docs/index.md
index f7e57846..920284c8 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -8,13 +8,17 @@ status: maintained
publication: reviewed
---
-# PRIK — Python Runtime Interop Kit
-
-**Generate native Python bindings for Fortran, with editable `.pyi` contracts
-and Pythonic APIs.**
-
-PRIK generates native Python bindings from Fortran projects, producing
-importable extensions and editable `.pyi` contracts for Pythonic APIs.
+
+
+
+
+
+ PRIK (Python Runtime Interop Kit) generates native Python
+ bindings for Fortran, with editable .pyi contracts for shaping
+ Pythonic APIs.
+
**Project status: Alpha.** Core Fortran wrapper workflows are
implemented and tested across supported compilers, but public APIs may still
diff --git a/docs/stylesheets/site.css b/docs/stylesheets/site.css
index 7a132767..c6524d1f 100644
--- a/docs/stylesheets/site.css
+++ b/docs/stylesheets/site.css
@@ -1,3 +1,14 @@
+:root {
+ --prik-primary: #245a78;
+ --prik-primary-rgb: 36 90 120;
+ --prik-primary-dark: #183f56;
+ --prik-primary-light: #78b9df;
+
+ --prik-primary-bg: #eaf2f7;
+ --prik-primary-bg-hover: #dbeaf2;
+ --prik-primary-bg-subtle: #f5f9fc;
+}
+
.wy-nav-content {
max-width: 1200px;
margin: 0;
@@ -118,8 +129,8 @@
.prik-page-source a:hover,
.prik-page-source a:focus {
- border-color: #2980b9;
- color: #1f618d;
+ border-color: var(--prik-primary);
+ color: var(--prik-primary-dark);
}
.prik-primary-cta {
@@ -127,9 +138,9 @@
align-items: center;
min-height: 2.6rem;
padding: 0.65rem 1rem;
- border: 1px solid #176b64;
+ border: 1px solid var(--prik-primary);
border-radius: 0.35rem;
- background: #176b64;
+ background: var(--prik-primary);
box-shadow: 0 2px 4px rgb(0 0 0 / 18%);
color: #fff;
font-weight: 700;
@@ -147,8 +158,8 @@
.prik-primary-cta:hover,
.prik-primary-cta:focus {
- border-color: #0f514c;
- background: #0f514c;
+ background: var(--prik-primary-dark);
+ border-color: var(--prik-primary-dark);
box-shadow: 0 4px 9px rgb(0 0 0 / 22%);
color: #fff;
transform: translateY(-1px);
@@ -186,7 +197,7 @@
position: absolute;
top: 50%;
right: 1rem;
- color: #176b64;
+ color: var(--prik-primary);
content: "+";
font-size: 1.35rem;
line-height: 1;
@@ -195,7 +206,7 @@
.prik-faq-item[open] summary {
border-bottom: 1px solid #d6e0e5;
- background: #f5fbfa;
+ background: var(--prik-primary-bg-subtle);
}
.prik-faq-item[open] summary::after {
@@ -203,13 +214,13 @@
}
.prik-faq-item summary:focus-visible {
- outline: 2px solid #176b64;
+ outline: 2px solid var(--prik-primary);
outline-offset: 2px;
}
.prik-faq-item:target {
- border-color: #176b64;
- box-shadow: 0 0 0 2px rgb(23 107 100 / 14%);
+ border-color: var(--prik-primary);
+ box-shadow: 0 0 0 2px rgb(var(--prik-primary-rgb) / 14%);
}
.prik-faq-item > :not(summary) {
@@ -238,13 +249,17 @@
padding: 1rem;
border: 1px solid #cfdde5;
border-radius: 0.6rem;
- background: linear-gradient(145deg, #f5fbfa, #eef6f8);
- box-shadow: 0 2px 7px rgb(23 107 100 / 12%);
+ background: linear-gradient(
+ 145deg,
+ var(--prik-primary-bg-subtle),
+ var(--prik-primary-bg)
+ );
+ box-shadow: 0 2px 7px rgb(var(--prik-primary-rgb) / 12%);
text-align: center;
}
.prik-performance-metric strong {
- color: #176b64;
+ color: var(--prik-primary);
font-size: 2rem;
line-height: 1.1;
}
@@ -290,7 +305,7 @@
display: flex;
overflow-x: auto;
border-bottom: 1px solid #cfdde5;
- background: #f5fbfa;
+ background: var(--prik-primary-bg-subtle);
}
.prik-example-tab {
@@ -306,14 +321,14 @@
}
.prik-example-tab:hover {
- background: rgb(23 107 100 / 8%);
- color: #0f514c;
+ background: rgb(var(--prik-primary-rgb) / 8%);
+ color: var(--prik-primary-dark);
}
.prik-example-tab[aria-selected="true"] {
- border-bottom-color: #176b64;
+ border-bottom-color: var(--prik-primary);
background: #fff;
- color: #0f514c;
+ color: var(--prik-primary-dark);
}
.prik-example-tab:focus-visible {
@@ -355,17 +370,17 @@
.prik-term-trigger > code,
.prik-term-trigger > .prik-term-label {
- border-bottom: 1px dashed #176b64;
+ border-bottom: 1px dashed var(--prik-primary);
border-radius: 0.2rem;
- background: #e7f4f2;
- color: #0f514c;
+ background: var(--prik-primary-bg);
+ color: var(--prik-primary-dark);
}
.prik-term-trigger:hover > code,
.prik-term-trigger:hover > .prik-term-label,
.prik-term-wrap.is-open .prik-term-trigger > code,
.prik-term-wrap.is-open .prik-term-trigger > .prik-term-label {
- background: #d9eeea;
+ background: var(--prik-primary-bg-hover);
}
.prik-term-trigger:focus-visible {
@@ -380,7 +395,7 @@
left: 50%;
width: min(19rem, calc(100vw - 2rem));
padding: 0.7rem 0.8rem;
- border: 1px solid #0f514c;
+ border: 1px solid var(--prik-primary-dark);
border-radius: 0.45rem;
background: #253746;
box-shadow: 0 5px 14px rgb(0 0 0 / 22%);
@@ -406,8 +421,8 @@
left: 50%;
width: 0.7rem;
height: 0.7rem;
- border-right: 1px solid #0f514c;
- border-bottom: 1px solid #0f514c;
+ border-right: 1px solid var(--prik-primary-dark);
+ border-bottom: 1px solid var(--prik-primary-dark);
background: #253746;
content: "";
transform: translateX(-50%) rotate(45deg);
@@ -460,3 +475,74 @@
transition: none;
}
}
+
+/* --------------------------------------------------------------------------
+ PRIK sidebar branding
+ -------------------------------------------------------------------------- */
+
+.wy-side-nav-search {
+ background: var(--prik-primary);
+}
+
+/* Section headings */
+.wy-menu-vertical p.caption,
+.wy-menu-vertical header,
+.wy-nav .wy-menu-vertical header {
+ color: var(--prik-primary-light);
+}
+
+/* Normal menu entries */
+.wy-menu-vertical a {
+ color: #fff;
+}
+
+/* Hover / active */
+.wy-menu-vertical a:hover,
+.wy-menu-vertical a:active {
+ background-color: var(--prik-primary);
+ color: #fff;
+}
+
+.wy-side-nav-search .prik-site-brand {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 0.5rem;
+}
+
+.wy-side-nav-search .prik-site-logo {
+ display: flex;
+ align-items: center;
+}
+
+.wy-side-nav-search .prik-site-logo img.logo {
+ width: auto;
+ height: 4.4rem;
+ margin: 0;
+ padding: 0;
+ background: transparent;
+ border-radius: 0;
+}
+
+.wy-side-nav-search .prik-site-title {
+ color: #fff;
+ font-size: 1.2rem;
+ font-weight: 700;
+}
+
+/* ReadTheDocs elements that should follow the PRIK palette. */
+
+.wy-side-nav-search input[type="text"] {
+ border-color: var(--prik-primary-dark);
+}
+
+.wy-nav .wy-menu-vertical a:hover,
+.wy-menu-vertical a:active {
+ background-color: var(--prik-primary);
+ color: #fff;
+}
+
+.wy-nav-top {
+ background: var(--prik-primary);
+}
+
diff --git a/docs/user/assets/old/prik-icon.png b/docs/user/assets/old/prik-icon.png
new file mode 100644
index 00000000..42410fd2
Binary files /dev/null and b/docs/user/assets/old/prik-icon.png differ
diff --git a/docs/user/assets/old/prik-logo.png b/docs/user/assets/old/prik-logo.png
new file mode 100644
index 00000000..f0c75d5d
Binary files /dev/null and b/docs/user/assets/old/prik-logo.png differ
diff --git a/docs/user/assets/old/prik-mark.png b/docs/user/assets/old/prik-mark.png
new file mode 100644
index 00000000..42410fd2
Binary files /dev/null and b/docs/user/assets/old/prik-mark.png differ
diff --git a/docs/user/assets/prik-github-social-preview.png b/docs/user/assets/prik-github-social-preview.png
new file mode 100644
index 00000000..ef99fa06
Binary files /dev/null and b/docs/user/assets/prik-github-social-preview.png differ
diff --git a/docs/user/assets/prik-logo.png b/docs/user/assets/prik-logo.png
new file mode 100644
index 00000000..3568ebc4
Binary files /dev/null and b/docs/user/assets/prik-logo.png differ
diff --git a/docs/user/assets/prik-logo2.png b/docs/user/assets/prik-logo2.png
new file mode 100644
index 00000000..ea1e9c55
Binary files /dev/null and b/docs/user/assets/prik-logo2.png differ
diff --git a/docs/user/assets/prik-logo3.png b/docs/user/assets/prik-logo3.png
new file mode 100644
index 00000000..cf1d4cdf
Binary files /dev/null and b/docs/user/assets/prik-logo3.png differ
diff --git a/docs/user/assets/prik-mark.png b/docs/user/assets/prik-mark.png
new file mode 100644
index 00000000..b9b13b9a
Binary files /dev/null and b/docs/user/assets/prik-mark.png differ
diff --git a/docs_theme/main.html b/docs_theme/main.html
new file mode 100644
index 00000000..25f37f50
--- /dev/null
+++ b/docs_theme/main.html
@@ -0,0 +1,11 @@
+{% extends "base.html" %}
+
+{% block site_name %}
+
+
+
+
+
+
PRIK
+
+{% endblock %}
diff --git a/mkdocs.yml b/mkdocs.yml
index ff0060c5..23f75988 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,4 +1,4 @@
-site_name: PRIK — Python Runtime Interop Kit
+site_name: PRIK — Bring Native Code to Python
site_description: PRIK generates native Python bindings from Fortran projects, producing importable extensions and editable .pyi contracts for Pythonic APIs.
site_url: https://pynumlab.github.io/prik/
repo_url: https://github.com/PyNumLab/prik
@@ -9,6 +9,7 @@ site_dir: .artifacts/site
theme:
name: readthedocs
custom_dir: docs_theme
+ logo: user/assets/prik-mark.png
collapse_navigation: false
include_homepage_in_sidebar: true
navigation_depth: 4