Downright / Themes
Six themes. One document.
This page uses the app's theme engine. Pick a theme and the whole page changes with it.
Type in the window. Switch themes while you type. Nothing here is a screenshot.
# Renderer handoff: the file stays readableThis is the working note for the renderer refactor. The page is a reviewsurface for a file people and coding agents change together: the source staysplain, the document stays legible, and every decision has a place to land.**Inline** · **bold** · _italic_ · ~~deprecated~~ · `RenderedDocument`**Links** · [open the issue](https://github.com/ezzy1630/Downright/issues) · [[Renderer]] · <https://downright.cc> · note[^1]**Math** · $e^{i\pi}+1=0$ · $\sqrt{x^2+y^2}$ · `$PATH`| Surface | State | Proof ||---|---|---|| `Parse` | **stable** | immutable block index || `Decorate` | **measured** | one pass per keystroke || `Review` | **visible** | word-level change marks |> [!NOTE]> Native: prose, source, state, and media in one surface.- [x] Parse once and decorate from ranges- [x] Keep raw bytes available for review- [ ] Move the image store off the main actor**Syntax** · comments, keywords, types, strings, numbers, and calls:```swift@MainActor func render(_ source: String) -> RenderedDocument { let index = parser.blockIndex(for: source) let image = cache.image(for: index) return decorator.apply(image, ranges: index.ranges)}```**Math**$$\mathop{\mathrm{parse}}(bytes) \longrightarrow \mathop{\mathrm{decorate}}(surface)$$**Mermaid**```mermaidflowchart LR A[MD] --> B{?} B -->|no| C[Keep] B -->|yes| D[Render]```## Review anchorsThe document map draws from this same structure, so every altitude has a floor to stand on.### SourceThe handoff stays source-first while the rendered surface stays native.### StateLinks, callouts, tasks, and math retain their local state as the page grows.### FinishThis note stays useful after the agent leaves because its structure remains visible.[^1]: Footnotes resolve locally without moving the reader away from the line.
Renderer handoff: the file stays readable
This is the working note for the renderer refactor. The page is a review
surface for a file people and coding agents change together: the source stays
plain, the document stays legible, and every decision has a place to land.
Inline · bold · italic · deprecated · RenderedDocument
Links · open the issue · [[Renderer]] · https://downright.cc · note1
Math · eiπ+1=0 · x2+y2 · $PATH
| Surface | State | Proof |
|---|---|---|
Parse | stable | immutable block index |
Decorate | measured | one pass per keystroke |
Review | visible | word-level change marks |
Parse once and decorate from ranges
Keep raw bytes available for review
Move the image store off the main actor
Syntax · comments, keywords, types, strings, numbers, and calls:
swift@MainActor func render(_ source: String) -> RenderedDocument {
let index = parser.blockIndex(for: source)
let image = cache.image(for: index)
return decorator.apply(image, ranges: index.ranges)
}
Math
Mermaid
Review anchors
The document map draws from this same structure, so every altitude has a floor to stand on.
Source
The handoff stays source-first while the rendered surface stays native.
State
Links, callouts, tasks, and math retain their local state as the page grows.
Finish
This note stays useful after the agent leaves because its structure remains visible.
The same values, straight from the app's theme files.
#f7f4ee#fffdfa#292522#685f56#171614#24211e#e3ddd5#aca297#2e3440#3b4252#d8dee9#aeb8c8#fdf6e3#eee8d5#526b72#526b72#ffffff#f2f2f2#000000#2a2a2asystem:textBackgroundsystem:controlBackgroundsystem:labelsystem:secondaryLabel