Deep, dark & mellow
A smooth, earthy cup with a soft, sweet finish. A place to start with darker tea.
- Earthy
- Honeyed
Tea and teaware from our Amsterdam tea house. Follow your curiosity. We’ll help with the names.
Explore the shelvesTouch something that catches your eye.

A smooth, earthy cup with a soft, sweet finish. A place to start with darker tea.

Warm, toasted flavours, a little floral fragrance and a lingering sweetness.
Wild Qizhong Oolong from Wuyishan
View original productTea sold by weight. Display glass not included.

A simple lidded bowl for small, repeated brews. Hold the lid slightly open when pouring.

A toasty tea with a fragrant, spicy edge. For people who enjoy warm, rounded flavours.
Lotus Peak Cinnamon Rougui Oolong
View original productTea sold by weight. Display glass not included.

A clear teapot that lets you watch the leaves open and the colour deepen.

An easy way into lighter tea: an airy leaf, a gentle cup and room to notice the details.
Zhenghe Bai Mu Dan
View original productTea sold by weight. Display glass not included.

A ready-to-give selection for comparing different teas. A starting point for two curious people.

Fragrant and rounded, with a fruity side. Try a little first and follow what you enjoy.
Floral–Fruity Rougui Rock Oolong
View original productTea sold by weight. Display glass not included.

Fuller, toasted flavours with a long finish. Try this when light teas leave you wanting more.
North Star Rock Oolong
View original productTea sold by weight. Display glass not included.

A compact pressed cake. Break off a little and explore the darker side of tea, one brew at a time.

A warm, rounded cup to stay with for a while. Start with a small amount and adjust to your taste.
Golden Buddha Big Red Robe Rock Oolong
View original productTea sold by weight. Display glass not included.

A fragrant direction to explore. Watch the tightly shaped leaves open as you brew.
Tie Guan Yin Gande Nong Xiang
View original productTea sold by weight. Display glass not included.

A small selection to open together, taste side by side and find a favourite.

A silky dark tea with woody notes and a little sweetness. A different route into earthy flavours.
MoyChay DISCOVERY · interactive reference · 0.6
One set of components, with the states exposed. Explore the interface here; return to the shelves at any time.
The same Product component, image and inspection layer used on the shelves.

Warm, toasted flavours, a little floral fragrance and a lingering sweetness.
Wild Qizhong Oolong from Wuyishan
View original productTea sold by weight. Display glass not included.
Inspecting never clones, translates or rescales the product. The border and information are an overlay. On phones the information opens in the next full-width grid track after its subject. A following item flows below the description; source order is preserved. The selected image itself is not repositioned. The original summary also provides a visible Close control, with no script required.
This separate playground demonstrates enhanced sample commerce: feedback, a modal bag and a checkout simulation. The live catalogue uses ordinary links and forms to continue at Moychay while headless purchasing is being configured.
Add a portion, change its quantity, remove it, or continue through the checkout preview.
A failed request preserves the selected amount. On phones the result and View bag action stay beside the purchase button, without a second floating toast.
A photographic guide, outside the grid. The closed phone control is compact. Suggestions mark a few objects; following one closes the conversation, not the guide.
White space and real objects carry the experience. A small shared token set keeps the interface consistent.
--canvas#ffffff--ink#202b25--muted#59645d--accent#275c49--rule#e2e6e1--wood-edge#b18a60Follow your curiosity.
Toasty & fragrant
A warm, rounded cup with a little sweetness. Familiar words before specialist names.
Original lot name stays one disclosure away.
Use two or three relevant icons with labels on an inspected tea. This is a vocabulary, not a navigation taxonomy.
0.25 · 0.5 · 0.75 · 1 · 1.5 · 2 · 3 rem
Product breathing room lives inside grid tracks, so shelf segments stay continuous.
At least 44 px for buttons and portion rows. Two-pixel focus outline with a three-pixel offset.
Only in response to an action. Reduced-motion preferences remove nonessential transitions and spinners.
One list, forward CSS Grid placement. Phone items are paired by CSS before any script runs. Every occupied image stage paints the same cached strip artwork. Adjacent fragments join into a continuous ledge. Empty tracks have no plank, and there is no script-measured background to trim.
Only wide, round and round-tall change a product’s span. A tall circle reserves two rows on desktop and becomes a single circular slot beside another item on phones. Its white interior masks the continuous plank.
No row wrappers, ordinary-product coordinates, forced breaks or dense packing. CSS owns both open and closed layouts. The customer enhancement reads no geometry, observes no resize, and writes no shelf coordinates.
The default live document does not include this playground, its catalogue JSON, modal panels or simulation controller. Product details, prices and native handoff forms render on the server. Desktop hover is CSS and works before scripts load. Pointer-state synchronisation, pinning and Escape are an optional module, disabled by default. No feature script measures a product, shelf or viewport.
The previous phone pairing depended on a script-added attribute. That dependency is removed. The no-script layout has the same two columns; desktop increases to four columns at a room width of 56 rem. Ring ledges share the straight shelf baseline. A phone inspector spans the available row, with readable 44 px portion targets. The bag keeps its total and checkout action outside the item scroller. The design reference opens from navigation and remembers browsing position when you return.
Server component
readCatalogue → adaptProduct → DiscoverySurface
Current read-only purchase renderer
<form action={product.href} method="get">
<VariantOptions name="variant" />
<button>Continue at Moychay</button>
</form>
Optional module, loaded on intent
enhanceDiscovery(root)
→ native-state synchronisation, pinning and Escape
→ no geometry reads or layout writes
Reference only
enhanceReference(root, referenceProducts)
→ sample bag, scenarios, local checkout
Never import reference-data into production commerce.Four images are catalogue-reference cutouts; the other bundled images come from the approved visual concepts. They demonstrate the presentation, not verified replacement product photography. All prices and quantities on this reference are illustrative.
The live route uses actual Shopify gallery records, not these fixtures. Replace live media only with the actual lot photos or reviewed, source-based glass displays. Keep the item IDs, component markup, alpha transparency and intrinsic image dimensions consistent. That is an asset update, not a redesign.
The interactive sample bag uses JavaScript. The catalogue, portion choices and product links still work without it.
Open your Moychay bag