Skip to content

fix(settings): Portal SettingsPageHeader action to TopBar in page frame layout#112771

Merged
priscilawebdev merged 5 commits intomasterfrom
priscila/fix/settings-page-header-button-clipped
Apr 13, 2026
Merged

fix(settings): Portal SettingsPageHeader action to TopBar in page frame layout#112771
priscilawebdev merged 5 commits intomasterfrom
priscila/fix/settings-page-header-button-clipped

Conversation

@priscilawebdev
Copy link
Copy Markdown
Member

@priscilawebdev priscilawebdev commented Apr 13, 2026

Before

image

After

image

The SettingsPageHeader uses a negative margin trick (-32px) designed
for the non-page-frame layout where the container has 32px top padding.
In the page frame layout, the container only has 8px top padding,
causing the action button to extend above the scroll container origin
and become inaccessible.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 13, 2026
Only reset the wrapper's negative margin in the page-frame case.
The Title and Action inner margins provide correct internal layout
and spacing below the header.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
priscilawebdev and others added 2 commits April 13, 2026 09:01
Move the action button (e.g. "Create Project") into the TopBar
actions slot when the page-frame feature is active, matching the
pattern used by dashboards and other pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The action button is now portaled to the TopBar, so the negative
margin clipping workaround is no longer needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@priscilawebdev priscilawebdev changed the title fix(settings): Prevent action button clipping in page frame layout fix(settings): Portal SettingsPageHeader action to TopBar in page frame layout Apr 13, 2026
@priscilawebdev priscilawebdev marked this pull request as ready for review April 13, 2026 07:11
@priscilawebdev priscilawebdev requested a review from a team as a code owner April 13, 2026 07:11
</Title>
)}
</TitleWrapper>
{!hasPageFrame && action && <Action isNarrow={isNarrow}>{action}</Action>}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

When conditions are mutually exclusive, it is usually preferable to group them into a single branch so that we don't need to keep their representations up to date across two instances

A ternary expression would make that relationship more explicit and easier to maintain going forward as we don't need to maintain the inverse condition separately

hasPageFrame ? <TopBar.Slot>{action}</TopBar.Slot> : <Action>{action}</Action>

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Use a single conditional to choose between the page-frame slot and the inline action wrapper.

Keep the mutually exclusive action rendering in one branch so future updates only need to change one representation.

Co-Authored-By: OpenAI Codex <codex@openai.com>
@priscilawebdev priscilawebdev merged commit daa2787 into master Apr 13, 2026
65 checks passed
@priscilawebdev priscilawebdev deleted the priscila/fix/settings-page-header-button-clipped branch April 13, 2026 14:36
wedamija pushed a commit that referenced this pull request Apr 13, 2026
…me layout (#112771)

**Before**

<img width="1506" height="201" alt="image"
src="https://github.com/user-attachments/assets/2446c5f0-ebcc-4665-9ae7-7cbdf3084966"
/>


**After**

<img width="2104" height="225" alt="image"
src="https://github.com/user-attachments/assets/3cc3579f-76a2-4dff-9cd6-ac022725f0f1"
/>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: OpenAI Codex <codex@openai.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants