Skip to content

Migrate cart-overlay and quote-cart styles into the design system#1403

Merged
stefan-burke merged 1 commit intomainfrom
claude/migrate-cart-design-system-iRRkd
May 5, 2026
Merged

Migrate cart-overlay and quote-cart styles into the design system#1403
stefan-burke merged 1 commit intomainfrom
claude/migrate-cart-design-system-iRRkd

Conversation

@stefan-burke
Copy link
Copy Markdown
Member

Summary

  • Move the cart-overlay dialog (.cart-item, .cart-item-info, .cart-item-controls, .cart-checkout, etc.), the quote-cart family, and the quote-price summary out of the legacy src/css/cart.scss into new design-system partials (src/css/design-system/_cart.scss, _quote-cart.scss).
  • The new partials use design-system tokens ($space-*, $border-light, $radius-md) and mixins (button-primary, button-ghost, flex-col, flex-between, dialog-box) instead of the raw values that were sprinkled through cart.scss.
  • Wrap theme-switcher, cart-icon, and cart-overlay in a <div class="design-system"> from base.html so the design-system styles also win on legacy layouts (products listings, item-reviews, page).
  • The cart-item template now wraps quantity-controls in .item-quantity to match list-item-cart-controls, so a single widget rule covers both contexts.
  • Legacy cart.scss is reduced to the inline list-item widgets (still needed by layouts not yet wrapped in .design-system) plus the global dialog-scroll-lock rule that has to live outside the design-system scope.

Test plan

  • bun run build succeeds and emits scoped .design-system .cart-* / .quote-* rules in both bundle.css and design-system-bundle.css.
  • bun test passes (3047 unit + integration tests, design-system scoping check, copy-paste detection, lint, typecheck, build).
  • Open the cart on a legacy products listing page and on a design-system page; confirm the overlay header, items, totals, and Stripe button render correctly.
  • Add and remove items from a Stripe-mode cart; tweak quantities via the +/- buttons.
  • Step through the quote flow (/quote/, /checkout/) and verify the quote-cart, quote-checkout summary, and sticky quote-price aside still look right.

https://claude.ai/code/session_01MyGvKCdJGipPrBLSAm13V6


Generated by Claude Code

Cart-item-controls, the cart-overlay dialog, and the quote-cart blocks
were all styled in the legacy src/css/cart.scss with raw values
(0.75rem, 1.5rem, etc.) instead of design-system tokens. Move the
cart-overlay (and its cart-item, cart-item-info, cart-item-controls,
cart-checkout, etc.), the quote-cart family, and the quote-price
summary into new files under src/css/design-system/, scoped to
.design-system and using $space-*, $border-light, $radius-md, and
button-* mixins. Wrap the cart-icon, cart-overlay, and theme-switcher
includes in <div class="design-system"> from base.html so the
design-system styles also win on legacy layouts. The cart.html template
now wraps quantity-controls in .item-quantity for consistency with
list-item-cart-controls. Legacy cart.scss is reduced to the inline
list-item widgets (still needed by products listings and item-reviews
that are not yet wrapped in .design-system) plus the global
dialog-scroll-lock rule that has to stay outside the scope.

https://claude.ai/code/session_01MyGvKCdJGipPrBLSAm13V6
@stefan-burke stefan-burke added this pull request to the merge queue May 5, 2026
Merged via the queue into main with commit fc35fd7 May 5, 2026
3 checks passed
@stefan-burke stefan-burke deleted the claude/migrate-cart-design-system-iRRkd branch May 5, 2026 10:38
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.

2 participants