
Kuih Lapis is a multi-layered steamed cake, infused with the sweet aroma of coconut milk and pandan, each layer distinct in color and flavor.
Kuih lapis descends directly from jiu ceng gao (九层糕, 'nine-layer cake'), a layered steamed rice-flour kuih carried to the Straits Settlements by Hokkien and Teochew immigrants from southern China in the 19th century — the word 'kuih' itself comes from the Hokkien/Teochew 粿 (koé), for rice-flour cakes. In its homeland the stacked layers carried an auspicious 'rising level by level' meaning for Lunar New Year and ancestral offerings. Peranakan (Straits-Chinese) kitchens then localized it — swapping water for fresh coconut milk, adding pandan, and dyeing the layers with red fermented rice (angkak) and natural colors — until it became the bright striped cake known today. It lives across two communities: ethnic Chinese serve it at Lunar New Year (for the 'layers rising higher' symbolism), full-month celebrations, weddings, and Qingming, while Malays serve it among the sweets for Ramadan iftar and Hari Raya. Built one ladle and one layer at a time, it has always been a labor-intensive hospitality and festival cake rather than an everyday food. It should not be confused with the baked layer cakes that share its name: Indonesian kue lapis legit (Dutch spekkoek, 'bacon cake'), a butter-, egg-yolk- and spice-rich oven cake of Dutch-East-Indies origin descended from European spit cakes, and Sarawak kek lapis, a baked cake (popularized from the 1970s) whose color layers are glued with jam and condensed milk into intricate geometric patterns — both a different category from this steamed cake.
Malay-Peranakan steamed cake from the Straits Settlements, settled into current form by the late 19th century. Each layer steams about 5 minutes before the next ladle goes on — rush this and stripes bleed into a streaky pudding. The bounce comes from a roughly 2:1 tapioca-to-rice-flour ratio; pure rice flour gives a softer, less peelable cake.
A glossy steamed cake, sliced into a fat finger to show eight or nine alternating bright stripes — pink, white, green, sometimes brown. Pulled apart layer by layer with the fingers (the eating ritual is half the point), each strip chewy-bouncy from tapioca starch, smelling of pandan and coconut milk. Room temperature; never refrigerated, which turns it stiff.
The bounce and the all-important peel-apart layers come from the flour blend: rice flour gives softness and the opaque white, while tapioca flour gives the springy, resilient, separable body — the more tapioca, the chewier and more peelable the cake; pure rice flour is softer and the layers cling together rather than parting cleanly. The exact ratio varies widely between recipes, from roughly 1:1 to tapioca-dominant, with no fixed formula — more tapioca for bounce, more rice flour for a softer set. Steaming is the other make-or-break step: the batter goes in one ladle at a time, each layer steamed about 5 minutes until set before the next (adjacent but different) color is poured on. Pour too fast, or add a layer before the one below has set, and the colors bleed into a streaky pudding instead of clean stripes. Fresh coconut milk is preferred — canned reads metallic against the pandan.
Variations
Kuih lapis Sarawak (the elaborate, multi-spice baked Borneo cousin, can have 40+ layers); kuih lapis pelangi (rainbow Peninsular standard); Indonesian kue lapis legit (Surabaya, butter-and-spice baked, different category); kuih kosui (sister kuih, single-color, palm-sugar-based).
On the Palate
Where Kuih Lapis sits in the Malaysian flavor cloud
Ingredients
How it's made
5 steps · 2 hours
- 116 min
Combine rice flour, tapioca starch, coconut milk, and sugar in a bowl.
Watch outWhisk the flours and coconut milk until dead smooth before you steam — any lumps and the layers won't peel apart cleanly.
- 226 min
Divide mixture into portions and add food coloring to each.
- 326 min
Layer mixtures in a steaming tray, steaming each layer before adding the next.
Watch outSteam each thin layer until its surface sets and turns from milky to glossy before ladling the next — pour too soon and the colors bleed together instead of staying as distinct peelable layers.
- 426 min
Repeat until all layers are used, finishing with a pandan-infused layer.
- 526 min
Cool completely before slicing into pieces.





