This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# LevelCode — Chat typography and layout — scope & plan
The goal, in one sentence: make the chat read like a **document** rather than a log — a constrained
measure, real vertical rhythm, and a type scale with actual hierarchy — so a long answer is as
comfortable to read in LevelCode as it is in the Claude Code console.
Reference behavior: the Claude Code console transcript (side-by-side screenshots, 2026-08-15).
`CALM-TRANSCRIPT.md` already took the *structure* from the same reference — voice and grouped
activity. This doc takes the *visual layer*, which that one deliberately left alone.
This became urgent the moment the chat could open as an editor tab (#70). In a 380px sidebar the
line length is bounded by the container, so nothing looks badly wrong. At 900px it is unbounded,
and the same CSS produced **~154-character lines** — measured, at a 900px viewport.
---
## 1. Verified facts about our own code (read 2026-08-15, not recalled)
All from `extensions/levelcode-ai/media/chat.html`:
| | current | note |
| --- | --- | --- |
| Prose column width | **unconstrained** | 12 `max-width` rules exist; every one is a card, dialog or the empty state. **None applies to the message column.** |
| `body` | `font-family: var(--vscode-font-family)`<br>`font-size: var(--vscode-font-size)` | the workbench **UI** font — sized for chrome, not for reading |
| `.msg` | `line-height: 1.5` | |
| Paragraph | `margin: 0 0 8px` | |
| Headings | `1.3em / 1.18em / 1.07em`, `margin: 12px 0 6px` | h2→h3 differ by **0.11em**; at 13px that is 1.4px |
| `.msg .role` | `11px`, `opacity .55`, uppercase, `letter-spacing .05em` | a label above every turn |
| Inline code | `background: var(--vscode-textCodeBlock-background…)`, `padding: 1px 5px`, `.92em` | **no `color` is set** — the red/orange in dark themes comes from the theme or webview defaults, not from us |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'headings need more space above than below, or they float between sections');
});
test('SESSION CARD: every action button keeps a label for pointers and screen readers', () => {
// The collapse above hides `.sesslbl` VISUALLY. If the buttons had no title/aria-label, an
// icon-only row in a narrow pane would be unusable rather than merely compact.
Expand Down
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
feat(chat): bound the reading measure — T1 of the typography plan #71
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
feat(chat): bound the reading measure — T1 of the typography plan #71
Filter by extension
Viewed files
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing