The sheet pages are brought into line with the rest of the app: tabs, a two-row header with More, larger targets (#1121) #1127

Merged
claude-bot merged 10 commits from fix/1121-sheet-consistency into main 2026-10-12 00:51:48 +00:00
Collaborator

The owner's Q168 answer on lane 11 (#1121): go over the sheet pages against the rest of the app. The audit is a comment on #1121; this builds its six clear fixes and the three the owner decided (Q170 to Q172; D293, D294, D295).

Contains PR #1125's commits (it was built on that branch, which touches the same files). Until #1125 merges the diff here shows both; review the commits from 99f51be5 on.

Owner decisions

  • D293 (Q170): a sheet's pages (Statistics, Abilities & inventory, Notes & actions) are underlined tabs, the same markup as a wiki article's Read · Talk · History, not the wizard's step pills. Same ?page= address. Start a character and Level up keep their pills.
  • D294 (Q171): the sheet stays dense; group titles take the app's in-card heading size (--step-1).
  • D295 (Q172): the read-only banner on someone else's sheet is gone.

Consistency fixes

  1. .rem moves to ui/base.css: it was styled only inside .charsheet but used on the wiki article's block line, table cards and Resource, where it rendered at body size.
  2. One primary button: Edit is the default variant while "Level n is waiting" offers Level up as primary.
  3. The header is two rows, as drawn: title and level chip, then a bar with the save state on the left and Level up, Edit, Rest… and More on the right. More holds Open the page, Versions, Export as Quest Board JSON, Print the sheet and Make a block…, each with its old conditions.
  4. Grid widths in rem and var(--touch), so cards grow with the type on wide screens (D110).
  5. One @media (pointer: coarse) block takes the condition − / +, "+ Condition", "expended", rank pips and the temp field to --touch.
  6. Kit pieces in place of copies: .tbl for the sheet's tables, .card for the creation summary, the kit Button for Dismiss, @container app in Block.css, type-scale tokens for three off-scale sizes.

Differences from the plan

  • The kit's Menu has no submenu, so "Export…" is no longer a label: its two choices are items in More ("Export as Quest Board JSON", "Print the sheet").
  • "Open the page" is a menu item that navigates, so it no longer opens in a new tab.
  • The hand-written screen-reader-only rules stay: they hide an element only at some widths, which .sr-only cannot do without markup changes.
  • In the compact table card two em sizes became --step--1, slightly larger than before.

Checks

  • eslint: 0 errors. Full vitest run before the docs commit: 3,945 passed; after merging main and #1125's branch, src/pages/sheet src/pages/table src/pages/wiki src/ui: 1,078 passed.
  • scripts/changelog.py check: OK.
  • No journey was edited: none clicks the moved actions or the page tabs. CI's journeys are the check on that claim.
  • Nothing here has been looked at in a browser. To render before rc11: the header (player, GM, reader; level waiting; More open) at 390 and 1280; the tabs at 390; group titles in the narrowest card; a touch pass over conditions, spells and ranks; a stat block's trait tags; a table card; Print; focus returning to More after a dialog closes.

🤖 Generated with Claude Code

The owner's Q168 answer on lane 11 (#1121): go over the sheet pages against the rest of the app. The audit is a comment on #1121; this builds its six clear fixes and the three the owner decided (Q170 to Q172; D293, D294, D295). **Contains PR #1125's commits** (it was built on that branch, which touches the same files). Until #1125 merges the diff here shows both; review the commits from 99f51be5 on. ## Owner decisions - **D293 (Q170):** a sheet's pages (Statistics, Abilities & inventory, Notes & actions) are underlined tabs, the same markup as a wiki article's Read · Talk · History, not the wizard's step pills. Same `?page=` address. Start a character and Level up keep their pills. - **D294 (Q171):** the sheet stays dense; group titles take the app's in-card heading size (`--step-1`). - **D295 (Q172):** the read-only banner on someone else's sheet is gone. ## Consistency fixes 1. `.rem` moves to `ui/base.css`: it was styled only inside `.charsheet` but used on the wiki article's block line, table cards and `Resource`, where it rendered at body size. 2. One primary button: Edit is the default variant while "Level n is waiting" offers Level up as primary. 3. The header is two rows, as drawn: title and level chip, then a bar with the save state on the left and Level up, Edit, Rest… and **More** on the right. More holds Open the page, Versions, Export as Quest Board JSON, Print the sheet and Make a block…, each with its old conditions. 4. Grid widths in rem and `var(--touch)`, so cards grow with the type on wide screens (D110). 5. One `@media (pointer: coarse)` block takes the condition − / +, "+ Condition", "expended", rank pips and the temp field to `--touch`. 6. Kit pieces in place of copies: `.tbl` for the sheet's tables, `.card` for the creation summary, the kit Button for Dismiss, `@container app` in `Block.css`, type-scale tokens for three off-scale sizes. ## Differences from the plan - The kit's Menu has no submenu, so "Export…" is no longer a label: its two choices are items in More ("Export as Quest Board JSON", "Print the sheet"). - "Open the page" is a menu item that navigates, so it no longer opens in a new tab. - The hand-written screen-reader-only rules stay: they hide an element only at some widths, which `.sr-only` cannot do without markup changes. - In the compact table card two em sizes became `--step--1`, slightly larger than before. ## Checks - eslint: 0 errors. Full `vitest run` before the docs commit: 3,945 passed; after merging main and #1125's branch, `src/pages/sheet src/pages/table src/pages/wiki src/ui`: 1,078 passed. - `scripts/changelog.py check`: OK. - No journey was edited: none clicks the moved actions or the page tabs. CI's journeys are the check on that claim. - **Nothing here has been looked at in a browser.** To render before rc11: the header (player, GM, reader; level waiting; More open) at 390 and 1280; the tabs at 390; group titles in the narrowest card; a touch pass over conditions, spells and ranks; a stat block's trait tags; a table card; Print; focus returning to More after a dialog closes. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The dnd5e definitions baked the number into each derivation label, and the
page prints the value beside the label, so Chain mail 16 read "16 16". Labels
are now bare names as in pf2e, and a formula's working (hit points, the
proficiency bonus, carrying capacity) is a note. Fixtures re-pinned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
feat(sheets): pick conditions from the game's list; -5/-1/+1/+5 and Full HP (D292, #1121)
All checks were successful
CI / Does this change touch the recording path? (pull_request) Successful in 24s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 53s
CI / Docker image build (pull_request) Successful in 55s
CI / Backend lint (ruff) (pull_request) Successful in 59s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m6s
CI / Feedback site tests (pull_request) Successful in 1m29s
CI / Bot tests and audit (pull_request) Successful in 3m23s
CI / Frontend (shard 2/2) (pull_request) Successful in 9m24s
CI / Frontend (shard 1/2) (pull_request) Successful in 10m56s
CI / End-to-end journeys (phone) (pull_request) Successful in 19m40s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 21m16s
CI / End-to-end journeys (desktop) (pull_request) Successful in 21m36s
CI / Backend migration, tests, and audit (pull_request) Successful in 34m48s
86ac95c174
Add a condition shows the definition's conditions table as a Picker, with the
typed name kept for one not on it. Hit points move by -5, -1, +1, +5 (one
shared stepsFor), and Resource takes an optional Full HP that sets hp to max
on the sheet page and the table card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge main into fix/1121-sheet-5e-terms-and-card-hp
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 31s
CI / Bot/backend version sync (pull_request) Successful in 35s
CI / Docker image build (pull_request) Successful in 36s
CI / Does this change touch the recording path? (pull_request) Successful in 25s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m11s
CI / Feedback site tests (pull_request) Successful in 1m2s
CI / Bot tests and audit (pull_request) Successful in 2m18s
CI / Frontend (shard 2/2) (pull_request) Successful in 9m23s
CI / Frontend (shard 1/2) (pull_request) Successful in 13m18s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 14m22s
CI / End-to-end journeys (desktop) (pull_request) Successful in 14m40s
CI / End-to-end journeys (phone) (pull_request) Successful in 15m5s
CI / Backend migration, tests, and audit (pull_request) Successful in 38m6s
dc014c8ac7
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	docs/design/redesign-surfaces/CATALOGUE.md
#	docs/design/redesign-surfaces/sources/intro.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge main and the 5e branch into fix/1121-sheet-consistency
Some checks failed
CI / Does this change touch the recording path? (pull_request) Successful in 21s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Docker image build (pull_request) Successful in 30s
CI / Bot/backend version sync (pull_request) Successful in 31s
CI / Backend lint (ruff) (pull_request) Successful in 39s
CI / Feedback site tests (pull_request) Successful in 54s
CI / Bot tests and audit (pull_request) Successful in 2m4s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 2m40s
CI / Frontend (shard 1/2) (pull_request) Successful in 12m34s
CI / End-to-end journeys (phone) (pull_request) Successful in 13m25s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 14m15s
CI / End-to-end journeys (desktop) (pull_request) Successful in 14m22s
CI / Frontend (shard 2/2) (pull_request) Successful in 18m16s
CI / Backend migration, tests, and audit (pull_request) Has been cancelled
f192236d17
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(sheet): compact condition picker with a sticky foot; changelog (#1121)
All checks were successful
CI / Does this change touch the recording path? (pull_request) Successful in 16s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 25s
CI / Backend lint (ruff) (pull_request) Successful in 31s
CI / Docker image build (pull_request) Successful in 33s
CI / Feedback site tests (pull_request) Successful in 45s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m14s
CI / Bot tests and audit (pull_request) Successful in 2m19s
CI / Frontend (shard 2/2) (pull_request) Successful in 9m21s
CI / Frontend (shard 1/2) (pull_request) Successful in 11m4s
CI / End-to-end journeys (phone) (pull_request) Successful in 11m55s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 12m47s
CI / End-to-end journeys (desktop) (pull_request) Successful in 12m58s
CI / Backend migration, tests, and audit (pull_request) Successful in 34m30s
96ee8a15b3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge main into fix/1121-sheet-consistency
All checks were successful
CI / Does this change touch the recording path? (pull_request) Successful in 15s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 31s
CI / Backend lint (ruff) (pull_request) Successful in 40s
CI / Feedback site tests (pull_request) Successful in 58s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 1m14s
CI / Docker image build (pull_request) Successful in 1m21s
CI / Bot tests and audit (pull_request) Successful in 2m40s
CI / Frontend (shard 2/2) (pull_request) Successful in 12m15s
CI / End-to-end journeys (phone) (pull_request) Successful in 12m26s
CI / Frontend (shard 1/2) (pull_request) Successful in 14m45s
CI / End-to-end journeys (keyboard) (pull_request) Successful in 13m39s
CI / End-to-end journeys (desktop) (pull_request) Successful in 13m41s
CI / Backend migration, tests, and audit (pull_request) Successful in 52m43s
405558e42a
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No description provided.