# Vibn Marketplace A small extension to **vibn-ai-templates** for building two-sided marketplaces. Ships with a fully composed example brand — Atlas — and a set of marketplace-specific components. ## What's in it - **`marketplace-tokens.css`** — A new `theme-atlas` (warm-editorial, Airbnb school) plus marketplace-specific tokens (`--listing-radius`, `--rating`, `--map-pin`, etc.). Stacks on top of the base `tokens.css`. - **`marketplace-components.jsx`** — Components you need for marketplace UX, none of which exist in the base library: - **Listings** · `ListingCard`, `ListingCardHorizontal`, `PhotoGallery`, `PhotoSlot` - **Reviews & trust** · `RatingStars`, `ReviewCard`, `RatingsSummary`, `TrustBadge` (verified, superhost, instant, top-rated, new) - **Pricing** · `PriceTag`, `PriceBreakdown` (receipt with discounts) - **Host/profile** · `HostHeader` with KPI strip - **Messaging** · `MessageBubble` - **Search & discovery** · `SearchBar` (destination + dates + guests), `CategoryRail`, `FilterChips`, `AmenityChip` - **Map & calendar** · `MiniMap` (stylized SVG with price pins), `CalendarMonth`, `AvailabilityHeatmap` - **Dashboard** · `StatTile` - **`marketplace-shells.jsx`** — Two layout shells: - `MarketplaceTopShell` — public-facing top nav with inline search, host-mode toggle, big footer - `MarketplaceDashboardShell` — sidebar with Guest/Host segmented toggle (the canonical two-sided marketplace pattern) ## Architecture Marketplace components depend on the base library (`vibn-ai-templates`). Load order: ```html ``` Wrap your app in `class="theme-atlas"` and you're done. ## Atlas — the worked example `Atlas Marketplace Templates.html` is a full 8-page sample marketplace using only these primitives. Pages cover the full lifecycle: | # | Page | What it demonstrates | |---|---|---| | 01 | Home / discovery | Hero, inline search bar, category rail, featured grid, cities, how-it-works | | 02 | Search + map | Split list/map layout, filter chips, sort, horizontal listing cards | | 03 | Listing detail | Photo gallery, summary, amenities, dual-month calendar, ratings summary, reviews, host header, sticky booking card with price breakdown | | 04 | Checkout | Payment, message-to-host, ground rules, sticky summary | | 05 | Guest dashboard | Hero upcoming-trip card, past trips, wishlist | | 06 | Messages | Inbox + thread + trip context card + composer | | 07 | Host dashboard | KPI strip, earnings bar chart, upcoming check-ins, availability heatmap, recent reviews | | 08 | New listing wizard | Step 3/6 — photos, title, description with live preview card | ## What's still hand-written `atlas-pages.jsx` is page-specific composition — these are *templates*, not reusable components. They show how to assemble the kit. Use them as starting points and rip out anything you don't need. ## Marketplace adaptation To pivot the kit to a different marketplace type: - **Services (Upwork/Fiverr)** — Swap `PhotoGallery` for a portfolio grid, `PriceTag` for hourly-rate ranges, `CalendarMonth` for availability slots. The `HostHeader` and `MessageBubble` work as-is. - **Goods (Etsy)** — Add a quantity/variant selector. The listing card is already photo-led; just adjust subtitle to surface seller name and shipping. - **On-demand (delivery, rides)** — Drop the calendar; replace with a live map. `TrustBadge` already has variants you can rename. The dashboard shell is built for two-sided role switching. The CSS variable approach means you can also restyle the marketplace to feel utilitarian (e.g. swap `theme-atlas` for `theme-minimal` or `theme-dark`) without changing a single component.