Docs

Build in the light.

Lumo is a copy-paste registry of e-commerce components. Install a block, own the code, theme the glow.

Installation

Add any block straight into your repo with the shadcn CLI. Dependencies come with it.

npx shadcn add product-card
npx shadcn add cart-drawer
  1. 1
    Run shadcn init
    Set up components.json and the cn utility in your project.
  2. 2
    Add a Lumo block
    The source and its dependencies land in your repo.
  3. 3
    Wire your data
    Map your backend onto the normalized model and ship.

Configuration

Point Tailwind at the source, then tune the theme tokens.

tailwind.config.ts
export default {
  content: [
    './app/**/*.{ts,tsx}',
    './components/**/*.{ts,tsx}',
  ],
}
globals.css
:root {
  --background: 48 100% 98%;
  --foreground: 44 29% 18%;
  --primary: 39 100% 56%;
  --radius: 1rem;
}

Basic usage

Import the block you installed and compose it.

app/page.tsx
import { ProductCard } from '@/components/lumo/product-card'

export function App({ product }) {
  return (
    <ProductCard
      product={product}
      onAddToCart={(p, variant) => addLine(p, variant)}
    />
  )
}

Why Lumo

TypeScript first

Full type safety and editor IntelliSense.

Accessible

WCAG 2.1 AA, keyboard and ARIA built in.

Light by design

A warm theme driven by CSS variables.

Customizable

Theme every token, edit the source freely.

Tree-shakeable

Ship only the blocks you install.

Headless

Bring any backend, one normalized model.

Drop your first component.