Live preview
Use this system
Three ways to drop Bazaar into your workflow.
Save the file for your tool — your agent then generates UI in Bazaar, automatically.
CLAUDE.mdRepo root — Claude Code reads it automatically.
.cursor/rules/bazaar.mdcProject rule — applied to every generation.
.windsurfrulesRepo root — Cascade reads it automatically.
.github/copilot-instructions.mdRepo-wide custom instructions for Copilot.
The system
Brand & Voice
Bazaar turns browsing into buying with warmth, not pressure. A coral primary makes "Add to cart" impossible to miss; rounded shapes and a bouncy easing make the whole store feel hospitable and a little playful.
Layout & Grid
Product grids with large imagery, clear price hierarchy, and sticky add-to-cart
on mobile. Promotions use color.secondary sparingly so the primary CTA wins.
Components
Buttons
Big, rounded color.brand.primary buttons with confident labels and a lift on
hover via shadow.md.
Product Cards
Image-forward cards on color.surface.raised; badges use state colors with text
so a "Sale" never reads as color alone.
Accessibility
Primary and muted text both pass WCAG AA on warm surfaces. Tap targets are large, the focus ring is high-contrast, and price/discount changes are announced.
Tokens
Color (14)
Tokens
Export
One source of truth, five formats — copy or download any of them.
---$schema: https://designmd.in/schema/v1.jsonid: bazaarname: Bazaartitle: Bazaar — Warm Conversion Commerceversion: 1.0.0category: ecommercetags: [ecommerce, warm, coral, conversion, retail]author: designmdlicense: CC-BY-4.0updatedAt: 2026-06-22colorMode: [light]tokens: color: brand: primary: { value: "oklch(0.62 0.19 35)", type: color } secondary: { value: "oklch(0.72 0.14 70)", type: color } onBrand: { value: "oklch(0.99 0 0)", type: color } text: primary: { value: "oklch(0.26 0.03 40)", type: color } muted: { value: "oklch(0.48 0.03 40)", type: color } link: { value: "{color.brand.primary}", type: color } surface: base: { value: "oklch(0.99 0.005 60)", type: color } raised: { value: "oklch(1 0 0)", type: color } sunken: { value: "oklch(0.965 0.01 60)", type: color } border: default: { value: "oklch(0.9 0.012 60)", type: color } state: success: { value: "oklch(0.58 0.14 150)", type: color } danger: { value: "oklch(0.56 0.2 25)", type: color } warning: { value: "oklch(0.72 0.15 75)", type: color } info: { value: "oklch(0.6 0.13 250)", type: color } typography: family: sans: { value: "Plus Jakarta Sans, system-ui, sans-serif", type: fontFamily } mono: { value: "ui-monospace, monospace", type: fontFamily } scale: sm: { value: "0.875rem", type: dimension } base: { value: "1rem", type: dimension } lg: { value: "1.25rem", type: dimension } xl: { value: "1.65rem", type: dimension } "2xl": { value: "2.25rem", type: dimension } "3xl": { value: "3.1rem", type: dimension } weight: regular: { value: 400, type: fontWeight } bold: { value: 700, type: fontWeight } leading: tight: { value: 1.12, type: number } normal: { value: 1.55, type: number } spacing: base: { value: "0.25rem", type: dimension } radius: sm: { value: "0.5rem", type: dimension } md: { value: "0.875rem", type: dimension } lg: { value: "1.25rem", type: dimension } full: { value: "9999px", type: dimension } shadow: sm: { value: "0 1px 3px oklch(0.26 0.03 40 / 0.08)", type: shadow } md: { value: "0 8px 24px oklch(0.26 0.03 40 / 0.12)", type: shadow } motion: duration: base: { value: "200ms", type: duration } easing: standard: { value: "cubic-bezier(0.34, 1.2, 0.64, 1)", type: cubicBezier } breakpoint: md: { value: "768px", type: dimension } iconography: style: { value: "2px stroke, rounded, friendly", type: descriptor } zIndex: dropdown: { value: 1000, type: number } modal: { value: 1300, type: number }---# Bazaar Design System## Brand & VoiceBazaar turns browsing into buying with warmth, not pressure. A coral primarymakes "Add to cart" impossible to miss; rounded shapes and a bouncy easing makethe whole store feel hospitable and a little playful.## Layout & GridProduct grids with large imagery, clear price hierarchy, and sticky add-to-carton mobile. Promotions use `color.secondary` sparingly so the primary CTA wins.## Components### ButtonsBig, rounded `color.brand.primary` buttons with confident labels and a lift onhover via `shadow.md`.### Product CardsImage-forward cards on `color.surface.raised`; badges use state colors with textso a "Sale" never reads as color alone.## AccessibilityPrimary and muted text both pass WCAG AA on warm surfaces. Tap targets are large,the focus ring is high-contrast, and price/discount changes are announced.