Design Language System

Product Discovery Module · 2026

Token-synced (2026-03-05) · Heading + filter buttons (left) · 3-card paginated carousel (right) · 3 filter categories · Responsive: Desktop / Tablet / Mobile

Token Sync

Token Changes

Values corrected from updated Primitives.json + Semantic.json. 3 primitive values updated.

TokenOldNewNote
--color-blue-700#245090#255090Hover state (Blue-Brand 1/Blue-700)
--color-neutral-300#C4C4C4#C5C5C5Disabled bg / arrow border
--color-success#248832#24882DFeedback/success (Green-900)
--btn-solid-hover#245090#255090Button hover (inherits Blue-700)

Design Tokens

Token Reference

All values sourced from Primitives.json + Semantic.json. Component uses 3-layer token architecture: Primitives → Semantic → Component (--pd-*).

PropertyCSS TokenValueNotes
Section heading--pd-heading-* → Typography/H2_60020px / 26px / 600 / #142D51Uses H2 size + semibold + blue-900
Body text--pd-subtext-* → Typography/Body_S_40014px / 20px / 400 / #4A4A4ABody small, secondary color
Filter button height--pd-filter-height → Buttons/Height/Medium48pxSame as DLS button md height
Filter active bg--pd-filter-bg-active → Buttons/Solid/Default#142D51Blue-900 (navy)
Filter idle border--pd-filter-border-idle → Buttons/Outline/Default#142D51Blue-900
Filter hover bg--pd-filter-bg-hover → Color/Blue-100#E4EAF4Light blue fill on hover
Filter button font--pd-filter-font-* → Buttons/Font16px / 500 / 0.02emMedium weight, capitalize
Grid layout--pd-grid-* (grid-cols-3)1fr 2frTwo-column: text left, carousel right
Grid gap (tablet)--pd-grid-gap-tablet → Scale/60024pxColumn gap at tablet
Grid gap (desktop)--pd-grid-gap-desktop → Scale/90040pxColumn gap at desktop
Card grid cols3 columns (fixed)repeat(3, 1fr)Always 3 cards per page
Card grid gap (mobile)--pd-card-gap-mobile → Scale/2008pxTight gap on mobile
Card grid gap (tablet)--pd-card-gap-tablet → Scale/40016pxMedium gap on tablet
Card grid gap (desktop)--pd-card-gap-desktop → Scale/50020pxWider gap on desktop
Carousel slide--pd-transition-slide300ms ease-in-outtranslateX pagination
Filter fade--pd-transition-fade250msCards fade out → swap → fade in
Arrow button size--pd-arrow-size → Scale/90040pxCircular navigation button
Arrow bg/border--pd-arrow-bg / --pd-arrow-border#FFF / #C5C5C5White bg, neutral-300 border
Accent: New Arrivals--pd-accent-new-arrivals → Blue-900#142D51Navy bar on placeholder
Accent: Wrinkle-Free--pd-accent-wrinkle-free#2C1810Dark brown bar on placeholder
Accent: Performance--pd-accent-performance → Brand/Logo#8E2231Maroon bar on placeholder

Responsive Behaviour

Mobile < 640 px

  • · Single column layout
  • · Heading + buttons stacked above carousel
  • · 3-card grid per page, --pd-card-gap-mobile: 8px
  • · Arrows inset at --pd-arrow-offset-mobile
  • · Filter buttons: full-width

Tablet 640–1023 px

  • · Two-column grid (1fr 2fr)
  • · Left: heading + filters
  • · Right: 3-card paginated carousel
  • · Card gap: --pd-card-gap-tablet: 16px
  • · Column gap: --pd-grid-gap-tablet: 24px

Desktop ≥ 1024 px

  • · Same two-column grid, wider gaps
  • · Card gap: --pd-card-gap-desktop: 20px
  • · Column gap: --pd-grid-gap-desktop: 40px
  • · Arrows at -pd-arrow-offset-desktop
  • · ProductCard Quick Shop visible on hover

Filter Categories

--pd-accent-new-arrivalsNew Arrivals#142D51
--pd-accent-wrinkle-freeWrinkle-Free Collection#2C1810
--pd-accent-performancePerformance Collection#8E2231

Carousel behaviour

Cards per page3
Total products6 per filter (2 pages)
Slide animation300ms ease-in-out translateX
Filter transition250ms fade out → swap → fade in
Left arrowVisible when page > 0
Right arrowVisible when page < last

Interaction States

Filter defaultborder-blue-900, text-blue-900, transparent bg
Filter hoverbg-blue-100 (idle only)
Filter activebg-blue-900, text-white, border-blue-900
Arrow hovershadow-md (elevated)
Arrow disabledopacity-50, cursor-not-allowed

Breakpoint Preview

Desktop

≥ 1024 px · Two-Column Grid

Two-column layout (1fr 2fr) with wider gap-10. Carousel arrows positioned at -left-5 / -right-5. Click filter buttons to see fade transition. Click arrows to paginate.

Interactive — click filters to switch categories · click arrows to paginate

Discover New Favorites

Try our bestselling shirts, new arrivals, and more to find your new look.


Tablet

640–1023 px · Two-Column Grid

Same two-column layout with tighter gap-6. Card grid uses gap-4.

Interactive — 720 px container

Discover New Favorites

Try our bestselling shirts, new arrivals, and more to find your new look.


Mobile

< 640 px · Single Column

Single-column stacked layout. Heading and filter buttons above, carousel below. Card grid uses gap-2.

Interactive — 375 px container

Discover New Favorites

Try our bestselling shirts, new arrivals, and more to find your new look.


Comparison

All 3 Breakpoints — Side by Side

Each instance is fully interactive. Click filters and arrows independently.

Desktop · 1024 px

Discover New Favorites

Try our bestselling shirts, new arrivals, and more to find your new look.

Tablet · 720 px

Discover New Favorites

Try our bestselling shirts, new arrivals, and more to find your new look.

Mobile · 375 px

Discover New Favorites

Try our bestselling shirts, new arrivals, and more to find your new look.