Skip to content

feat(loom): extend immersion-mode chrome to ribbon badges, atlas nodes, and quiet modals#568

Merged
CoreyRDean merged 1 commit into
developfrom
feat/loom-immersion-mode-coverage
Jun 10, 2026
Merged

feat(loom): extend immersion-mode chrome to ribbon badges, atlas nodes, and quiet modals#568
CoreyRDean merged 1 commit into
developfrom
feat/loom-immersion-mode-coverage

Conversation

@CoreyRDean

Copy link
Copy Markdown
Collaborator

What

Extends Loom's 3-state immersion / aesthetic-mode chrome (the [mode] chip: Tool / Balanced / In-world) to 7 surfaces that were previously flat regardless of mode — completing the explicitly-named unshipped half of roadmap item #2 ("deeper mode coverage: modal chrome, atlas nodes, ribbon dirty badges").

Pure presentation, read-only-safe, custom-draw only (ADR-001 honored — no F-UI). Reuses the existing Loom_ChromeIsTool/Balanced/InWorld predicates and the established flat / subtle-gradient / dramatic-gradient + brass-ornament pattern from Composer.bb and Browser.bb. No new infrastructure, no globals, no data writes.

Surfaces skinned (base chrome mode-varies; all hover/focused/warning/kind-colored state-highlights preserved):

  • Ribbon dirty badge (Ribbon.bb)
  • Atlas zone-node disks (Atlas.bb) — + an in-world inner brass ring
  • Palette / Timeline / Recents modals
  • SaveAll / ExitPrompt dialog (warning strip + border preserved)
  • Toasts (in-world mirrors the left brass stripe on the right edge; kind-colored borders preserved)

Deliberately not touched (collision-avoidance)

ZoneViewport.bb, the thread-web overlay, Help.bb, and BrokenRefs.bb (the Issues validation modal) are untouched — all areas of recent active churn. BrokenRefs is the one "modal" intentionally skipped; if you want it skinned too it's a ~2-line change identical to the other modals.

Verification

  • Independent verifier (not the implementer): PASS — diff is additive/in-scope (7 files, +95/-8), all sites mirror the established pattern with valid Theme.bb color tokens and in-bounds gradient rects, out-of-scope files confirmed untouched.
  • FULL compile.bat clean (exit 0) — Loom.exe + GUE.exe + Server/Client/Project Manager + all 7 tools built.
  • Presentation-only → no unit test; to eyeball it: run bin\Loom.exe and cycle the [mode] chip through Tool → Balanced → In-world and watch the ribbon dirty badge, Atlas nodes, modals, and toasts re-skin.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

…s, and quiet modals

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@CoreyRDean CoreyRDean requested a review from a team as a code owner June 10, 2026 21:22
@CoreyRDean CoreyRDean merged commit 5e190a9 into develop Jun 10, 2026
1 check passed
@CoreyRDean CoreyRDean deleted the feat/loom-immersion-mode-coverage branch June 10, 2026 22:03
rockinraymond pushed a commit to rockinraymond/rcce2-mythic that referenced this pull request Jun 11, 2026
The Ctrl+H Session Timeline and Ctrl+R Recents modals scrolled by arrow
keys only -- no mouse wheel and no visible scroll-position indicator,
unlike every other Loom scroll region (Composer body, browser card grid,
Help modal all have wheel + a brass thumb). This adds both, mirroring the
established Composer::drawScrollbar geometry and the Loom_MouseWheel /
Loom_ConsumeWheel per-frame-delta convention:

- Mouse-wheel scroll in each modal's pumpKeyboard (wheel-up scrolls toward
  the newest entry; consumes the tick so an earlier-painted surface can't
  double-apply it).
- A thin brass scrollbar thumb in the right margin when the list overflows
  the visible band; thumb height + position reflect rowsVisible/entryCount
  and the current scrollOffset (row-space port of the pixel-space Composer
  scrollbar).
- A shared maxScroll helper used by both the clamp and the thumb so the
  last page sits flush against the footer instead of over-scrolling into
  empty space (tightens the existing arrow-key clamp too).
- Footer hint updated "arrows scroll" -> "scroll / arrows" so the new wheel
  affordance is discoverable.

Purely presentational/affordance; no data-model or editing changes
(read-only-alpha safe), F-UI stays out, reuses existing Theme.bb tokens
(LOOM_STONE_700 track / LOOM_BRASS_500 thumb).

Low-collision rationale: the maintainer's active churn is in the Atlas
world-editing canvas / ZoneViewport / thread-web / Composer; git log shows
Timeline.bb and Recents.bb are otherwise quiet, touched only by the cosmetic
RydeTec#568 immersion-chrome pass (modal-backdrop lines), which this change does
not touch -- it edits drawEntries / pumpKeyboard and adds new helper methods.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant