Home
Magazine hero, collection mosaic, new-in rail, shoppable lookbook, values, reviews and newsletter.
src/pages/index.astro 1 GitHub star = 1 new component. We’re at stars — help us unlock the next one.
Star the repoA magazine-style store for fashion and objects: serif type, square corners, a dedicated bag page.
Forma Studio is the second e-commerce template and deliberately different from the first: an editorial layout with oversized serif headlines, a terracotta accent, thin rules and numbered indexes. Shoppers browse with a horizontal filter bar, add sizes straight from the grid, see a shoppable lookbook and review everything on a full bag page before a split-screen checkout. Every block is a section in the library, so you can drop the header, hero, product rail or lookbook into any site — in light or dark mode.
Every page is a real, interactive preview — the cart is shared between them.
Magazine hero, collection mosaic, new-in rail, shoppable lookbook, values, reviews and newsletter.
src/pages/index.astro Category hero, sticky filter bar with refine panel and an editorial grid with quick add.
src/pages/shop.astro Stacked images, sticky info with colour and size, stock notice, care notes and "Complete the look".
src/pages/product/[slug].astro Full bag page with quantities, gift note, free-shipping progress and summary.
src/pages/bag.astro Split-screen checkout with the form on paper and a tinted order-summary panel.
src/pages/checkout.astro npm install astro-component-kit npm install astro-component-kit src/pages/index.astro
---
import { EditorialHomePage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialHomePage theme="light" /> ---
import { EditorialHomePage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialHomePage theme="light" /> src/pages/shop.astro
---
import { EditorialShopPage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialShopPage /> ---
import { EditorialShopPage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialShopPage /> src/pages/product/[slug].astro
---
import { EditorialProductPage, formaStore } from 'astro-component-kit/templates/ecommerce-editorial';
export function getStaticPaths() {
return formaStore.products.map((p) => ({ params: { slug: p.slug } }));
}
---
<EditorialProductPage slug={Astro.params.slug} /> ---
import { EditorialProductPage, formaStore } from 'astro-component-kit/templates/ecommerce-editorial';
export function getStaticPaths() {
return formaStore.products.map((p) => ({ params: { slug: p.slug } }));
}
---
<EditorialProductPage slug={Astro.params.slug} /> src/pages/bag.astro
---
import { EditorialBagPage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialBagPage /> ---
import { EditorialBagPage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialBagPage /> src/pages/checkout.astro
---
import { EditorialCheckoutPage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialCheckoutPage /> ---
import { EditorialCheckoutPage } from 'astro-component-kit/templates/ecommerce-editorial';
---
<EditorialCheckoutPage /> Spread the demo store and replace what you need. Products accept a real image or one of 16 built-in illustrations.
---
// src/pages/index.astro — same store + routes on every page
import { EditorialHomePage, formaStore, type EditorialStore } from 'astro-component-kit/templates/ecommerce-editorial';
const store: EditorialStore = {
...formaStore,
name: 'Atelier',
currency: 'USD',
locale: 'en-US',
cartKey: 'atelier-bag',
};
---
<EditorialHomePage
store={store}
theme="auto"
routes={{ home: '/', shop: '/shop/', product: '/product/', bag: '/bag/', checkout: '/checkout/' }}
/> ---
// src/pages/index.astro — same store + routes on every page
import { EditorialHomePage, formaStore, type EditorialStore } from 'astro-component-kit/templates/ecommerce-editorial';
const store: EditorialStore = {
...formaStore,
name: 'Atelier',
currency: 'USD',
locale: 'en-US',
cartKey: 'atelier-bag',
};
---
<EditorialHomePage
store={store}
theme="auto"
routes={{ home: '/', shop: '/shop/', product: '/product/', bag: '/bag/', checkout: '/checkout/' }}
/> Full-width blocks of this template, available in Sections. Open any of them to see it on its own page with code.
Editorial store header: announcement line, centred wordmark, mega menu with feature tile, theme toggle and live bag count.
Magazine-style shop hero with oversized serif headline, italic accent word, issue meta, feature image with caption and a running ticker.
Asymmetric collection grid with a tall feature tile, numbered tiles, item counts and underline links.
Scroll-snapping product carousel of minimal product cards with numbering, prev/next buttons and a progress line.
"Shop the look" image with numbered hotspots that open product cards with add-to-bag, mirrored by an accessible product list.
Brand promise band: oversized italic marquee followed by numbered value columns.
Large serif customer quotes, one at a time, with product context, numbered pager and overall score.
Oversized editorial sign-up with underline email field, consent note and inline validation.
Store footer with link columns, contact block, payment labels and a giant edge-to-edge wordmark.
Catalogue header with breadcrumb, oversized category title and count, intro, sub-category links and an image strip.
Built for this template and available on their own in the library.
Editorial product card: tall media that swaps view on hover, quick-add sizes, name, price and colour count.
Horizontal catalogue toolbar with category chips, a refine panel (price, colour, stock), sort and live count.
Full shopping-bag page: line items with quantity and remove, gift note, free-shipping progress and checkout summary.
Existing components the template is assembled from.