feat(loom): extend immersion-mode chrome to ribbon badges, atlas nodes, and quiet modals#568
Merged
Merged
Conversation
…s, and quiet modals Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 tasks
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>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
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/InWorldpredicates and the established flat / subtle-gradient / dramatic-gradient + brass-ornament pattern fromComposer.bbandBrowser.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.bb)Atlas.bb) — + an in-world inner brass ringDeliberately not touched (collision-avoidance)
ZoneViewport.bb, the thread-web overlay,Help.bb, andBrokenRefs.bb(the Issues validation modal) are untouched — all areas of recent active churn.BrokenRefsis the one "modal" intentionally skipped; if you want it skinned too it's a ~2-line change identical to the other modals.Verification
Theme.bbcolor tokens and in-bounds gradient rects, out-of-scope files confirmed untouched.compile.batclean (exit 0) —Loom.exe+GUE.exe+ Server/Client/Project Manager + all 7 tools built.bin\Loom.exeand 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