🐛 Fixed editor alerts positioning#26510
Conversation
closes #26125 closes https://linear.app/ghost/issue/BER-3271/ Alerts rendered into the body grid were hidden behind the editor because the fullscreen container used position:fixed covering the viewport. Changed to position:absolute so the editor respects the grid layout and alerts push content down naturally. Simplified scroll containers to one per page context — SidebarInset for non-editor pages, .gh-koenig-editor for editor content. Moved Ember CSS overrides from React shell into Ember source styles directly.
d4a582f to
86e7eb9
Compare
WalkthroughThe changes involve a systematic refactoring of CSS layout rules across the admin interface, removing fixed positioning and viewport-based height definitions in favor of flex-based layouts. This includes converting fixed heights (100vh, 100dvh) to flexible sizing, removing Ember-specific layout overrides, adjusting overflow behavior, and changing header positioning from fixed to sticky. The modifications affect the main editor layout, settings menu, admin layout components, and root styling, moving from static viewport-anchored dimensions to dynamic flex container-based sizing with improved scroll safety through min-height constraints. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
ghost/admin/app/styles/components/settings-menu.css (1)
130-143:position: stickyis a no-op in this context — consider removing it.
.settings-menu-pane-mainhasoverflow: hidden, which prevents it from being a scroll container.position: sticky; top: 0requires a scrolling ancestor to take effect; here it degrades toposition: relative. The pinned-header effect is already fully achieved by the flex sibling layout (flex-shrink: 0on the header +flex: 1; overflow-y: autoon.settings-menu-content). Thestickydeclaration can be removed without any visual or behavioural change.♻️ Proposed cleanup
.settings-menu-header { - position: sticky; - top: 0; display: flex; height: 82px; min-height: 82px;🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@ghost/admin/app/styles/components/settings-menu.css` around lines 130 - 143, Remove the redundant sticky positioning from the header: edit the .settings-menu-header rule and delete position: sticky and top: 0 so the header relies on the existing flex layout (keep flex-shrink: 0, height/padding, z-index and background intact); confirm .settings-menu-pane-main/.settings-menu-content retain overflow-y: auto and flex: 1 to preserve the pinned-header behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@ghost/admin/app/styles/components/settings-menu.css`:
- Around line 130-143: Remove the redundant sticky positioning from the header:
edit the .settings-menu-header rule and delete position: sticky and top: 0 so
the header relies on the existing flex layout (keep flex-shrink: 0,
height/padding, z-index and background intact); confirm
.settings-menu-pane-main/.settings-menu-content retain overflow-y: auto and
flex: 1 to preserve the pinned-header behavior.
weylandswart
left a comment
There was a problem hiding this comment.
Clicked around a bit more after our Tuple and everything looks solid.
closes #26125
closes https://linear.app/ghost/issue/BER-3271/
#ember-alerts-wormhole(body grid row 1) did not push editor content down and appeared behind the editor header because.gh-editor-fullscreen-containerusedposition: fixed, covering the entire viewport and ignoring the grid layoutposition: fixedtoposition: absoluteand established a flex height chain so.gh-koenig-editorremains the sole scroll container for editor content.gh-koenig-editorfor editor content.gh-appposition,.gh-mainoverflow) from the React shell into Ember source styles directly, removing redundant overrides