This is an automated email from the ASF dual-hosted git repository.

jiayu pushed a commit to branch branch-0.2.0
in repository https://gitbox.apache.org/repos/asf/sedona-db.git

commit aa5341d0fc25b4321447a45d1c396f70e35e3f7e
Author: Jia Yu <[email protected]>
AuthorDate: Mon Feb 9 09:23:23 2026 -0700

    fix(docs): Sync the main Sedona website design with sedona-db (#584)
---
 .pre-commit-config.yaml                |  31 ++-
 docs/image/footer/logo-footer.svg      |  10 +
 docs/image/header/logo-mobile.svg      |  10 +
 docs/image/logo.svg                    |  10 +
 docs/overrides/main.html               |  83 ++++++++
 docs/overrides/partials/copyright.html |  29 +++
 docs/overrides/partials/footer.html    |  42 ++++
 docs/overrides/partials/header.html    | 126 ++++++++++++
 docs/overrides/partials/nav.html       |  56 ++++++
 docs/stylesheets/extra.css             | 339 +++++++++++++++++++++++++++------
 mkdocs.yml                             |  16 +-
 11 files changed, 669 insertions(+), 83 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 84f26f58..a373e6c1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -18,42 +18,41 @@ repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
     rev: v5.0.0
     hooks:
-    - id: check-yaml
-    - id: end-of-file-fixer
-    - id: trailing-whitespace
+      - id: check-yaml
+      - id: end-of-file-fixer
+      - id: trailing-whitespace
 
   - repo: https://github.com/codespell-project/codespell
     rev: v2.4.1
     hooks:
-    -   id: codespell
-        # types_or: [markdown, c, c++, rust, python]
+      - id: codespell
         additional_dependencies: [tomli]
-        exclude: 
"^c/(sedona-geoarrow-c/src/geoarrow|sedona-geoarrow-c/src/nanoarrow|sedona-tg/src/tg)/.*|^docs/image/sedonadb-architecture\\.svg$"
+        exclude: 
"^c/(sedona-geoarrow-c/src/geoarrow|sedona-geoarrow-c/src/nanoarrow|sedona-libgpuspatial/libgpuspatial|sedona-tg/src/tg)/.*|^docs/image/.*\\.svg$|^r/sedonadb/tools/savvy-update.sh$"
+        args: ["--ignore-words-list=thirdparty"]
 
   - repo: https://github.com/astral-sh/ruff-pre-commit
     rev: v0.11.8
     hooks:
       - id: ruff
-        args: [ --fix ]
+        args: [--fix]
       - id: ruff-format
 
   - repo: https://github.com/doublify/pre-commit-rust
     rev: v1.0
     hooks:
-    - id: fmt
-      name: rustfmt
-      args: ["--all", "--"]
+      - id: fmt
+        name: rustfmt
+        args: ["--all", "--"]
 
   - repo: https://github.com/cheshirekow/cmake-format-precommit
     rev: v0.6.13
     hooks:
-    - id: cmake-format
-      args: [--in-place]
+      - id: cmake-format
+        args: [--in-place]
 
   - repo: https://github.com/pre-commit/mirrors-clang-format
     rev: v19.1.4
     hooks:
-    - id: clang-format
-      types_or: [c, c++]
-      # Don't run on vendored files
-      exclude: 
"^c/(sedona-geoarrow-c/src/geoarrow|sedona-geoarrow-c/src/nanoarrow|sedona-tg/src/tg)/.*"
+      - id: clang-format
+        types_or: [c, c++]
+        exclude: 
"^c/(sedona-geoarrow-c/src/geoarrow|sedona-geoarrow-c/src/nanoarrow|sedona-tg/src/tg)/.*"
diff --git a/docs/image/footer/logo-footer.svg 
b/docs/image/footer/logo-footer.svg
new file mode 100644
index 00000000..5aa7d426
--- /dev/null
+++ b/docs/image/footer/logo-footer.svg
@@ -0,0 +1,10 @@
+<svg width="172" height="30" viewBox="0 0 172 30" fill="none" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+<rect x="0.000488281" width="27.233" height="28.9052" 
fill="url(#pattern0_191_468)"/>
+<path d="M35.427 24.627L39.1693 11.5288H42.7245L46.4482 24.627H44.3712L43.5104 
21.5395H38.3835L37.5227 24.627H35.427ZM38.8887 19.6684H43.0052L41.0966 
12.7825H40.7973L38.8887 19.6684ZM47.9046 
28.3693V15.4021H49.7945V16.7307H50.0938C50.3309 16.319 50.6864 15.951 51.1604 
15.6267C51.6469 15.3023 52.3392 15.1402 53.2374 15.1402C54.0108 15.1402 54.7156 
15.3273 55.3518 15.7015C56.0005 16.0758 56.5182 16.6184 56.9049 17.3294C57.3041 
18.028 57.5036 18.8763 57.5036 19.8742V20.1549C57.5036 21.1528  [...]
+<defs>
+<pattern id="pattern0_191_468" patternContentUnits="objectBoundingBox" 
width="1" height="1">
+<use xlink:href="#image0_191_468" transform="matrix(0.00166829 0 0 0.00157178 
0 -0.00218415)"/>
+</pattern>
+<image id="image0_191_468" width="4096" height="639" 
preserveAspectRatio="none" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAEAAAAAJ/CAYAAAD4lhbkAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Xmc3XV5L/Dne87MJGwhmcmCyUwImTNBU0QttlZbK9faW2spta1arVatvbhUrFgRC9oq4IKCKHVtEbXV9lbqUreiVlrUq7cbvdfaRpKZLGQmY0ImExDIMjPnfG9zXboIMjOZOef3O+fNX7xe+X6f5/O8vz/gr/OQwl8ECCyawMTaTQ9O1cbzbx4decXTIuqL1khhAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKL5BKP4EBCBRUYO+as0
 [...]
+</defs>
+</svg>
diff --git a/docs/image/header/logo-mobile.svg 
b/docs/image/header/logo-mobile.svg
new file mode 100644
index 00000000..7c6d95b3
--- /dev/null
+++ b/docs/image/header/logo-mobile.svg
@@ -0,0 +1,10 @@
+<svg width="132" height="83" viewBox="0 0 132 83" fill="none" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+<rect x="0.000976562" y="7.62939e-06" width="41.5303" height="44.0804" 
fill="url(#pattern0_122_2790)"/>
+<path d="M0.809488 77.089L4.40949 64.489H7.82949L11.4115 
77.089H9.41349L8.58549 74.119H3.65349L2.82549 77.089H0.809488ZM4.13949 
72.319H8.09949L6.26349 65.695H5.97549L4.13949 72.319ZM12.8125 
80.689V68.215H14.6305V69.493H14.9185C15.1465 69.097 15.4885 68.743 15.9445 
68.431C16.4125 68.119 17.0785 67.963 17.9425 67.963C18.6865 67.963 19.3645 
68.143 19.9765 68.503C20.6005 68.863 21.0985 69.385 21.4705 70.069C21.8545 
70.741 22.0465 71.557 22.0465 72.517V72.787C22.0465 73.747 21.8605 74.569 21. 
[...]
+<defs>
+<pattern id="pattern0_122_2790" patternContentUnits="objectBoundingBox" 
width="1" height="1">
+<use xlink:href="#image0_122_2790" transform="matrix(0.00166829 0 0 0.00157178 
0 -0.00218415)"/>
+</pattern>
+<image id="image0_122_2790" width="4096" height="639" 
preserveAspectRatio="none" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAEAAAAAJ/CAYAAAD4lhbkAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Xm45GdVJ/DvubezdN+q290JiRgUBnEQUNwV0UGeURwRMaKCgiCgDiqCEiQEA6gkYQkQlggoGnBFR5BFNlkUBR0c93kYVBQUcMuThZDuqrrdWfrWOzYwIyqQu9St+lXVp//iIe97zvd83oL89Ttd8YcAgT0TaIPBnZJ8X/r9x1fV5p41UpgAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbkXqLmfwAAEOirQrrpqLQcOXJSq+6bqvOr13
 [...]
+</defs>
+</svg>
diff --git a/docs/image/logo.svg b/docs/image/logo.svg
new file mode 100644
index 00000000..958f47cc
--- /dev/null
+++ b/docs/image/logo.svg
@@ -0,0 +1,10 @@
+<svg width="212" height="39" viewBox="0 0 212 39" fill="none" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink";>
+<rect x="0.000488281" y="0.848839" width="33.5662" height="35.6273" 
fill="url(#pattern0_141_148)"/>
+<path d="M43.7356 31.017L48.3483 14.8728H52.7302L57.3198 
31.017H54.7598L53.6989 27.2116H47.3796L46.3187 31.017H43.7356ZM48.0023 
24.9053H53.0762L50.7238 16.4181H50.3547L48.0023 24.9053ZM59.115 
35.6297V19.6469H61.4443V21.2844H61.8133C62.1055 20.777 62.5437 20.3234 63.1279 
19.9237C63.7276 19.5239 64.5809 19.324 65.6879 19.324C66.6412 19.324 67.5099 
19.5547 68.2941 20.0159C69.0936 20.4772 69.7317 21.146 70.2083 22.0224C70.7003 
22.8834 70.9463 23.929 70.9463 25.159V25.5049C70.9463 26.735 70.7 [...]
+<defs>
+<pattern id="pattern0_141_148" patternContentUnits="objectBoundingBox" 
width="1" height="1">
+<use xlink:href="#image0_141_148" transform="matrix(0.00166829 0 0 0.00157178 
0 -0.00218415)"/>
+</pattern>
+<image id="image0_141_148" width="4096" height="639" 
preserveAspectRatio="none" 
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAEAAAAAJ/CAYAAAD4lhbkAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Xmc3XV5L/Dne87MJGwhmcmCyUwImTNBU0QttlZbK9faW2spta1arVatvbhUrFgRC9oq4IKCKHVtEbXV9lbqUreiVlrUq7cbvdfaRpKZLGQmY0ImExDIMjPnfG9zXboIMjOZOef3O+fNX7xe+X6f5/O8vz/gr/OQwl8ECCyawMTaTQ9O1cbzbx4decXTIuqL1khhAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKL5BKP4EBCBRUYO+as0
 [...]
+</defs>
+</svg>
diff --git a/docs/overrides/main.html b/docs/overrides/main.html
new file mode 100644
index 00000000..8533d72b
--- /dev/null
+++ b/docs/overrides/main.html
@@ -0,0 +1,83 @@
+{#-
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-#}
+{% extends "base.html" %}
+
+{% block header %}
+  <div id="announcement-bar"></div>
+  {{ super() }}
+  <script>
+    (function () {
+      // Fetch the main Sedona site and extract its announcement bar
+      fetch("https://sedona.apache.org/latest/";)
+        .then(function (res) {
+          if (!res.ok) throw new Error("Failed to fetch");
+          return res.text();
+        })
+        .then(function (html) {
+          var parser = new DOMParser();
+          var doc = parser.parseFromString(html, "text/html");
+          // The announcement bar is the first div inside <body> before the 
header,
+          // styled with inline background: #CA463A
+          var candidates = doc.querySelectorAll("body > div, header > div, 
.md-header ~ div, body > .md-banner");
+          var announcement = null;
+
+          // Strategy 1: Look for a div with the Sedona red background color
+          for (var i = 0; i < candidates.length; i++) {
+            var style = candidates[i].getAttribute("style") || "";
+            if (style.indexOf("CA463A") !== -1 || style.indexOf("ca463a") !== 
-1) {
+              announcement = candidates[i];
+              break;
+            }
+          }
+
+          // Strategy 2: Check for Material's built-in announcement banner
+          if (!announcement) {
+            announcement = doc.querySelector(".md-banner");
+          }
+
+          // Strategy 3: Check first child of body if it's a div with a link
+          if (!announcement) {
+            var first = doc.body.firstElementChild;
+            if (first && first.tagName === "DIV" && first.querySelector("a")) {
+              var bg = first.style.backgroundColor || 
first.getAttribute("style") || "";
+              if (bg && first.textContent.trim().length > 0) {
+                announcement = first;
+              }
+            }
+          }
+
+          if (announcement) {
+            var bar = document.getElementById("announcement-bar");
+            // Fix relative links to point to the main site
+            var links = announcement.querySelectorAll("a");
+            for (var j = 0; j < links.length; j++) {
+              var href = links[j].getAttribute("href");
+              if (href && !href.startsWith("http") && !href.startsWith("//")) {
+                links[j].setAttribute("href", "/latest/" + href.replace(/^\//, 
""));
+              }
+            }
+            bar.innerHTML = announcement.outerHTML;
+          }
+        })
+        .catch(function () {
+          // Silently fail — no announcement bar shown
+        });
+    })();
+  </script>
+{% endblock %}
diff --git a/docs/overrides/partials/copyright.html 
b/docs/overrides/partials/copyright.html
new file mode 100644
index 00000000..caec7fab
--- /dev/null
+++ b/docs/overrides/partials/copyright.html
@@ -0,0 +1,29 @@
+{#-
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-#}
+<div class="md-copyright">
+  {% if config.copyright %}
+      {{ config.copyright }}
+  {% endif %}
+  {% if not config.extra.generator == false %}
+    Made with
+    <a href="https://squidfunk.github.io/mkdocs-material/"; target="_blank" 
rel="noopener">
+      Material for MkDocs
+    </a>
+  {% endif %}
+</div>
diff --git a/docs/overrides/partials/footer.html 
b/docs/overrides/partials/footer.html
new file mode 100644
index 00000000..ba539fec
--- /dev/null
+++ b/docs/overrides/partials/footer.html
@@ -0,0 +1,42 @@
+{#-
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-#}
+<footer class="footer md-footer">
+  <div class="container">
+
+    <div class="footer__top">
+
+      <div class="col-left">
+        <img src="{{ 'image/footer/logo-footer.svg' | url }}" alt="" 
class="footer-logo">
+      </div>
+
+      <div class="col-right">
+        {% if config.extra.social %}
+        {% include "partials/social.html" %}
+        {% endif %}
+      </div>
+    </div>
+
+    <hr class="footer-hr"></hr>
+
+    <div class="footer__bot">
+      {% include "partials/copyright.html" %}
+    </div>
+
+  </div>
+</footer>
diff --git a/docs/overrides/partials/header.html 
b/docs/overrides/partials/header.html
new file mode 100644
index 00000000..948b752f
--- /dev/null
+++ b/docs/overrides/partials/header.html
@@ -0,0 +1,126 @@
+<!--
+  Copyright (c) 2016-2025 Martin Donath <[email protected]>
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to
+  deal in the Software without restriction, including without limitation the
+  rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+  sell copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in
+  all copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+  IN THE SOFTWARE.
+-->
+
+<!-- Determine classes -->
+{% set class = "md-header" %}
+{% if "navigation.tabs.sticky" in features %}
+{% set class = class ~ " md-header--shadow md-header--lifted" %}
+{% elif "navigation.tabs" not in features %}
+{% set class = class ~ " md-header--shadow" %}
+{% endif %}
+
+<!-- Header -->
+<header class="{{ class }}" data-md-component="header">
+    <nav
+      class="md-header__inner md-grid container"
+      aria-label="{{ lang.t('header') }}"
+    >
+      <div class="left-part">
+
+        <!-- Button to open drawer -->
+        <label class="md-header__button md-icon" for="__drawer">
+          {% set icon = config.theme.icon.menu or "material/menu" %}
+          {% include ".icons/" ~ icon ~ ".svg" %}
+        </label>
+
+        <!-- Link to home -->
+        <a
+          href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}"
+          title="{{ config.site_name | e }}"
+          class="header-logo"
+          aria-label="{{ config.site_name }}"
+          data-md-component="logo"
+        >
+          {% include "partials/logo.html" %}
+        </a>
+
+        <!-- Header title -->
+        <div class="md-header__title" data-md-component="header-title">
+          <div class="md-header__ellipsis">
+            <div class="md-header__topic">
+          <span class="md-ellipsis">
+            {{ config.site_name }}
+          </span>
+            </div>
+            <div class="md-header__topic" data-md-component="header-topic">
+          <span class="md-ellipsis">
+            {% if page.meta and page.meta.title %}
+              {{ page.meta.title }}
+            {% else %}
+              {{ page.title }}
+            {% endif %}
+          </span>
+            </div>
+          </div>
+        </div>
+
+        <!-- Color palette toggle -->
+        {% if config.theme.palette %}
+        {% if not config.theme.palette is mapping %}
+        {% include "partials/palette.html" %}
+        {% endif %}
+        {% endif %}
+
+        <!-- User preference: color palette -->
+        {% if not config.theme.palette is mapping %}
+        {% include "partials/javascripts/palette.html" %}
+        {% endif %}
+
+        <!-- Site language selector -->
+        {% if config.extra.alternate %}
+        {% include "partials/alternate.html" %}
+        {% endif %}
+      </div>
+      <div class="right-part">
+
+        <!-- Button to open search modal -->
+        {% if "material/search" in config.plugins %}
+        {% set search = config.plugins["material/search"] | attr("config") %}
+
+        <!-- Check if search is actually enabled - see https://t.ly/DT_0V -->
+        {% if search.enabled %}
+        <label class="md-header__button md-icon btn-search" for="__search">
+          {% set icon = config.theme.icon.search or "material/magnify" %}
+          {% include ".icons/" ~ icon ~ ".svg" %}
+        </label>
+
+        <!-- Search interface -->
+        {% include "partials/search.html" %}
+        {% endif %}
+        {% endif %}
+
+        <!-- Repository information -->
+        {% if config.repo_url %}
+        <div class="md-header__source">
+          {% include "partials/source.html" %}
+        </div>
+        {% endif %}
+      </div>
+    </nav>
+
+    <!-- Navigation tabs (sticky) -->
+    {% if "navigation.tabs.sticky" in features %}
+    {% if "navigation.tabs" in features %}
+    {% include "partials/tabs.html" %}
+    {% endif %}
+    {% endif %}
+</header>
diff --git a/docs/overrides/partials/nav.html b/docs/overrides/partials/nav.html
new file mode 100644
index 00000000..6190a179
--- /dev/null
+++ b/docs/overrides/partials/nav.html
@@ -0,0 +1,56 @@
+{#-
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-#}
+{% import "partials/nav-item.html" as item with context %}
+{% set class = "md-nav md-nav--primary" %}
+{% if "navigation.tabs" in features %}
+{% set class = class ~ " md-nav--lifted" %}
+{% endif %}
+{% if "toc.integrate" in features %}
+{% set class = class ~ " md-nav--integrated" %}
+{% endif %}
+
+
+<nav class="{{ class }}" aria-label="{{ lang.t('nav') }}" data-md-level="0">
+
+  <label class="md-nav__title" for="__drawer">
+    <a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" 
title="{{ config.site_name | e }}" class="logo-link" aria-label="{{ 
config.site_name }}" data-md-component="logo">
+      <img src="{{ 'image/header/logo-mobile.svg' | url }}" alt="" 
class="logo">
+    </a>
+  </label>
+
+  {% if config.repo_url %}
+  <div class="md-nav__source">
+    {% include "partials/source.html" %}
+  </div>
+  {% endif %}
+
+  <ul class="md-nav__list" data-md-scrollfix>
+    {% for nav_item in nav %}
+    {% set path = "__nav_" ~ loop.index %}
+    {{ item.render(nav_item, path, 1) }}
+    {% endfor %}
+
+    <li class="btn-group">
+      <a href="#" class="btn btn-red">
+        Get started
+      </a>
+    </li>
+
+  </ul>
+</nav>
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
index 5cd0bcf0..a9344dbe 100644
--- a/docs/stylesheets/extra.css
+++ b/docs/stylesheets/extra.css
@@ -18,111 +18,332 @@
 */
 
 /* ==========================================================================
-   Global Color and Font Variables
+   Variables (from _vars.scss)
    ========================================================================== 
*/
 :root {
   --color-red: #CA463A;
+  --color-red-hover: #EA5547;
   --color-white: #fff;
   --color-dark: #1C1C1C;
-  --font-inter: "Inter",
-  sans-serif;
+  --color-light-blue: #E2ECF3;
+  --color-violet: #7142FF;
+  --font-inter: 'Inter', sans-serif;
 }
 
 /* ==========================================================================
-   Header Styles
+   Container (from _header.scss)
    ========================================================================== 
*/
+.container {
+  max-width: 1170px;
+  width: 100%;
+  padding-left: 24px;
+  padding-right: 24px;
+  margin-left: auto;
+  margin-right: auto;
+}
 
-/* Main header container (the top black bar) */
+/* ==========================================================================
+   Header (from _header.scss)
+   ========================================================================== 
*/
 .md-header {
   box-shadow: none;
   background-color: var(--color-dark);
 }
 
-/* Inner content of the header */
 .md-header .md-header__inner {
   background-color: var(--color-dark);
   min-height: 80px;
+  padding: 0;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.md-header__inner .left-part {
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+}
+
+.md-header__inner .right-part {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  gap: 32px;
 }
 
-/* Styles for the logo image */
-.md-header .md-header__inner .header-logo img,
-.md-header .md-header__inner .header-logo svg {
+@media (min-width: 1220px) {
+  .md-header__inner .right-part .md-search__inner {
+    max-width: 510px;
+  }
+}
+
+.md-header__inner .header-logo {
+  padding: 0;
+  margin: 0;
+}
+
+.md-header__inner .header-logo img,
+.md-header__inner .header-logo svg {
   height: 42px;
   width: auto;
+  display: block;
+  object-fit: contain;
 }
 
-/* --- Definitive Navigation CSS (Final Version) --- */
+.md-header__title {
+  font-size: 0;
+}
 
-/* 1. Set the height of the main navigation bar */
-.md-tabs {
-  background-color: var(--color-red);
-  height: 2.5rem; /* Set an explicit, predictable height for the bar */
+/* Also target the default .md-logo */
+.md-header .md-logo img,
+.md-header .md-logo svg {
+  height: 42px;
+  width: auto;
 }
 
-/* 2. Control the alignment of the links within the bar */
-.md-tabs .md-tabs__list {
-  height: 100%; /* Make the link container fill the bar's height */
-  justify-content: center; /* Center links horizontally */
-  align-items: center;   /* NEW: Center links vertically */
-  flex-wrap: wrap;       /* Allow wrapping on small screens */
+/* Header mobile */
+@media (max-width: 1219px) {
+  .md-header .container {
+    padding-left: 18px;
+    padding-right: 18px;
+  }
+  .md-header .md-header__inner {
+    min-height: 60px;
+  }
+  .md-header__inner .header-logo img,
+  .md-header__inner .header-logo svg {
+    height: 23px;
+  }
+  .md-header__inner .right-part {
+    gap: 0;
+  }
+  .md-header__inner .right-part .btn-group {
+    display: none;
+  }
+  .md-header__inner .right-part .btn-search {
+    margin: 0;
+  }
+  .md-header .md-header__button {
+    width: 32px;
+    height: 32px;
+    padding: 0;
+    margin: 0;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin-right: 14px;
+  }
+  .md-header .md-header__button.btn-search {
+    display: none;
+  }
 }
 
-/* 3. Style the individual navigation links */
-.md-tabs__link {
-  font-weight: 400;
-  color: rgba(255, 255, 255, 0.85);
-  /* We no longer need vertical padding for spacing */
-  padding: 0 0.9rem;
-  font-size: 0.65rem; /* NEW: Adjust font size */
+@media (max-width: 959px) {
+  .md-header .md-header__button.btn-search {
+    display: flex;
+  }
 }
 
 /* ==========================================================================
-   Logo Size Adjustment
+   Navigation Tabs (from _header.scss)
    ========================================================================== 
*/
+.md-tabs {
+  background-color: var(--color-red);
+}
 
-/*
-  Targets the logo in the header, whether it's an SVG or a standard image file.
-  Adjust the height value as needed to get the perfect size.
-*/
-.md-header .md-logo img,
-.md-header .md-logo svg {
-  height: 42px; /* This should match the Apache Sedona logo size */
-  width: auto;  /* Ensures the width scales proportionally */
+.md-tabs .md-grid {
+  max-width: 100%;
 }
 
+.md-tabs .md-tabs__list {
+  display: flex;
+  justify-content: center;
+}
+
+.md-tabs .md-tabs__list .md-tabs__item a {
+  font-family: var(--font-inter);
+  font-style: normal;
+  font-weight: 500;
+  font-size: 14px;
+  line-height: 1.22;
+  color: var(--color-white);
+}
 
 /* ==========================================================================
-   Mobile Navigation Styles
+   Mobile Sidebar / Nav (from _header.scss)
    ========================================================================== 
*/
+@media (max-width: 1219px) {
+  [dir=ltr] .md-sidebar--primary {
+    left: -280px;
+  }
+  [data-md-toggle=drawer]:checked ~ .md-container .md-sidebar--primary {
+    transform: translateX(280px);
+  }
+  .md-sidebar--primary {
+    width: 280px;
+  }
+  .md-sidebar--primary .md-nav--primary .md-nav__title[for=__drawer] {
+    background-color: var(--color-dark);
+    padding: 24px;
+    height: auto;
+  }
+  .md-sidebar--primary .md-nav--primary .md-nav__title[for=__drawer] img {
+    height: 82px;
+    width: auto;
+    display: block;
+    object-fit: contain;
+  }
+  .md-sidebar--primary .md-nav__source {
+    background-color: #000;
+    padding: 16px 24px;
+  }
+  .md-sidebar--primary .md-nav__source .md-source__icon svg {
+    margin-left: 0;
+  }
+  .md-sidebar--primary .md-nav__list,
+  .md-sidebar--primary .md-nav__title ~ .md-nav__list {
+    padding-bottom: 75px;
+    background-color: var(--color-dark);
+  }
+  .md-sidebar--primary .md-nav__list .md-nav__item,
+  .md-sidebar--primary .md-nav__title ~ .md-nav__list .md-nav__item {
+    border-bottom: 1px solid #323232;
+  }
+  .md-sidebar--primary .md-nav__list .md-nav__item .md-nav__link,
+  .md-sidebar--primary .md-nav__title ~ .md-nav__list .md-nav__item 
.md-nav__link {
+    font-family: var(--font-inter);
+    font-style: normal;
+    font-weight: 400;
+    font-size: 16px;
+    line-height: 1.67;
+    align-items: center;
+    letter-spacing: 0.18px;
+    color: #FFFFFF;
+    padding-left: 24px;
+    padding-right: 24px;
+    padding-top: 12px;
+    padding-bottom: 12px;
+    min-height: 50px;
+  }
+  .md-sidebar--primary .md-nav__list .btn-group,
+  .md-sidebar--primary .md-nav__title ~ .md-nav__list .btn-group {
+    padding-left: 24px;
+    padding-right: 24px;
+    padding-top: 32px;
+  }
+  .md-sidebar--primary .md-nav__list .btn-group .btn,
+  .md-sidebar--primary .md-nav__title ~ .md-nav__list .btn-group .btn {
+    width: 100%;
+  }
+  .md-sidebar--primary .md-nav--primary .md-nav__title {
+    background-color: #000;
+    color: var(--color-white);
+    padding-left: 24px;
+  }
+}
 
-/*
-  Force the entire mobile navigation header to be black, overriding theme 
defaults.
-*/
-.md-nav--primary .md-nav__title,
-.md-nav--primary .md-nav__source {
-  background-color: var(--color-dark) !important;
+/* Desktop sidebar */
+@media (min-width: 1220px) {
+  .md-sidebar--primary .btn-group {
+    display: none;
+  }
 }
 
 /* ==========================================================================
-   Swap Logo ONLY in Mobile Navigation
+   Footer (from _footer.scss)
    ========================================================================== 
*/
+.footer {
+  background-color: var(--color-dark);
+}
 
-/*
-  Target the logo link (<a> tag) directly and apply the new logo
-  as a background image, overriding the theme's default icon.
-*/
-.md-sidebar--primary .md-nav__title a.md-nav__button.md-logo {
-  background-image: url('/docs/image/sedona_logo_symbol.svg');
-  background-size: contain;
-  background-repeat: no-repeat;
-  background-position: center;
+.footer .footer__top {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding-bottom: 32px;
+  padding-top: 64px;
+  gap: 48px;
+  flex-wrap: wrap;
+}
+
+.footer .footer__top .footer-logo {
+  height: 30px;
+  width: auto;
+  display: block;
+  object-fit: contain;
+}
+
+.footer .footer__top .md-social {
+  padding: 0;
+  margin: 0;
+  gap: 18px;
+}
+
+.footer .footer__top .md-social .md-social__link {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  width: 32px;
+  height: 32px;
+}
+
+.footer .footer__top .md-social .md-social__link svg,
+.footer .footer__top .md-social .md-social__link img {
+  width: 28px;
+  height: 28px;
+  max-height: 28px;
+  display: block;
+  object-fit: contain;
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.footer .footer__top .md-social .md-social__link:hover svg,
+.footer .footer__top .md-social .md-social__link:hover img {
+  color: var(--color-white);
+}
+
+.footer .footer-hr {
+  background-color: #323232;
+  height: 1px;
+  width: 100%;
+  display: block;
+  margin: 0;
+  border: 0;
+}
+
+.footer .footer__bot {
+  padding-top: 32px;
+  padding-bottom: 64px;
+}
+
+.footer .footer__bot .md-copyright {
+  font-family: var(--font-inter);
+  font-style: normal;
+  font-weight: 400;
+  font-size: 12px;
+  line-height: 1.25;
+  text-align: center;
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.footer .footer__bot .md-copyright a {
+  text-decoration: underline;
+  text-underline-offset: 2px;
+  transition: 0.3s all ease;
+}
 
-  /* Hide the theme's default icon which is applied via a mask */
-  -webkit-mask: none;
-  mask: none;
+.footer .footer__bot .md-copyright a:hover {
+  color: var(--color-white);
 }
 
-/* Change the mobile nav header label text to white */
-label.md-nav__title {
-  color: #FFFFFF !important;
+@media (max-width: 480px) {
+  .footer .footer__top {
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .footer .footer__bot .md-copyright {
+    text-align: left;
+  }
 }
diff --git a/mkdocs.yml b/mkdocs.yml
index 4af02863..7095a23a 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -28,15 +28,11 @@ extra:
     - icon: fontawesome/brands/discord
       link: 'https://discord.gg/9A3k5dEBsY'
 
-site_name: SedonaDB
+site_name: Apache Sedona
 site_description: "Documentation for SedonaDB"
 site_url: https://sedona.apache.org/sedonadb/
 nav:
   - Home: https://sedona.apache.org/latest/
-  - Setup: https://sedona.apache.org/latest/setup/overview/
-  - Download: https://sedona.apache.org/latest/download/
-  - Programming Guides: https://sedona.apache.org/latest/tutorial/sql/
-  - API Docs: https://sedona.apache.org/latest/api/sql/Overview/
   - SedonaDB:
       - Home: index.md
       - Quickstart: quickstart-python.md
@@ -53,9 +49,12 @@ nav:
         - Working with Parquet Files: working-with-parquet-files.md
         - Working with SQL in SedonaDB: working-with-sql-sedonadb.md
       - Contributors Guide: contributors-guide.md
+  - SedonaSpark: https://sedona.apache.org/latest/sedonaspark/
+  - SedonaFlink: https://sedona.apache.org/latest/sedonaflink/
+  - SedonaSnow: https://sedona.apache.org/latest/sedonasnow/
   - SpatialBench: https://sedona.apache.org/spatialbench/
   - Blog: https://sedona.apache.org/latest/blog/
-  - Community: https://sedona.apache.org/latest/setup/compile/
+  - Community: https://sedona.apache.org/latest/community/contact/
   - Apache Software Foundation: https://sedona.apache.org/latest/asf/asf/
 
 repo_url: https://github.com/apache/sedona-db
@@ -63,6 +62,7 @@ edit_uri: https://github.com/apache/sedona-db/blob/main/docs/
 repo_name: apache/sedona-db
 theme:
   name: material
+  custom_dir: docs/overrides
   font:
     font: false
     name: 'material'
@@ -70,7 +70,7 @@ theme:
     primary: custom
     accent: 'green'
   favicon: image/sedona_logo_symbol.png
-  logo: image/sedona_logo_symbol.png
+  logo: image/logo.svg
   icon:
     logo: fontawesome/solid/earth-americas
     repo: fontawesome/brands/github
@@ -91,7 +91,7 @@ theme:
 extra_css:
   - stylesheets/extra.css
 
-copyright: Copyright © 2025 The Apache Software Foundation. Apache Sedona, 
Sedona, Apache, the Apache feather logo, and the Apache Sedona project logo are 
either registered trademarks or trademarks of The Apache Software Foundation in 
the United States and other countries. All other marks mentioned may be 
trademarks or registered trademarks of their respective owners. Please visit <a 
href="https://www.apache.org/";>Apache Software Foundation</a> for more 
details.<img referrerpolicy="no-re [...]
+copyright: Copyright © 2026 The Apache Software Foundation. Apache Sedona, 
Sedona, Apache, the Apache feather logo, and the Apache Sedona project logo are 
either registered trademarks or trademarks of The Apache Software Foundation in 
the United States and other countries. All other marks mentioned may be 
trademarks or registered trademarks of their respective owners. Please visit <a 
href="https://www.apache.org/";>Apache Software Foundation</a> for more 
details.<img referrerpolicy="no-re [...]
 
 exclude_docs: |
      snippets/*


Reply via email to