Skip to content

fix(ui): smooth transitions and align settings layout#1736

Merged
bobleer merged 4 commits into
GCWing:mainfrom
bobleer:bob/fix-ui-motion-and-settings-layout
Jul 24, 2026
Merged

fix(ui): smooth transitions and align settings layout#1736
bobleer merged 4 commits into
GCWing:mainfrom
bobleer:bob/fix-ui-motion-and-settings-layout

Conversation

@bobleer

@bobleer bobleer commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add a shared Web UI motion layer for hover, press, scene, navigation-panel, and modal transitions.
  • Preload lazy scene and settings content, keep outgoing content mounted during exit, and avoid blank-frame flashes during page switches.
  • Standardize settings headers, content gutters, scrollbar reservation, loading frames, and responsive alignment.
  • Add focused coverage for scene state, settings transitions, modal exit presence, and loading/layout contracts.

Type and Areas

Type: UI/UX, regression fix

Areas: Web UI, desktop settings

Motivation / Impact

Previously, interaction feedback and page transitions were inconsistent. Some scene and settings switches appeared to flash or hard-jump because lazy content replaced the current UI before the incoming subtree was ready. Settings pages also shifted horizontally depending on scrollbar presence and contained page-specific spacing overrides.

This change establishes shared motion and layout contracts so current and future surfaces inherit consistent behavior by default. Reduced-motion preferences remain respected.

Verification

  • pnpm run type-check:web — passed
  • pnpm --dir src/web-ui run test:run src/app/components/NavPanel/NavPanelLayout.test.ts src/app/stores/sceneStore.test.ts src/app/scenes/settings/SettingsScene.test.tsx src/component-library/components/Modal/Modal.test.tsx src/infrastructure/config/components/common/ConfigPageLayout.test.tsx src/infrastructure/config/components/ReviewConfig.test.tsx src/infrastructure/config/components/ExternalSourcesConfig.test.tsx — 7 files, 65 tests passed
  • pnpm run build:web — passed, including Monaco asset verification
  • git diff --check — passed
  • Manual browser verification: scene switching, settings-page switching, modal transitions, long/short settings-page alignment, and loading frames

Reviewer Notes

  • Shared motion defaults live in src/web-ui/src/app/styles/motion.scss.
  • Settings geometry is enforced by the common ConfigPageLayout and ConfigPageHeader frames.
  • AI-assisted contribution; fully tested at the Web UI level.

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable. No new user-facing strings were added.

@bobleer
bobleer merged commit 9fadfed into GCWing:main Jul 24, 2026
5 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.

1 participant