Skip to content

fix(drawer): Match responsive header height on small screens#113016

Merged
natemoo-re merged 12 commits intomasterfrom
priscila/fix/drawer-header-responsive-alignment
Apr 15, 2026
Merged

fix(drawer): Match responsive header height on small screens#113016
natemoo-re merged 12 commits intomasterfrom
priscila/fix/drawer-header-responsive-alignment

Conversation

@priscilawebdev
Copy link
Copy Markdown
Member

@priscilawebdev priscilawebdev commented Apr 15, 2026

Follow-up to #112898. The page-frame event drawer used header sizing that no
longer matched the page header on smaller viewports, which made the drawer
chrome look visibly off around the activity and event drawers.

Move the event drawer's responsive header sizing onto the shared event drawer
container so the header row and navigator row inherit the same page-frame
values. Keep the fixed-height navigator treatment scoped to page-frame drawers
so non-page-frame drawers retain their previous spacing and shadow behavior.

Before / After

Before After
image image

Closes https://linear.app/getsentry/issue/DE-1145/drawer-header-is-misaligned-with-the-other-header-on-smaller-devices

The drawer header was fixed at 53px (PRIMARY_HEADER_HEIGHT) when the
page-frame feature is active, but the page TopBar shrinks to 48px on
small screens. This caused a visible misalignment between the drawer
header and the page header on mobile viewports.

Add a mobileHeight prop to the Header styled component that overrides
--drawer-header-height via a media query at the sm breakpoint,
matching the TopBar's responsive behavior. EventDrawerHeader inherits
the correct value automatically through the CSS variable.

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 15, 2026
@sentry
Copy link
Copy Markdown
Contributor

sentry bot commented Apr 15, 2026

Sentry Snapshot Testing

Name Added Removed Modified Renamed Unchanged Status
sentry-frontend
sentry-frontend
0 0 0 0 204 ✅ Unchanged

⚙️ sentry-frontend Snapshot Settings

Use useBreakpoints() to pick the correct header height at render time
rather than adding a separate mobileHeight CSS prop with a media
query. This is simpler and consistent with how the rest of the
codebase handles responsive behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@linear-code
Copy link
Copy Markdown

linear-code bot commented Apr 15, 2026

Move the event drawer header sizing variables onto the shared event drawer
container so the header row and navigator row can inherit the same
responsive values.

Keep the fixed-height navigator treatment behind the page-frame feature
so non-page-frame drawers keep their previous spacing and shadow
behavior.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
Define the shared drawer header sizing variables on the slide panel so all DrawerHeader consumers inherit the same page-frame sizing from a common ancestor.

Keep the event drawer on its own scoped variable so its navigator alignment stays local and generic drawers no longer need header-level breakpoint logic.

Co-Authored-By: Codex <noreply@openai.com>
Revert the shared global drawer header refactor and keep the page-frame alignment fix scoped to the event drawer.

The event drawer already defines its own responsive header and navigator variables, so the shared drawer component does not need extra page-frame logic for this bug.

Co-Authored-By: Codex <noreply@openai.com>
Comment on lines +48 to +56
--event-drawer-header-height: ${NAVIGATION_MOBILE_TOPBAR_HEIGHT_WITH_PAGE_FRAME}px;
--event-navigator-height: var(--event-drawer-header-height);
--event-navigator-min-height: var(--event-drawer-header-height);
--event-navigator-padding-block: 0px;
--event-navigator-box-shadow: none;
--event-navigator-border-bottom: 1px solid ${p.theme.tokens.border.primary};

@media (min-width: ${p.theme.breakpoints.md}) {
--event-drawer-header-height: ${PRIMARY_HEADER_HEIGHT}px;
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.

We can get rid most of these variables once the feature flag is removed

@priscilawebdev priscilawebdev marked this pull request as ready for review April 15, 2026 08:21
Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 87b713c. Configure here.

Comment thread static/app/components/events/eventDrawer.tsx Outdated
Keep the non-page-frame drawer path on content-box sizing so its
min-height still applies to the content area and the existing padding
does not shrink the rendered row. Only use border-box when the page
frame variables are active.

Co-Authored-By: Codex <noreply@openai.com>
Comment thread static/app/components/events/eventDrawer.tsx
EventDrawerHeader now falls back to --drawer-header-height (set by the
base DrawerHeader) before the hardcoded MIN_NAV_HEIGHT default. This
fixes a 9px misalignment in Insights panels that use EventDrawerHeader
without an EventDrawerContainer wrapper when the page-frame feature is
active.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comment thread static/app/components/events/eventDrawer.tsx
Remove redundant --event-navigator-height and --event-navigator-min-height
variables that were just aliases for --event-drawer-header-height.
EventNavigator now references --event-drawer-header-height directly,
making the shared height intent explicit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@natemoo-re natemoo-re left a comment

Choose a reason for hiding this comment

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

Looks good so far! Generally would prefer to take the opportunity to clean up the existing code rather than maintaining full backwards compatability.

Comment thread static/app/components/events/eventDrawer.tsx Outdated
Comment thread static/app/components/events/eventDrawer.tsx Outdated
Remove explicit box-sizing property since content-box is the default and there's no reason to set it. Remove vertical padding variable since align-items: center already handles vertical centering and the height is set explicitly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@natemoo-re natemoo-re left a comment

Choose a reason for hiding this comment

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

Nice!

@natemoo-re natemoo-re enabled auto-merge (squash) April 15, 2026 19:33
@natemoo-re natemoo-re merged commit 9ff6bc9 into master Apr 15, 2026
63 checks passed
@natemoo-re natemoo-re deleted the priscila/fix/drawer-header-responsive-alignment branch April 15, 2026 19:40
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