- docs/STORE_REVIEW.md: RC STORE-01 mission summary — what was closed (category/search skeleton, cart dead email-form) vs what's still correctly gated behind an architecture/design decision. - KNOWN-ISSUES.md: items 9/10 moved Open -> Fixed. - FRONTEND-ROADMAP.md: known-open-items list deduped against the fix. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
4.7 KiB
Storefront Review — RC STORE-01
Mission: polish the customer-facing storefront only (Home, Catalog, Search, Product, Compare, Wishlist, Cart, Checkout, Static Pages). No redesign, no architecture change, no Builder/Backoffice changes. Reused existing src/app/shared/ui/* components exclusively.
This is the third storefront-focused pass, on top of two prior sprints already documented:
| Doc | Scope |
|---|---|
docs/UI-COMPOSITION-REVIEW.md (RC-Visual-02) |
Composition bugs: undefined theme vars, hand-rolled skeletons/empty-states → shared components, missing scope="col", dead CSS. |
docs/STORE_FRONT_UX_REVIEW.md (RC-Premium-01) |
Visual/interaction polish: typography, spacing, hover/focus/active states, color-only-signal fixes (aria-pressed/current/live), transitions, badges/price/discount presentation. |
| This doc (RC STORE-01) | Closed the concrete gaps those two passes deliberately deferred, re-verified nothing regressed. |
What this pass found
Re-checked docs/KNOWN-ISSUES.md items 6-10 (all flagged during RC-Premium-01, 2026-07-23) against the current tree before doing any new inspection — per this mission's "don't rediscover" instruction, existing docs were the source of truth, not a fresh repo-wide audit.
Of the 5 flagged items, 2 were safe, scoped, non-architectural fixes matching this mission's focus list (Skeletons, and general cleanup); 3 require an architecture or design-system decision and were correctly left alone both times.
Fixed this pass
-
Category/Search skeleton → shared
app-skeleton.src/app/pages/category/*andsrc/app/pages/search/*still had their own.skeleton-card/.skeleton-image/.skeleton-linemarkup with a hardcoded-hex shimmer animation, duplicating exactly whatapp-skeleton(already used bycatalog-containerandproduct-details-container) provides. Swapped both pages toapp-skeleton(shape="rect"for image/button,shape="text"for lines), deleted the now-dead per-page shimmer CSS (~50 lines/page, hardcoded hex removed). Structural wrapper classes (.item-card,.item-details) kept for grid layout — only the shimmer implementation moved to the shared primitive. Commit:2e85495. -
Cart: removed dead
.email-formmarkup + CSS. Post-payment email/phone-capture form was commented-out HTML (cart.component.html) with a live ~90-line.email-form/.email-input/.submit-email-btnCSS block still shipping in the bundle for markup that never renders. Removed both. No.tslogic touched — the component's email/phone handler methods still exist and are unaffected; if they're confirmed unused elsewhere, that's a separate dead-code decision, not in scope here. Commit:ce96ef1.
Deliberately not touched (architecture/design decisions, not polish)
- Payment modal / bank-payment iframe on Cart — still a custom component, not
app-dialog. It owns a real multi-step state machine and its own focus-trap already; migrating it is a composition change. Flagged three times now (RC-Visual-02, RC-Premium-01, this pass) — recommend a dedicated ticket rather than deferring again silently. - Cart's
clearCart()nativeconfirm()— no existing storefront confirm-dialog pattern to follow; introducing the first one is an architecture decision (which shared dialog variant, where it lives), not a polish-pass call. stars.componentrating glyph color + legacy hex in category/search — no exact token match in the current palette. Needs a deliberate token-extension decision (add a token vs. accept the literal) before touching, to avoid guessing at a visual outcome nobody signed off on.
Verification
tsc --noEmit: clean.npm run build: green, only the pre-existing bundle-budget warning (768 kB vs 700 kB, unrelated to this pass).- Manual: category/search skeleton markup swap is a like-for-like structural replacement (same wrapper classes, same grid), verified by reading rendered template output; no visual-regression risk beyond the shimmer implementation itself, which is the same shimmer
app-skeletonalready renders elsewhere in the same app. - No live browser session available this session; recommend a quick visual check of category/search infinite-scroll loading state and the cart post-payment success screen before shipping.
Storefront status after this pass
Home, Catalog, Search, Product, Compare, Wishlist, Cart, Checkout (payment section within Cart — no separate checkout route), Static Pages: all three passes (composition, visual polish, this cleanup) complete. Remaining open items are the 3 above, all correctly gated behind a decision outside a pure polish/cleanup pass's scope — not silently dropped, tracked in docs/KNOWN-ISSUES.md (items 6-8) and docs/FRONTEND-ROADMAP.md.