$ cat ./design-md/e-commerce-minimal/metadata.yaml
E-Commerce Minimal
A product-first, conversion-focused e-commerce design system with sharp geometry, restrained monochrome palettes, and clear purchase flows for storefronts and PDPs.
Author
Tags
ecommerceminimalstorefrontproduct-detail-pagecheckoutconversion
Live Preview
Tokens: COLOR
Items: 14
primary
Hex: #1A1A1A
primary hover
Hex: #333333
background
Hex: #FFFFFF
background warm
Hex: #F8F7F4
surface
Hex: #FFFFFF
border
Hex: #E8E8E8
border light
Hex: #F0F0F0
text primary
Hex: #1A1A1A
text secondary
Hex: #666666
text muted
Hex: #999999
success
Hex: #2E7D32
error
Hex: #C62828
sale
Hex: #C62828
warning
Hex: #E65100
Tokens: SPACING
Items: 17
base
4px
space-1
4px
space-2
8px
space-3
12px
space-4
16px
space-6
24px
space-8
32px
space-10
40px
space-12
48px
space-16
64px
space-20
80px
gutter
24px
page-margin-desktop
48px
page-margin-tablet
24px
page-margin-mobile
16px
max-content-width
1440px
max-product-grid-width
1200px
Tokens: ROUNDED
Items: 2
none
0px
full
9999px
Tokens: TYPOGRAPHY
Items: 10
display
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 40px
Weight: 500
Letter Spacing: -0.5px
h1
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 28px
Weight: 500
Letter Spacing: -0.3px
h2
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 22px
Weight: 500
Letter Spacing: -0.2px
h3
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 16px
Weight: 500
Letter Spacing: 0px
price lg
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 24px
Weight: 600
Letter Spacing: 0px
price md
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 16px
Weight: 500
Letter Spacing: 0px
body
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 15px
Weight: 400
Letter Spacing: 0px
small
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 13px
Weight: 400
Letter Spacing: 0px
caption
The quick brown fox jumps over the lazy dog
Family: Satoshi, DM Sans, -apple-system, sans-serif
Size: 11px
Weight: 500
Letter Spacing: 1px
mono
The quick brown fox jumps over the lazy dog
Family: JetBrains Mono, monospace
Size: 13px
Weight: 400
Letter Spacing: 0px
Tailwind v3 Config
{
"theme": {
"extend": {
"colors": {
"primary": "#1a1a1a",
"primary-hover": "#333333",
"background": "#ffffff",
"background-warm": "#f8f7f4",
"surface": "#ffffff",
"border": "#e8e8e8",
"border-light": "#f0f0f0",
"text-primary": "#1a1a1a",
"text-secondary": "#666666",
"text-muted": "#999999",
"success": "#2e7d32",
"error": "#c62828",
"sale": "#c62828",
"warning": "#e65100"
},
"fontFamily": {
"display": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"h1": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"h2": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"h3": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"price-lg": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"price-md": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"body": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"small": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"caption": [
"Satoshi, DM Sans, -apple-system, sans-serif"
],
"mono": [
"JetBrains Mono, monospace"
]
},
"fontSize": {
"display": [
"40px",
{
"letterSpacing": "-0.5px",
"fontWeight": "500"
}
],
"h1": [
"28px",
{
"letterSpacing": "-0.3px",
"fontWeight": "500"
}
],
"h2": [
"22px",
{
"letterSpacing": "-0.2px",
"fontWeight": "500"
}
],
"h3": [
"16px",
{
"letterSpacing": "0px",
"fontWeight": "500"
}
],
"price-lg": [
"24px",
{
"letterSpacing": "0px",
"fontWeight": "600"
}
],
"price-md": [
"16px",
{
"letterSpacing": "0px",
"fontWeight": "500"
}
],
"body": [
"15px",
{
"letterSpacing": "0px",
"fontWeight": "400"
}
],
"small": [
"13px",
{
"letterSpacing": "0px",
"fontWeight": "400"
}
],
"caption": [
"11px",
{
"letterSpacing": "1px",
"fontWeight": "500"
}
],
"mono": [
"13px",
{
"letterSpacing": "0px",
"fontWeight": "400"
}
]
},
"borderRadius": {
"none": "0px",
"full": "9999px"
},
"spacing": {
"base": "4px",
"space-1": "4px",
"space-2": "8px",
"space-3": "12px",
"space-4": "16px",
"space-6": "24px",
"space-8": "32px",
"space-10": "40px",
"space-12": "48px",
"space-16": "64px",
"space-20": "80px",
"gutter": "24px",
"page-margin-desktop": "48px",
"page-margin-tablet": "24px",
"page-margin-mobile": "16px",
"max-content-width": "1440px",
"max-product-grid-width": "1200px"
}
}
}
}
Tailwind v4 @theme
// No content available
DESIGN.md
---
version: alpha
name: E-Commerce Minimal
description: A product-first e-commerce design system for storefronts, PDPs, and checkout flows with sharp geometry, restrained color, and conversion-focused clarity.
colors:
primary: "#1A1A1A"
primary-hover: "#333333"
background: "#FFFFFF"
background-warm: "#F8F7F4"
surface: "#FFFFFF"
border: "#E8E8E8"
border-light: "#F0F0F0"
text-primary: "#1A1A1A"
text-secondary: "#666666"
text-muted: "#999999"
success: "#2E7D32"
error: "#C62828"
sale: "#C62828"
warning: "#E65100"
typography:
display:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 40px
fontWeight: 500
lineHeight: 1.15
letterSpacing: -0.5px
h1:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 28px
fontWeight: 500
lineHeight: 1.2
letterSpacing: -0.3px
h2:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 22px
fontWeight: 500
lineHeight: 1.25
letterSpacing: -0.2px
h3:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 16px
fontWeight: 500
lineHeight: 1.35
letterSpacing: 0px
price-lg:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 24px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
price-md:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 16px
fontWeight: 500
lineHeight: 1.3
letterSpacing: 0px
body:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 15px
fontWeight: 400
lineHeight: 1.65
letterSpacing: 0px
small:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 13px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
caption:
fontFamily: Satoshi, DM Sans, -apple-system, sans-serif
fontSize: 11px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 1px
mono:
fontFamily: JetBrains Mono, monospace
fontSize: 13px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
rounded:
none: 0px
full: 9999px
spacing:
base: 4px
space-1: 4px
space-2: 8px
space-3: 12px
space-4: 16px
space-6: 24px
space-8: 32px
space-10: 40px
space-12: 48px
space-16: 64px
space-20: 80px
gutter: 24px
page-margin-desktop: 48px
page-margin-tablet: 24px
page-margin-mobile: 16px
max-content-width: 1440px
max-product-grid-width: 1200px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.background}"
typography: "{typography.caption}"
rounded: "{rounded.none}"
padding: 16px 32px
height: 52px
width: 100%
button-primary-hover:
backgroundColor: "{colors.primary-hover}"
button-primary-active:
backgroundColor: "#000000"
button-primary-disabled:
backgroundColor: "{colors.border}"
textColor: "{colors.text-muted}"
button-secondary:
backgroundColor: transparent
textColor: "{colors.text-primary}"
rounded: "{rounded.none}"
borderColor: "{colors.border}"
height: 52px
button-link:
backgroundColor: transparent
textColor: "{colors.text-primary}"
typography: "{typography.small}"
product-card:
backgroundColor: "{colors.surface}"
textColor: "{colors.text-primary}"
rounded: "{rounded.none}"
padding: 0px
product-image-frame:
backgroundColor: "{colors.background-warm}"
rounded: "{rounded.none}"
size-pill:
backgroundColor: "{colors.background}"
textColor: "{colors.text-primary}"
rounded: "{rounded.none}"
borderColor: "{colors.border}"
height: 40px
padding: 0 16px
size-pill-selected:
backgroundColor: "{colors.primary}"
textColor: "{colors.background}"
cart-flyout:
backgroundColor: "{colors.surface}"
width: 420px
cart-divider:
backgroundColor: "{colors.border-light}"
---
## Brand & Style
The product is the hero and the interface is the stage. This system is built for direct-to-consumer storefronts, product detail pages, and checkout flows where clarity and trust drive conversion better than urgency patterns.
The visual personality is clean, premium, and product-forward. Product photography carries the emotional tone while UI chrome stays restrained: sharp corners, minimal decoration, near-monochrome palette, and direct microcopy.
## Colors
The palette is intentionally narrow: black, white, warm off-white, and restrained grays.
- Primary black (`#1A1A1A`) drives critical actions, key text, and high-priority emphasis.
- Warm neutral (`#F8F7F4`) supports product image framing and alternating section backgrounds.
- Sale red (`#C62828`) is the single high-attention accent and should be reserved for discount pricing and sale badges.
- Semantic success (`#2E7D32`), warning (`#E65100`), and error (`#C62828`) communicate status without introducing extra decorative color systems.
## Typography
Typography uses a single sans-serif family for most UI (`Satoshi` with `DM Sans` and system fallbacks) to keep rhythm consistent and visual noise low. `JetBrains Mono` is reserved for technical identifiers such as order numbers and SKUs.
- Medium weight (`500`) is the dominant display weight.
- Body remains regular (`400`) with generous line-height for readability.
- Prices use stronger emphasis (`600`) without relying on oversized treatment everywhere.
- Product names remain sentence case, and labels use subtle uppercase styling only where needed (for example badges and nav labels).
## Layout & Spacing
The layout model is a fixed max-width commerce grid with responsive column behavior:
- Product grid: 4 columns desktop, 3 tablet, 2 mobile.
- Product detail page: 2-column desktop split (55/45), stacked on mobile.
- Cart: right flyout on desktop, full-screen panel on mobile.
Spacing follows a strict 4px-derived scale to maintain consistency across product cards, selectors, navigation, and checkout surfaces. Page margins are `48px` desktop, `24px` tablet, and `16px` mobile.
## Elevation & Depth
Depth is intentionally restrained. Most surfaces are flat, and hierarchy is created through spacing, typography, and tonal contrast rather than heavy shadow stacks.
- None: default for cards, product tiles, and primary page surfaces.
- SM (`0 2px 8px rgba(0,0,0,0.06)`): dropdowns and lightweight overlays.
- MD (`0 4px 24px rgba(0,0,0,0.08)`): cart flyout and lightbox contexts.
Product images should create perceived depth through photography itself, not interface ornamentation.
## Shapes
The shape language is sharp and architectural:
- Buttons, cards, image frames, selectors, and inputs use `0px` corner radius.
- Circular affordances (for example color swatches and counters) can use fully rounded treatment where the object itself is semantically circular.
This all-sharp rule is a core brand signature and should remain consistent across states and breakpoints.
## Components
### Buttons
Primary actions (especially "Add to Bag" and cart checkout) are full-width, high-contrast, and fixed-height (`52px`) with uppercase caption styling. Secondary actions use transparent backgrounds with subtle borders. Disabled states must reduce contrast clearly and never masquerade as available actions.
### Product Cards and Grid
Cards are structurally simple: image first, details second. No card shadow, border, or decorative framing. Product imagery sits on warm neutral backgrounds with consistent `3:4` ratio and internal breathing room. Entire cards are clickable to support fast browse-to-detail flow.
### Product Detail Patterns
PDP structure prioritizes decision readiness above the fold: category label, name, price, variant selectors, and primary CTA remain visible without unnecessary scrolling. Supporting details (materials, care, shipping, sizing) belong in lightweight accordion sections.
### Variant Selectors
Size uses horizontal sharp pills (`40px` height) with high-contrast selected state. Color selectors use circular swatches with a clear selected ring and explicit text/tooltips for accessible color naming.
### Cart Flyout
Cart flyout uses a right-aligned panel (`420px` desktop) with clear line-item hierarchy: image, product metadata, quantity controls, remove action, subtotal, and sticky full-width checkout button. Use subtle separators and avoid promotional clutter.
### Navigation
Navigation is centered-logo with split left/right groups, uppercase utility labels, and restrained interaction states. On mobile, simplify to hamburger-left, logo-center, bag-right. Sticky state may introduce a bottom border for scannability.
## Do's and Don'ts
### Do
- Let product photography dominate pages.
- Keep pricing transparent and immediately visible.
- Maintain consistent product image ratio (`3:4`) and warm-neutral framing.
- Preserve sharp-corner geometry across core UI elements.
- Support robust keyboard focus, descriptive alt text, and WCAG AA contrast.
### Don't
- Don't use urgency dark patterns (fake timers, manipulative counters).
- Don't introduce decorative badges or loud promotional chrome.
- Don't round buttons/cards/images in this system.
- Don't hide price or total cost until late checkout steps.
- Don't use carousel-heavy browsing patterns in place of scannable product grids.