# logicaffeine_web > The logicaffeine.com site (Dioxus/WASM): LOGOS Studio with live LGX previews, Learn, Syntax Guide, benchmarks, news and the registry browser Every public module and item of `logicaffeine_web`, module by module, each with its one-line summary and its address. Item pages hold the full signature, documentation, trait implementations and a link to the source. - Crate page: [logicaffeine_web](https://docs.logicaffeine.com/logicaffeine_web/) - All items on one page: [logicaffeine_web/all](https://docs.logicaffeine.com/logicaffeine_web/all) - Source: [src/logicaffeine_web/lib.rs](https://docs.logicaffeine.com/src/logicaffeine_web/lib.rs) - Every crate: [llms.txt](https://docs.logicaffeine.com/llms.txt) ## logicaffeine_web - [mod composer](https://docs.logicaffeine.com/logicaffeine_web/composer/): Composing a formula by hand: the symbol buttons beside a typed answer, and where a click puts its symbol. - [mod content](https://docs.logicaffeine.com/logicaffeine_web/content/) - [mod generator](https://docs.logicaffeine.com/logicaffeine_web/generator/): Exercise generation from templates. - [mod grader](https://docs.logicaffeine.com/logicaffeine_web/grader/) - [mod guide_review](https://docs.logicaffeine.com/logicaffeine_web/guide_review/): The Syntax Guide’s SM-2 deck: recap self-marks and graded exercise results feed the same spaced-repetition engine as Learn, under a `guide/` key namespace so the two decks coexist in one `UserProgress` without collision. Due guide cards surface on the Review page beside Learn cards. - [mod learn_state](https://docs.logicaffeine.com/logicaffeine_web/learn_state/): Learn page state: where the learner stands on the roadmap, the question that closes a lesson, and the optional practice behind it. - [mod progress](https://docs.logicaffeine.com/logicaffeine_web/progress/): What a learner has done, kept in the browser’s local storage under `logos_user_progress`. - [mod sitemap](https://docs.logicaffeine.com/logicaffeine_web/sitemap/): Sitemap + prerender route enumeration for SEO. - [mod srs](https://docs.logicaffeine.com/logicaffeine_web/srs/) - [mod storage](https://docs.logicaffeine.com/logicaffeine_web/storage/): LocalStorage persistence layer for user progress. - [mod struggle](https://docs.logicaffeine.com/logicaffeine_web/struggle/): Struggle Detection Logic - [mod ui](https://docs.logicaffeine.com/logicaffeine_web/ui/) - [struct AstNode](https://docs.logicaffeine.com/logicaffeine_web/struct.AstNode): AST node for tree visualization in the UI. ## logicaffeine_web::composer Composing a formula by hand: the symbol buttons beside a typed answer, and where a click puts its symbol. - [struct SymbolButton](https://docs.logicaffeine.com/logicaffeine_web/composer/struct.SymbolButton): One button of the symbol pad. - [fn insert_at](https://docs.logicaffeine.com/logicaffeine_web/composer/fn.insert_at): `text` with `insert` put in place of the selection from `start` to `end`, and where the caret lands after it. Positions count UTF-16 code units, as the browser counts them; a backwards selection is the same selection, and a position past the end is the end. - [fn symbol_buttons](https://docs.logicaffeine.com/logicaffeine_web/composer/fn.symbol_buttons): Every button of the pad, in the order it shows them. ## logicaffeine_web::content - [struct ContentEngine](https://docs.logicaffeine.com/logicaffeine_web/content/struct.ContentEngine) - [struct Curriculum](https://docs.logicaffeine.com/logicaffeine_web/content/struct.Curriculum) - [struct Era](https://docs.logicaffeine.com/logicaffeine_web/content/struct.Era) - [struct EraMeta](https://docs.logicaffeine.com/logicaffeine_web/content/struct.EraMeta) - [struct ExerciseConfig](https://docs.logicaffeine.com/logicaffeine_web/content/struct.ExerciseConfig) - [struct Lesson](https://docs.logicaffeine.com/logicaffeine_web/content/struct.Lesson): One lesson on the Learn roadmap: a section, with the module and era it belongs to. - [struct Module](https://docs.logicaffeine.com/logicaffeine_web/content/struct.Module) - [struct ModuleMeta](https://docs.logicaffeine.com/logicaffeine_web/content/struct.ModuleMeta) - [struct Section](https://docs.logicaffeine.com/logicaffeine_web/content/struct.Section): A section of a module: one lesson on the Learn roadmap. - [struct SymbolDef](https://docs.logicaffeine.com/logicaffeine_web/content/struct.SymbolDef): A symbol definition for the glossary - [enum ContentBlock](https://docs.logicaffeine.com/logicaffeine_web/content/enum.ContentBlock): A block of a lesson’s teaching. Its examples and its question have fields of their own (`Section::examples`, `Section::question`). - [enum ExerciseType](https://docs.logicaffeine.com/logicaffeine_web/content/enum.ExerciseType) - [enum LessonExample](https://docs.logicaffeine.com/logicaffeine_web/content/enum.LessonExample): One example of a lesson. - [enum LessonQuestion](https://docs.logicaffeine.com/logicaffeine_web/content/enum.LessonQuestion): The question that closes a lesson. - [fn natural_cmp](https://docs.logicaffeine.com/logicaffeine_web/content/fn.natural_cmp): Orders ids the way they count: runs of digits compare as numbers, so `A_1.2` precedes `A_1.10` and `C_6.99` precedes `C_6.100`, and everything else compares as text, ignoring case. Ids that still tie (`01` vs `1`, `a` vs `A`) fall back to plain text order so the ordering stays total. ## logicaffeine_web::generator Exercise generation from templates. - [struct Challenge](https://docs.logicaffeine.com/logicaffeine_web/generator/struct.Challenge): A generated exercise instance ready for display and grading. - [struct Generator](https://docs.logicaffeine.com/logicaffeine_web/generator/struct.Generator): Exercise generator that fills templates with lexicon words. - [enum AnswerType](https://docs.logicaffeine.com/logicaffeine_web/generator/enum.AnswerType): Expected answer format for a challenge. - [fn ensure_lexicon](https://docs.logicaffeine.com/logicaffeine_web/generator/fn.ensure_lexicon): Resolves once the lexicon is pinned — instant on native and on repeat calls. - [fn lexicon](https://docs.logicaffeine.com/logicaffeine_web/generator/fn.lexicon): The pinned lexicon. `None` only on wasm before `ensure_lexicon` resolves — the `LexiconGate` component holds Learn content back until it has. ## logicaffeine_web::grader - [struct GradeResult](https://docs.logicaffeine.com/logicaffeine_web/grader/struct.GradeResult) - [struct ReadingsGrade](https://docs.logicaffeine.com/logicaffeine_web/grader/struct.ReadingsGrade): How a set of answers covers a sentence’s readings. - [fn check_answer](https://docs.logicaffeine.com/logicaffeine_web/grader/fn.check_answer) - [fn check_readings](https://docs.logicaffeine.com/logicaffeine_web/grader/fn.check_readings): Grade an ambiguous sentence: every reading must be given by a different answer, in any order. Each answer is graded against each reading exactly as a translation is (`check_answer`). ## logicaffeine_web::guide_review The Syntax Guide’s SM-2 deck: recap self-marks and graded exercise results feed the same spaced-repetition engine as Learn, under a `guide/` key namespace so the two decks coexist in one `UserProgress` without collision. Due guide cards surface on the Review page beside Learn cards. - [enum GuideCard](https://docs.logicaffeine.com/logicaffeine_web/guide_review/enum.GuideCard): A due card in the guide deck. Content is looked up from `SECTIONS` at render time; the card carries the ids and its home section for the deep-link back into the guide. - [const GUIDE_EX_PREFIX](https://docs.logicaffeine.com/logicaffeine_web/guide_review/constant.GUIDE_EX_PREFIX) - [const GUIDE_RECALL_PREFIX](https://docs.logicaffeine.com/logicaffeine_web/guide_review/constant.GUIDE_RECALL_PREFIX) - [fn due_guide_cards](https://docs.logicaffeine.com/logicaffeine_web/guide_review/fn.due_guide_cards): Every guide card that is seeded (the reader has touched it) AND due. Untouched cards never appear — the deck reviews what you practiced, it does not nag about what you skipped. - [fn exercise_key](https://docs.logicaffeine.com/logicaffeine_web/guide_review/fn.exercise_key): The progress-map key for a guide exercise’s SRS entry. - [fn recall_key](https://docs.logicaffeine.com/logicaffeine_web/guide_review/fn.recall_key): The progress-map key for a recap question’s SRS entry. - [fn record_exercise_result](https://docs.logicaffeine.com/logicaffeine_web/guide_review/fn.record_exercise_result): A graded exercise result: quality comes from the grader’s verdict (fail = 1, passed with hints ≈ 3–4, clean pass = 5). - [fn record_recall_mark](https://docs.logicaffeine.com/logicaffeine_web/guide_review/fn.record_recall_mark): A recap reveal + self-mark: quality is the reader’s own 0–5 judgment (the reveal keeps it honest — control of error, not surveillance). ## logicaffeine_web::learn_state Learn page state: where the learner stands on the roadmap, the question that closes a lesson, and the optional practice behind it. - [struct Journey](https://docs.logicaffeine.com/logicaffeine_web/learn_state/struct.Journey): Where a learner stands on the roadmap: every lesson in order, the ones done, the one open. - [struct LessonQuiz](https://docs.logicaffeine.com/logicaffeine_web/learn_state/struct.LessonQuiz): A lesson’s one question. - [struct PracticeSession](https://docs.logicaffeine.com/logicaffeine_web/learn_state/struct.PracticeSession): A walk through a lesson’s practice questions. - [enum QuizState](https://docs.logicaffeine.com/logicaffeine_web/learn_state/enum.QuizState): Where a lesson’s question stands. - [const RETRY_GAP](https://docs.logicaffeine.com/logicaffeine_web/learn_state/constant.RETRY_GAP): How many other questions come between a missed one and its retry. ## logicaffeine_web::progress What a learner has done, kept in the browser’s local storage under `logos_user_progress`. - [struct ExerciseProgress](https://docs.logicaffeine.com/logicaffeine_web/progress/struct.ExerciseProgress) - [struct SrsData](https://docs.logicaffeine.com/logicaffeine_web/progress/struct.SrsData) - [struct UserProgress](https://docs.logicaffeine.com/logicaffeine_web/progress/struct.UserProgress) ## logicaffeine_web::sitemap Sitemap + prerender route enumeration for SEO. - [struct SitemapEntry](https://docs.logicaffeine.com/logicaffeine_web/sitemap/struct.SitemapEntry): Sitemap entry with URL and metadata - [fn generate_sitemap](https://docs.logicaffeine.com/logicaffeine_web/sitemap/fn.generate_sitemap): Generate the complete sitemap XML - [fn get_news_routes](https://docs.logicaffeine.com/logicaffeine_web/sitemap/fn.get_news_routes): One entry per published news article, derived from the article registry so a new post can never be forgotten here. - [fn get_static_routes](https://docs.logicaffeine.com/logicaffeine_web/sitemap/fn.get_static_routes): The curated static pages (path, changefreq, priority). - [fn prerender_routes](https://docs.logicaffeine.com/logicaffeine_web/sitemap/fn.prerender_routes): Every route the SSG build prerenders — the sitemap in path form. `/workspace/:subject` and `/registry/package/:name` (not enumerable at build time) stay client-side. ## logicaffeine_web::srs - [enum ResponseQuality](https://docs.logicaffeine.com/logicaffeine_web/srs/enum.ResponseQuality) - [fn calculate_next_review](https://docs.logicaffeine.com/logicaffeine_web/srs/fn.calculate_next_review) - [fn is_due](https://docs.logicaffeine.com/logicaffeine_web/srs/fn.is_due) - [fn sm2_update](https://docs.logicaffeine.com/logicaffeine_web/srs/fn.sm2_update) ## logicaffeine_web::storage LocalStorage persistence layer for user progress. - [fn clear](https://docs.logicaffeine.com/logicaffeine_web/storage/fn.clear): Clears all stored progress data. - [fn load_raw](https://docs.logicaffeine.com/logicaffeine_web/storage/fn.load_raw): Loads the raw JSON progress string from LocalStorage. - [fn save_raw](https://docs.logicaffeine.com/logicaffeine_web/storage/fn.save_raw): Saves a JSON progress string to LocalStorage. ## logicaffeine_web::struggle Struggle Detection Logic - [struct StruggleConfig](https://docs.logicaffeine.com/logicaffeine_web/struggle/struct.StruggleConfig): Configuration for struggle detection - [struct StruggleDetector](https://docs.logicaffeine.com/logicaffeine_web/struggle/struct.StruggleDetector): Tracks struggle state for an exercise - [enum StruggleReason](https://docs.logicaffeine.com/logicaffeine_web/struggle/enum.StruggleReason): Reasons why a user might be struggling ## logicaffeine_web::ui - [mod app](https://docs.logicaffeine.com/logicaffeine_web/ui/app/): Root application component and global styles. - [mod clipboard](https://docs.logicaffeine.com/logicaffeine_web/ui/clipboard/): Handing text to the reader’s clipboard. - [mod components](https://docs.logicaffeine.com/logicaffeine_web/ui/components/): Reusable UI components. - [mod data_fetch](https://docs.logicaffeine.com/logicaffeine_web/ui/data_fetch/): Runtime fetch of build-staged static data. - [mod drag](https://docs.logicaffeine.com/logicaffeine_web/ui/drag/): Pointer drags that follow the pointer at frame rate without re-rendering the page. - [mod examples](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/): Example files for the Studio playground. - [mod fault](https://docs.logicaffeine.com/logicaffeine_web/ui/fault/): Containing a failure the Studio did not expect. - [mod fragment](https://docs.logicaffeine.com/logicaffeine_web/ui/fragment/): Pages whose route models a `#fragment` open at the element it names. - [mod hooks](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/): Custom Dioxus hooks for the Logicaffeine UI. - [mod inline_markup](https://docs.logicaffeine.com/logicaffeine_web/ui/inline_markup/): Inline markup for the site’s prose — curriculum, Syntax Guide and news: `**strong**`, `*emphasis*`, ``code`` and `[links](/path)`. - [mod markdown_blocks](https://docs.logicaffeine.com/logicaffeine_web/ui/markdown_blocks/): The block structure of the Markdown the site writes by hand: news articles and the Syntax Guide’s prose. Lines group the way CommonMark groups them. Consecutive lines of text are one paragraph, so a line break in the source is a space on the page and a blank line ends the paragraph; a list item and a quote continue across their wrapped lines; a line of `---` is a rule. Each block’s text is marked up inline by `ui::inline_markup`, the one renderer every page’s prose goes through. - [mod pages](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/): Application pages and views. - [mod platform](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/): The visitor’s system, read from what their browser says, so the front page shows the install that runs on it. - [mod responsive](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/): Responsive design system and mobile styling utilities. - [mod router](https://docs.logicaffeine.com/logicaffeine_web/ui/router/): Application routing and navigation. - [mod seo](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/): SEO utilities and JSON-LD structured data generators. - [mod state](https://docs.logicaffeine.com/logicaffeine_web/ui/state/): Global application state types. - [const CONTACT_EMAIL](https://docs.logicaffeine.com/logicaffeine_web/ui/constant.CONTACT_EMAIL): The company’s contact address, the one every page that offers a way to reach us prints. ## logicaffeine_web::ui::app Root application component and global styles. - [fn App](https://docs.logicaffeine.com/logicaffeine_web/ui/app/fn.App): Root application component. ## logicaffeine_web::ui::clipboard Handing text to the reader’s clipboard. - [fn copy](https://docs.logicaffeine.com/logicaffeine_web/ui/clipboard/fn.copy): Put `text` on the clipboard. The write starts now, in the caller’s turn; the future says whether the browser took it. When the Clipboard API is not there, the copy command does it at once. - [fn copy_by_command](https://docs.logicaffeine.com/logicaffeine_web/ui/clipboard/fn.copy_by_command): Copy `text` with the browser’s copy command, from a textarea placed off screen for the moment it takes: the way to the clipboard on a page with no Clipboard API, inside a click. Nothing the reader sees is selected. True when the browser says it copied. - [fn select_contents](https://docs.logicaffeine.com/logicaffeine_web/ui/clipboard/fn.select_contents): Focus the element `id` and select the text inside it, from its first character to its last, so the reader can copy it by hand. The selection runs over the text, not the box around it. ## logicaffeine_web::ui::components Reusable UI components. - [mod ast_tree](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/): The Syntax Tree: how a sentence parses, drawn with the Studio’s tree. - [mod chat](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chat/): Chat message display component. - [mod chevron](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chevron/): The Studio’s one drawn chevron: the file tree’s folders and the collapsible blocks turn it to say whether they are open. - [mod code_editor](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/): Syntax-highlighted code editor component. - [mod collapsible](https://docs.logicaffeine.com/logicaffeine_web/ui/components/collapsible/): A collapsible block: a titled section of a Studio panel that the reader opens and closes. - [mod context_view](https://docs.logicaffeine.com/logicaffeine_web/ui/components/context_view/): Context view panel for Code mode. - [mod debug_drawer](https://docs.logicaffeine.com/logicaffeine_web/ui/components/debug_drawer/): The Studio bottom debug drawer — an IDE-style debugger for imperative (Code-mode) LOGOS, driven by the zero-cost bytecode debugger in `logicaffeine_compile::debug`. A self-contained, additive panel: it docks below the editor/output and slides away on Stop, leaving the rest of the Studio untouched. - [mod exercise_block](https://docs.logicaffeine.com/logicaffeine_web/ui/components/exercise_block/): “Now you try” exercise block for the Syntax Guide. - [mod file_browser](https://docs.logicaffeine.com/logicaffeine_web/ui/components/file_browser/): File browser sidebar with tree navigation. - [mod footer](https://docs.logicaffeine.com/logicaffeine_web/ui/components/footer/): Site-wide footer component. - [mod formula_editor](https://docs.logicaffeine.com/logicaffeine_web/ui/components/formula_editor/): LaTeX formula editor with live preview. - [mod guide_code_block](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_code_block/): Interactive code block component for the Programmer’s Guide. - [mod guide_sidebar](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_sidebar/): Sidebar navigation component for the Programmer’s Guide. - [mod guide_snippet](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_snippet/): LOGOS quoted in the Syntax Guide’s prose. - [mod hover_hint](https://docs.logicaffeine.com/logicaffeine_web/ui/components/hover_hint/): VS Code-style hover hints for the Studio’s LOGOS editors. - [mod icon](https://docs.logicaffeine.com/logicaffeine_web/ui/components/icon/): Centralized SVG icon component system. - [mod indent](https://docs.logicaffeine.com/logicaffeine_web/ui/components/indent/): What Enter and Tab do in the Studio’s editor. Each language’s indentation is worked out on the text alone — which lines open a block, which close one, how wide a step is — so the browser only has to apply the edit. - [mod inline_editor](https://docs.logicaffeine.com/logicaffeine_web/ui/components/inline_editor/): The Studio’s editor set into a page of prose: the Syntax Guide’s examples, exercises and quoted snippets. - [mod input](https://docs.logicaffeine.com/logicaffeine_web/ui/components/input/): Text input component for the REPL interface. - [mod katex](https://docs.logicaffeine.com/logicaffeine_web/ui/components/katex/): KaTeX LaTeX rendering component. - [mod learn_roadmap](https://docs.logicaffeine.com/logicaffeine_web/ui/components/learn_roadmap/): The Learn roadmap: the course as one route, era by era, a stop for every module and, inside the open module, a stop for every lesson. - [mod lexicon_gate](https://docs.logicaffeine.com/logicaffeine_web/ui/components/lexicon_gate/): Gate component for content that draws exercise words from the lexicon. - [mod logic_output](https://docs.logicaffeine.com/logicaffeine_web/ui/components/logic_output/): First-Order Logic output display component. - [mod main_nav](https://docs.logicaffeine.com/logicaffeine_web/ui/components/main_nav/): Unified navigation component for consistent header across all pages. - [mod misconception_box](https://docs.logicaffeine.com/logicaffeine_web/ui/components/misconception_box/): Misconception-first callout (Derek Muller): state the belief the reader arrives with — in their voice — then what LOGOS does and why, and deep-link the runnable evidence example that settles it. - [mod problems](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/): The language server’s diagnostics as the Studio’s editor shows them: a squiggle under the words each one names, and the problem at the top of the hover — VS Code’s Problems, in the page, from the same analysis (`logicaffeine_lsp`) the server publishes. - [mod proof_panel](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/): The proof drawer for Logic mode: the Studio’s bottom drawer, risen from the dock bar. - [mod recall_block](https://docs.logicaffeine.com/logicaffeine_web/ui/components/recall_block/): End-of-section “Check yourself” retrieval cards (Roediger & Karpicke). - [mod repl_output](https://docs.logicaffeine.com/logicaffeine_web/ui/components/repl_output/): REPL output for Math mode. - [mod socratic_guide](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/): Socratic guide component for hints and feedback. - [mod status_bar](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/): The Studio’s status bar, in VS Code’s manner: a strip along the bottom edge, under a line, saying how many problems the language service found, where the editor’s caret is and what is selected, and which language the editor holds. - [mod symbol_dictionary](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_dictionary/): The Symbol Dictionary: what each symbol of a First-Order Logic formula means. - [mod symbol_pad](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_pad/): The symbol pad: a button for every symbol a formula needs, beside a typed answer. - [mod tree](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/): The Studio’s tree: the file browser’s folders and files and the Logic column’s Syntax Tree are both drawn by it, so they read alike. - [mod verilog](https://docs.logicaffeine.com/logicaffeine_web/ui/components/verilog/): The Verilog lexer the Studio’s editor colours `.v` designs by: keywords and types, sized literals (`4'd8`, `8'hFF`), `//` and `/* */` comments, strings, system tasks (`$display`), compiler directives (``timescale`), operators and punctuation — every character of the source in exactly one token. - [mod vernacular](https://docs.logicaffeine.com/logicaffeine_web/ui/components/vernacular/): Math mode’s colouring, from the kernel’s own vocabulary: its commands (`Definition`, `Inductive`, `Check`, …), the literate forms (`## To …:`, `Consider`, `When`, `Yield`, `## Theorem:` with `Statement:` and `Proof:`), the term grammar’s binders and sorts (`forall`, `fun`, `Prop`), and the proof tactics. A test holds these lists to the kernel’s parsers: every keyword they read is coloured, or named here as plain prose. ## logicaffeine_web::ui::components::ast_tree The Syntax Tree: how a sentence parses, drawn with the Studio’s tree. - [struct AstTreeProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/struct.AstTreeProps): Properties for the `AstTree` component. - [struct KindLook](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/struct.KindLook): A node kind as a reader sees it: the word its pill says and the swatch it wears. - [enum Swatch](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/enum.Swatch): A swatch of the one syntax palette (`--syntax-*` in the Studio’s tokens). - [const LEGEND](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/constant.LEGEND): The legend’s groups: the kinds each pill colour marks, and the swatches that wear it. The swatches of one group share a colour in the palette. - [fn AstTree](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/fn.AstTree): Props - [fn kind_look](https://docs.logicaffeine.com/logicaffeine_web/ui/components/ast_tree/fn.kind_look): The look of each kind the compiler names a node (`ui_bridge::expr_to_ast_node`), in the words the Symbol Dictionary uses where it has one. ## logicaffeine_web::ui::components::chat Chat message display component. - [struct ChatDisplayProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chat/struct.ChatDisplayProps): Properties for the `ChatDisplay` component. - [fn ChatDisplay](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chat/fn.ChatDisplay): Props ## logicaffeine_web::ui::components::chevron The Studio’s one drawn chevron: the file tree’s folders and the collapsible blocks turn it to say whether they are open. - [struct ChevronProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chevron/struct.ChevronProps): Properties for the `Chevron` component. - [const CHEVRON_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chevron/constant.CHEVRON_STYLE): The chevron’s look wherever it is drawn: muted, filling its box, and a quarter turn to point down while what it marks is open. A component that draws chevrons carries this once. - [const CHEVRON_SVG](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chevron/constant.CHEVRON_SVG): VS Code’s chevron shape, 12px along its long side on a 2px stroke — two thirds larger than the codicon at 10px, and a pixel heavier — in a 12px square, so it centres on its row in any font and turns about its middle to point down. - [fn Chevron](https://docs.logicaffeine.com/logicaffeine_web/ui/components/chevron/fn.Chevron): The drawn chevron: pointing right while `open` is false, down while it is true. ## logicaffeine_web::ui::components::code_editor Syntax-highlighted code editor component. - [struct CodeEditorProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/struct.CodeEditorProps): Properties for the `CodeEditor` component. - [struct CodeViewProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/struct.CodeViewProps): Properties for the `CodeView` component. - [enum Language](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/enum.Language): Language mode for syntax highlighting. - [const CODE_EDITOR_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/constant.CODE_EDITOR_STYLE): The editor’s stylesheet: inlined ahead of each editor, unless its host places it once ahead of its own markup (see `CodeEditor`’s `stylesheet`). - [fn CodeEditor](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/fn.CodeEditor): Syntax-highlighted code editor component. - [fn CodeView](https://docs.logicaffeine.com/logicaffeine_web/ui/components/code_editor/fn.CodeView): Read-only syntax-highlighted code view. ## logicaffeine_web::ui::components::collapsible A collapsible block: a titled section of a Studio panel that the reader opens and closes. - [struct CollapsibleProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/collapsible/struct.CollapsibleProps): Properties for the `Collapsible` component. - [fn Collapsible](https://docs.logicaffeine.com/logicaffeine_web/ui/components/collapsible/fn.Collapsible): A titled block of a panel that the reader opens and closes. ## logicaffeine_web::ui::components::context_view Context view panel for Code mode. - [struct ContextEntry](https://docs.logicaffeine.com/logicaffeine_web/ui/components/context_view/struct.ContextEntry): A definition entry in the context. - [struct ContextViewProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/context_view/struct.ContextViewProps): Properties for the `ContextView` component. - [enum EntryKind](https://docs.logicaffeine.com/logicaffeine_web/ui/components/context_view/enum.EntryKind) - [fn ContextView](https://docs.logicaffeine.com/logicaffeine_web/ui/components/context_view/fn.ContextView): Props ## logicaffeine_web::ui::components::debug_drawer The Studio bottom debug drawer — an IDE-style debugger for imperative (Code-mode) LOGOS, driven by the zero-cost bytecode debugger in `logicaffeine_compile::debug`. A self-contained, additive panel: it docks below the editor/output and slides away on Stop, leaving the rest of the Studio untouched. - [struct DebugDrawerProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/debug_drawer/struct.DebugDrawerProps): Properties for the `DebugDrawer` component. - [const IC_BUG](https://docs.logicaffeine.com/logicaffeine_web/ui/components/debug_drawer/constant.IC_BUG): A ladybug glyph as inline SVG, for the Debug button + drawer title (shared with the Studio toolbar). Explicitly sized so it needs no extra CSS. - [fn DebugDrawer](https://docs.logicaffeine.com/logicaffeine_web/ui/components/debug_drawer/fn.DebugDrawer): The bottom debug drawer. `source` is the Code-mode program; `output` receives what the program has printed at the cursor, for the Studio’s Output column; `on_close` stops the session (the Studio hides the drawer). ## logicaffeine_web::ui::components::exercise_block “Now you try” exercise block for the Syntax Guide. - [struct ExerciseBlockProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/exercise_block/struct.ExerciseBlockProps) - [fn ExerciseBlock](https://docs.logicaffeine.com/logicaffeine_web/ui/components/exercise_block/fn.ExerciseBlock) ## logicaffeine_web::ui::components::file_browser File browser sidebar with tree navigation. - [struct FileBrowserProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/file_browser/struct.FileBrowserProps): Properties for the `FileBrowser` component. - [fn FileBrowser](https://docs.logicaffeine.com/logicaffeine_web/ui/components/file_browser/fn.FileBrowser): Props ## logicaffeine_web::ui::components::footer Site-wide footer component. - [struct FooterProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/footer/struct.FooterProps): Properties for the `Footer` component. - [enum FooterVariant](https://docs.logicaffeine.com/logicaffeine_web/ui/components/footer/enum.FooterVariant): Footer variant for minimal pages (Privacy, Terms) - [fn Footer](https://docs.logicaffeine.com/logicaffeine_web/ui/components/footer/fn.Footer): Props ## logicaffeine_web::ui::components::formula_editor LaTeX formula editor with live preview. - [struct FormulaEditorProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/formula_editor/struct.FormulaEditorProps): Properties for the `FormulaEditor` component. - [struct LatexPreviewProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/formula_editor/struct.LatexPreviewProps): Properties for the `LatexPreview` component. - [fn FormulaEditor](https://docs.logicaffeine.com/logicaffeine_web/ui/components/formula_editor/fn.FormulaEditor): Props - [fn LatexPreview](https://docs.logicaffeine.com/logicaffeine_web/ui/components/formula_editor/fn.LatexPreview): Standalone preview component that just renders LaTeX. ## logicaffeine_web::ui::components::guide_code_block Interactive code block component for the Programmer’s Guide. - [struct GuideCodeBlockProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_code_block/struct.GuideCodeBlockProps) - [fn GuideCodeBlock](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_code_block/fn.GuideCodeBlock) ## logicaffeine_web::ui::components::guide_sidebar Sidebar navigation component for the Programmer’s Guide. - [struct GuideSidebarProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_sidebar/struct.GuideSidebarProps) - [struct SectionInfo](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_sidebar/struct.SectionInfo): Information about a section for the sidebar - [fn GuideSidebar](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_sidebar/fn.GuideSidebar) ## logicaffeine_web::ui::components::guide_snippet LOGOS quoted in the Syntax Guide’s prose. - [struct GuideSnippetProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_snippet/struct.GuideSnippetProps): Properties for the `GuideSnippet` component. - [fn GuideSnippet](https://docs.logicaffeine.com/logicaffeine_web/ui/components/guide_snippet/fn.GuideSnippet): Props ## logicaffeine_web::ui::components::hover_hint VS Code-style hover hints for the Studio’s LOGOS editors. - [fn hover_markdown](https://docs.logicaffeine.com/logicaffeine_web/ui/components/hover_hint/fn.hover_markdown): The language server’s hover for the source at byte `offset`, as markdown. - [fn markdown_to_html](https://docs.logicaffeine.com/logicaffeine_web/ui/components/hover_hint/fn.markdown_to_html): The hover’s markdown as HTML for the tooltip: paragraphs, `---` rules, bullet lists, fenced and inline code, bold and emphasis. Everything else is text, escaped. ## logicaffeine_web::ui::components::icon Centralized SVG icon component system. - [struct IconProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/icon/struct.IconProps): Properties for the `Icon` component. - [enum IconSize](https://docs.logicaffeine.com/logicaffeine_web/ui/components/icon/enum.IconSize): Icon size variants. - [enum IconVariant](https://docs.logicaffeine.com/logicaffeine_web/ui/components/icon/enum.IconVariant): All available icon variants. - [fn Icon](https://docs.logicaffeine.com/logicaffeine_web/ui/components/icon/fn.Icon): SVG icon component with configurable size and styling. ## logicaffeine_web::ui::components::indent What Enter and Tab do in the Studio’s editor. Each language’s indentation is worked out on the text alone — which lines open a block, which close one, how wide a step is — so the browser only has to apply the edit. - [struct Enter](https://docs.logicaffeine.com/logicaffeine_web/ui/components/indent/struct.Enter): What Enter does: the indentation to give the caret’s own line first, if it changes, and the text to insert at the caret. - [struct Indentation](https://docs.logicaffeine.com/logicaffeine_web/ui/components/indent/struct.Indentation): How a language indents: its step, and the lines that open and close a block. ## logicaffeine_web::ui::components::inline_editor The Studio’s editor set into a page of prose: the Syntax Guide’s examples, exercises and quoted snippets. - [struct InlineEditorProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/inline_editor/struct.InlineEditorProps): Properties for the `InlineEditor` component. - [fn InlineEditor](https://docs.logicaffeine.com/logicaffeine_web/ui/components/inline_editor/fn.InlineEditor): Props - [fn InlineEditorStyle](https://docs.logicaffeine.com/logicaffeine_web/ui/components/inline_editor/fn.InlineEditorStyle): The stylesheets an inline editor is drawn with: the editor’s own, and its fit to its code. ## logicaffeine_web::ui::components::input Text input component for the REPL interface. - [struct InputAreaProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/input/struct.InputAreaProps): Properties for the `InputArea` component. - [fn InputArea](https://docs.logicaffeine.com/logicaffeine_web/ui/components/input/fn.InputArea): Text input area with submit button. ## logicaffeine_web::ui::components::katex KaTeX LaTeX rendering component. - [struct KatexSpanProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/katex/struct.KatexSpanProps): Properties for the `KatexSpan` component. - [enum TextPart](https://docs.logicaffeine.com/logicaffeine_web/ui/components/katex/enum.TextPart) - [fn KatexSpan](https://docs.logicaffeine.com/logicaffeine_web/ui/components/katex/fn.KatexSpan): Props - [fn parse_latex_in_text](https://docs.logicaffeine.com/logicaffeine_web/ui/components/katex/fn.parse_latex_in_text) ## logicaffeine_web::ui::components::learn_roadmap The Learn roadmap: the course as one route, era by era, a stop for every module and, inside the open module, a stop for every lesson. - [struct LearnRoadmapProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/learn_roadmap/struct.LearnRoadmapProps): Properties for the `LearnRoadmap` component. - [fn LearnRoadmap](https://docs.logicaffeine.com/logicaffeine_web/ui/components/learn_roadmap/fn.LearnRoadmap): The route through every era, module and lesson. `open` is the lesson on screen, `done` the lessons finished; a click on a lesson calls `on_open` with its id. ## logicaffeine_web::ui::components::lexicon_gate Gate component for content that draws exercise words from the lexicon. - [struct LexiconGateProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/lexicon_gate/struct.LexiconGateProps): Properties for the `LexiconGate` component. - [fn LexiconGate](https://docs.logicaffeine.com/logicaffeine_web/ui/components/lexicon_gate/fn.LexiconGate): Props ## logicaffeine_web::ui::components::logic_output First-Order Logic output display component. - [struct LogicOutputProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/logic_output/struct.LogicOutputProps): Properties for the `LogicOutput` component. - [enum OutputFormat](https://docs.logicaffeine.com/logicaffeine_web/ui/components/logic_output/enum.OutputFormat) - [fn LogicOutput](https://docs.logicaffeine.com/logicaffeine_web/ui/components/logic_output/fn.LogicOutput): Props - [fn highlight_logic](https://docs.logicaffeine.com/logicaffeine_web/ui/components/logic_output/fn.highlight_logic) ## logicaffeine_web::ui::components::main_nav Unified navigation component for consistent header across all pages. - [struct MainNavProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/main_nav/struct.MainNavProps): Properties for the `MainNav` component. - [enum ActivePage](https://docs.logicaffeine.com/logicaffeine_web/ui/components/main_nav/enum.ActivePage): Which page is currently active - [fn MainNav](https://docs.logicaffeine.com/logicaffeine_web/ui/components/main_nav/fn.MainNav): Main navigation component with consistent styling and active page underline ## logicaffeine_web::ui::components::misconception_box Misconception-first callout (Derek Muller): state the belief the reader arrives with — in their voice — then what LOGOS does and why, and deep-link the runnable evidence example that settles it. - [struct MisconceptionBoxProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/misconception_box/struct.MisconceptionBoxProps) - [fn MisconceptionBox](https://docs.logicaffeine.com/logicaffeine_web/ui/components/misconception_box/fn.MisconceptionBox) ## logicaffeine_web::ui::components::problems The language server’s diagnostics as the Studio’s editor shows them: a squiggle under the words each one names, and the problem at the top of the hover — VS Code’s Problems, in the page, from the same analysis (`logicaffeine_lsp`) the server publishes. - [struct Problem](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/struct.Problem): One diagnostic, placed in the source by byte offsets. - [enum Severity](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/enum.Severity): How loud a problem is, quietest first. - [fn problems](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/fn.problems): Every problem the language server finds in the document. - [fn problems_html](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/fn.problems_html): The problems at `offset` as the top of a hover: each message, then where it comes from, its code linked to the explanation. - [fn rebase](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/fn.rebase): Problems found in `old`, carried into `new` until it is analysed afresh: the text before and after an edit keeps its problems, moved with it; a problem the edit touched is dropped. - [fn squiggle_class](https://docs.logicaffeine.com/logicaffeine_web/ui/components/problems/fn.squiggle_class): The classes for the text in `start..end`: the most severe squiggle over it, and a fade when any code there does nothing. ## logicaffeine_web::ui::components::proof_panel The proof drawer for Logic mode: the Studio’s bottom drawer, risen from the dock bar. - [struct ProofNode](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/struct.ProofNode): One step of a derivation, as the drawer draws it: the rule’s word, what the rule was applied with (the term a universal was instantiated at, a witness), the conclusion it reached, and the steps it rests on. - [struct ProofPanelProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/struct.ProofPanelProps): Properties for the `ProofPanel` component. - [struct Walkthrough](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/struct.Walkthrough): What the reader has done so far: written something, and run Execute on it. - [enum ProofStatus](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/enum.ProofStatus): Proof status for the UI - [enum StepState](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/enum.StepState): Where a step stands for this reader. - [const DERIVATION_NOTE](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/constant.DERIVATION_NOTE): What the note above the derivation says. - [const STEPS](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/constant.STEPS): The three steps a first visit takes, in order: what to do, and what it shows. - [fn ProofPanel](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/fn.ProofPanel): The proof drawer: its bar with the proof’s status, and the derivation tree or the walkthrough. - [fn dock_prompt](https://docs.logicaffeine.com/logicaffeine_web/ui/components/proof_panel/fn.dock_prompt): The dock bar’s line: the step to take now, or, once Execute has run, what the prover last said (`hint`), else the invitation to prove. ## logicaffeine_web::ui::components::recall_block End-of-section “Check yourself” retrieval cards (Roediger & Karpicke). - [struct RecallBlockProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/recall_block/struct.RecallBlockProps): Properties for the `RecallBlock` component. - [struct RecallCardProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/recall_block/struct.RecallCardProps) - [fn RecallBlock](https://docs.logicaffeine.com/logicaffeine_web/ui/components/recall_block/fn.RecallBlock): A section’s recall cards under one “Check yourself” heading. - [fn RecallCard](https://docs.logicaffeine.com/logicaffeine_web/ui/components/recall_block/fn.RecallCard) ## logicaffeine_web::ui::components::repl_output REPL output for Math mode. - [struct ReplOutputProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/repl_output/struct.ReplOutputProps): Properties for the `ReplOutput` component. - [fn ReplOutput](https://docs.logicaffeine.com/logicaffeine_web/ui/components/repl_output/fn.ReplOutput): Props ## logicaffeine_web::ui::components::socratic_guide Socratic guide component for hints and feedback. - [struct SocraticGuideProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/struct.SocraticGuideProps): Properties for the `SocraticGuide` component. - [enum GuideMode](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/enum.GuideMode) - [fn SocraticGuide](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/fn.SocraticGuide): Props - [fn get_context_hint](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/fn.get_context_hint) - [fn get_success_message](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/fn.get_success_message) - [fn logic_guide](https://docs.logicaffeine.com/logicaffeine_web/ui/components/socratic_guide/fn.logic_guide): What the Analysis row says about Logic input: for sentences, how many readings they have; for a theorem, whether its goal was proved. Never “could not be resolved” beside a formula the Logic Output is showing. ## logicaffeine_web::ui::components::status_bar The Studio’s status bar, in VS Code’s manner: a strip along the bottom edge, under a line, saying how many problems the language service found, where the editor’s caret is and what is selected, and which language the editor holds. - [struct Caret](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/struct.Caret): Where the caret sits — its line and column, both counted from 1, the column in characters — and how many characters the selection spans. - [struct EditorStatus](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/struct.EditorStatus): What the Studio’s editor tells the status bar. - [struct ProblemCount](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/struct.ProblemCount): How many errors and warnings the language service found. - [struct StatusBarProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/struct.StatusBarProps): Properties for the `StatusBar` component. - [const STATUS_BAR_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/constant.STATUS_BAR_STYLE) - [fn StatusBar](https://docs.logicaffeine.com/logicaffeine_web/ui/components/status_bar/fn.StatusBar): The strip itself. It reads `status` on its own, so a caret move redraws the strip and nothing else. `indent` is the editor’s indentation step in spaces. `problems` is false for an editor no language service reads, where a count of none would claim a check that never ran. ## logicaffeine_web::ui::components::symbol_dictionary The Symbol Dictionary: what each symbol of a First-Order Logic formula means. - [struct SymbolGroupsProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_dictionary/struct.SymbolGroupsProps): Properties for the `SymbolGroups` component. - [fn SymbolGroups](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_dictionary/fn.SymbolGroups): The dictionary’s entries: each kind of symbol a group, its name over every symbol beside what it means. - [fn symbols_in](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_dictionary/fn.symbols_in): The symbols `logic` shows, named as `view` — the view that printed it — names them: each view names its tense and aspect operators its own way. ## logicaffeine_web::ui::components::symbol_pad The symbol pad: a button for every symbol a formula needs, beside a typed answer. - [struct SymbolPadProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_pad/struct.SymbolPadProps): Properties for the `SymbolPad` component. - [fn SymbolPad](https://docs.logicaffeine.com/logicaffeine_web/ui/components/symbol_pad/fn.SymbolPad): A button for every symbol, typing into the field whose id is `target`. `on_input` hears the field’s new text, the same way the field’s own `oninput` does. ## logicaffeine_web::ui::components::tree The Studio’s tree: the file browser’s folders and files and the Logic column’s Syntax Tree are both drawn by it, so they read alike. - [struct RowShape](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/struct.RowShape): A row as the keys see it. - [struct TreeNodeProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/struct.TreeNodeProps): Properties for the `TreeNode` component. - [struct TreeProps](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/struct.TreeProps): Properties for the `Tree` component. - [enum TreeKey](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/enum.TreeKey): A key the tree answers. - [enum TreeMove](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/enum.TreeMove): What a key does from a row. - [const TREE_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/constant.TREE_STYLE): The tree’s geometry is one step. Its first line stands `--tree-step` from the tree’s edge, every level’s line one step further in, and every branch runs one step, from its parent’s line to its own; a row’s first glyph (a node’s chevron, else the first thing in its row) sits `--tree-gap` past the end of its branch. Every length snaps to whole device pixels (`--dp`, one device pixel in CSS pixels, is set from the page’s device pixel ratio), and the tree’s content starts on a device pixel wherever the layout puts the tree (`--dp-nudge-x`/`-y`, under one device pixel, pad it onto the grid), so each line covers whole screen pixels at any zoom and all read at one weight, `--tree-hair`: about 1.5px and never under two device pixels. A tree sets how far its content stands from its top and bottom with `--tree-pad-top` and `--tree-pad-bottom` (the Studio’s inset by default), each held to whole device pixels. - [fn Tree](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/fn.Tree): A tree, its nodes drawn inside it. `kind` names it and its parts: the tree is the element of class `{kind}` (marked `data-tree`), and each node, row and open node’s parts carry `{kind}-node`, `{kind}-item` and `{kind}-children` beside the shared classes. The file browser’s tree is `file-tree`. - [fn TreeNode](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/fn.TreeNode): One node of a `Tree`: the line it hangs from (below the top level), its row — its branch, its chevron if it has parts, then `row` — and its parts, `children`, while it is open. - [fn next_row](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/fn.next_row): What `key` does from row `at` of `rows`, the rows a reader sees in order. - [fn tree_key](https://docs.logicaffeine.com/logicaffeine_web/ui/components/tree/fn.tree_key): The key a keyboard event names, if the tree answers it. ## logicaffeine_web::ui::components::verilog The Verilog lexer the Studio’s editor colours `.v` designs by: keywords and types, sized literals (`4'd8`, `8'hFF`), `//` and `/* */` comments, strings, system tasks (`$display`), compiler directives (``timescale`), operators and punctuation — every character of the source in exactly one token. ## logicaffeine_web::ui::components::vernacular Math mode’s colouring, from the kernel’s own vocabulary: its commands (`Definition`, `Inductive`, `Check`, …), the literate forms (`## To …:`, `Consider`, `When`, `Yield`, `## Theorem:` with `Statement:` and `Proof:`), the term grammar’s binders and sorts (`forall`, `fun`, `Prop`), and the proof tactics. A test holds these lists to the kernel’s parsers: every keyword they read is coloured, or named here as plain prose. ## logicaffeine_web::ui::data_fetch Runtime fetch of build-staged static data. - [fn check_served](https://docs.logicaffeine.com/logicaffeine_web/ui/data_fetch/fn.check_served): Whether what came back for a staged `/data` file is that file. A server with an SPA fallback answers a missing file with the app’s `index.html` and a 200, so a missing `lexicon.json` would otherwise surface as a JSON parse error (“expected value at line 1 column 1”) instead of saying the file is not deployed. ## logicaffeine_web::ui::drag Pointer drags that follow the pointer at frame rate without re-rendering the page. - [enum Axis](https://docs.logicaffeine.com/logicaffeine_web/ui/drag/enum.Axis): The direction a drag resizes, which sets the cursor shown everywhere while it lasts. - [const DRAG_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/drag/constant.DRAG_STYLE): While a drag is live: no text selection anywhere, the resize cursor everywhere, and no iframe (the Web preview) swallowing pointer events. ## logicaffeine_web::ui::examples Example files for the Studio playground. - [struct ExampleSpec](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/struct.ExampleSpec): One shipped Studio example: where it seeds in the VFS, its mode, its source text (the live const), and the outcome it is locked to. - [enum Expected](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/enum.Expected): The documented intended outcome an example is locked to. The test harness dispatches on this to the same pipeline the Studio uses for that mode. - [enum Mode](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/enum.Mode): Which Studio surface an example belongs to. - [const ALL_CODE_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.ALL_CODE_EXAMPLES): The 36 Code-mode examples. Output needles are provisional until the audit run confirms the real interpreter output. - [const ALL_HARDWARE_SPECS](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.ALL_HARDWARE_SPECS): The 18 Hardware-mode examples, sourced from the four hardware slices. The deliberately-unsafe demos (`bad-arbiter`, `traffic-crash`, `queue-jam`, `register-alloc-spill`) are locked to their intended failure/refutation. - [const ALL_LOGIC_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.ALL_LOGIC_EXAMPLES): The 11 Logic-mode examples. - [const ALL_MATH_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.ALL_MATH_EXAMPLES): The 24 Math-mode examples. - [const CODE_CRDT_COUNTERS](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_CRDT_COUNTERS) - [const CODE_CRDT_TALLY](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_CRDT_TALLY) - [const CODE_FIBONACCI](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_FIBONACCI) - [const CODE_HELLO](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_HELLO) - [const CODE_WEB_COUNTER](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_WEB_COUNTER): Web page: a counter. A `.logos` file that declares a `## Page` opens in the Web tab, where it is compiled to WebAssembly and runs live. - [const CODE_WEB_FORM](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_WEB_FORM): Web page: a form — two-way binding (`bind={…}`), `on-submit.prevent`, `forms.lg` validation, and a scoped `Style:` block. - [const CODE_WEB_SITE](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_WEB_SITE): Web page: a website in a website, the front page’s live example: a card with a list, a counted button and a light switch. Kept in its own file so the front page shows exactly what ships. - [const CODE_WEB_TODO](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.CODE_WEB_TODO): Web page: a to-do list you add to, tick off and remove from — records in `State:`, a form with `.prevent`, a keyed `{for each}` with an empty arm, and a derived count. - [const HARDWARE_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.HARDWARE_EXAMPLES): Hardware-mode examples: `(filename, English spec)`. Each is a single English hardware specification that the Studio synthesizes to SystemVerilog Assertions and then certifies (in-browser, no Z3) against the spec. Pure spec sentences — the loader feeds the whole file to the synthesizer. The `hardware_examples` integration test verifies every one of these synthesizes, round-trips as certified-equivalent, and has a reachable trigger. - [const HW_MUTEX](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.HW_MUTEX): Mutual exclusion as one English sentence. Certified equivalent to its SVA like every spec above, but kept out of `HARDWARE_EXAMPLES` because the vacuity check only applies to implication-shaped specs (this one has no trigger to fire — “not both” is unconditional). - [const LOGIC_BARBER](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.LOGIC_BARBER) - [const LOGIC_LEIBNIZ](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.LOGIC_LEIBNIZ) - [const LOGIC_QUANTIFIERS](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.LOGIC_QUANTIFIERS) - [const LOGIC_SIMPLE](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.LOGIC_SIMPLE) - [const MATH_AUTO](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.MATH_AUTO) - [const MATH_BOOL](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.MATH_BOOL) - [const MATH_GODEL_LITERATE](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.MATH_GODEL_LITERATE) - [const MATH_INCOMPLETENESS_LITERATE](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.MATH_INCOMPLETENESS_LITERATE) - [const MATH_NAT](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.MATH_NAT) - [const MATH_PROP_LOGIC](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.MATH_PROP_LOGIC) - [const PIGEONHOLE_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.PIGEONHOLE_EXAMPLES): Pigeonhole examples: `pigeons: N` → PHP(N), `N` pigeons into `N-1` holes. Opened in Hardware mode; `load_hardware_spec` routes a `pigeons:` spec to the live solver, which animates the doomed pigeon and emits a certified symmetry-breaking refutation (Hall witness + Heule PR proof, no Z3) — the family every resolution-based solver (Kissat, CaDiCaL, Z3) needs `2^Ω(n)` steps on. - [const REGALLOC_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.REGALLOC_EXAMPLES): Register-allocation examples: a basic block’s variable live ranges + a register budget. Opened in Hardware mode; `load_hardware_spec` routes a `registers:` spec to the certified linear-scan allocator and renders the live-range timeline (coloured by register, spill clique flagged red). - [const RTL_EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/constant.RTL_EXAMPLES): RTL examples: `(filename, Verilog)`. Synthesizable Verilog the Studio parses into a transition system and bounded-model-checks / k-induction-proves in the browser (no Z3). Verified by the `hardware_examples` integration test. Opened in Hardware mode (they live under `/examples/hardware`); `load_hardware_spec` routes `module … endmodule` content to the RTL BMC path. - [fn compiled_runtime_needs](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/fn.compiled_runtime_needs): What a registry program the browser cannot run needs (“Live networking”); `None` for any other file. - [fn compiled_runtime_notice](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/fn.compiled_runtime_notice): What a registry example that cannot run in the browser shows when it opens, in place of an interpreter run that would only pretend: what it needs, and where it does run. - [fn planted_bug_fix](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/fn.planted_bug_fix): The registry path of the design a planted bug’s example is, fixed; `None` for any other file. - [fn planted_bug_notice](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/fn.planted_bug_notice): What a registry example with a planted bug says when it opens: that the failure is the point, and which example is the same design fixed. - [fn seed_examples](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/fn.seed_examples): Write every shipped example into a VFS, over the copy already there, and retire the ones the registry dropped. The Studio itself never calls this: it serves the examples from the site (`studio_files`). - [fn seeded_examples](https://docs.logicaffeine.com/logicaffeine_web/ui/examples/fn.seeded_examples): Every shipped Studio example, the four registries in one sequence. They are the single source of truth: the Studio serves exactly them (`studio_files`) and opens on them (`studio_opening`), and the `example_health` tests drive the same specs, so serving, opening and testing can never drift. ## logicaffeine_web::ui::fault Containing a failure the Studio did not expect. - [struct ActionFault](https://docs.logicaffeine.com/logicaffeine_web/ui/fault/struct.ActionFault): A Studio action that stopped on a fault: which action, and what stopped it. - [struct Fault](https://docs.logicaffeine.com/logicaffeine_web/ui/fault/struct.Fault): A failure `contain` caught. - [enum Cause](https://docs.logicaffeine.com/logicaffeine_web/ui/fault/enum.Cause): Why contained work stopped. - [fn contain](https://docs.logicaffeine.com/logicaffeine_web/ui/fault/fn.contain): Run `work` behind the fault boundary: its value, or the `Fault` that stopped it. ## logicaffeine_web::ui::fragment Pages whose route models a `#fragment` open at the element it names. - [fn scroll_to_section](https://docs.logicaffeine.com/logicaffeine_web/ui/fragment/fn.scroll_to_section): Bring the element with `id` to the top of the page, under the sticky nav (the target’s `scroll-margin-top` sets the gap), waiting up to ten seconds for it to be rendered. ## logicaffeine_web::ui::hooks Custom Dioxus hooks for the Logicaffeine UI. - [mod use_device_pixel_grid](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_device_pixel_grid/): Where the screen’s pixels fall under an element: how large one device pixel is, and how far the element’s box starts past the device-pixel grid, kept current as the page zooms, moves to a screen of another density, or lays the element out anew. - [mod use_inactivity_timer](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_inactivity_timer/): Inactivity timer hook for detecting when users need help. - [mod use_media](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_media/): Whether the page matches a media query, kept current as the window changes. - [mod use_viewport_width](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_viewport_width/): The page’s width, kept current as the window resizes. - [mod use_visual_viewport](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_visual_viewport/): How much of the window an on-screen keyboard covers. ## logicaffeine_web::ui::hooks::use_device_pixel_grid Where the screen’s pixels fall under an element: how large one device pixel is, and how far the element’s box starts past the device-pixel grid, kept current as the page zooms, moves to a screen of another density, or lays the element out anew. - [struct PixelGrid](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_device_pixel_grid/struct.PixelGrid): One device pixel in CSS pixels, and the nudge that puts an element’s content on the device-pixel grid. - [fn use_device_pixel_grid](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_device_pixel_grid/fn.use_device_pixel_grid): The device-pixel grid under the element given the returned `onmounted` handler, updated for as long as the calling component is mounted. ## logicaffeine_web::ui::hooks::use_inactivity_timer Inactivity timer hook for detecting when users need help. - [struct InactivityState](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_inactivity_timer/struct.InactivityState): State returned by the inactivity timer hook - [const DEFAULT_INACTIVITY_THRESHOLD_MS](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_inactivity_timer/constant.DEFAULT_INACTIVITY_THRESHOLD_MS): Default inactivity threshold (5 seconds) - [fn use_inactivity_timer](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_inactivity_timer/fn.use_inactivity_timer): Non-WASM fallback that does nothing (for testing) ## logicaffeine_web::ui::hooks::use_media Whether the page matches a media query, kept current as the window changes. - [fn use_media](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_media/fn.use_media): Whether the window matches any of `queries` (named in `crate::ui::responsive::media`), updated whenever that changes for as long as the calling component is mounted. False where there is no window (the server render), which draws the desktop. ## logicaffeine_web::ui::hooks::use_viewport_width The page’s width, kept current as the window resizes. - [const UNMEASURED_WIDTH](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_viewport_width/constant.UNMEASURED_WIDTH): The width assumed where there is no window to measure (the server render). - [fn use_viewport_width](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_viewport_width/fn.use_viewport_width): The document’s client width in CSS pixels (the viewport without its scrollbar), updated on every window resize for as long as the calling component is mounted. ## logicaffeine_web::ui::hooks::use_visual_viewport How much of the window an on-screen keyboard covers. - [fn use_keyboard_inset](https://docs.logicaffeine.com/logicaffeine_web/ui/hooks/use_visual_viewport/fn.use_keyboard_inset): The height, in CSS pixels, of the window’s bottom that an on-screen keyboard covers: what the visual viewport leaves of the layout viewport. Android with `interactive-widget=resizes-content` shrinks the layout viewport itself, so this stays 0 there; iOS keeps the layout viewport and shrinks only the visual one. Updated as the keyboard opens and closes, 0 off the browser. ## logicaffeine_web::ui::inline_markup Inline markup for the site’s prose — curriculum, Syntax Guide and news: `**strong**`, `*emphasis*`, ``code`` and `[links](/path)`. - [fn inline_markup_html](https://docs.logicaffeine.com/logicaffeine_web/ui/inline_markup/fn.inline_markup_html): Render one paragraph of the site’s prose to HTML. ## logicaffeine_web::ui::markdown_blocks The block structure of the Markdown the site writes by hand: news articles and the Syntax Guide’s prose. Lines group the way CommonMark groups them. Consecutive lines of text are one paragraph, so a line break in the source is a space on the page and a blank line ends the paragraph; a list item and a quote continue across their wrapped lines; a line of `---` is a rule. Each block’s text is marked up inline by `ui::inline_markup`, the one renderer every page’s prose goes through. - [enum Block](https://docs.logicaffeine.com/logicaffeine_web/ui/markdown_blocks/enum.Block): One block of a Markdown document, in document order. - [fn blocks](https://docs.logicaffeine.com/logicaffeine_web/ui/markdown_blocks/fn.blocks): The blocks `markdown` is made of. ## logicaffeine_web::ui::pages Application pages and views. - [mod benchmarks](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/benchmarks/) - [mod changelog](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/changelog/): The root `CHANGELOG.md`, read the way the roadmap shows it. - [mod contact](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/): The contact page: what LOGOS is (open source, under MIT), how to install it, the form that reaches the team, and the FAQ. - [mod crates](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/crates/): Crate documentation landing page. - [mod guide](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/): Programmer’s Guide page. - [mod hardware_report](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/): What Hardware mode makes of the editor’s text: which kind of design it is, and everything the Studio shows for it. One pure reading, so the panels, Execute and Compile can never disagree about what the file is. - [mod hardware_spec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/): The line grammar the Hardware-mode specs share — `pigeons: 6`, `registers: 3`, `tmp: 1-5`, and each line’s `# …` comment — read one way by their parsers and by the editor, so what the editor paints as a comment is exactly what the parsers skip. - [mod heal](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/): LLM Heal: the fairy that mends a reader’s English (work/LLM_HEAL.md, DAT-108). - [mod landing](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/): The front page: the promise and the ways in, the Studio itself, then how LOGOS compares, what comes with it, and the FAQ. - [mod learn](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/learn/): The Learn Logic page: a roadmap through the curriculum, one lesson at a time. - [mod news](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/): News section for release notes and updates. - [mod pigeonhole_viz](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/): Studio easter egg — the pigeonhole principle, solved live in the browser by our prover. - [mod privacy](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/privacy/): Privacy policy page. - [mod register_alloc_viz](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/): Studio easter egg — certified linear-scan register allocation, visualised. - [mod registry](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/): Phase 39: Package Registry UI - [mod roadmap](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap/): Development roadmap page. - [mod roadmap_data](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_data/): Roadmap milestone data and content. - [mod roadmap_history](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_history/): Release-history data for the roadmap page. - [mod studio](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio/): Studio page - multi-mode playground for Logic, Code, and Math. - [mod studio_actions](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_actions/): What the Studio’s toolbar actions can do for the file in the editor. - [mod studio_files](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/): The Studio’s files: the shipped examples, read-only and served from the site itself, over the reader’s own store (the browser’s OPFS, or IndexedDB in a private window). - [mod studio_layout](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/): The Studio’s resizable layout: the desktop columns — file sidebar, then up to three panels — and the height of the bottom-docked debugger drawer. - [mod studio_opening](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_opening/): What the Studio shows before anything has loaded. - [mod studio_run](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_run/): What Execute does with a Logic or a Math document, for every surface that runs one. - [mod studio_workbench](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/): The Studio’s workbench: the toolbar, the Files tree, the editor and output columns, the Socratic guide and the status bar, with every mode’s handlers. - [mod terms](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/terms/): Terms of service page. - [mod workspace](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/workspace/): Subject-specific workspace page. ## logicaffeine_web::ui::pages::benchmarks - [fn Benchmarks](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/benchmarks/fn.Benchmarks): Gate component: guarantees the data feeds are pinned before the page proper renders, so every accessor inside `BenchmarksLoaded` can `expect` its feed. Native builds (tests, SSG prerender) compile the data in and render directly; wasm fetches the staged `/data` bundle first, behind a lightweight shell. ## logicaffeine_web::ui::pages::changelog The root `CHANGELOG.md`, read the way the roadmap shows it. - [struct Unreleased](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/changelog/struct.Unreleased): What `[Unreleased]` holds: every addition’s headline, in order, and how many other entries there are. - [fn headline](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/changelog/fn.headline): One line’s headline. An entry’s is its first bold lead; a line with no bold text keeps its words, less one pair of wrapping parentheses. Backticks are dropped, runs of whitespace become one space, a trailing period goes, and a headline over 72 characters is cut back to its last whole word and ends in an ellipsis. - [fn release_title](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/changelog/fn.release_title): A release’s title, as the release history shows it: the headline of the section’s first line of content, which is its first entry or a prose preamble such as “First public release.”. - [fn section](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/changelog/fn.section): A release’s section of the CHANGELOG: the text between its `## [version]` heading line and the next `## ` heading. `None` when the CHANGELOG has no such release. - [fn unreleased](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/changelog/fn.unreleased): The `[Unreleased]` section, read. A CHANGELOG with no `[Unreleased]` section has nothing in progress. ## logicaffeine_web::ui::pages::contact The contact page: what LOGOS is (open source, under MIT), how to install it, the form that reaches the team, and the FAQ. - [mod claims](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/claims/): The figures the pricing page states, read from where they are set. - [mod content](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/): What the contact page says, as data. - [mod lead](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/): The contact form’s rules: what a valid email and phone are, the request the form sends, and what the worker’s answer means. - [struct ContactProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/struct.ContactProps): Properties for the `Contact` component. - [fn Contact](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/fn.Contact): Props ## logicaffeine_web::ui::pages::contact::claims The figures the pricing page states, read from where they are set. - [struct LearnFigures](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/claims/struct.LearnFigures) - [fn learn_figures](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/claims/fn.learn_figures) ## logicaffeine_web::ui::pages::contact::content What the contact page says, as data. - [struct Claim](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/struct.Claim): One line the page states, and what backs it. - [struct Faq](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/struct.Faq) - [struct FaqLink](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/struct.FaqLink) - [enum Evidence](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/enum.Evidence): What backs a line on the page. - [const ASSISTANT_GUIDE_URL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.ASSISTANT_GUIDE_URL): The guide an AI assistant reads before it writes LOGOS: every documentation guide in one file, served from `public/`. - [const CONTACT_HEADING](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.CONTACT_HEADING): The hero’s call to the form, and the form’s heading. The prerender smoke tests look for it. - [const INSTALL_UNIX](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.INSTALL_UNIX): The install one-liners, exactly as the Syntax Guide’s Getting Started section gives them. - [const INSTALL_WINDOWS](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.INSTALL_WINDOWS) - [const LICENSE_URL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.LICENSE_URL) - [const OPEN_SOURCE_LINE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.OPEN_SOURCE_LINE): The page’s one line on what LOGOS is: open source, under MIT, for anyone. - [const SEND](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.SEND): The form’s button. - [const SOURCE_URL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.SOURCE_URL) - [const TEAM_EMAIL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/constant.TEAM_EMAIL): The team’s address: the page’s fallback, where the form’s requests arrive, and `public/llms.txt`. - [fn every_claim](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/fn.every_claim): Every line the page states with its evidence: the one line on what LOGOS is. - [fn faq](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/fn.faq) - [fn free_answer](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/content/fn.free_answer): Whether LOGOS is free, as the landing page’s FAQ answers it: open source, under MIT. ## logicaffeine_web::ui::pages::contact::lead The contact form’s rules: what a valid email and phone are, the request the form sends, and what the worker’s answer means. - [struct FieldErrors](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/struct.FieldErrors): What is wrong with each field; nothing when both are fine. - [struct Phone](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/struct.Phone): A phone as the worker stores it: the trimmed number as typed, and its digits alone. - [enum EmailError](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/enum.EmailError) - [enum Outcome](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/enum.Outcome): What the worker’s answer means for the form. - [enum PhoneError](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/enum.PhoneError) - [const ENDPOINT](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/constant.ENDPOINT): Where the form sends its request. - [const SOURCE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/constant.SOURCE): The form’s tag in every request, so the team can tell where a request came from. The page’s tag on the wire. It keeps its old name: the lead worker is deployed on it, and a lead from the contact page is the same lead. - [const TURNSTILE_ACTION](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/constant.TURNSTILE_ACTION): The action the form’s Turnstile widget stamps on its token; the worker’s siteverify check refuses a token that carries any other. - [fn request_body](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/fn.request_body): The JSON the worker reads, `{ email, phone, turnstile_token, source, website }`, or what is wrong with the fields. The honeypot (`website`) rides untouched: the worker decides what a filled one means. - [fn trim_field](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/fn.trim_field): `value` without leading or trailing Unicode white space or byte-order marks. `str::trim` keeps U+FEFF, which a paste from some apps carries, so it is not the rule. - [fn validate_email](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/fn.validate_email): A valid email: the trimmed local part as typed, `@`, the domain lower-cased. - [fn validate_phone](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/contact/lead/fn.validate_phone): A phone is optional: nothing, or only white space, is no phone. ## logicaffeine_web::ui::pages::crates Crate documentation landing page. - [fn Crates](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/crates/fn.Crates) ## logicaffeine_web::ui::pages::guide Programmer’s Guide page. - [mod content](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/): Embedded guide content for the Programmer’s Guide page. - [enum Fence](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/enum.Fence): How the page shows a fenced block, by the language its opening fence names. - [enum ProseBlock](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/enum.ProseBlock): One piece of a section’s prose, in page order: rendered markup, or a fenced code block. - [fn Guide](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.Guide) - [fn fence](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.fence): The fence a tag names, or `None` for a tag the guide does not render. - [fn page_verdict](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.page_verdict): The verdict on a web page’s own `## Test` blocks — shared by the web exercise grader and the test harness, so what the reader is told is what the suite checked. `Ok` carries how many tests passed; a page with no test, or with any failing one, is an `Err` naming what went wrong. - [fn prose_blocks](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.prose_blocks): A section’s prose split at its fences, in page order. A fence’s lines are kept exactly as written, blank lines and indentation included; whatever prose was open before it (a list, a table, a quote) ends where it begins. - [fn render_markdown_for_test](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.render_markdown_for_test): The markdown renderer, exported for the render locks — the blockquote callout conventions (`> **Mental model:**`, `> **Look back:**`) are load- bearing for the pedagogy battery and must never silently stop parsing. - [fn search_sections](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.search_sections): Case-insensitive full-text search over section titles, prose, hooks, objectives, misconceptions, recap questions, and example labels/code, in display order. Blank queries match nothing (no noise). - [fn theorem_verdict](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.theorem_verdict): The canonical rendering of a theorem run — shared by the Run button and the test harness, so the locked expected output IS what the reader sees. - [fn today_string](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/fn.today_string): Today as `YYYY-MM-DD` — the date the SM-2 deck schedules against. ## logicaffeine_web::ui::pages::guide::content Embedded guide content for the Programmer’s Guide page. - [struct CodeExample](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/struct.CodeExample): A code example within a section - [struct Exercise](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/struct.Exercise): A “now you try” challenge: the reader writes code (Imperative — graded by exact program output), a page (Web — graded by its own `## Test` blocks) or FOL (Logic — graded structurally by the Learn grader), right in the guide. - [struct Misconception](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/struct.Misconception): “Coming from X you’d expect A; LOGOS does B because C” — stated first in the reader’s voice, then proven by a runnable example. - [struct RecapQuestion](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/struct.RecapQuestion): One end-of-section retrieval prompt: question → recall → reveal → self-mark. Free recall, never multiple-choice (recognition ≠ production). - [struct Section](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/struct.Section): A section of the guide - [enum ExampleMode](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/enum.ExampleMode): Mode for code examples - determines how “Run” executes them - [enum ExerciseKind](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/enum.ExerciseKind): The rung an exercise occupies on the worked→completion→free ladder (Sweller/Renkl fading). Within a section, support only ever fades. - [enum Runnability](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/enum.Runnability): How an example behaves in the browser playground. The single source of truth shared by the Run-button affordance, the badge, AND the test harness partition (`tests/guide_examples.rs`) — the three can never disagree. - [const HOLE_MARKER](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/constant.HOLE_MARKER): The canonical hole token for Completion starters: greppable, never valid LOGOS, unmistakably a blank to fill. - [static SECTIONS](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/guide/content/static.SECTIONS): All guide sections in display order, concatenated from the per-part modules. ## logicaffeine_web::ui::pages::hardware_report What Hardware mode makes of the editor’s text: which kind of design it is, and everything the Studio shows for it. One pure reading, so the panels, Execute and Compile can never disagree about what the file is. - [struct HardwareReport](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/struct.HardwareReport): Everything the Studio shows for a Hardware design. - [struct Section](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/struct.Section): One labelled block of the result panel. - [enum Compiled](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/enum.Compiled): What Compile makes of a design. - [enum HardwareKind](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/enum.HardwareKind): The kinds of design Hardware mode reads, by what the text names. - [fn analyze](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/fn.analyze): Read `content` as its kind of design. - [fn compiled](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/fn.compiled): Compile `content`: an English spec becomes a Rust runtime monitor; every other design says why there is nothing to compile, instead of blaming the design. - [fn is_verilog](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/fn.is_verilog): Whether the editor holds Verilog: a line that opens a `module`, or an `endmodule` — known from the first line of a module being written, before `kind_of` can call it finished Verilog. - [fn kind_of](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/fn.kind_of): Which kind of design `content` is; `None` for an empty editor. A spec is the kind whose field it names (`pigeons:`, `registers:`), whatever its values, so a mistake in one is reported as that spec’s mistake. - [fn nothing_to_compile](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_report/fn.nothing_to_compile): Why Compile makes nothing for a design of `kind` — `None` for an English spec, which compiles to a Rust runtime monitor. The toolbar shows the same words on the disabled button. ## logicaffeine_web::ui::pages::hardware_spec The line grammar the Hardware-mode specs share — `pigeons: 6`, `registers: 3`, `tmp: 1-5`, and each line’s `# …` comment — read one way by their parsers and by the editor, so what the editor paints as a comment is exactly what the parsers skip. - [const FIELDS](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/constant.FIELDS): Every field a Hardware spec names before its value. - [const PIGEONS](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/constant.PIGEONS): The pigeonhole spec’s one field: how many pigeons go into one fewer holes. - [const PIGEONS_RANGE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/constant.PIGEONS_RANGE): How many pigeons a spec may ask for: one pigeon with no hole is degenerate, and past twenty the picture stops being legible. - [const REGISTERS](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/constant.REGISTERS): The register-allocation spec’s budget: how many physical registers there are. - [fn comment_start](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.comment_start): Where `line`’s comment starts: the first run of `#` that `opens_comment`. - [fn content](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.content): A spec line without its comment, trimmed. - [fn field_value](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.field_value): The value after `field:` on a spec line, trimmed and without the line’s comment, when the line names that field. - [fn hover](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.hover): What the editor’s hover says about the word at byte `offset` of a spec: the field it names, or the live range it reads. Markdown, as the language server’s hovers are. - [fn is_field](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.is_field): Whether `word` names `field` the way the parsers accept it: lowercase, or capitalised. - [fn opens_comment](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.opens_comment): Whether a run of `#` whose next character is `after` opens a comment: it does when a space or the end of the line follows (`# note`, `## Title`). Verilog’s `#5` and `#(10)` delays are code. - [fn problems](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/hardware_spec/fn.problems): What is wrong in a spec, placed under the value at fault: a field its parser would refuse, a live range that never starts or ends. A spec that names no field has nothing to check here. ## logicaffeine_web::ui::pages::heal LLM Heal: the fairy that mends a reader’s English (work/LLM_HEAL.md, DAT-108). - [struct Answer](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/struct.Answer): The worker’s answer: `{ ok: true, healed, model }` or `{ ok: false, error }`. - [struct LineDiff](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/struct.LineDiff): What a line diff touched on each side: the ranges of `before` lines the mend replaced or removed, and of `after` lines it wrote or added, by the longest common subsequence of lines (spaces at a line’s end ignored). The card marks both sides from this. - [struct Request](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/struct.Request): The body the worker reads: `{ "mode": "code" | "logic", "text": "...", "fragment": true }`, the text as written. `fragment` says the text is the lines a person just wrote inside a program that is already right, so the model mends those lines only and answers with them alone. - [enum Flight](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/enum.Flight): Where the fairy is and what the card shows. - [enum Mode](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/enum.Mode): The two Studio modes that heal, as the worker names them. - [const EMPTY_EDITOR](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/constant.EMPTY_EDITOR): What the dock bar says when Heal is pressed over an empty editor. - [const ENDPOINT](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/constant.ENDPOINT): Where a heal is sent: `LOGOS_HEAL_URL` at build time (nas2’s dev build points at a `wrangler dev` of the worker), else production. - [const FAIRY](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/constant.FAIRY): The fairy, served from the site (the L of Z, her quest form). - [const NOTHING_NEW](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/constant.NOTHING_NEW): What the dock bar says when nothing has changed since the file opened or was last kept. - [fn changed_lines](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.changed_lines): The line ranges of `after` the mend touched, by a line diff: identical texts give none, a one-word fix gives that line alone, lines added give their run, and lines deleted give an empty range where they were. Spaces at a line’s end do not count as a change. - [fn edited_regions](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.edited_regions): The regions of `current` a person wrote since `baseline` (the text the file opened with, or was last kept at): the runs of lines that differ, by the line diff, neighbours within one line merged into one region, and nothing for lines only removed. Only these go to the worker, so a heal touches what the person typed and never the code that was already there (the user, 2026-11-02). - [fn line_diff](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.line_diff) - [fn narration](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.narration): What the dock bar says while a heal is under way; nothing when the fairy is home. - [fn outcome](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.outcome): The healed text from the worker’s status and body, or the sentence the card shows instead. - [fn pixel_steps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.pixel_steps): The order in which `len` characters dissolve, deterministic from `seed`, so the two halves of the animation mirror: the new text forms in the reverse of this order. - [fn reason](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.reason): The worker’s named error as the sentence the card shows. - [fn region_text](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.region_text): The lines of `text` in `region`, as one text to send. - [fn reindent](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.reindent): The mended lines at the indentation the region had: a model that drops a fragment’s leading spaces (the first line of an indented block comes back at the margin) gets them put back, on every mended line shallower than the region’s first line, so the splice keeps the block. - [fn same_text](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.same_text): Whether two texts say the same thing line for line, spaces at a line’s end and blank lines at the end aside: a mend that only moved whitespace is no mend. - [fn send](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.send): POST the text to the worker. On the web, the answer as `outcome` reads it; on the server there is nothing to send to. - [fn splice](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.splice): `text` with each region’s lines replaced by the mended lines it got back, last region first so earlier line numbers stay true; the rest of the text is untouched, byte for byte. - [fn word_marks](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/heal/fn.word_marks): A line as pieces, each marked whether it differs from the other line: the common prefix and suffix of words stay plain, what lies between is the mend. For the card to show the word that changed, not only the line. ## logicaffeine_web::ui::pages::landing The front page: the promise and the ways in, the Studio itself, then how LOGOS compares, what comes with it, and the FAQ. - [mod content](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/): What the front page says, as data. - [fn Landing](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/fn.Landing) ## logicaffeine_web::ui::pages::landing::content What the front page says, as data. - [mod said](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/said/): What the page says only once the reader acts. - [struct Card](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/struct.Card): One card of the comparison: a kind of work, what it is usually done with, and what LOGOS does there. - [struct Claim](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/struct.Claim): One sentence the page states, and what backs it. - [struct Faq](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/struct.Faq): A question the front page answers. - [struct LibraryFigures](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/struct.LibraryFigures): The standard library’s figures: the prelude’s module count, read from the loader, and the parity ledger’s correctness figures and upstream languages, read from the ledger as it is checked in (`benchmarks/parity/PARITY_LEDGER.md`), so the page can never say a number the ledger does not. - [struct Usually](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/struct.Usually): A tool a kind of work usually reaches for, named as its own site names it, and the page where it says so (shown nowhere on the page). - [enum Evidence](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/enum.Evidence): What backs a line of the page./// What backs a line of the page. - [enum Install](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/enum.Install): How largo installs: the shell script on macOS, Linux and every phone’s agent, PowerShell on Windows. - [enum Line](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/enum.Line): One line of the agent instructions. - [enum Status](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/enum.Status): Where what a card says stands: in the released largo, in the Studio, in part, or in the next release (this tree, ahead of the release a reader installs today). - [enum System](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/enum.System): A system a reader copies the prompt for: one button each, with the system’s mark. macOS and Linux share the shell install; Windows has PowerShell’s. - [enum Uses](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/enum.Uses): What a card’s line leans on in largo: a command, or a target of `largo emit`. - [const AGENT_GUIDE_URL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.AGENT_GUIDE_URL): The guide the prompt sends an agent to before it writes: the instructions, served whole (`public/agent.txt`, which `landing_page` holds to `instructions_text` byte for byte). - [const CLONE_SOURCE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.CLONE_SOURCE): The command that clones the source, with its examples and docs, for an agent to read. - [const COMPARE_HEADING](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.COMPARE_HEADING) - [const COPY_LABEL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.COPY_LABEL): The button below the heading, which copies the instructions. - [const CRATES_URL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.CRATES_URL): The page that lists the crates the language is built from, one per part. - [const HEADING](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.HEADING): The heading: the promise, then the two things that come with it. The user’s words (2026-10-01). - [const INSTALL_HEADING](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.INSTALL_HEADING): The box above the buttons for a reader who installs largo by hand: its heading and the command for each kind of system, as the pricing page states them. - [const INSTRUCTIONS_ID](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.INSTRUCTIONS_ID): The element that shows the instructions, which the copy button names. - [const LIBRARY_HEADING](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.LIBRARY_HEADING) - [const SERVE_URL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.SERVE_URL): Where `largo serve` puts the site: its default port, on the reader’s own machine. - [const SYNTAX_MATRIX](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/constant.SYNTAX_MATRIX): The language on one page: the forms an agent writes, one construct a line, drawn from the quickguide’s tables (`teach_parity` holds the guide to the lessons, `doc_examples` runs the docs). The guide carries it under step 4, and the heal worker’s prompt carries the same lines (`services/heal/src/primer.js`, held equal by `landing_page`), so the model that mends a program knows the language it mends (the user, 2026-11-02). - [fn compare](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.compare): The comparison: eight kinds of work, each with what it is usually done with and what LOGOS does there as of 0.11.0, every line proven by the suites it names, and no claim of a win over anything. A card tagged for the next release leans on a command or an emit target the released largo lacks; as of 0.11.0, none does. - [fn compare_lead](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.compare_lead): The line under the comparison’s heading: what the cards are. - [fn every_claim](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.every_claim): Every line the page states with its evidence: the guide’s sentences and rules, the line on how for each system, the comparison’s lead and cards, the library’s lines and features, and the FAQ’s answers. - [fn faq](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.faq) - [fn features](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.features): What 0.11.0 brings, a line each, ten words or fewer, each proven by the suites it names. - [fn how](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.how): The one line below the heading on how to use LOGOS: the whole of what the page tells a reader to do, since the prompt itself only copies (the user, 2026-10-31). - [fn install_commands](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.install_commands) - [fn instructions](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.instructions): The guide the prompt sends an agent through: install, a website on the reader’s screen inside a few minutes, then the language, the site, programs, logic, math and hardware, each where it lives in the released largo, and how the two of them work (Tristen, 2026-11-01, DAT-105: get them up, running and building, with a starter site, and point them at the source). Every command runs on the release the install script installs. - [fn instructions_text](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.instructions_text): The instructions as one text: what the page shows and what the copy button copies. - [fn library](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.library): The standard library in two lines, each with the figures it quotes. - [fn library_figures](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.library_figures) - [fn prompt](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.prompt): The five lines a person pastes into their coding agent, for `install`: what this is, the source on GitHub first, the install that runs on the reader’s system, and the guide to follow, which ends with a site running. Plain and agent agnostic (Tristen and the user, 2026-11-01, DAT-105). - [fn prompt_text](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.prompt_text): The prompt as one text: what the page shows and what the copy button copies. - [fn shelf](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/fn.shelf): The front page’s Studio frame: one shipped example for each kind of work the comparison names, in the Studio’s own folders, opened on the website in a website (the user, 2026-10-01). The Logic example is a theorem with its givens, so a first visit’s Prove has something to prove from (the user, 2026-11-01). ## logicaffeine_web::ui::pages::landing::content::said What the page says only once the reader acts. - [const COMMAND_COPIED](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/said/constant.COMMAND_COPIED): An install command’s copy button, while the command is on the clipboard. - [const COPIED](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/said/constant.COPIED): The copy button’s label while the instructions are on the clipboard. - [const COPIED_STATUS](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/said/constant.COPIED_STATUS): What a screen reader hears once the instructions are copied. - [const COPY_REFUSED](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/said/constant.COPY_REFUSED): What the page says when the browser refuses the copy, having selected the instructions. - [fn all](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/landing/content/said/fn.all): Every one of them, with where it shows. ## logicaffeine_web::ui::pages::learn The Learn Logic page: a roadmap through the curriculum, one lesson at a time. - [struct LearnProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/learn/struct.LearnProps): Properties for the `Learn` component. - [struct LessonPanelProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/learn/struct.LessonPanelProps): Properties for the `LessonPanel` component. - [fn Learn](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/learn/fn.Learn): Props - [fn LessonPanel](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/learn/fn.LessonPanel): A lesson as the page draws it. `on_next` moves the learner on once its question is settled. ## logicaffeine_web::ui::pages::news News section for release notes and updates. - [mod article](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/article/): Individual news article page. - [mod data](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/): News article data and content. - [mod index](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/index/): News index page - displays list of all articles. ## logicaffeine_web::ui::pages::news::article Individual news article page. - [struct NewsArticleProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/article/struct.NewsArticleProps): Properties for the `NewsArticle` component. - [fn NewsArticle](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/article/fn.NewsArticle): Props ## logicaffeine_web::ui::pages::news::data News article data and content. - [struct Article](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/struct.Article): News article structure - [fn format_tag](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/fn.format_tag): Format a tag for display (e.g., “formal-logic” -> “Formal Logic”) - [fn get_all_tags](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/fn.get_all_tags): Get all unique tags from articles - [fn get_article_by_slug](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/fn.get_article_by_slug): Get a single article by slug - [fn get_articles](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/fn.get_articles): Get all articles sorted by date (newest first) - [fn get_articles_by_tag](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/data/fn.get_articles_by_tag): Get articles filtered by tag ## logicaffeine_web::ui::pages::news::index News index page - displays list of all articles. - [struct NewsProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/index/struct.NewsProps): Properties for the `News` component. - [fn News](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/news/index/fn.News): Props ## logicaffeine_web::ui::pages::pigeonhole_viz Studio easter egg — the pigeonhole principle, solved live in the browser by our prover. - [struct PigeonSpec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/struct.PigeonSpec): A parsed pigeonhole spec: `pigeons` pigeons into `pigeons - 1` holes — the canonical resolution-hard PHP instance, always unsatisfiable. - [struct Verdict](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/struct.Verdict): The certified refutation result for one instance, all re-checkable and computed live in WASM. - [fn headline](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/fn.headline): The result in one line: the certified refutation. - [fn is_pigeonhole_spec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/fn.is_pigeonhole_spec): Whether `spec` is a pigeonhole spec — the single source of truth the Studio uses to route Hardware-mode input to this easter egg, so the wiring can never drift from the parser. - [fn parse_pigeonhole_spec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/fn.parse_pigeonhole_spec): Parse a spec of the form (a single `pigeons: N` line; comments and blanks ignored): - [fn render](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/fn.render): Render PHP(`spec.pigeons`) as `(svg, verdict)`. The SVG is an animated flight: `n` pigeons glide into `n-1` holes while the one left over flutters and flashes “NO ROOM”. The verdict is the plain-language, certified summary. - [fn report](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/fn.report): A textual summary for the Studio output panel, paired with the `render` animation — the same certified result, in words. - [fn solve](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/pigeonhole_viz/fn.solve): Solve PHP(`spec.pigeons`) with our prover, live: the matching Hall witness (always), the certified Heule symmetry-breaking proof (small/medium `n`), and a baseline CDCL conflict count for contrast (small `n`). Every field is a re-verified artifact, never a trusted verdict. ## logicaffeine_web::ui::pages::privacy Privacy policy page. - [struct PrivacyProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/privacy/struct.PrivacyProps): Properties for the `Privacy` component. - [fn Privacy](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/privacy/fn.Privacy): Props ## logicaffeine_web::ui::pages::register_alloc_viz Studio easter egg — certified linear-scan register allocation, visualised. - [struct RegSpec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/struct.RegSpec): A parsed register-allocation spec: named variable live ranges + the physical register budget. - [fn allocation_report](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.allocation_report): A textual allocation report for the Studio output panel: the physical register assigned to each variable, or — when the block is over-pressure — the spill verdict naming its mutually-interfering clique. This is the “compiler back-end output” view that pairs with the `render` timeline; the per-variable registers come from the same `linear_scan_assignment` the animation replays, and the feasibility/clique verdict from the certified `allocate` result, so the two views agree. - [fn interference_edges](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.interference_edges): The interference graph’s edges: every pair of variables `(i, j)` (`i < j`) whose live ranges overlap, so they cannot share a register. Register allocation is exactly colouring this graph; for straight-line code it is an interval graph (perfect), so its chromatic number equals the largest clique equals the register pressure. - [fn is_register_alloc_spec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.is_register_alloc_spec): Whether `spec` is a register-allocation spec (a `registers:` budget plus at least one live range). This is the single source of truth the Studio uses to route Hardware-mode input to the allocator easter egg, so the wiring (panel visibility, output panel, viz panel) can never drift from what the parser actually accepts. - [fn is_valid_linear_scan](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.is_valid_linear_scan): Re-check a linear-scan assignment: every assigned register is within budget, and no two variables that are live at the same time are given the same register — the soundness property any register allocation must satisfy. (Spilled variables, `None`, impose no constraint: they live in memory.) - [fn linear_scan_assignment](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.linear_scan_assignment): A deterministic linear-scan assignment: variable index `i` → the physical register it is given, or `None` if linear-scan must spill it (no register was free when it became live). This is the data the animated view replays — each variable becomes one bar that lights up in its register’s lane while it is live. Re-checkable via `is_valid_linear_scan`. It spills nothing exactly when the block fits the budget (peak pressure ≤ `registers`), so it agrees with the certified `allocate` decision while also showing which value gets evicted when it does not. - [fn parse_register_spec](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.parse_register_spec): Parse a spec of the form (one `name: start-end` per line, plus a `registers: N` budget): - [fn pressure_profile](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.pressure_profile): Register pressure sampled at each instruction in `tmin..tmax`: `profile[i]` is how many variables are live at instruction `tmin + i`. Its maximum is the register pressure (the fewest registers the block could ever need), which is what the budget line is drawn against — wherever the profile rises above the budget, spilling is unavoidable. - [fn render](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/register_alloc_viz/fn.render): Render the certified allocation of `spec` as `(svg, verdict)`. The SVG is an animated linear-scan: a live-range timeline above an animated register file, with a sweep line crossing both so you can watch each value claim and release its register (and, when over capacity, drop to a spill lane). The verdict is the plain-language, certified summary. ## logicaffeine_web::ui::pages::registry Phase 39: Package Registry UI - [mod browse](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/browse/): Package registry browse page. - [mod package_detail](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/package_detail/): Package detail page. ## logicaffeine_web::ui::pages::registry::browse Package registry browse page. - [struct RegistryProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/browse/struct.RegistryProps): Properties for the `Registry` component. - [fn Registry](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/browse/fn.Registry): Props ## logicaffeine_web::ui::pages::registry::package_detail Package detail page. - [struct PackageDetailProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/package_detail/struct.PackageDetailProps): Properties for the `PackageDetail` component. - [fn PackageDetail](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/registry/package_detail/fn.PackageDetail): Props ## logicaffeine_web::ui::pages::roadmap Development roadmap page. - [fn Roadmap](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap/fn.Roadmap) - [fn next_release_summary](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap/fn.next_release_summary): The line that closes the Next release block: how many other changes and fixes `[Unreleased]` holds beside its additions. `None` when it holds none. ## logicaffeine_web::ui::pages::roadmap_data Roadmap milestone data and content. - [struct Example](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_data/struct.Example): A single worked example shown in a milestone’s interactive tabs. - [struct Milestone](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_data/struct.Milestone): One milestone on the development timeline. - [enum Output](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_data/enum.Output): What a milestone example compiles its English `english` to. Each variant holds verbatim compiler output for that input. - [enum Status](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_data/enum.Status): Completion state of a roadmap milestone. - [fn get_milestones](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_data/fn.get_milestones): All roadmap milestones in timeline order (oldest foundation first). ## logicaffeine_web::ui::pages::roadmap_history Release-history data for the roadmap page. - [struct Release](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_history/struct.Release): One released (or prepared) version. Newest-first in `get_history`. - [fn get_history](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_history/fn.get_history): All releases, newest-first. - [fn news_slug_for](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/roadmap_history/fn.news_slug_for): The news-article slug for a release, if one exists. ## logicaffeine_web::ui::pages::studio Studio page - multi-mode playground for Logic, Code, and Math. - [struct StudioProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio/struct.StudioProps): Properties for the `Studio` component. - [const STUDIO_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio/constant.STUDIO_STYLE): Studio-specific styles that extend the shared responsive styles - [fn Studio](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio/fn.Studio): Props - [fn parse_math_statements](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio/fn.parse_math_statements): Parse math code into complete statements. ## logicaffeine_web::ui::pages::studio_actions What the Studio’s toolbar actions can do for the file in the editor. - [struct Actions](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_actions/struct.Actions): The toolbar’s actions for one file. - [enum Offer](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_actions/enum.Offer): Whether an action can do something for the open file — and why not, when it cannot. - [fn actions_for](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_actions/fn.actions_for): The actions the open file can take, from its mode, its path (the registry knows which shipped programs need the compiled runtime) and its text. ## logicaffeine_web::ui::pages::studio_files The Studio’s files: the shipped examples, read-only and served from the site itself, over the reader’s own store (the browser’s OPFS, or IndexedDB in a private window). - [struct StudioFiles](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/struct.StudioFiles): The Studio’s files: the shipped examples over the reader’s store. - [const EXAMPLES](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/constant.EXAMPLES): Where the shipped examples live. - [fn example_at](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/fn.example_at): The shipped example at `path`. - [fn example_text](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/fn.example_text): The text of the shipped example at `path`. - [fn examples_tree](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/fn.examples_tree): The examples’ part of the file tree, in the file browser’s order: what the tree shows before the reader’s store has answered. - [fn load_dir_recursive](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/fn.load_dir_recursive): Load the folder at `path` from `vfs` into `parent`, every level in the file browser’s order. - [fn open_store](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_files/fn.open_store): What the Studio asks of its files when it opens: the whole file tree (the examples from the site, the reader’s own files from the store) and the text of `path`, the file it opened with, or `None` when there is no such file. It writes nothing. ## logicaffeine_web::ui::pages::studio_layout The Studio’s resizable layout: the desktop columns — file sidebar, then up to three panels — and the height of the bottom-docked debugger drawer. - [struct Columns](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/struct.Columns): The fixed-width columns. The center is derived: see `Columns::center`. - [struct Extent](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/struct.Extent): A stretch of the page from top to bottom, in CSS pixels. - [struct Shown](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/struct.Shown): Which optional columns are on screen. The left and center panels always are. - [enum MobileTab](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/enum.MobileTab): The pane a phone shows, one at a time: the editor, the output, or the third panel (Console, Context or the picture). Every Run and Execute shows the output. - [enum Resizer](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/enum.Resizer): A resizer, named by the boundary it moves. - [const CENTER_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.CENTER_MIN) - [const DESKTOP_MIN_WIDTH](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.DESKTOP_MIN_WIDTH): The narrowest window that gets the side-by-side layout; below it the Studio stacks. - [const DRAWER_INITIAL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.DRAWER_INITIAL): The drawer’s height when it first opens: room for its controls and its tabs. - [const DRAWER_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.DRAWER_MIN): The drawer can shrink to its control bar and no further. - [const GAP](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.GAP): The hairline between neighbours in the panel row. - [const LEFT_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.LEFT_MIN) - [const PANELS_MIN_HEIGHT](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.PANELS_MIN_HEIGHT): However tall the drawer grows, the panel row above it keeps at least this much. - [const PROOF_DRAWER_INITIAL](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.PROOF_DRAWER_INITIAL): The proof drawer’s height when it first opens: room for its bar and the three steps. - [const PROOF_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.PROOF_MIN): Logic’s proof drawer shrinks to its bar and no further. - [const RESIZER](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.RESIZER): Width of a resizer bar. - [const RIGHT_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.RIGHT_MIN) - [const SIDEBAR_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.SIDEBAR_MIN) - [const SPLIT_MAX](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.SPLIT_MAX) - [const SPLIT_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/constant.SPLIT_MIN): On a phone the panels stack; the upper one’s share of the stack, in percent, stays between these bounds so neither panel can be dragged out of sight. - [fn caret_in_view](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/fn.caret_in_view): How far the editor scrolls so the caret’s line shows in `view`, the part of its pane the reader can see (above an on-screen keyboard): nothing when it shows already, up to its top when it is above, down to its bottom when it is below. A line taller than the view shows from its top. - [fn drawer_dragged](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/fn.drawer_dragged): The drawer’s height after dragging its grip by `dy` pixels (down is positive), where `start` is its height when the drag began and `room` is the height the panel row and the drawer share. - [fn drawer_fit](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/fn.drawer_fit): A drawer height drawn in `room` pixels shared with the panel row: never below the control bar, and never so tall the panels lose their minimum. - [fn first_pane](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/fn.first_pane): The pane a phone opens a file of `mode` on: the output for a file that runs or previews as it opens, the editor for Math, which waits for Execute. Decided by the mode alone, so the server’s render is the phone’s first frame. - [fn proof_dragged](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/fn.proof_dragged): The proof drawer’s height after dragging its grip by `dy` pixels (down is positive), where `start` is its height when the drag began and `room` is the height the panel row and the drawer share: never below its bar, and never so tall the panels lose their minimum. - [fn split_percent](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_layout/fn.split_percent): The upper panel’s share of a stack `height` pixels tall whose top edge is at `top`, when the split bar is at `y`. ## logicaffeine_web::ui::pages::studio_opening What the Studio shows before anything has loaded. - [struct StudioOpening](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_opening/struct.StudioOpening): The file the Studio opens with, the mode it opens in, and its text when the site carries it. - [enum Arrival](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_opening/enum.Arrival): What the file system’s answer for the opening’s file changes. ## logicaffeine_web::ui::pages::studio_run What Execute does with a Logic or a Math document, for every surface that runs one. - [struct MathRun](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_run/struct.MathRun): What running a Math document produced: a line per statement, and, when the statements ran through the kernel, the kernel they left behind, whose environment the Studio’s Context panel lists. A `## Theory` development certifies its theorems on its own and leaves no kernel. - [enum LogicRun](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_run/enum.LogicRun): What running a Logic document produced. - [fn run_logic](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_run/fn.run_logic) - [fn run_math](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_run/fn.run_math): Runs a Math document from a fresh kernel, so each run replaces the last rather than piling on. ## logicaffeine_web::ui::pages::studio_workbench The Studio’s workbench: the toolbar, the Files tree, the editor and output columns, the Socratic guide and the status bar, with every mode’s handlers. - [struct Shelf](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/struct.Shelf): The files a frame shows: shipped examples, in the Studio’s own folders, and the one it opens on. - [struct StoreNote](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/struct.StoreNote): What the reader’s store says beside the files: an error reading it, whether it lasts only for the browser session, and why New file cannot make a file yet. - [struct StudioFrameProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/struct.StudioFrameProps): Properties for the `StudioFrame` component. - [struct WorkbenchProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/struct.WorkbenchProps): Properties for the `Workbench` component. - [struct WorkbenchState](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/struct.WorkbenchState): Everything the workbench shows and edits: what is open, each mode’s editor and what each mode last made, and how the columns are laid out. The host holds it (`use_workbench`), so the Studio page’s own effects, its store and its address bar, and the workbench’s handlers work on one state; it is signals, so it is `Copy`. - [enum Host](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/enum.Host): Where a workbench is drawn, and so what it may reach beyond itself. - [const FRAME_ID](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/constant.FRAME_ID): The Studio in a frame on another page: the workbench with the Studio’s own stylesheet, and `FRAME_STYLE` for what a frame lays out itself. The id of the frame’s element on its page: what a Try it button names, and scrolls to. - [const FRAME_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/constant.FRAME_STYLE): What a frame lays out itself, every rule inside the frame: its box on the page and its height in each band, its columns in the proportions the Studio first opens with, which hold until the reader drags a column bar (from then on the frame draws the columns as the Studio page does, in its own width), and the link into the Studio. - [const PREVIEW_CENTERING_STYLE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/constant.PREVIEW_CENTERING_STYLE): What the Studio adds to a page’s preview document, in its head: the page stands in the middle of the frame, across and down, however small it is, and from the top once it is taller than the frame (`safe center`). A page served by largo gets none of this: it is the Studio’s frame, not the page, that centers. - [const PREVIEW_TITLE](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/constant.PREVIEW_TITLE): The Web preview’s name, for a screen reader. - [fn StudioFrame](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/fn.StudioFrame): Props - [fn Workbench](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/fn.Workbench): The Studio’s working area for `state`, drawn for `host`. - [fn prebuilt_preview_path](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/fn.prebuilt_preview_path): Where the site serves a shipped Web page’s prebuilt preview document: `/previews/.html` for a page under `/examples/`, written at release by `web_previews_lock`’s regenerator from `preview_document`. `None` for anything that is not a shipped page, so a reader’s own file or an edited page is built in the browser as before. - [fn preview_document](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/fn.preview_document): The document the Studio’s Web preview frames for `source`: the page as `largo serve` would paint it, first paint included, with `PREVIEW_CENTERING_STYLE` in its head; or, when the page does not build, the themed overlay that says why. - [fn use_shelf](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/fn.use_shelf): The state of a frame over `shelf`, for a page to hold: opened on `shelf.opens`, its tree the shelf’s files. A page calls it once, as it calls any hook, and hands it to `StudioFrame`. - [fn use_workbench](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/studio_workbench/fn.use_workbench): The workbench’s state, for a host to hold: what `opening` opens on, over the files `tree` lists. The host calls it once, as it calls any hook, and hands what it returns to `Workbench`. ## logicaffeine_web::ui::pages::terms Terms of service page. - [fn Terms](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/terms/fn.Terms) ## logicaffeine_web::ui::pages::workspace Subject-specific workspace page. - [struct WorkspaceProps](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/workspace/struct.WorkspaceProps): Properties for the `Workspace` component. - [fn Workspace](https://docs.logicaffeine.com/logicaffeine_web/ui/pages/workspace/fn.Workspace): Props ## logicaffeine_web::ui::platform The visitor’s system, read from what their browser says, so the front page shows the install that runs on it. - [struct Seen](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/struct.Seen): What the browser says about the machine it runs on. - [enum System](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/enum.System): The systems the front page tells apart. - [const REMEMBERED](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/constant.REMEMBERED): Where the page remembers the install a visitor chose with the switch, in their browser alone. - [const SYSTEM_OF_JS](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/constant.SYSTEM_OF_JS): `system_of` in JavaScript: `systemOf(userAgent, platform, uaPlatform, maxTouchPoints)` returns `System::name`. `landing_page::the_os_script_reads_the_system_as_the_app_does` holds the two to the same answers for every visitor of the fixture. - [fn choose_install](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/fn.choose_install): Show `install`’s prompt, and remember the choice in this browser when it lets the page. - [fn install_for](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/fn.install_for): The install that runs on `system`: PowerShell on Windows, the shell script everywhere else. A phone’s reader pastes into an agent on a Mac or a Linux machine, or into a cloud agent, which runs in a Linux sandbox. - [fn os_script](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/fn.os_script): The script the prerendered front page runs before its hero paints: `` gets the visitor’s system (`data-system`) and the install to show (`data-os`), the one they chose last time if they chose one, so the page shows the right prompt with no flash and no jump. - [fn shown_install](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/fn.shown_install): The install the page shows: what `` says, else what the app reads of the browser and the visitor’s last choice, marking `` with it as the inline script would have. Off the browser, the shell install. - [fn system_of](https://docs.logicaffeine.com/logicaffeine_web/ui/platform/fn.system_of): The system a browser runs on. Phones and tablets first: Android says Linux, and an iPad asking for the desktop site says it is a Mac with a touch screen. `SYSTEM_OF_JS` is this function in JavaScript, for the prerendered page. ## logicaffeine_web::ui::responsive Responsive design system and mobile styling utilities. - [mod breakpoints](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/): The widths and heights the layout changes at, in CSS pixels. - [mod media](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/): The media queries the Studio’s stylesheets and these shared ones use, by name. A stylesheet cannot read a custom property inside `@media`, so each query is written out in the CSS, and the one-Studio lock holds every `@media` the Studio draws from to one of `media::ALL`. The app’s own `matchMedia` checks use the same strings. - [mod touch](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/touch/): Touch targets, in CSS pixels (WCAG 2.5.5). - [const MOBILE_BASE_STYLES](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/constant.MOBILE_BASE_STYLES): Include this in your root component (app.rs) for global mobile utilities - [const MOBILE_TAB_BAR_STYLES](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/constant.MOBILE_TAB_BAR_STYLES): Reusable mobile tab bar styles - use for any tabbed interface on mobile ## logicaffeine_web::ui::responsive::breakpoints The widths and heights the layout changes at, in CSS pixels. - [const FRAME_WIDE_MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/constant.FRAME_WIDE_MIN): The width from which a frame on another page leaves its wider margins. - [const MOBILE_MAX](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/constant.MOBILE_MAX): The widest window that stacks the Studio’s panels: an upright iPad mini (744) and iPad (768). - [const PHONE_MAX](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/constant.PHONE_MAX): The widest phone held upright: iPhones are 390 to 430, Android phones 360 to 412. - [const SHORT_MAX](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/constant.SHORT_MAX): The tallest window that is a phone turned on its side. - [const SMALL_PHONE_MAX](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/constant.SMALL_PHONE_MAX): The narrowest phones, where the buttons tighten further. - [const TABLET_MAX](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/breakpoints/constant.TABLET_MAX): The widest window the site’s nav folds into its menu, and the widest upright tablet. ## logicaffeine_web::ui::responsive::media The media queries the Studio’s stylesheets and these shared ones use, by name. A stylesheet cannot read a custom property inside `@media`, so each query is written out in the CSS, and the one-Studio lock holds every `@media` the Studio draws from to one of `media::ALL`. The app’s own `matchMedia` checks use the same strings. - [const ALL](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.ALL) - [const COARSE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.COARSE): A finger, on any screen. - [const DESKTOP](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.DESKTOP): Wider than an upright tablet: the desktop’s columns. - [const FILES_DRAWER](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.FILES_DRAWER): Where the Files tree is a drawer over the workbench, folded until the reader opens it: phones, upright tablets, and a phone on its side. - [const FRAME_WIDE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.FRAME_WIDE): A frame on another page with room for its wider margins. - [const MOBILE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.MOBILE): A phone or an upright tablet: the Studio’s panels stack. - [const NO_HOVER](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.NO_HOVER): A screen nothing hovers over. - [const PANES_FIXED](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.PANES_FIXED): Where the panes show one at a time, or side by side in halves, so a pane’s header folds nothing. - [const PHONE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.PHONE): A phone held upright. - [const PHONE_LANDSCAPE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.PHONE_LANDSCAPE): A phone turned on its side. - [const REDUCED_MOTION](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.REDUCED_MOTION): A reader who asked for less motion. - [const SMALL_LAPTOP](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.SMALL_LAPTOP): A small laptop or a tablet on its side: the menu’s roomier layout. - [const SMALL_PHONE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.SMALL_PHONE): The narrowest phones. - [const TABLET](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.TABLET): Up to an upright tablet’s width: the site’s nav folds into its menu. - [const TABLET_LANDSCAPE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.TABLET_LANDSCAPE): A tablet turned on its side. - [const TABLET_PORTRAIT](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.TABLET_PORTRAIT): An upright tablet the width of a small phone’s landscape: iPad mini and iPad portrait. - [const UPRIGHT_TABLET](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/media/constant.UPRIGHT_TABLET): An upright tablet wider than 768px, an iPad Air or iPad Pro held upright, known by its finger. ## logicaffeine_web::ui::responsive::touch Touch targets, in CSS pixels (WCAG 2.5.5). - [const COMFORTABLE](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/touch/constant.COMFORTABLE): A comfortable press. - [const MIN](https://docs.logicaffeine.com/logicaffeine_web/ui/responsive/touch/constant.MIN): The least a finger can press. ## logicaffeine_web::ui::router Application routing and navigation. - [enum Route](https://docs.logicaffeine.com/logicaffeine_web/ui/router/enum.Route): Application routes. - [fn studio_file_url](https://docs.logicaffeine.com/logicaffeine_web/ui/router/fn.studio_file_url): The canonical shareable URL for a studio file. ## logicaffeine_web::ui::seo SEO utilities and JSON-LD structured data generators. - [mod pages](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/): Page-specific metadata definitions - [struct BreadcrumbItem](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/struct.BreadcrumbItem): Breadcrumb item for schema generation - [struct JsonLdMultipleProps](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/struct.JsonLdMultipleProps): Properties for the `JsonLdMultiple` component. - [struct JsonLdProps](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/struct.JsonLdProps): Properties for the `JsonLd` component. - [struct PageHeadProps](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/struct.PageHeadProps): Properties for the `PageHead` component. - [struct PageMeta](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/struct.PageMeta): Page metadata for SEO - [fn JsonLd](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.JsonLd): Render JSON-LD script tag for a schema - [fn JsonLdMultiple](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.JsonLdMultiple): Render multiple JSON-LD schemas - [fn PageHead](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.PageHead): Per-page head tags: title, description, Open Graph, Twitter Card, canonical. - [fn article_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.article_schema): Generate Article schema for news articles - [fn breadcrumb_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.breadcrumb_schema): Generate BreadcrumbList schema - [fn course_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.course_schema): Generate Course schema (for Learn page) - [fn faq_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.faq_schema): Generate FAQPage schema from (question, answer) pairs. Built as JSON, so a quote in an answer is escaped rather than ending the string. - [fn organization_contact_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.organization_contact_schema): Generate Organization schema that names where to ask for a price: the sales `ContactPoint` reached at `email` and at the page `contact_path`. - [fn organization_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.organization_schema): Generate Organization schema (used on all pages) - [fn roadmap_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.roadmap_schema): Generate ItemList schema for Roadmap page: one `ListItem` per timeline card, in page order, each described by its status and the first sentence of its card, so search engines read the roadmap the page shows. - [fn software_application_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.software_application_schema): Generate SoftwareApplication schema (for Studio page) - [fn tech_article_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.tech_article_schema): Generate TechArticle schema (for Crates documentation) - [fn webpage_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.webpage_schema): Generate WebPage schema for generic pages - [fn website_schema](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/fn.website_schema): Generate WebSite schema with search action ## logicaffeine_web::ui::seo::pages Page-specific metadata definitions - [const BENCHMARKS](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.BENCHMARKS) - [const CONTACT](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.CONTACT) - [const CRATES](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.CRATES) - [const GUIDE](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.GUIDE) - [const LANDING](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.LANDING) - [const LEARN](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.LEARN) - [const NEWS](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.NEWS) - [const PRIVACY](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.PRIVACY) - [const REGISTRY](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.REGISTRY) - [const ROADMAP](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.ROADMAP) - [const STUDIO](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.STUDIO) - [const TERMS](https://docs.logicaffeine.com/logicaffeine_web/ui/seo/pages/constant.TERMS) ## logicaffeine_web::ui::state Global application state types. - [struct AppState](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.AppState): REPL chat state for the Landing page. - [struct ChatMessage](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.ChatMessage): A message in the REPL chat history. - [struct FileNode](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.FileNode): A node in the file tree representing a file or directory. - [struct GitHubUser](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.GitHubUser): GitHub user profile data from OAuth. - [struct MathDocument](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.MathDocument): Math mode file format. - [struct MathFormula](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.MathFormula): A formula entry for Math mode. - [struct PackageDetails](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.PackageDetails): Full package detail for the package page. - [struct PackageVersion](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.PackageVersion): Metadata for a specific package version. - [struct RegistryAuthState](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.RegistryAuthState): Authentication state for the package registry. - [struct RegistryPackage](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.RegistryPackage): Summary information for a package listing. - [struct ReplLine](https://docs.logicaffeine.com/logicaffeine_web/ui/state/struct.ReplLine): A line in the REPL output history. - [enum Role](https://docs.logicaffeine.com/logicaffeine_web/ui/state/enum.Role): Message sender role in the chat interface. - [enum StudioMode](https://docs.logicaffeine.com/logicaffeine_web/ui/state/enum.StudioMode): The active mode in the Studio playground.