[responsive] TradePage collapses to single-column at iPad portrait — needs md: two-column layout #146
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:implement
agent:implement
agent:open_issues
agent:ready
agent:research
agent:security_audit
agent:verify
architecture
backend
blocker:hybrid
blocker:launch
blocker:limit-orders
blocker:v2
block:log_only
block:security
bug
ci
contracts
correctness
deploy
dev
devops
docs
documentation
duplicate
e2e
enhancement
epic
feature
frontend
functional-completion
gas
good first issue
governance
help wanted
high-risk
hooks
hybrid
indexer
infra
infrastructure
integrators
invalid
launch-blocker
limit-orders
localnet
localterra
low priority
missing-implementation
needs-design
ops
performance
priority
high
priority
medium
product
qa
QA
question
ready
ready
research
scripts
security
security-hardening
smartcontracts
tech-debt
testing
ux
UX
v2
verification
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
code/cl8y-dex-terraclassic#146
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@totdking — visual / responsive finding from source-level audit, assigning to you. extends DEX visual QA umbrella #133 and the responsive-layout work just landed in #136.
Scope
#136 fixed the header tablet collapse (768-1023px). this finding is about the TradePage which uses a single binary breakpoint at
lg:(1024px) — so iPad-portrait users (768-1023px) get the full mobile stack despite plenty of horizontal real estate.HIGH
frontend-dapp/src/pages/TradePage.tsx:Line 117-118:
Line 148-149:
The full chart + order book + ticket layout collapses into a single vertical column at any width below 1024px — including iPad-portrait widths around 768-1023px where there's plenty of horizontal real estate for a 2-column split.
Verified by grep:
md:hidden/hidden md:does NOT appear ANYWHERE infrontend-dapp/src/. The codebase has zero tablet-only layout switches today. This means the precedent set by #136's fix (usinguseMediaQuerywithHEADER_FULL_NAV_MIN_WIDTH_PX = 1024) is the only example so far, and TradePage is the most visible page that needs the same pattern.Suggested fix shape
introduce a
md:two-column layout for tablet portrait. one workable structure:<md(mobile, <768px): existing single-column stackmd:tolg:(tablet, 768-1023px): chart + ticket side by side, order book collapsed under (or in a tabbed view)>=lg(desktop, >=1024px): existing 3-panel resizable layoutthree-state could either be CSS-only (Tailwind
md:grid-cols-2 lg:hidden) or hooked into auseMediaQuerymirroring#136's approach. up to you / dev which fits the pattern better.How to verify on local stack
/tradeor/trade/{pair_addr}POLISH (lower priority, file as siblings if you find them)
other pages with similar narrow tablet treatment that you may want to walk during the same QA pass:
PoolPage.tsx:912— filter rowflex flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-end. once it flips to row atsm:, search input + sort + order + checkbox all wrap onto multiple lines. a tablet-width pass could break the visual grid.SwapPage.tsx:1038— Trade Detailsgrid grid-cols-2 ... sm:block sm:space-y-2— flips from 2-col grid to stacked rows at>=sm. could hold the 2-col grid throughmd:for higher information density.TraderPage.tsx:122, :179, :195— stat gridsgrid-cols-2 md:grid-cols-4. surrounding hero/header at line 86 isflex-col sm:flex-row. worth a sweep at iPad portrait to check for double-jumps between 640px and 768px.Severity
P2 — UX. trade is a primary surface; iPad-portrait is a real device class. a CEX-migrant trader on a tablet currently can't get the chart+ticket side-by-side experience they expect. compounds with #136's tablet header work — both gaps make iPad-portrait feel like a downgraded mobile rather than a real tablet experience.
Cross-reference
cc @PlasticDigits
assigned to @totdking
@Brouie see comment on #144 - not a verification issue, this is a bugfix request, so cannot be assinged to totdking
unassigned @totdking
mentioned in commit
f619edf2afShipped: tablet Trade layout (GitLab #146)
Implemented a Tailwind-only sub-desktop grid on
TradePage.tsx(lg:hidden): frommd:(768px) tolg:, price chart and limit order ticket share the first row; order book and recent trades span full width below. Phone layout (<md) stays a single column in DOM order: book → ticket → chart → tape. Desktop≥lgresizablePanelGroupis unchanged.Merged to
main(commitcad1efa). Remote feature branch removed after merge.Docs / agent playbooks
skills/AGENTS_FRONTEND_TRADE_PAGE_LAYOUT.md— linked fromAGENTS_FRONTEND_RESPONSIVE_HEADER.md.data-testid="trade-sub-lg-workspace"so E2E avoids duplicate headings from the hidden desktop panel tree.Verification checklist
npm ciinfrontend-dappthennpm run test:unit— expect 329 tests green (includesTradePage.test.tsx)..env.localper global setup:npx playwright test e2e/trade-page-responsive.spec.ts./trade/{terra1…}: chart left, ticket right, order book below that row.Requesting verification from @Brouie when you have a moment.
Issue left open per process.
mentioned in commit
a4f1b6d010mentioned in issue #151
mentioned in issue #178
mentioned in commit
dc27b0e029Verification complete (GitLab #146)
Verified the tablet two-column Trade layout shipped in
f619edf/cad1efa. The responsive grid was already correct; the Playwright tablet assertion was a false failure because it compared the nested Place limit heading (~500px below the ticket column top) instead of the chart/ticket grid cells.Fix merged (
dc27b0e)data-testid="trade-sub-lg-chart-col"andtrade-sub-lg-ticket-colon the sub-desktop grid wrappers.e2e/trade-page-responsive.spec.tsto assert column bounding boxes (same grid row, chart left of ticket, order book below).Checklist
npm run test:unit— 598 tests green (15 inTradePage.test.tsx, includes #146 grid class assertion).npx playwright test e2e/trade-page-responsive.spec.ts— 2/2 pass after E2E fix.trade-desktop-workspace3-panel resizable layout unchanged.Closing as verified.
Re-verification complete (independent pass)
Re-ran the full #146 checklist on
main@3f6a2e5using worktreeverify/issue-146. No responsive-layout bugs found — implementation matches acceptance criteria.Checklist
npm run test:unit— 599 tests green (15 inTradePage.test.tsx, includesmd:grid-cols-2assertion).npx playwright test e2e/trade-page-responsive.spec.ts— 2/2 pass.trade-desktop-workspace3-panel resizable layout unchanged.No code changes required. Issue remains closed.
mentioned in issue #527
mentioned in issue #561