docs: add STORE_REVIEW.md for RC STORE-01, close known-issues 9/10
- 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>
This commit is contained in:
@@ -7,20 +7,21 @@ Status snapshot, refreshed from recent commits only. Full sprint history: `docs/
|
|||||||
**RC-Visual-02 — Composition audit** (storefront, builder, backoffice)
|
**RC-Visual-02 — Composition audit** (storefront, builder, backoffice)
|
||||||
Fixed undefined CSS theme vars, hand-rolled skeletons/empty-states migrated to shared `app-skeleton`/`app-empty-state`/`app-button`, missing `<th scope="col">`, dead CSS (~530-line unused cart `.alt` theme). Detail: `docs/UI-COMPOSITION-REVIEW.md`.
|
Fixed undefined CSS theme vars, hand-rolled skeletons/empty-states migrated to shared `app-skeleton`/`app-empty-state`/`app-button`, missing `<th scope="col">`, dead CSS (~530-line unused cart `.alt` theme). Detail: `docs/UI-COMPOSITION-REVIEW.md`.
|
||||||
|
|
||||||
**RC-Premium-01 — Storefront premium UX polish** (this session)
|
**RC-Premium-01 — Storefront premium UX polish**
|
||||||
Visual/interaction polish on top of the RC-Visual-02 baseline — no redesign, no logic/route changes. Fixed color-only state signaling app-wide (added `aria-pressed`/`aria-current`/`aria-live` + icon/checkmark pairing to selected swatches, active filters/tabs/sort, toggle buttons), normalized remaining hardcoded hex to design tokens, added hover/focus-visible/active/disabled states across interactive controls, capped legal/CMS prose at 70ch, converted FAQ to native `<details>` disclosures. Four commits (Home/Catalog/Search, Product/Compare/Wishlist, Cart/Checkout, Static Pages). Detail: `docs/STORE_FRONT_UX_REVIEW.md`.
|
Visual/interaction polish on top of the RC-Visual-02 baseline — no redesign, no logic/route changes. Fixed color-only state signaling app-wide (added `aria-pressed`/`aria-current`/`aria-live` + icon/checkmark pairing to selected swatches, active filters/tabs/sort, toggle buttons), normalized remaining hardcoded hex to design tokens, added hover/focus-visible/active/disabled states across interactive controls, capped legal/CMS prose at 70ch, converted FAQ to native `<details>` disclosures. Four commits (Home/Catalog/Search, Product/Compare/Wishlist, Cart/Checkout, Static Pages). Detail: `docs/STORE_FRONT_UX_REVIEW.md`.
|
||||||
|
|
||||||
|
**RC STORE-01 — Storefront cleanup** (this session)
|
||||||
|
Closed 2 of the 5 gaps RC-Premium-01 deliberately deferred: category/search skeleton markup migrated to shared `app-skeleton`, dead cart `.email-form` markup/CSS removed. The other 3 (payment modal, cart confirm() dialog, untokenized colors) need an architecture/design-system decision, correctly left alone again. Detail: `docs/STORE_REVIEW.md`.
|
||||||
|
|
||||||
## Sprint status
|
## Sprint status
|
||||||
|
|
||||||
**Sprint 30 — Final Release**: verify pass re-run 2026-07-23 (tsc --noEmit, `npm run build`, `arch:check:boundaries`, `arch:check:cycles`) — all green, only pre-existing bundle-budget warning. Working tree otherwise clean. Only remaining item: `git push` of 10 local `B2B` commits to `origin/B2B` — awaiting explicit user go-ahead (declined once already this sprint, per safety rules re-ask each time). Full checklist: `docs/SPRINT-PLAN.md`.
|
**Sprint 30 — Final Release**: verify pass re-run 2026-07-23 (tsc --noEmit, `npm run build`, `arch:check:boundaries`, `arch:check:cycles`) — all green, only pre-existing bundle-budget warning. Working tree otherwise clean. Only remaining item: `git push` of 10 local `B2B` commits to `origin/B2B` — awaiting explicit user go-ahead (declined once already this sprint, per safety rules re-ask each time). Full checklist: `docs/SPRINT-PLAN.md`.
|
||||||
|
|
||||||
## Known open items (not yet scheduled)
|
## Known open items (not yet scheduled)
|
||||||
|
|
||||||
Full detail in `docs/KNOWN-ISSUES.md` (items 1-10) / `docs/STORE_FRONT_UX_REVIEW.md`. Summary:
|
Full detail in `docs/KNOWN-ISSUES.md`. Summary:
|
||||||
- `pages/category` and `pages/search` still use hand-rolled skeleton markup instead of `app-skeleton` (composition fix, RC-Visual-02 territory).
|
|
||||||
- Payment modal / bank-payment iframe on Cart still custom (own focus-trap, multi-step state) — candidate for `app-dialog` migration.
|
- Payment modal / bank-payment iframe on Cart still custom (own focus-trap, multi-step state) — candidate for `app-dialog` migration.
|
||||||
- Cart's native `confirm()` on clear-cart — no existing confirm-dialog pattern to follow yet.
|
- Cart's native `confirm()` on clear-cart — no existing confirm-dialog pattern to follow yet.
|
||||||
- Cart's dead `.email-form` CSS block — cleanup candidate.
|
|
||||||
- `stars.component` rating glyph color and a few legacy hex literals in `pages/category`/`pages/search` have no exact token match — needs a deliberate token-extension decision.
|
- `stars.component` rating glyph color and a few legacy hex literals in `pages/category`/`pages/search` have no exact token match — needs a deliberate token-extension decision.
|
||||||
- Homepage hero-to-categories dead-space gap — traces to mock bootstrap config, not a code defect; needs real-tenant-data reproduction.
|
- Homepage hero-to-categories dead-space gap — traces to mock bootstrap config, not a code defect; needs real-tenant-data reproduction.
|
||||||
- ~178 missing `adminXxx.*` i18n keys across admin backoffice.
|
- ~178 missing `adminXxx.*` i18n keys across admin backoffice.
|
||||||
|
|||||||
@@ -93,16 +93,6 @@ don't fix inline unless asked.
|
|||||||
token-extension decision before normalizing.
|
token-extension decision before normalizing.
|
||||||
- Found: 2026-07-23, RC-Premium-01.
|
- Found: 2026-07-23, RC-Premium-01.
|
||||||
|
|
||||||
9. **`pages/category` and `pages/search` still use hand-rolled skeleton
|
|
||||||
markup instead of `app-skeleton`.** Composition-level fix (RC-Visual-02
|
|
||||||
territory), not touched during RC-Premium-01's visual-polish pass.
|
|
||||||
- Found: 2026-07-23, RC-Premium-01.
|
|
||||||
|
|
||||||
10. **Cart's `.email-form` block (post-payment email/phone capture) is dead
|
|
||||||
CSS behind commented-out markup.** Candidate for deletion in a cleanup
|
|
||||||
pass; not removed during RC-Premium-01 (out of scope for a polish pass).
|
|
||||||
- Found: 2026-07-23, RC-Premium-01.
|
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
1. **Full-project UX/UI + motion pass across storefront, admin dashboard,
|
1. **Full-project UX/UI + motion pass across storefront, admin dashboard,
|
||||||
@@ -253,6 +243,18 @@ don't fix inline unless asked.
|
|||||||
rendered tab order changed from the hardcoded `['en','ru','hy']` to the
|
rendered tab order changed from the hardcoded `['en','ru','hy']` to the
|
||||||
real tenant order `['ru','en','hy']` in both editors.
|
real tenant order `['ru','en','hy']` in both editors.
|
||||||
|
|
||||||
|
7. **`pages/category` and `pages/search` hand-rolled skeleton markup
|
||||||
|
replaced with shared `app-skeleton`.** Both pages had their own
|
||||||
|
`.skeleton-card`/`.skeleton-image`/`.skeleton-line` shimmer CSS with
|
||||||
|
hardcoded hex colors, duplicating what `app-skeleton` already provides
|
||||||
|
and what `catalog-container`/`product-details-container` already use.
|
||||||
|
- Fixed: 2026-07-23, RC STORE-01 (`docs/STORE_REVIEW.md`).
|
||||||
|
|
||||||
|
8. **Cart's dead `.email-form` markup and CSS removed.** Post-payment
|
||||||
|
email/phone-capture form was commented-out markup with a matching
|
||||||
|
~90-line dead CSS block still shipping in the bundle.
|
||||||
|
- Fixed: 2026-07-23, RC STORE-01.
|
||||||
|
|
||||||
## Notes (not bugs, just flag before shipping)
|
## Notes (not bugs, just flag before shipping)
|
||||||
|
|
||||||
- `src/environments/environment.ts`: `useMockData` was temporarily flipped to
|
- `src/environments/environment.ts`: `useMockData` was temporarily flipped to
|
||||||
|
|||||||
44
docs/STORE_REVIEW.md
Normal file
44
docs/STORE_REVIEW.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
1. **Category/Search skeleton → shared `app-skeleton`.**
|
||||||
|
`src/app/pages/category/*` and `src/app/pages/search/*` still had their own `.skeleton-card`/`.skeleton-image`/`.skeleton-line` markup with a hardcoded-hex shimmer animation, duplicating exactly what `app-skeleton` (already used by `catalog-container` and `product-details-container`) provides. Swapped both pages to `app-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`.
|
||||||
|
|
||||||
|
2. **Cart: removed dead `.email-form` markup + 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-btn` CSS block still shipping in the bundle for markup that never renders. Removed both. No `.ts` logic 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()` native `confirm()`** — 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.component` rating 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-skeleton` already 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`.
|
||||||
Reference in New Issue
Block a user