Skip to content

Migrate presentation layer to Tailwind and retire the ported global stylesheet - #62

Open
hta218 wants to merge 27 commits into
mainfrom
refactor/tailwind-presentation-layer
Open

Migrate presentation layer to Tailwind and retire the ported global stylesheet#62
hta218 wants to merge 27 commits into
mainfrom
refactor/tailwind-presentation-layer

Conversation

@hta218

@hta218 hta218 commented Sep 2, 2026

Copy link
Copy Markdown
Member

Summary

  • migrate the accepted Forward presentation layer to Tailwind v4 utilities and semantic @theme tokens without redesigning shopper behavior
  • centralize reusable presentation variants with cva, colocate route-owned Cart/Account/PDP presentation, and add durable architecture guards against legacy selectors and ownership regressions
  • replace Shopify rich-content regex structure parsing with a pinned fail-closed parse5 AST parser
  • retire canonical-source.css, site-header.css, and production-polish.css; keep globals.css limited to Tailwind, semantic tokens, document policy, and the three shell keyframes

Verification

  • bun run check: 372 node tests, 66 DOM tests, GraphQL, 42-page production build, 202 exact compiled theme-token values, and route contract passed
  • browser matrices: 441 passed, 27 intentional viewport/mode skips, 0 failed across static, live account-disabled, and live account-enabled modes; final standard-utility substitutions re-passed static at 146/10
  • static/live production matrices: 35 route smokes per mode; live read-only Shopify verification passed
  • bun audit --production: no vulnerabilities
  • independent standards and spec/evidence exact-candidate reviews passed after findings were resolved

Decisions and risk

  • preserve both explicit static and live data modes; they are separate deterministic/fail-closed deployment boundaries, not duplicate fallback implementations
  • React Compiler remains disabled because the required compiler package could not be added deterministically without dependency drift
  • ProductCard remains a Client Component because colorway selection jointly owns media, links, controls, and URL state
  • no write-side Shopify, account, address, order, checkout, payment, deployment, or Production mutation was performed

Closes #61
Related to Weaverse/builder#2663

@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
forward Ready Ready Preview Sep 3, 2026 9:29am UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Migrate presentation layer to Tailwind and retire the ported global stylesheet

1 participant