Skip to content

feat(app): RTL layout interactions - #40410

Merged
Hona merged 1 commit into
anomalyco:devfrom
Hona:rtl-layout-fixes
Aug 4, 2026
Merged

feat(app): RTL layout interactions#40410
Hona merged 1 commit into
anomalyco:devfrom
Hona:rtl-layout-fixes

Conversation

@Hona

@Hona Hona commented Aug 4, 2026

Copy link
Copy Markdown
Member

Summary

  • mirror titlebar controls, diff navigation, file trees, tabs, menus, switches, inputs, and scrollbars with logical RTL geometry
  • correct RTL resize hit zones and drag direction for review/file panels
  • preserve bidi-safe filename text while mirroring tree hierarchy and indentation
  • keep titlebar portal mounts synchronized across debug direction changes

Verification

  • live Electron CDP checks for tab-mask overlap, resize boundaries, divider placement, titlebar close placement, diff icon transforms, and file-tree alignment
  • bun typecheck (packages/app)
  • bun typecheck (packages/ui)
  • bun typecheck (packages/session-ui)
  • bun test (packages/ui): 27 passed
  • repository pre-push typecheck: 30 packages passed
  • Prettier and git diff checks

Copilot AI lite review requested due to automatic review settings August 4, 2026 11:05
@Hona
Hona requested a review from Brendonovich as a code owner August 4, 2026 11:05
@Hona
Hona enabled auto-merge (squash) August 4, 2026 11:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes RTL (right-to-left) interaction and layout issues across the app and shared UI packages by replacing left/right physical geometry with logical inline properties, adding RTL-aware transforms, and adjusting keyboard/navigation behavior to match RTL expectations.

Changes:

  • Replace physical CSS properties (left/right/padding-left, etc.) with logical equivalents (inline-start/inline-end, padding-inline, text-align: start) across key UI components.
  • Add RTL-specific transforms/overrides for directional UI elements (switch thumbs, chevrons, tab fades) and correct drag/resize behavior in RTL.
  • Improve bidi safety for filenames in mirrored hierarchies (notably in the v2 file tree) and keep titlebar portal mounting stable across direction changes.

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/ui/src/v2/components/text-input-v2.css Uses logical padding/margins for RTL-correct text input geometry.
packages/ui/src/v2/components/switch-v2.css Adds RTL thumb translation overrides for checked/hover states.
packages/ui/src/v2/components/select-v2.css Converts paddings/text alignment to logical properties; ensures selected indicator visibility.
packages/ui/src/v2/components/file-tree-v2.css Switches to logical alignment and adds RTL chevron rotation behavior.
packages/ui/src/components/text-field.css Replaces right padding with logical inline-end padding for RTL.
packages/ui/src/components/tabs.tsx Sets a default dir on tab triggers to improve bidi behavior.
packages/ui/src/components/tabs.css Migrates multiple rules to logical properties and adds RTL gradient variants.
packages/ui/src/components/switch.css Adds RTL thumb translation override for checked state.
packages/ui/src/components/select.css Converts trigger paddings/margins to logical properties for RTL.
packages/ui/src/components/scroll-view.css Uses logical positioning for scrollbar thumb alignment.
packages/ui/src/components/resize-handle.tsx Adjusts horizontal drag delta math to respect RTL directionality.
packages/ui/src/components/resize-handle.css Uses logical positioning and adds RTL-specific transforms for handle placement/hit zones.
packages/ui/src/components/icon.tsx Expands “directional icon” detection to include arrow icons for RTL mirroring behavior.
packages/ui/src/components/dropdown-menu.css Converts padding/right positioning to logical inline-end properties.
packages/session-ui/src/v2/components/session-review-v2.tsx Makes diff navigation arrow-key behavior RTL-aware and updates displayed key hints.
packages/session-ui/src/v2/components/session-review-v2.css Converts sidebar/tooling layout to logical properties and adds RTL fade variants.
packages/app/src/components/titlebar.tsx Keeps titlebar portal mount synced across direction changes; adjusts Windows titlebar alignment behavior.
packages/app/src/components/titlebar-tab-nav.css Converts close button/divider geometry to logical properties; adds RTL overflow mask variant.
packages/app/src/components/settings-v2/settings-v2.css Switches various paddings/text alignment/positioning to logical properties for RTL.
packages/app/src/components/file-tree.tsx Uses logical indentation and text alignment for RTL mirroring.
packages/app/src/components/file-tree-v2.tsx Uses logical indentation/guide positioning, removes forced LTR, and wraps filenames in <bdi dir="auto"> for bidi safety.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Hona Hona changed the title fix(app): correct RTL layout interactions feat(app): RTL layout interactions Aug 4, 2026
@Hona
Hona merged commit de1bd36 into anomalyco:dev Aug 4, 2026
16 of 17 checks passed
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