From 82e41479d80f71e6056a1896faa6a71b9893b780 Mon Sep 17 00:00:00 2001 From: Owais Jamil Date: Wed, 3 Jun 2026 08:43:58 -0500 Subject: [PATCH] docs: planning and docsite/book theming --- docs/book.toml | 5 + docs/src/SUMMARY.md | 19 +++ docs/src/fonts/Outfit-Variable.woff2 | Bin 0 -> 32292 bytes docs/src/fonts/Switzer-Variable.woff2 | Bin 0 -> 43220 bytes docs/src/fonts/Switzer-VariableItalic.woff2 | Bin 0 -> 33408 bytes .../internal/specs/00_pipeline_overview.md | 48 ++++++ docs/src/internal/specs/01_tree_sitter_ast.md | 42 +++++ docs/src/internal/specs/02_name_resolution.md | 38 +++++ docs/src/internal/specs/03_types.md | 46 ++++++ docs/src/internal/specs/04_core_ir.md | 43 +++++ docs/src/internal/specs/05_wasm_backend.md | 39 +++++ .../specs/06_testing_and_diagnostics.md | 47 ++++++ .../src/internal/tasks/00_project_scaffold.md | 20 +++ docs/src/internal/tasks/01_tree_sitter_ast.md | 21 +++ docs/src/internal/tasks/02_name_resolution.md | 21 +++ docs/src/internal/tasks/03_types.md | 22 +++ docs/src/internal/tasks/04_core_ir.md | 21 +++ docs/src/internal/tasks/05_wasm_backend.md | 21 +++ .../src/internal/tasks/06_testing_and_docs.md | 21 +++ docs/theme/custom.css | 148 ++++++++++++++++++ 20 files changed, 622 insertions(+) create mode 100644 docs/src/fonts/Outfit-Variable.woff2 create mode 100644 docs/src/fonts/Switzer-Variable.woff2 create mode 100644 docs/src/fonts/Switzer-VariableItalic.woff2 create mode 100644 docs/src/internal/specs/00_pipeline_overview.md create mode 100644 docs/src/internal/specs/01_tree_sitter_ast.md create mode 100644 docs/src/internal/specs/02_name_resolution.md create mode 100644 docs/src/internal/specs/03_types.md create mode 100644 docs/src/internal/specs/04_core_ir.md create mode 100644 docs/src/internal/specs/05_wasm_backend.md create mode 100644 docs/src/internal/specs/06_testing_and_diagnostics.md create mode 100644 docs/src/internal/tasks/00_project_scaffold.md create mode 100644 docs/src/internal/tasks/01_tree_sitter_ast.md create mode 100644 docs/src/internal/tasks/02_name_resolution.md create mode 100644 docs/src/internal/tasks/03_types.md create mode 100644 docs/src/internal/tasks/04_core_ir.md create mode 100644 docs/src/internal/tasks/05_wasm_backend.md create mode 100644 docs/src/internal/tasks/06_testing_and_docs.md create mode 100644 docs/theme/custom.css diff --git a/docs/book.toml b/docs/book.toml index 5fe967f..ee76f0b 100644 --- a/docs/book.toml +++ b/docs/book.toml @@ -2,3 +2,8 @@ title = "Compiling Gleam to WebAssembly" authors = ["Owais Jamil"] language = "en" + +[output.html] +default-theme = "coal" +preferred-dark-theme = "coal" +additional-css = ["theme/custom.css"] diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md index 7390c82..21f6dd8 100644 --- a/docs/src/SUMMARY.md +++ b/docs/src/SUMMARY.md @@ -1,3 +1,22 @@ # Summary - [Chapter 1](./chapter_1.md) + +# Internal planning + +- [Specs]() + - [Pipeline overview](internal/specs/00_pipeline_overview.md) + - [Tree-sitter to AST](internal/specs/01_tree_sitter_ast.md) + - [Name resolution](internal/specs/02_name_resolution.md) + - [Types and Gleam compiler interop](internal/specs/03_types.md) + - [Core IR](internal/specs/04_core_ir.md) + - [WebAssembly backend](internal/specs/05_wasm_backend.md) + - [Testing and diagnostics](internal/specs/06_testing_and_diagnostics.md) +- [Tasks]() + - [Project scaffold](internal/tasks/00_project_scaffold.md) + - [Tree-sitter and AST](internal/tasks/01_tree_sitter_ast.md) + - [Name resolution](internal/tasks/02_name_resolution.md) + - [Type system](internal/tasks/03_types.md) + - [Core IR](internal/tasks/04_core_ir.md) + - [WebAssembly backend](internal/tasks/05_wasm_backend.md) + - [Testing and docs](internal/tasks/06_testing_and_docs.md) diff --git a/docs/src/fonts/Outfit-Variable.woff2 b/docs/src/fonts/Outfit-Variable.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..85e3332e6d9430f3c6b158843ceb6d3f95743f8a GIT binary patch literal 32292 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 literal 0 HcmV?d00001 diff --git a/docs/src/fonts/Switzer-Variable.woff2 b/docs/src/fonts/Switzer-Variable.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..91f868af412a2aac5ab291edbcae1573d5a7117d GIT binary patch literal 43220 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­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 literal 0 HcmV?d00001 diff --git a/docs/src/fonts/Switzer-VariableItalic.woff2 b/docs/src/fonts/Switzer-VariableItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8cc3f746c248dc2dedf056c208b5596a6180f7d2 GIT binary patch literal 33408 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 n4BoqO@iFH~_g9J<=KNY5qV->yHQMB` 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 literal 0 HcmV?d00001 diff --git a/docs/src/internal/specs/00_pipeline_overview.md b/docs/src/internal/specs/00_pipeline_overview.md new file mode 100644 index 0000000..c1c4892 --- /dev/null +++ b/docs/src/internal/specs/00_pipeline_overview.md @@ -0,0 +1,48 @@ +# Pipeline overview + +This compiler starts from Gleam source and uses tree-sitter for parsing. It does +not own a production lexer or parser. The compiler-owned frontend begins at the +translation from tree-sitter's concrete syntax tree into our typed AST. + +```text +source.gleam + -> tree-sitter concrete syntax tree + -> compiler AST + -> name resolution + -> type checking, or type import from the Gleam compiler later + -> core IR + -> WebAssembly IR / WAT + -> .wasm + -> Wasmtime or browser runtime +``` + +## Goals + +- Compile a small, well-specified subset of Gleam to WebAssembly. +- Keep compiler phases explicit and independently testable. +- Reuse the official Gleam compiler where it is practical, especially for types. +- Emit readable diagnostics that point back to Gleam source spans. + +## Non-goals for the first milestone + +- Implementing a full Gleam lexer and parser. +- Supporting all Gleam language features. +- Matching the official JavaScript or Erlang backends. +- Optimizing generated WebAssembly. + +## Phase contracts + +Each phase should have a narrow input and output type: + +| Phase | Input | Output | +| --------- | ---------------- | ---------------------------- | +| Parse | Source text | tree-sitter CST | +| AST build | CST + source | compiler AST | +| Resolve | AST | resolved AST + symbol tables | +| Type | resolved AST | typed AST | +| Lower | typed AST | core IR | +| Codegen | core IR | WASM IR / WAT | +| Assemble | WAT or binary IR | `.wasm` | + +Phase boundaries are public within the crate. Tests should be able to construct +inputs for a phase without running the whole compiler pipeline. diff --git a/docs/src/internal/specs/01_tree_sitter_ast.md b/docs/src/internal/specs/01_tree_sitter_ast.md new file mode 100644 index 0000000..1fdf14b --- /dev/null +++ b/docs/src/internal/specs/01_tree_sitter_ast.md @@ -0,0 +1,42 @@ +# Tree-sitter to AST + +Tree-sitter is responsible for recognizing Gleam syntax. Our AST builder is +responsible for converting a permissive concrete syntax tree into compiler data +structures with source spans and clear invariants. + +## Responsibilities + +- Run tree-sitter over `source.gleam`. +- Reject parse errors before AST construction continues. +- Convert CST nodes into a small compiler AST. +- Preserve source spans on every declaration, expression, pattern, and type + annotation node. +- Normalize syntactic trivia away from later phases. + +## Initial AST subset + +The first AST should cover enough Gleam to compile simple modules: + +- Module name and imports. +- Public and private top-level functions. +- Integer, float, string, bool, and unit literals. +- Variables and function calls. +- `let` bindings. +- Blocks and simple `case` expressions. +- Type annotations where present. + +Records, custom types, bit arrays, use expressions, and advanced pattern forms +can be added after the first end-to-end pipeline works. + +## Invariants + +- No AST node represents a tree-sitter error node. +- Lists are ordered exactly as they appear in source. +- Names are stored as source text plus span, not as resolved identifiers. +- AST construction does not perform name resolution or type inference. + +## Diagnostics + +AST construction diagnostics should describe malformed or unsupported syntax in +terms of Gleam source, not tree-sitter internals. Unsupported syntax is allowed +early on, but each unsupported construct should have a targeted diagnostic. diff --git a/docs/src/internal/specs/02_name_resolution.md b/docs/src/internal/specs/02_name_resolution.md new file mode 100644 index 0000000..4d069f4 --- /dev/null +++ b/docs/src/internal/specs/02_name_resolution.md @@ -0,0 +1,38 @@ +# Name resolution + +Name resolution maps textual names in the AST to declarations. It should not +infer types or lower expressions. Its output is a resolved AST plus symbol data +that later phases can query. + +## Responsibilities + +- Build module, import, function, parameter, and local scopes. +- Resolve variable references to local bindings, parameters, imported names, or + top-level definitions. +- Detect duplicate definitions in the same scope. +- Detect unknown names and ambiguous imported names. +- Assign stable internal IDs to symbols. + +## Initial scope model + +- A module scope contains top-level functions and imported modules or values. +- A function scope contains parameters and nested local bindings. +- A `let` binding is visible after its binding site in the current block. +- Inner bindings may shadow outer bindings if Gleam permits that form. + +## Imports + +The first implementation may support a small import subset: + +- `import gleam/int` +- `import module/name as alias` +- Qualified references through imported module aliases + +Unqualified imported values and prelude behavior should be documented before +being implemented. + +## Output requirements + +Resolved nodes should carry symbol IDs rather than raw strings for references. +The original textual name and source span should remain available for +user-facing diagnostics. diff --git a/docs/src/internal/specs/03_types.md b/docs/src/internal/specs/03_types.md new file mode 100644 index 0000000..4bb8aa6 --- /dev/null +++ b/docs/src/internal/specs/03_types.md @@ -0,0 +1,46 @@ +# Types and Gleam compiler interop + +The compiler needs type information before lowering to core IR. The long-term +preference is to reuse or import type information from the official Gleam +compiler. A local checker can begin as a narrow subset so the backend can be +built and tested. + +## Responsibilities + +- Attach a type to every expression and pattern accepted by lowering. +- Check function arity and argument types. +- Check `let` bindings and block result types. +- Check branch compatibility in `case` expressions. +- Produce diagnostics with source spans. + +## Initial type subset + +- `Int` +- `Float` +- `String` +- `Bool` +- `Nil` +- Function types + +Custom types, generics, records, and opaque types can be staged later. Each new +feature should be reflected in AST, resolution, lowering, and runtime support. + +## Interop direction + +The type subsystem should be isolated behind a phase interface so it can be +replaced or augmented with data from the Gleam compiler. Avoid baking local type +checker assumptions into the AST or WASM backend. + +Possible future import data: + +- Module interface types. +- Resolved names from package dependencies. +- Inferred expression or declaration types. +- Constructor and record metadata. + +## Invariants + +- Lowering receives only typed input. +- Type errors stop compilation before core IR generation. +- Runtime representation decisions are not made by the type checker, except + through explicit type metadata passed to lowering. diff --git a/docs/src/internal/specs/04_core_ir.md b/docs/src/internal/specs/04_core_ir.md new file mode 100644 index 0000000..99eab0d --- /dev/null +++ b/docs/src/internal/specs/04_core_ir.md @@ -0,0 +1,43 @@ +# Core IR + +Core IR is the compiler's small, typed intermediate representation. It should be +closer to WebAssembly than Gleam, but still independent of a specific textual or +binary WASM emitter. + +## Responsibilities + +- Represent typed functions, locals, expressions, calls, and control flow. +- Make evaluation order explicit. +- Remove Gleam-specific surface syntax. +- Carry enough type and span metadata for backend errors and debug output. + +## Initial IR shape + +The first IR can be expression-oriented: + +- Module +- Function +- Block +- Local get/set +- Literal constants +- Direct calls +- If / branch +- Return + +A later pass can introduce lower-level instructions if stack-machine codegen +becomes easier from a flattened form. + +## Lowering rules + +- Top-level Gleam functions become core IR functions. +- Function parameters become core IR locals. +- `let` bindings become locals with explicit initialization. +- Blocks evaluate statements in order and yield the final expression. +- Runtime-managed values, such as strings, use an explicit representation type. + +## Invariants + +- All core IR values are typed. +- All variable references point to known locals or functions. +- No Gleam name-resolution rules remain. +- Unsupported typed AST constructs fail during lowering with a clear diagnostic. diff --git a/docs/src/internal/specs/05_wasm_backend.md b/docs/src/internal/specs/05_wasm_backend.md new file mode 100644 index 0000000..5eecca9 --- /dev/null +++ b/docs/src/internal/specs/05_wasm_backend.md @@ -0,0 +1,39 @@ +# WebAssembly backend + +The backend turns core IR into WebAssembly. Early milestones should prioritize +readable WAT and correctness in Wasmtime over compact binary output or browser +integration. + +## Responsibilities + +- Map core IR types to WebAssembly value types or runtime-managed references. +- Emit functions, locals, blocks, calls, and exports. +- Generate WAT for inspection and tests. +- Produce `.wasm` through an assembler or direct binary writer. +- Run smoke tests in Wasmtime. + +## Initial type mapping + +| Core type | WASM representation | +| --- | --- | +| Int | `i64` | +| Float | `f64` | +| Bool | `i32` with `0` false and `1` true | +| Nil | no value or sentinel, depending on context | +| String | runtime pointer/handle, initially unsupported or host-provided | + +String, list, custom type, and closure representation should be designed before +large language features depend on them. + +## Exports and entry points + +For early tests, top-level public functions can be exported by name when their +signatures only use supported scalar types. A conventional `main` entry point can +be added later for executable modules. + +## Invariants + +- The backend receives only valid core IR. +- Generated WAT is deterministic for snapshot tests. +- Backend errors mention the core construct and original source span when + available. diff --git a/docs/src/internal/specs/06_testing_and_diagnostics.md b/docs/src/internal/specs/06_testing_and_diagnostics.md new file mode 100644 index 0000000..a2d07ee --- /dev/null +++ b/docs/src/internal/specs/06_testing_and_diagnostics.md @@ -0,0 +1,47 @@ +# Testing and diagnostics + +The project should grow through small phase-level tests plus end-to-end compiler +tests. Diagnostics are part of the compiler API and should be tested like code +generation. + +## Test layers + +- AST snapshots from Gleam snippets. +- Name-resolution success and failure tests. +- Type-checking success and failure tests. +- Core IR snapshots. +- WAT snapshots. +- Wasmtime execution tests for exported scalar functions. + +## Fixtures + +Use small Gleam snippets in test fixtures. Each fixture should focus on one +language feature unless it is an end-to-end integration test. + +Suggested fixture layout: + +```text +tests/fixtures/ + ast/ + resolve/ + typecheck/ + ir/ + wasm/ +``` + +## Diagnostic expectations + +Diagnostics should include: + +- A stable diagnostic code. +- A short message. +- A primary source span. +- Optional notes or secondary spans. + +Snapshot tests should avoid depending on terminal color. The renderer can have a +separate golden test if needed. + +## CI expectations + +The default check should run formatting, unit tests, snapshot tests, and any +Wasmtime tests that do not require browser tooling. diff --git a/docs/src/internal/tasks/00_project_scaffold.md b/docs/src/internal/tasks/00_project_scaffold.md new file mode 100644 index 0000000..217085c --- /dev/null +++ b/docs/src/internal/tasks/00_project_scaffold.md @@ -0,0 +1,20 @@ +# Project scaffold tasks + +## Goal + +Create the compiler skeleton and make each phase callable from tests. + +## Tasks + +- [ ] Define crate modules for `source`, `parse`, `ast`, `resolve`, `types`, + `ir`, `wasm`, and `diagnostic`. +- [ ] Add a top-level compile pipeline function that wires phases together. +- [ ] Define a shared source file ID and span type. +- [ ] Define a shared diagnostic type with code, message, and spans. +- [ ] Add one end-to-end ignored or pending test for `pub fn add(a, b) { a + b }`. +- [ ] Document the current supported subset in the docs. + +## Done when + +The repository has a compiling skeleton, and tests can call each phase even if +some phases return `unsupported` diagnostics. diff --git a/docs/src/internal/tasks/01_tree_sitter_ast.md b/docs/src/internal/tasks/01_tree_sitter_ast.md new file mode 100644 index 0000000..b693d0e --- /dev/null +++ b/docs/src/internal/tasks/01_tree_sitter_ast.md @@ -0,0 +1,21 @@ +# Tree-sitter and AST tasks + +## Goal + +Parse Gleam source with tree-sitter and build a compiler-owned AST. + +## Tasks + +- [ ] Add the tree-sitter Gleam grammar dependency. +- [ ] Implement parser setup for a single source file. +- [ ] Detect and report tree-sitter error nodes. +- [ ] Define AST nodes for modules, imports, functions, parameters, blocks, + literals, variables, calls, `let`, and simple `case`. +- [ ] Implement CST-to-AST conversion for the initial subset. +- [ ] Preserve spans on all AST nodes. +- [ ] Add AST snapshot tests for simple modules and unsupported syntax. + +## Done when + +A valid small Gleam module can be parsed into AST, and malformed or unsupported +syntax produces a useful diagnostic. diff --git a/docs/src/internal/tasks/02_name_resolution.md b/docs/src/internal/tasks/02_name_resolution.md new file mode 100644 index 0000000..a5700aa --- /dev/null +++ b/docs/src/internal/tasks/02_name_resolution.md @@ -0,0 +1,21 @@ +# Name resolution tasks + +## Goal + +Resolve AST names to stable symbols before type checking. + +## Tasks + +- [ ] Define symbol IDs, scopes, and a symbol table. +- [ ] Collect top-level function declarations. +- [ ] Resolve function parameters and local `let` bindings. +- [ ] Resolve variable references to symbols. +- [ ] Implement duplicate-name diagnostics. +- [ ] Implement unknown-name diagnostics. +- [ ] Add initial support for qualified module imports. +- [ ] Add resolver tests for shadowing, duplicates, imports, and unknown names. + +## Done when + +Every variable reference in the supported AST subset either points to a symbol ID +or produces a targeted diagnostic. diff --git a/docs/src/internal/tasks/03_types.md b/docs/src/internal/tasks/03_types.md new file mode 100644 index 0000000..6157889 --- /dev/null +++ b/docs/src/internal/tasks/03_types.md @@ -0,0 +1,22 @@ +# Type system tasks + +## Goal + +Attach types to resolved AST nodes for the initial scalar subset. + +## Tasks + +- [ ] Define internal type data for `Int`, `Float`, `String`, `Bool`, `Nil`, and + function types. +- [ ] Parse or import simple function annotations. +- [ ] Type literals, variables, calls, blocks, `let`, and simple `case`. +- [ ] Check arity and argument compatibility for direct calls. +- [ ] Check branch result compatibility. +- [ ] Emit source-spanned type diagnostics. +- [ ] Keep the phase interface replaceable by future Gleam compiler type import. +- [ ] Add type-checking tests for valid and invalid snippets. + +## Done when + +A resolved module using supported scalar expressions can be converted into a +typed AST, and common type errors stop compilation before lowering. diff --git a/docs/src/internal/tasks/04_core_ir.md b/docs/src/internal/tasks/04_core_ir.md new file mode 100644 index 0000000..d67b958 --- /dev/null +++ b/docs/src/internal/tasks/04_core_ir.md @@ -0,0 +1,21 @@ +# Core IR tasks + +## Goal + +Lower typed AST into a small, typed core IR. + +## Tasks + +- [ ] Define core IR modules, functions, locals, expressions, blocks, literals, + calls, branches, and returns. +- [ ] Implement local allocation for parameters and `let` bindings. +- [ ] Lower supported literals and variable references. +- [ ] Lower direct function calls. +- [ ] Lower blocks and simple branches with explicit evaluation order. +- [ ] Preserve source spans or debug metadata where useful. +- [ ] Add core IR snapshot tests. + +## Done when + +The typed scalar subset lowers to deterministic core IR with no remaining +Gleam-specific name resolution or parsing concerns. diff --git a/docs/src/internal/tasks/05_wasm_backend.md b/docs/src/internal/tasks/05_wasm_backend.md new file mode 100644 index 0000000..6a83392 --- /dev/null +++ b/docs/src/internal/tasks/05_wasm_backend.md @@ -0,0 +1,21 @@ +# WebAssembly backend tasks + +## Goal + +Generate readable WAT and executable `.wasm` for supported core IR. + +## Tasks + +- [ ] Define a WASM emitter API that accepts core IR. +- [ ] Emit modules, function signatures, locals, constants, calls, and returns. +- [ ] Map `Int`, `Float`, and `Bool` to WASM scalar types. +- [ ] Export public scalar functions for tests. +- [ ] Add WAT snapshot tests. +- [ ] Add a path to assemble WAT into `.wasm` or emit binary WASM directly. +- [ ] Add Wasmtime tests for simple exported functions. +- [ ] Document unsupported runtime-managed values such as strings. + +## Done when + +A simple public Gleam function using scalar values can be compiled, loaded in +Wasmtime, called, and checked for the expected result. diff --git a/docs/src/internal/tasks/06_testing_and_docs.md b/docs/src/internal/tasks/06_testing_and_docs.md new file mode 100644 index 0000000..609b2d2 --- /dev/null +++ b/docs/src/internal/tasks/06_testing_and_docs.md @@ -0,0 +1,21 @@ +# Testing and docs tasks + +## Goal + +Keep compiler behavior documented and protected by tests as the supported subset +grows. + +## Tasks + +- [ ] Add fixture directories for each compiler phase. +- [ ] Choose and configure a snapshot testing approach. +- [ ] Add diagnostic golden tests without terminal color dependencies. +- [ ] Add end-to-end fixtures that compile and execute in Wasmtime. +- [ ] Update docs whenever a new language construct is supported. +- [ ] Add a short contributor guide for adding a new AST feature through WASM. +- [ ] Keep `docs/src/SUMMARY.md` linked to internal specs and task lists. + +## Done when + +New contributors can see the planned pipeline, run tests, and follow one feature +from Gleam source through generated WebAssembly. diff --git a/docs/theme/custom.css b/docs/theme/custom.css new file mode 100644 index 0000000..e224a58 --- /dev/null +++ b/docs/theme/custom.css @@ -0,0 +1,148 @@ +@font-face { + font-family: "Switzer"; + src: url("../fonts/Switzer-Variable.woff2") format("woff2"); + font-weight: 100 900; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "Switzer"; + src: url("../fonts/Switzer-VariableItalic.woff2") format("woff2"); + font-weight: 100 900; + font-style: italic; + font-display: swap; +} + +@font-face { + font-family: "Outfit"; + src: url("../fonts/Outfit-Variable.woff2") format("woff2"); + font-weight: 100 900; + font-style: normal; + font-display: swap; +} + +:root, +.coal, +.navy, +.ayu, +.light, +.rust { + --book-sidebar-bg: #151515; + --book-main-bg: #1e1e1e; + --book-accent: #ffaff3; + --book-text: #fefefc; + + --bg: var(--book-main-bg); + --fg: var(--book-text); + --sidebar-bg: var(--book-sidebar-bg); + --sidebar-fg: var(--book-text); + --sidebar-non-existant: rgba(254, 254, 252, 0.45); + --sidebar-active: var(--book-accent); + --sidebar-spacer: rgba(254, 254, 252, 0.12); + --scrollbar: rgba(255, 175, 243, 0.45); + --icons: var(--book-text); + --icons-hover: var(--book-accent); + --links: var(--book-accent); + --inline-code-color: var(--book-accent); + --theme-popup-bg: var(--book-sidebar-bg); + --theme-popup-border: var(--book-accent); + --theme-hover: rgba(255, 175, 243, 0.16); + --quote-bg: rgba(255, 175, 243, 0.08); + --quote-border: var(--book-accent); + --table-border-color: rgba(254, 254, 252, 0.18); + --table-header-bg: var(--book-sidebar-bg); + --table-alternate-bg: rgba(21, 21, 21, 0.35); + --searchbar-border-color: rgba(255, 175, 243, 0.4); + --searchbar-bg: var(--book-sidebar-bg); + --searchbar-fg: var(--book-text); + --searchresults-header-fg: var(--book-text); + --searchresults-border-color: rgba(254, 254, 252, 0.16); + --searchresults-li-bg: var(--book-main-bg); + --search-mark-bg: rgba(255, 175, 243, 0.3); +} + +html, +body { + background: var(--book-main-bg); + color: var(--book-text); + font-family: "Switzer", system-ui, sans-serif; +} + +body, +.content, +#content, +.page, +.page-wrapper { + background: var(--book-main-bg); +} + +.sidebar, +.sidebar-scrollbox, +.chapter, +#sidebar-toggle, +#menu-bar, +.menu-bar, +.nav-chapters { + background: var(--book-sidebar-bg); + color: var(--book-text); +} + +.content main { + color: var(--book-text); + font-family: "Switzer", system-ui, sans-serif; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.header, +.chapter li.part-title { + color: var(--book-text); + font-family: "Outfit", "Switzer", system-ui, sans-serif; + letter-spacing: -0.02em; +} + +a, +a:visited, +.content a, +.chapter li a.active, +.chapter li a:hover, +.menu-title, +.nav-chapters:hover { + color: var(--book-accent); +} + +.icon-button:hover, +.icon-button:focus, +#sidebar-toggle:hover, +#sidebar-toggle:focus { + color: var(--book-accent); + background: rgba(255, 175, 243, 0.12); +} + +code, +pre, +.hljs { + background: var(--book-sidebar-bg); + color: var(--book-text); +} + +:not(pre) > code { + color: var(--book-accent); + background: rgba(21, 21, 21, 0.7); +} + +blockquote { + background: rgba(255, 175, 243, 0.08); + border-color: var(--book-accent); +} + +#theme-list, +#mdbook-theme-list, +#mdbook-theme-toggle { + display: none; +} -- 2.51.2