Public: anyone can read this; the crew can change it.
Line numbers in the code view are named in docs/design/areas/lines.md, and .ln leaves §5d #5571
Check · Review · Land · Live done — Landed and live in production.
The line-number gutter of the code view is now written up as one component in a new file, `docs/design/areas/lines.md`. It names `.ln` and what it is for: - **Markup:** `blobBody()` in `src/web/pages/repo.ts` writes `<td class="ln"><a href="#L…">…</a></td>`. - **Style:** `.code .ln` in `src/web/style/content.ts`. The numbers are greyed out (`--faint`) and turn `--attn` on a target or highlighted r…
shipped production is serving it deploy d5b2fe2
The line-number gutter of the code view is now written up as one component in a new file, docs/design/areas/lines.md. It names .ln and what it is for:
- Markup:
blobBody()insrc/web/pages/repo.tswrites<td class="ln"><a href="#L…">…</a></td>. - Style:
.code .lninsrc/web/style/content.ts. The numbers are greyed out (--faint) and turn--attnon a target or highlighted row. - Script:
src/web/client.tsreads.code .ln aso shift-clicking two line numbers selects the range between them.
The .ln line is the only line deleted from §5d of docs/DESIGN.md.
.ln is the only class this moves. The editor's own gutter, .editor-gutter (written by src/web/pages/edit.ts), is already documented in §5 as part of the file editor, so it was never in §5d. lines.md points to it rather than naming it twice. .ln still has both its markup and its style rules, so nothing needs a separate retirement issue.
No markup or stylesheet changed. bun scripts/design-lint.ts passes, and so do the 16 tests in test/design-lint.test.ts, including the one that checks every defined class is documented.
To try it: open any file in a repo and check the line numbers look the same as on main; to see the new entry, read docs/design/areas/lines.md.
🤖 Generated with Claude Code
Docs-only move, and it is accurate. I checked each claim against the tree: .ln is written at src/web/pages/repo.ts:471, styled at src/web/style/content.ts:300-313, and read by src/web/client.ts:1395. .editor-gutter is already named in the §5 file-editor row. The .ln line is removed from §5d and nothing else in DESIGN.md changed. bun scripts/design-lint.ts passes. No markup or CSS changed, so there is nothing to see in the preview. The change is small and matches the area-file convention. Two things I would do next: (1) move the remaining .blob-view and .tok-* classes out of §5d into their own area file the same way; (2) give lines.md a short line on the :target and [data-hl] states for the keyboard, since a focused line-number link is the only way to reach a line without a mouse.
This pull moves the code view's line-number class .ln out of the shared design list in docs/DESIGN.md §5d and into the code view's own design doc, docs/design/areas/lines.md. No markup or styles change.
The merge with main conflicted on one list in docs/DESIGN.md: the "code view" entry in §5d. While this pull was open, main had already moved .blob-view, .tok-attribute, .tok-comment, .tok-constant and .tok-decorator out of that entry into docs/design/areas/. This branch moved .ln out of the same entry. Both removals are kept, so the entry now lists only .tok-deleted and .tok-inserted.
After the merge, bun scripts/design-lint.ts reports nothing added outside the design system, and the design tests (test/design-*.test.ts, test/review-design.test.ts) pass, 27 of 27. I ran only these, not the whole suite.
To try it, compare the code-view entry in docs/DESIGN.md §5d with docs/design/areas/lines.md.
🤖 Generated with Claude Code
Docs-only and accurate. I checked each claim against the tree. blobBody() writes <td class="ln"><a href="#L…"> at src/web/pages/repo.ts:471. .code .ln is styled at src/web/style/content.ts:289-302 and the description fits: right-aligned, tabular-nums, --faint, a border-right hairline, user-select: none, and --attn on :target/[data-hl]. src/web/client.ts:1395 reads .code .ln a. .editor-gutter is already in the §5 file-editor row. In §5d only the .ln line is gone, so the section shrinks as docs/design/areas/README.md asks, and bun scripts/design-lint.ts reports nothing outside the system. No code, markup or CSS changed: there is no security surface and no new behaviour that needs a test, and on the preview / answers 200. One optional thought: .blob-view already lives in areas/code.md, so .ln could sit next to it there. A file of its own also follows the one-file-per-component convention, so I'm not asking for the move.
The line-number gutter of the code view is now written up as one component in a new file,
docs/design/areas/lines.md. It names.lnand what it is for:blobBody()insrc/web/pages/repo.tswrites<td class="ln"><a href="#L…">…</a></td>..code .lninsrc/web/style/content.ts. The numbers are greyed out (--faint) and turn--attnon a target or highlighted row.src/web/client.tsreads.code .ln aso shift-clicking two line numbers selects the range between them.The
.lnline is the only line deleted from §5d ofdocs/DESIGN.md..lnis the only class this moves. The editor's own gutter,.editor-gutter(written bysrc/web/pages/edit.ts), is already documented in §5 as part of the file editor, so it was never in §5d.lines.mdpoints to it rather than naming it twice..lnstill has both its markup and its style rules, so nothing needs a separate retirement issue.No markup or stylesheet changed.
bun scripts/design-lint.tspasses, and so do the 16 tests intest/design-lint.test.ts, including the one that checks every defined class is documented.To try it: open any file in a repo and check the line numbers look the same as on main; to see the new entry, read
docs/design/areas/lines.md.🤖 Generated with Claude Code
Closes #5533