W10-C5: Dark/light mode toggle placed at bottom of page. It is inaccessible on content-heavy routes without scrolling #170
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#170
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?
Issue Summary
The dark/light mode toggle is positioned at the bottom of the page. On content-heavy routes such as
/poolwhere the available pools list can be long, a user must scroll all the way to the bottom to reach the toggle. This makes theme switching effectively hidden for most users. The toggle should be relocated to the header or settings panel where it is reachable from any scroll position on any route.Reproduction Steps
/pool/tradeor/swapwith a long order history or advanced panel open, same issueExpected Behavior
The dark/light mode toggle should be placed in the header (alongside the settings icon or wallet chip) It should be reachable from any scroll position without requiring the user to scroll to the bottom of the page.
Actual Behavior
The toggle sits at the bottom of the page. On routes with substantial vertical content (e.g.
/poolwith many available pools), the user must scroll past all content to reach it. New users are unlikely to find it at all.Environment Details
localterra(local Docker)VITE_NETWORK=local npm run devWallet / Device Details
/pool,/swap,/tradeSeverity / Impact
P2 Polish. No functionality is broken; the toggle works when reached. However placing a global UI preference control at the bottom of a scrollable page is a discoverability failure. Users on content-heavy routes like
/poolare unlikely to scroll all the way down for a theme switch, and the toggle effectively becomes invisible. Moving it to the header costs minimal layout work and immediately improves discoverability across all routes. Found under W10-C5 (Theme / density : Display and Interactivity dimensions).cc: @PlasticDigits
mentioned in commit
cf57b6ddc6Fix shipped on
main(cf57b6d)Moved the dark/light theme toggle from the page footer into the sticky header on viewports ≥768px (desktop/tablet), so it stays reachable on long routes like
/pooland/tradewithout scrolling to the bottom. On mobile (≤767px), the footer chrome remains hidden; theme switching stays in the More sheet (unchanged).What changed
Layout.tsx:ThemeSegmentedControlin.app-header-controlswhen not on mobile; removed from footerindex.css:.app-header-theme-groupstylesdocs/frontend.mdinvariant row + GitLab #170skills/AGENTS_FRONTEND_THEME_TOGGLE.md(cross-linked fromAGENTS_FRONTEND_RESPONSIVE_HEADER.md)/pool(navigation.spec.ts)Verification checklist
/poolwith many pools — Dark/Light visible in top header next to network badge / wallet without scrollingdocument.documentElementhasdata-theme="light"; preference persists after reload/trade,/swap: toggle reachable without scrolling page content@totdking — please verify on your M1 / Chrome setup when convenient. Leaving this issue open until you sign off.
cc @PlasticDigits
mentioned in issue #116
Verified and closed
Re-verified the fix already on
main(originally shipped incf57b6d). No additional code changes were required.Verification checklist (all passed)
/pool: Dark/Light toggle visible in sticky header (.app-header-theme-group) next to network badge / wallet without scrolling; no theme control in footer.document.documentElementgetsdata-theme="light"immediately; preference persists inlocalStorage(cl8y-dex-theme) after reload.navigation.spec.ts)./trade,/swap: Header theme toggle reachable without scrolling page content.How verified
navigation.spec.tstheme + tablet overlap tests (11/11 passed withPLAYWRIGHT_SKIP_CHAIN=1)./trade,/swap, reload persistence, and mobile More sheet (3/3 passed).ThemeSegmentedControl.test.tsx(2/2 passed).:5432, indexer at:3001, frontend at:3000, bot swarm 30/30.Note: Cursor browser MCP was unavailable in this session; visual checks were covered by Playwright assertions (visibility, bounding boxes, sticky header placement, click +
data-theme+ reload).mentioned in issue #411
mentioned in issue #416
mentioned in issue #482
marked as related to #482
mentioned in issue #483
marked as related to #483
mentioned in merge request !1019