Design: Ink and lapis palette (paper light, warm dark) and docs/10-design.md (#95) #141
No reviewers
Labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
schaefera/utStudyBIble!141
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/lectern-palette"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Part 1 of 5 of #95. It applies the Ink and lapis design language:
It adds
docs/10-design.md. Refs #95.Blast radius
Tier: trunk
Trunk paths touched: core/src/render.rs, core/src/worker.rs (tests), core/src/bible/reader.rs (tests), qml/pages/ReadingPane.qml, qml/Main.qml, Makefile.toml
Testing tier: standard (UI colours and render output)
Gate / rollback: revert this merge. There is no schema or data change.
Proof
cargo makeexits 0, and so doescargo make app-docker. mem-check peak PSS is 169675 kB (slow: 165101 kB; the budget is 176000 kB).8fa2d52is green on all six jobs: changes, rust, audit, app, e2e and click.--dark, shots only): red-letters, verse-sheet, module-manager, note-sheet.8fa2d5289:utsb: dark false, window #faf8f3, text #22201c.Mockup
Checked against artboard C "Ink and lapis" (https://claude.ai/artifact/MwvxmpLR96sZkwbiCwAhp6), colours only. Deviations:
Resources (docs/07)
Colours only, plus one small SystemColours instance per page. PSS is within budget (see Proof).
Review
Reviewer: fresh-context
code-reviewat high, then a mockup check. 5 findings: 2 fixed (sheet on paper with a hairline; this body's Mockup section), 2 deferred to #142, 1 refuted (the dark verse-sheet shot shows the same sheet open), 0 left open.Review-Confidence: 80/100. The audit deducted 15 because the forced
--darkshots skip the live system-theme switch. The owner's phone try-out covers it.Confidence by part
🤖 Generated with Claude Code
Fresh-context review (claude-review)
Level: high. Blast radius: trunk (qml/Main.qml, qml/pages/ReadingPane.qml, core/src/render.rs, core/src/worker.rs tests, Makefile.toml). Testing tier: standard.
Reviewed commit:
be63696c2eRange: origin/main...HEAD (3 commits)
Files reviewed: Makefile.toml, core/src/bible/reader.rs, core/src/render.rs, core/src/worker.rs, docs/07-platform-constraints.md, docs/10-design.md, qml/Main.qml, qml/controls/BottomSheet.qml, qml/pages/ModulesPage.qml, qml/pages/PickerPage.qml, qml/pages/ReadingPane.qml, qml/pages/SettingsPage.qml, qml/pages/StarterPage.qml, qml/platform/SystemColours.qml, qml/platform/ut/SystemColours.qml (context), tools/e2e/lib.sh and cases/display-settings.sh (context), tools/mem-check/run.sh (context).
Findings: none with a concrete failure scenario.
Checked and found sound:
darkis computed fromsystemWindow(the Suru or palette window), whilewindowColouris now an alias ofground. There is no binding loop, and the live light/dark switch still drivesReadingPane.darkandreading.setDark.--darkflag is only read fromQt.application.arguments.E2E_APP_ARGSreaches the container through-e. lib.sh defaults it to--e2ewhen unset, and mem-check sets it empty, so the production path never sees--dark.backgroundand theSystemColoursinstances are valid. ids are local per file, with no duplicates. The extra Loader per page is small, but docs/07 asks a PR that adds start-up work to say so. Worth one line in the PR body.Note (not a defect): footer, menu and dialog chrome still take the style's colours, so in dark they differ slightly from
grounduntil the follow-up PRs. This is the stated scope.Mockup check
Compared: artboard C "Ink and lapis" (target/mockup/Lapis.dc.html, screens 1-10) against shots of
be63696(light and dark,cargo make shots: note-sheet, red-letters, module-manager; dark withE2E_APP_ARGS="--e2e --dark"). Scope per the task: colours of grounds, surfaces, hairlines, text, verse numbers, note markers, red letters, highlight.Matches (pixel-sampled or by constant): ground paper #FAF8F3 / dark #17161A on reading, settings, modules; verse numbers and note markers lapis #1E4FA8 / #8FB0F0 (verse numbers on the artboard are non-bold 11px, here bold, a font matter for a later PR); red letters #A3231A / #F0938A; every palette value in SystemColours.qml equals the artboard's hex. The Settings and Modules pages have the right grounds in dark.
Differences with no reason given (the PR body has no "Mockup" section yet, docs/09 requires one):
colours.surface) over the grey scrim. Either usecolours.groundthere, or list white sheets as a deliberate deviation (docs/10 says sheets are surface, but screen 2 shows paper).highlight) and qml/pages/ReadingPane.qml: artboard screens 6-8 draw the opened verse on #F1ECE0 / #EEF2FA / #23222A with a 6px radius. The role is defined but nothing uses it; no shot shows a highlight. Draw it, or state that it comes in a later PR.hairline,secondaryandsurfacefor the footer bar are defined and unused: lists, separators, the dialog (artboard #211F1C on #34312C border; the shot shows the style's dialog colour, about #201F22 with no hairline) and the footer still come from the Controls style. Fine if the PR body says these roles wait for the layout PRs.Not deviations here (later PRs): layout, serif fonts, footer pill, chapter heading, Menu tiles, White theme.
Author reply to review 367 (head now
8fa2d52):groundwith a hairline under the header; docs/10 table updated; verse-sheet shot checked in dark.On the phone: build
feat/lectern-palette@8fa2d5289is installed. The journal confirms it:utsb: build 0.0.1 feat/lectern-palette@8fa2d5289, restored BSB at Ps 1.Checked by me with ute2e (shots and pixel samples):
#FAF8F3. The journal showsutsb: dark false, window #faf8f3, text #22201c.The footer bar and the list rows are still Suru white. That is expected; they change in the layout PRs.
For the owner (needs a system setting):
#17161A) with light text, lapis-blue numbers and salmon-red words of Christ. Open a verse sheet: it should be dark too.🤖 Generated with Claude Code
Phone check signed off. The owner did the checks in comment 2740 (live switch to dark and back, how the paper tone feels) and answered: "Looks good".
🤖 Generated with Claude Code
Gate approval on
8fa2d52.8fa2d52(sheet on colours.ground, 1px hairline under the header). The diff touches only BottomSheet.qml, SystemColours.qml and docs/10-design.md.8fa2d52, and it is read.WIP: Design: Ink and lapis palette (paper light, warm dark) and docs/10-design.md (#95)to Design: Ink and lapis palette (paper light, warm dark) and docs/10-design.md (#95)