diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 1a4381c..2766509 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -1,13 +1,28 @@ # Summary -- [Kaptan documentation](index.md) +- [Overview](index.md) + +# Start here + - [Getting started](getting-started.md) +- [Development and verification](development.md) + +# Design + - [Architecture](architecture.md) - [Safety boundary](safety-boundary.md) - [MAVLink and telemetry](mavlink.md) + +# Platforms + - [Boards](boards/index.md) - [Kakute F7 Mini V3](boards/kakute-f7-mini-v3.md) - [GEPRC GEP-F722-HD V2](boards/geprc-f722-v2.md) + +# Simulation + - [Host SITL](sitl.md) -- [Development and verification](development.md) + +# Reference + - [Reference](reference.md) diff --git a/docs/src/index.md b/docs/src/index.md index 68397f3..ca152b6 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,13 +1,13 @@ -# Kaptan documentation +# Overview Kaptan is an embedded Rust flight-controller project. This manual is the single source of project documentation: board support, safety boundaries, simulation, development workflow, and design references live here as Markdown. -The checked-in firmware is telemetry-only. It does not expose physical motor -authority, and no document in this site should be read as a physical-flight -release claim. +> **Status:** the checked-in firmware is telemetry-only. It does not expose +> physical motor authority, and this site does not make a physical-flight +> release claim. ## Index diff --git a/docs/theme/lore.css b/docs/theme/lore.css index 562c8e8..07a5dc6 100644 --- a/docs/theme/lore.css +++ b/docs/theme/lore.css @@ -9,27 +9,27 @@ html.coal, html.navy, html.ayu { --kaptan-background: #050505; - --kaptan-surface: #0a0a0a; - --kaptan-text: #cccccc; - --kaptan-muted: #888888; + --kaptan-surface: #101214; + --kaptan-text: #e5e7eb; + --kaptan-muted: #aab1b9; --kaptan-accent: #00ff41; - --kaptan-border: #333333; + --kaptan-border: #3a3d42; /* mdBook's generated content rules use these variables directly. */ --bg: #050505; --fg: #e6e6e6; - --sidebar-bg: #0a0a0a; + --sidebar-bg: #101214; --sidebar-fg: #e6e6e6; --sidebar-non-existant: #888888; --sidebar-active: #00ff41; - --sidebar-spacer: #333333; + --sidebar-spacer: #3a3d42; --links: #00ff41; --inline-code-color: #e6e6e6; - --quote-bg: #0a0a0a; - --quote-border: #333333; - --table-border-color: #333333; - --table-header-bg: #0a0a0a; - --table-alternate-bg: #080808; + --quote-bg: #101214; + --quote-border: #3a3d42; + --table-border-color: #3a3d42; + --table-header-bg: #101214; + --table-alternate-bg: #0b0d0e; --color-scheme: dark; } @@ -37,10 +37,10 @@ html, body { background: var(--kaptan-background); color: var(--fg); - font-family: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, - Consolas, "Liberation Mono", monospace; - font-size: 16px; - line-height: 1.7; + font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", + sans-serif; + font-size: 17px; + line-height: 1.65; } * { @@ -54,32 +54,10 @@ body { #mdbook-help-container, #mdbook-sidebar-toggle-anchor, #mdbook-menu-bar-hover-placeholder, -#mdbook-menu-bar .left-buttons, -#mdbook-menu-bar .right-buttons, #mdbook-sidebar-resize-handle { display: none !important; } -#mdbook-menu-bar { - background: var(--kaptan-surface); - border-bottom: 1px solid var(--kaptan-border); - height: auto; - margin: 0; - min-height: 0; - padding: 0.65rem 1.25rem; - position: static; -} - -#mdbook-menu-bar .menu-title { - color: var(--kaptan-text); - font-family: inherit; - font-size: 1rem; - font-weight: 700; - letter-spacing: 0.08em; - line-height: 1.35; - text-transform: uppercase; -} - #mdbook-sidebar { background: var(--kaptan-surface); border-right: 1px solid var(--kaptan-border); @@ -102,21 +80,36 @@ body { margin: 0; } +.sidebar-scrollbox .part-title { + color: var(--kaptan-muted); + font-size: 0.75rem; + font-weight: 700; + letter-spacing: 0.08em; + margin: 0; + padding: 1rem 1rem 0.3rem; + text-transform: uppercase; +} + .sidebar-scrollbox .chapter-item a { color: var(--kaptan-text); display: block; - font-size: 1rem; + font-size: 0.95rem; line-height: 1.5; padding: 0.4rem 1rem; text-decoration: none; } -.sidebar-scrollbox .chapter-item a:hover, -.sidebar-scrollbox .chapter-item a.active { - background: transparent; +.sidebar-scrollbox .chapter-item a:hover { color: var(--kaptan-accent); } +.sidebar-scrollbox .chapter-item a.active { + background: #122015; + border-left: 2px solid var(--kaptan-accent); + color: var(--kaptan-accent); + padding-left: calc(1rem - 2px); +} + .sidebar-scrollbox .section .chapter-item a { padding-left: 2rem; } @@ -149,20 +142,20 @@ h4 { } h1 { - font-size: 1.35rem; + font-size: 1.8rem; margin: 0 0 1.25rem; } h2 { border-bottom: 1px solid var(--kaptan-border); - font-size: 1rem; + font-size: 1.3rem; margin: 2rem 0 0.75rem; padding-bottom: 0.35rem; } h3, h4 { - font-size: 1rem; + font-size: 1.08rem; margin: 1.5rem 0 0.5rem; } @@ -198,7 +191,8 @@ li + li { code, pre, kbd { - font-family: inherit; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, + "Liberation Mono", monospace; } code { @@ -211,44 +205,27 @@ pre { background: var(--kaptan-surface); border: 1px solid var(--kaptan-border); overflow-x: auto; - padding: 0.75rem; + padding: 0; } pre code { padding: 0; } -/* mdBook ships a separate highlight.js palette; keep it high contrast too. */ +/* Keep copied or highlighted commands monochrome and uniformly legible. */ pre > code.hljs, .hljs { - background: #101010; - color: #f0f0f0; + background: transparent; + color: var(--kaptan-text); } +.hljs *, +.hljs-addition, +.hljs-deletion, .hljs-comment, .hljs-quote { - color: #b8b8b8; -} - -.hljs-keyword, -.hljs-selector-tag, -.hljs-literal, -.hljs-type, -.hljs-built_in, -.hljs-builtin-name { - color: var(--kaptan-accent); -} - -.hljs-string, -.hljs-number, -.hljs-meta, -.hljs-params, -.hljs-title, -.hljs-section, -.hljs-function, -.hljs-variable, -.hljs-attribute { - color: #e6e6e6; + background: transparent; + color: inherit; } table { @@ -280,6 +257,10 @@ blockquote { } @media (min-width: 900px) { + #mdbook-menu-bar { + display: none !important; + } + #mdbook-sidebar { bottom: 0; display: block !important; @@ -298,6 +279,40 @@ blockquote { } @media (max-width: 899px) { + #mdbook-menu-bar { + background: var(--kaptan-surface); + border-bottom: 1px solid var(--kaptan-border); + display: block; + height: auto; + min-height: 0; + padding: 0.45rem 0.75rem; + position: static; + } + + #mdbook-menu-bar .left-buttons { + display: block; + } + + #mdbook-menu-bar .menu-title, + #mdbook-menu-bar .right-buttons { + display: none; + } + + #mdbook-sidebar { + bottom: 0; + display: block !important; + left: 0; + position: fixed; + top: 0; + transform: translateX(-100%) !important; + width: min(17.5rem, 85vw); + z-index: 10; + } + + #mdbook-sidebar-toggle-anchor:checked ~ #mdbook-sidebar { + transform: translateX(0) !important; + } + #mdbook-page-wrapper, .page-wrapper { margin-left: 0 !important;