Repository navigation
fix(layout): polish smaller-desktop (768px–1279px) headers, half-pane actions, and seam clearance - #223
Merged
obvious-autobuild-staging[bot] merged 3 commits intoOct 17, 2026
Conversation
…e action labels icon-only until xl Co-authored-by: David Boskovic <[email protected]>
…sRow & CsvTable wrapping Co-authored-by: David Boskovic <[email protected]>
obvious-autobuild-staging
Bot
force-pushed
the
fix/smaller-desktop-layout
branch
from
October 17, 2026 20:03
ec56172 to
a0b2499
Compare
Co-authored-by: David Boskovic <[email protected]>
obvious-autobuild-staging
Bot
force-pushed
the
fix/smaller-desktop-layout
branch
from
October 17, 2026 20:07
a0b2499 to
2dc528b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Because
SplitPaneenters its 50/50 side-by-side layout atmd:(768px), each pane at768px–1279pxis only384px–639pxwide. Under that half-pane width budget,PaneShell's fixedmd:h-12height lock clipped wrapped action buttons beneath theCsvTabletoolbar, showing full text labels on secondary actions (Upload,Copy,Clear,Download) forced the input header to wrap across two lines from768pxto1150px, the floatingDividerSwitch(⇄ CSV → JSON) overlapped the right edge of theDropzonepaste input box at768px–1024px, and wrappedOptionsRowlines left dangling vertical|divider rules.What
PaneShellheaders (app/src/components/PaneShell.tsx): Replace the rigidmd:h-12 md:py-0height lock withmd:min-h-12 md:py-1.5(gap-x-3 gap-y-1.5) so single-line headers stay48pxtall and wrapped narrow splits expand cleanly with their bottom border intact.app/src/components/InputPane.tsx,app/src/components/OutputPane.tsx): Keep secondary action text labels (Upload,Copy,Clear,Download) icon-only untilxl:inline(>=1280px, where each 50/50 pane reaches>=640px) while preservingaria-labelandtitleon both panes.DividerSwitchfromDropzone(app/src/components/DividerSwitch.tsx,app/src/components/Dropzone.tsx): TightenDividerSwitchonmd:(md:h-8 md:gap-1 md:px-2.5 md:text-[11px]) and addmd:px-16seam clearance onDropzoneso the center direction switch never overlaps the paste box.OptionsRow&CsvTablewrapping (app/src/components/OptionsRow.tsx,app/src/components/CsvTable.tsx): Tightenmd:–xl:gaps, hide<Divider />rules untilxl:block, render the trailingflex-1spacer only whennoticeis present, and addflex-wraptoCsvTable's selection chip strip.How to Review
app/src/components/PaneShell.tsx,InputPane.tsx,OutputPane.tsx— responsive header height andxl:inlinesecondary labels.app/src/components/DividerSwitch.tsx,Dropzone.tsx— center seam pill sizing andmd:px-16horizontal clearance.app/src/components/OptionsRow.tsx,CsvTable.tsx—768px–1279pxoption cluster spacing,xl:blockdividers, and selection strip wrapping.Human author: David Boskovic ([email protected])
🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact
Test Evidence
Smaller-desktop loaded CSV state (768x700 to 1280x800): single-row 48px half-pane headers, xl:inline secondary labels, and clean OptionsRow





Smaller-desktop empty state (768x700 to 1280x800): unclipped 48px headers and zero DividerSwitch overlap with Dropzone paste box




