Skip to content

fix(ui): enforce 44px hit areas on icon-only controls, fix AA targets - #189

Merged
lidge-jun merged 4 commits into
devfrom
codex/ui-polish-wp6-touch-targets
Aug 31, 2026
Merged

fix(ui): enforce 44px hit areas on icon-only controls, fix AA targets#189
lidge-jun merged 4 commits into
devfrom
codex/ui-polish-wp6-touch-targets

Conversation

@lidge-jun

Copy link
Copy Markdown
Owner

Summary

18 icon-only controls now have 44px effective hit areas. 2 text controls
raised to 24px AA minimum.

C-table: 18 icon-only controls (44px)

  • 14 selectors: ::after pseudo-element overlay
  • 3 selectors: actual size increase (asset-element-toggle 36->44,
    agent-result-thumb-compact 30->44, color input 22->44)
  • 1 selector: wrapper approach (element-mention-chip min-height 44px,
    remove button width 44px due to overflow:hidden clipping)

D-table: 2 text controls (24px AA)

  • card-news-placement-chip/render-mode: 22->24px
  • gallery-card-news-actions: 22->24px

E-table: 1 exemption

  • agent-session-row actions: 28x24, AA pass, 44px exempted due to
    single-column grid density conflict

Tests

  • 20-assertion contract test
  • Full suite: 2732 pass / 0 fail / 2 skipped

…rgets

C-table (18 icon-only controls → 44px hit area):
- 13 selectors: ::after pseudo-element with absolute 44px overlay
- asset-element-toggle: actual size 36→44
- agent-result-thumb--compact: actual size 30→44
- canvas-toolbar__bg input[type=color]: actual size 22→44
- element-mention-chip: min-height 44px + remove button width 44px
  (overflow:hidden prevents ::after approach)
- right-panel-toggle: ::after overlay

D-table (2 text controls → 24px AA):
- card-news-placement-chip/render-mode: min-height 22→24px
- gallery-card-news-actions: min-height 22→24px

E-table exemption: agent-session-row actions (28x24) documented as
24px AA pass with 44px exempted due to density conflict.

17 files changed, no behavior changes.
20 assertions: 14 ::after hit areas verified, 3 actual-size targets,
element-mention-chip min-height+width, card-news 24px AA, session
action 24px minimum.
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b5420ac3-166a-482a-878b-ab50734f9272

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-31T10:36:53.948250Z 2d47df3 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2d47df3d3f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


/* wp6: 44px hit area */
.composer__prompt-chip-remove { position: relative; }
.composer__prompt-chip-remove::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Prevent the remove hitbox from covering the reorder control

In each prompt chip, the 22px reorder and remove buttons are separated by only 2px, but this pseudo-element extends 11px beyond the remove button on both sides. Because the remove button is the later sibling, its pseudo-element is painted over roughly 9px of the preceding down-arrow button, so a touch on the visible reorder control can call removeInsertedPrompt and delete the prompt instead. Increase/space the real controls or otherwise ensure their expanded hit regions do not overlap.

Useful? React with 👍 / 👎.

}

/* wp6: 44px hit area */
.right-panel-toggle { position: relative; }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep the right-panel toggle out of flex layout

On desktop, this later rule overrides the toggle's original position: absolute declaration. The toggle consequently becomes the first in-flow flex child of .right-panel, reserving 40px above .right-panel-body and reducing the body's available height even though top: 50% visually offsets the button toward the middle. Preserve absolute positioning while establishing the pseudo-element's containing block.

Useful? React with 👍 / 👎.


/* wp6: 44px hit area */
.canvas-style-swatch { position: relative; }
.canvas-style-swatch::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Avoid overlapping the canvas color targets

The color swatches are 22px wide with a 6px gap, while every new pseudo-element is 44px wide, so adjacent hit regions overlap by 16px. Later swatches paint over part of earlier ones; tapping near the right edge of a visible swatch can therefore select the next color instead. The swatches need sufficient spacing, real target dimensions, or non-overlapping expansion.

Useful? React with 👍 / 👎.

@lidge-jun
lidge-jun merged commit 09343d7 into dev Aug 31, 2026
3 of 4 checks passed
@lidge-jun
lidge-jun deleted the codex/ui-polish-wp6-touch-targets branch August 31, 2026 10:40
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