fix(apps): make the Apps tab a full-width phone launcher on mobile#5
Merged
Conversation
The Apps grid used `repeat(auto-fit, 72px)` + `justify-content: center`, so a handful of icons rendered as a small centered cluster on phones rather than a home-screen launcher. At the mobile breakpoint (<=560px) the grid now uses `repeat(4, 1fr)` full-width columns with even gutters, larger squircle icons that scale with the cell (clamp 56-72px), and a receded heading/intro so the icon grid is the hero — reading unmistakably as an iOS/Android home screen at 360/390/414px. Desktop/tablet keep the existing centered cluster. CSS + test only: AppIcon (reused/CRITICAL) is re-skinned via mobile-scoped `.app-tile-icon-frame` descendant selectors, its API untouched.
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.
TLDR
The Apps tab now reads unmistakably as a phone home-screen launcher on mobile. Fixes the #51 follow-up feedback: "I still don't see a breakpoint where the app looks like square rounded icons on a phone launcher screen."
Problem
.app-home-gridusedgrid-template-columns: repeat(auto-fit, 72px)+justify-content: center, so on a phone a handful of icons rendered as a small centered cluster with fixed gaps — a web widget, not a home screen.What changed (CSS + test only)
At the mobile breakpoint (
<= 560px, covering 360 / 390 / 414px):repeat(4, 1fr)spanning the whole shell width with even gutters (column-gap: 8px,row-gap: 26px), replacing the centered fixed-px cluster. Resolves to four equal tracks: 76px @360, 83.5px @390, 89.5px @414.clamp(56px, 17vw, 72px); the 22% squircle radius + soft drop shadow come from the existing base rule.Appsheading (21px) + intro (13px) so the icon grid is the hero, like a status-bar header over a home screen (kept for a11y/SEO, never deleted).auto-fit, 88pxcluster.AppIcon(reused/CRITICAL — 4 consumers) is re-skinned via mobile-scoped.app-tile-icon-framedescendant selectors only; its API is untouched.!importantis needed solely to beat AppIcon's inlinewidth/height(the<img>attrs + the fallback span's inline style). No markup change — the AppTile/AppsHomeScreen structure and unit tests are unchanged.Blast radius checked (CLAUDE.md §2.0)
impact(AppTile, upstream)-> 0 callers, LOW.impact(AppIcon, upstream)-> CRITICAL, reused by AppTile / AppCard / FeaturedSlide / AppDetailPage — so I did not touch its API or its base.app-iconrule. Store cards (.app-card-head .app-icon) and Detail (.detail-head .app-icon) are unaffected because every new rule is scoped under.app-tile-icon-frame/.apps-home*inside the phone media query.detect_changes(all)-> 3 files, 0 changed symbols, 0 affected processes, risk low.How verified
npm run test:coverage-> 190 passed, coverage 99.65% (>= 80%).tsc --noEmitclean; ESLint 0 errors.npm run test:a11y-> 66 passed, incl./appsaxe-clean in dark AND light, ARIA list semantics + keyboard order intact.Bump
0.3.0 -> 0.3.1(patch — visual refinement, no public API/behaviour change).Screenshots
Mobile — dark
Mobile — light
Desktop 1280 (no regression — centered cluster preserved)
Closes the #51 mobile-launcher follow-up.