// The Kape — Collections / Product Detail / Craft / House / Appointments / Locate // Attaches each page component to window for the router in app.jsx. const { useState, useEffect, useMemo } = React; // ── Collections index ───────────────────────────────────────── function Collections({ navigate }) { const collections = window.COLLECTIONS; return (
Collections

The current edits.

Four chapters in rotation: a painterly print collaboration, autumn couture, resort tailoring, and a quiet Ramadan edit. Read each one in full, or fit them in the showroom.

{collections.map((c, i) => ( ))}
); } function CollectionRow({ c, i, navigate }) { const products = window.PRODUCTS.filter(p => p.collection === c.id); const isReverse = i % 2 === 1; return (
{c.name}
{c.eyebrow}

{c.name}

{c.blurb}

{products.length} pieces {`AED ${Math.min(...products.map(p => p.price)).toLocaleString()} — ${Math.max(...products.map(p => p.price)).toLocaleString()}`}
{ e.preventDefault(); navigate(`/collections/${c.id}`); }}> Read the collection
); } window.Collections = Collections; // ── Collection detail ───────────────────────────────────────── function CollectionDetail({ id, navigate }) { const c = window.COLLECTIONS.find(x => x.id === id); const all = window.PRODUCTS.filter(p => p.collection === id); const fabrics = useMemo(() => Array.from(new Set(all.map(p => p.fabric))), [id]); const [fabFilter, setFabFilter] = useState("All"); const filtered = fabFilter === "All" ? all : all.filter(p => p.fabric === fabFilter); if (!c) return

Collection not found.

; return (
{c.eyebrow}

{splitItalic(c.name)}

{c.blurb}

{fabrics.map(f => ( ))} Sort: Curatorial order
{filtered.map(p => )}
); } // Helper to split last word of a title and italicize it for editorial feel function splitItalic(title) { const parts = title.split(" "); if (parts.length < 2) return title; const last = parts.pop(); return <>{parts.join(" ") + " "}{last}; } window.CollectionDetail = CollectionDetail; // ── Product detail ──────────────────────────────────────────── function ProductDetail({ id, navigate }) { const p = window.PRODUCTS.find(x => x.id === id); const [size, setSize] = useState("M"); const [length, setLength] = useState("Standard (58\")"); const [activeImg, setActiveImg] = useState(0); if (!p) return

Piece not found.

; const collection = window.COLLECTIONS.find(c => c.id === p.collection); const related = window.PRODUCTS.filter(x => x.collection === p.collection && x.id !== p.id).slice(0, 4); const gallery = [p.img, ...related.slice(0, 3).map(r => r.img)]; const waMessage = encodeURIComponent(`Hi The Kape, I'd like to enquire about ${p.title} (${fmtAED(p.price)}).`); return (
{p.title}
{gallery.map((g, i) => ( ))}
{ e.preventDefault(); navigate("/collections"); }}>Collections {" / "} { e.preventDefault(); navigate(`/collections/${p.collection}`); }}>{collection?.name} {" / "} {p.title}

{p.title}

{p.family} family · {p.fabric} · {p.colorway}
{fmtAED(p.price)}

{p.collection === "louis-barthelemy" ? "Our exclusive collaboration with Louis Barthélemy unfolds in painterly prints, where palms, stars and stories drift across the cloth like memory." : p.collection === "aw-25" ? "An autumn kape in considered tailoring, finished by hand at our Dubai atelier. Made to drape; built to last." : p.collection === "resort-26" ? "Lightweight tailoring for travel between climates — wrap silhouette, soft shoulder, quiet finish." : "A quiet Ramadan piece — restrained ornament, devoted finish."}

Size Size guide
{["XS", "S", "M", "L", "XL"].map(s => ( ))}
Garment length
{["Petite (56\")", "Standard (58\")", "Tall (60\")"].map(l => ( ))}
Buy on thekape.com
Details, size & fit
  • Model height 167 cm, wearing size 0 — see size guide
  • Garment length: 58 inches (standard)
  • Matching sheila included
  • Main fabric: {p.fabric}
  • Dry clean
  • Made in UAE
Fabric & care

{p.fabric === "Silk" ? "A heavyweight silk, hand-finished to hold its weight. Dry clean only; store on a padded hanger; avoid direct sun." : p.fabric === "Velvet" ? "Crushed-pile velvet with a deep hand-feel. Dry clean only; steam, do not press." : p.fabric === "Cupro" ? "A cupro twill — fluid, breathable, gently lustrous. Dry clean; hang to settle." : `A ${p.fabric.toLowerCase()} woven for the season. Dry clean; hang to settle.`}

Shipping & returns

Complimentary delivery across the UAE. International shipping on request. Returns accepted within 7 days on unworn pieces; alterations and bespoke orders are final sale.

Need advice?

Call or WhatsApp +971 50 437 1111 — or book a private fitting at our Dubai Design District showroom.

{related.length > 0 && (
From the same chapter

More from {collection?.name}.

{ e.preventDefault(); navigate(`/collections/${p.collection}`); }}> See the whole collection →
{related.map(r => )}
)}
); } window.ProductDetail = ProductDetail; // ── Craft ───────────────────────────────────────────────────── function Craft({ navigate }) { return (
The Craft

A modern interpretation
of tailoring.

The Kape is a contemporary modest-fashion house. Our work is built on a modern interpretation of tailoring, luxury fabrics and treatments — with a playful use of digital prints and embroidery.

The Kape — Artha, jacquard kape
Ayala Sapphire embroidery
No. 01 — Tailoring

Cut, drape, finish.

Every Kape begins on the table. The silhouette is the first decision — wrap or unfastened, soft shoulder or structured, standard or tall. We make adjustments around the body, not against it.

Hand-finished seams, considered hems, hidden closures: tailoring you only notice when you wear it.

"Tailoring leads; ornament follows."

Aurelia jacquard
No. 02 — Luxury fabrics

Silk, velvet, cupro, jacquard.

We source quietly — heavyweight silk that holds its weight, crushed-pile velvet, cupro for fluidity, jacquard and brocade for Ramadan, denim and linen for resort.

Cloth is auditioned in the showroom before it ever makes it onto a Kape. If it does not behave on the body, it does not make the season.

Nara digital print
No. 03 — Digital prints

Artworks, translated to cloth.

For Resort 26 we worked with French illustrator Louis Barthélemy on the Nara family — palms, stars, oases — printed across silk, velvet and cupro at scale.

Each colourway is its own painting: Jader, Iris, Amber, Tiffany, Rouge.

Hand embroidery — Rosalie
No. 04 — Embroidery

Hand-beaded, restrained.

Hand-beaded panels are placed where the eye wants to rest — yoke, cuff, hem. We work with embroiderers who have spent a lifetime on the technique, and we set their work against quiet ground cloth.

Ornament that earns its place; nothing applied for the sake of applying.

The atelier

See the work in person.

Book a private fitting at our Dubai Design District showroom. Our team will walk you through the season and tailor a Kape to your measurements.

{ e.preventDefault(); navigate("/appointments"); }}> Book a fitting WhatsApp
DUBAI DESIGN DISTRICT
); } window.Craft = Craft; // ── The House ───────────────────────────────────────────────── function House({ navigate }) { return (
The House

A modest-fashion house,
in Dubai.

The Kape is the work of a team of experts from diverse backgrounds with a shared vision: to present traditional modest wear, especially the abaya, with a contemporary look — preserving its traditional form with a modern touch.

Faye Parisian — denim kape

The Boutique

Our Dubai Design District boutique is built in travertine stone, epoxy resin and prefabricated cement panels — a quiet shell for the work.

The interior won a German Design Award for Retail Architecture, recognised as an interior-architecture project by SUPERFUTUREDESIGN*.

As recognised by SUPERFUTUREDESIGN*, Architonic, Commercial Interior Design
Notable moments

A short
history.

d3

Boutique opens at Dubai Design District

A travertine-and-resin boutique in Building 7, Showroom A208.

— Press

German Design Award — Retail Architecture

Recognised for the boutique interior. An architecture award for the space, not a garment award.

AW 25

Couture embroidery in moss, sapphire, midnight

Hand-beaded panels on linen, silk and denim — read like ornament on architecture.

R26

The Kape × Louis Barthélemy

A painterly print collaboration across silk, velvet and cupro — Nara, in five colourways.

Founders & team

Our work is the work of a team. Design press attributes the founding direction of The Kape to Hanadi al Hawi; on the record, the brand speaks of a team of experts with a shared vision.

We collaborate openly — with the embroiderers we work with, with print artists like Louis Barthélemy, and with the architects who built our boutique.

Founder attribution as identified by design press
Elaris
Visit

By appointment only.

The showroom runs by appointment so we can give each visit the time it deserves. Book a slot or message us on WhatsApp.

{ e.preventDefault(); navigate("/appointments"); }}>Book a visit { e.preventDefault(); navigate("/locate-us"); }}>Locate us
DUBAI DESIGN DISTRICT
); } window.House = House; // ── Appointments ────────────────────────────────────────────── function Appointments({ navigate }) { const [step, setStep] = useState("form"); // "form" | "done" const [form, setForm] = useState({ name: "", phone: "", email: "", date: "", slot: "", piece: "", visit: "Fitting", notes: "", }); const slots = ["11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00"]; const today = new Date(); const minDate = today.toISOString().slice(0,10); const setField = (k, v) => setForm(f => ({...f, [k]: v})); const valid = form.name && form.phone && form.date && form.slot; const submit = (e) => { e.preventDefault(); if (!valid) return; setStep("done"); window.scrollTo({ top: 0, behavior: "smooth" }); }; const waLink = `https://wa.me/971504371111?text=${encodeURIComponent( `Hi The Kape, I'd like to book an appointment.\n\nName: ${form.name}\nPhone: ${form.phone}\nDate: ${form.date} at ${form.slot}\nVisit type: ${form.visit}\nPiece of interest: ${form.piece || "—"}\nNotes: ${form.notes || "—"}` )}`; return (
Appointments

Book a private fitting.

Our Dubai Design District showroom runs by appointment. Choose a date and time below — we'll confirm by phone or WhatsApp within a few hours.

{step === "form" ? (

Reserve a slot

Required fields are marked. We'll never share your details.

setField("name", e.target.value)} placeholder="Your name" required />
setField("phone", e.target.value)} placeholder="+971 …" required />
setField("email", e.target.value)} placeholder="optional" />
setField("date", e.target.value)} min={minDate} required />
{slots.map(s => ( ))}

We'll confirm by phone or WhatsApp within a few hours. Prefer to message? Open WhatsApp.

) : (

Your slot is reserved.

Thank you, {form.name.split(" ")[0]}. We'll be in touch within a few hours to confirm — most often by WhatsApp on the number you provided.

Name{form.name}
Phone{form.phone}
Date{form.date} at {form.slot}
Visit{form.visit}
Piece{form.piece || "Open"}
Message us on WhatsApp
)}
); } window.Appointments = Appointments; // ── Locate Us ───────────────────────────────────────────────── function Locate({ navigate }) { return (
Locate Us

Showroom A208,
Building 7.

Our boutique sits in Dubai Design District. By appointment, six days a week — please reach out before you visit.

Dubai Design District

Address

Showroom A208, Building 7
Dubai Design District
Dubai, United Arab Emirates

Phone

+971 50 437 1111 (mobile · WhatsApp)
+971 4 276 3333 (landline)

Hours

By appointment, six days a week. Please book a slot below or message us on WhatsApp.

Follow

Instagram · Facebook

{ e.preventDefault(); navigate("/appointments"); }}>Book appointment WhatsApp
); } window.Locate = Locate;