Goal
A markdown-aware text editor that floats over other apps, with focus modes for distraction-free writing and built-in writing analysis tools.
Note: This phase can run in parallel with Phases 4-5 since it has no dependencies on them.
Design Reference
Write — Floating Panel
Deliverables
Floating Editor Window
Title Bar (38px, fill #F6F6F6)
Menu Bar (28px, fill #F6F6F6)
File — New, Open, Save, Save As, Export
Edit — Undo, Redo, Cut, Copy, Paste, Select All
Format — Bold, Italic, Underline, Heading levels, Lists, Quote, Code
View — Toggle sidebar, zoom controls
Focus — blue pill toggle (#3478F6). Opens the Focus dropdown
Writing Area
Font : JetBrains Mono 16px, line height 2×
Padding : 40px top/bottom, 72px left/right
Markdown rendering — syntax highlighting for headings, bold, italic, code, links
Block types : paragraphs, headings (H1-H6), bullet lists, numbered lists, blockquotes, code blocks, checkboxes
Format Bar (36px, fill #FAFAFA)
Focus Modes (via Focus dropdown, 220px, corner radius 8)
Show Syntax (submenu in Focus dropdown)
Style Check (submenu: "Disable Style Check" ⌥⇧⌘D)
Footer (30px, fill #F6F6F6)
Document Persistence
Acceptance Criteria
Editor opens as a floating panel with dim overlay
Can type and format markdown text with JetBrains Mono
Format bar toggles bold/italic/underline/headings/lists correctly
Paragraph Focus mode dims all text except the current paragraph
Sentence and Typewriter focus modes work correctly
Show Syntax colors parts of speech in real-time
Style Check highlights filler words
Footer shows accurate word/character count and read time
Documents persist and can be reopened
Dependencies
Phase 0 (SwiftData models, design tokens, NSPanel infrastructure)
Independent of Phases 4-5 (can be built in parallel)
Goal
A markdown-aware text editor that floats over other apps, with focus modes for distraction-free writing and built-in writing analysis tools.
Design Reference
Write — Floating Panel
Deliverables
Floating Editor Window
#00000033):#00000018)Title Bar (38px, fill
#F6F6F6)Menu Bar (28px, fill
#F6F6F6)#3478F6). Opens the Focus dropdownWriting Area
Format Bar (36px, fill
#FAFAFA)Focus Modes (via Focus dropdown, 220px, corner radius 8)
#C8C8C8, active text uses#1A1A1AShow Syntax (submenu in Focus dropdown)
NLTaggerwith.lexicalClass:Style Check (submenu: "Disable Style Check" ⌥⇧⌘D)
Footer (30px, fill
#F6F6F6)Document Persistence
Acceptance Criteria
Dependencies