Skip to content

fix(gui): dialog overlay frame and sticky Sub-agent focus ring#154

Closed
Wibias wants to merge 1 commit into
lidge-jun:mainfrom
Wibias:fix/gui-dialog-overlay-focus
Closed

fix(gui): dialog overlay frame and sticky Sub-agent focus ring#154
Wibias wants to merge 1 commit into
lidge-jun:mainfrom
Wibias:fix/gui-dialog-overlay-focus

Conversation

@Wibias

@Wibias Wibias commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Request Logs detail uses a native <dialog class="modal-overlay">. Browser UA styles still draw a solid border plus a separate ::backdrop, which stacked on our full-screen tint and produced the white rectangular frame / double-dimmed background around the error modal.
  • Closing Dashboard Sub-agent help restored focus to the circular info button with :focus-visible, so the focus ring stacked on the icon’s own circle (sticky double ring until you clicked elsewhere). Restore now uses focus({ focusVisible: false }) so keyboard a11y focus return stays, without the leftover mouse-close ring.

Screenshots

image-0dff0f11-b5e5-43f6-848f-9be340a98647 image-11c86a74-4d37-434b-a5d9-1b70f10fef41

Test plan

  • Open Request Logs → click a failed row → confirm full-screen dim with no white frame / double tint
  • Close the log detail (X / Escape / backdrop) → overlay clears cleanly
  • Dashboard → open Sub-agent info help → close it → info icon should not keep a double focus ring
  • Tab to the Sub-agent info button → keyboard focus ring still appears

Reset dialog.modal-overlay UA border/backdrop that framed log details, and restore opener focus without focus-visible after Sub-agent help closes.
lidge-jun pushed a commit that referenced this pull request Jul 19, 2026
Reset dialog.modal-overlay UA border/backdrop that framed log details, and restore opener focus without focus-visible after Sub-agent help closes.

(cherry picked from commit 5e8f1aa)

Community PR #154 absorb; source head 5e8f1aa.
lidge-jun added a commit that referenced this pull request Jul 19, 2026
Repair for community PR #154 absorb (source head 5e8f1aa), Sol review
findings:

- Track the last input modality window-wide (keydown vs pointerdown, capture
  phase). focusTriggerQuietly now suppresses :focus-visible ONLY for
  pointer-originated closes; Escape/Enter/Space closes restore plain focus so
  keyboard users keep their location indicator.
- The focusVisible option (Chrome 145+/FF 104+/Safari 18.4+) remains a
  progressive enhancement: engines that ignore it keep pre-repair behavior,
  and the origin tracking makes keyboard closes correct everywhere.

Render-grounded: dev GUI driven in Chrome — overlay shows no white UA frame or
double dim; pointer close leaves no ring; Escape close paints the visible
focus ring on the Sub-agent info trigger.

Co-authored-by: Wibias <37517432+Wibias@users.noreply.github.com>
@lidge-jun

Copy link
Copy Markdown
Owner

Thanks — the white UA frame + double-dim diagnosis was exactly right, and it's landed on dev with your authorship preserved plus a maintainer repair:

  • bfdaa3e9 — your PR fix(gui): dialog overlay frame and sticky Sub-agent focus ring #154 commit, absorbed as-is (author: @Wibias, source head 5e8f1aa).
  • 30782a87 — maintainer repair (Co-authored-by: @Wibias) closing the review findings:
    1. focus({ focusVisible: false }) ran for keyboard closes too, so Escape users lost their focus indicator — input modality is now tracked window-wide and only pointer-originated closes suppress the ring;
    2. focusVisible support (Chrome 145+/FF 104+/Safari 18.4+) stays a progressive enhancement, with the origin tracking correct everywhere.

Render-verified in the browser: overlay clean, mouse close leaves no ring, Escape close paints the visible ring. Closing in favor of the dev-landed commits; ships with the next release.

@lidge-jun lidge-jun closed this Jul 19, 2026
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.

2 participants