A plate of Malaysian kuih lapis steamed into 8 white and pink layers and cut into pieces
Prep35 min
Cook45 min
Serves8 servings
CuisineMalaysian

Kuih Lapis: Malaysian Steamed Layer Cake

Kuih lapis is a Malaysian layer cake made by steaming a rice flour and tapioca starch batter one thin layer at a time. Learn how to get pandan and coconut aroma, steaming times that keep 8 layers intact, flour substitutes, regional variations and storage, with pink and white layers that show you exactly when to pour the next one.

· Total: 3 hr 30 minLevel: Intermediate

Cooking flow

Cooking steps

STEP 11 / 6

Make the pandan syrup

Simmering pandan leaves in sugar water
Turn off the heat once the sugar dissolves and the pandan aroma has moved into the water

Tie the 3 pandan leaves together and put them in a small pot with 200 ml water, 175 g granulated sugar and 1/2 tsp salt. Warm over medium heat for 5 minutes, stirring the bottom now and then, until the sugar crystals disappear and steam rises. Don't let it keep boiling; turn off the heat once the green aroma of the leaves comes out. Let the syrup cool to room temperature for 15 minutes.

STEP 22 / 6

Combine the flours and coconut milk, then strain

Straining kuih lapis batter divided into white and pink
Strain the batter to remove lumps, and stir it from the bottom once more just before steaming

Put the 60 g rice flour and 165 g tapioca starch in a bowl, and whisk in the cooled syrup a little at a time. Add the 320 ml unsweetened coconut milk and whisk for 3 minutes until there are no lumps. You're looking for a smooth batter that falls from the lifted whisk in a thin ribbon, with the trail disappearing in about 2 seconds. Strain it once through a fine sieve, pressing any starch that settles at the bottom through with a silicone spatula. Rest the batter for 15 minutes, and prepare the pan and steamer meanwhile.

STEP 33 / 6

Warm the pan and steam the first layer

The warmed pan in the steamer, with the white first layer starting to set
Warm the pan first, and steam the white first layer until its surface no longer moves

Lightly oil the bottom and sides of an 18 cm square metal pan. Bring the steamer water to a boil over high heat, and once the steam is steady, lower it to medium. Put the pan in and warm it for 5 minutes, so you never pour batter into a cold pan. Divide the batter into 8 bowls of about 115 g each, and add just a little food coloring to 4 of them (the pink layers). When the color is even with no large bubbles left, the coloring is done.

If the steamer water touches the bottom of the pan, the bottom layer turns watery. On the other hand, too little water and the steam cuts out partway through, so check the water level in the pot before you start.

Stir the white batter from the bottom and pour about 115 g into the center of the pan. Tilt the pan to spread it into the corners, cover, and steam over medium heat for 4 to 5 minutes. When there are fewer water droplets on the surface and lightly touching it with the back of a spoon leaves almost no mark, move on. If it's still liquid and moves, add 1 minute at a time.

STEP 44 / 6

Alternate white and pink layers

Pouring pink batter over a white layer
Pour the next batter from low down so it doesn't push the layer below aside

Gently stir the pink batter from the bottom until it flows easily with only fine bubbles, then pour about 115 g over the first layer. Steam over medium heat for 4 to 5 minutes, and when the surface changes from translucent to matte, switch to the white batter. Repeat through the 7th layer, always stirring the bottom of the bowl before each pour. If large bubbles appear, run the tip of a bamboo skewer over the surface just 2 or 3 times before pouring the next layer.

Dropping the batter from high up punches holes in the layer below. Pour from about 2 cm (3/4 in) above the surface, letting it run down the side of the pan. If the steam weakens, add a little boiling water at the edge of the pot and bring it back to medium.

STEP 55 / 6

Steam the last layer for 8 minutes and let it settle at room temperature

Kuih lapis steamed through to the last layer
Steam the last layer until the surface stops rippling and springs back slowly when pressed

After pouring the 8th layer, steam over medium heat for 8 minutes. You want a smooth surface that doesn't ripple when you gently shake the pan, and a center that springs back slowly when pressed with the back of a spoon. Turn off the heat, leave it covered for 3 minutes, then take it out. Let it cool in the pan at room temperature for 45 minutes, and lightly blot the water droplets on the surface with paper towels.

Oversteam it and it tightens like rubber; understeam it and the layers run when you cut it. Wait until the next step to cut, and let it cool in its 18 cm square shape. Don't shorten the final 8 minutes, and check that the steam stays steady.

STEP 66 / 6

Chill, then cut into 3 cm squares

Cutting chilled kuih lapis with an oiled knife
Oil the knife and cut straight, 2.5 to 3 cm wide

Once it has cooled, cover the pan with plastic wrap and refrigerate for 1 hour. Run a thin spatula around the sides of the pan, place a plate on top and flip it out. Wet a knife with vegetable oil, cut into strips 2.5 to 3 cm (1 to 1 1/4 in) wide, then into 3 cm squares. Wipe the blade and re-oil it after each cut so the white layers don't drag on the knife. Letting it sit at room temperature for 20 minutes before eating brings back more bounce than serving it straight from the refrigerator.

0 / 0
Ingredients

Ingredients

1 / 1

Ingredients

Ingredient Amount Role and how to choose
Rice flour (non-glutinous) 60 g The structure of the batter. Fine rice flour for baking is fine, but don't swap in glutinous rice flour
Tapioca starch 165 g Supple bounce and the stickiness that binds the layers. Replace no more than 30 g with potato starch
Unsweetened coconut milk 320 ml About 1 1/3 cups. Aroma and fat. Use canned cooking coconut milk, not sweetened products or coconut drinks
Water 200 ml Draws out the pandan aroma and thins the syrup
Granulated sugar 175 g Sweetness and a moist steamed texture
Salt 1/2 tsp Sharpens the sweet coconut aroma
Pandan leaves 3 Tie all 3 together. Frozen is fine; leave them out if you can't find them
Food coloring A little red or pink Added to half of the batter. You can make it all white without it
Vegetable oil 1 tsp For lightly greasing the pan
0 / 0

Beyond the steam, one more layer

Lift the steamer lid a little, and deep in the white steam you can see a pale pink surface.

You pour batter over it and close the lid again. Kuih lapis isn't a cake that's done in a single bake. You repeat the same pour, and the few minutes it takes for the surface to set, once for every layer.

Picture it: when you open the lid for the eighth time, what's in the pan is still one big steamed cake. Only after it cools and you slice it does the waiting show up as white and pink stripes. Looking at the cut face, you can even tell which layer got too much steam, and where you forgot to stir the batter.

Here, the kuih lapis loved in Malaysia becomes a home version of 8 layers in an 18 cm (7 in) square pan. Rather than matching the colors or number of layers of a shop in Malaysia, the priority is a batter whose thin layers don't slip, and learning to read when it's safe to pour the next one.

Culture and the table: the layers of kuih lapis at the market

In Malay, kuih is a broad term that covers not only sweets but also light snacks made with rice, flour and coconut. A publication of Singapore's National Library Board explains that kuih is the standard spelling in modern Malay. The treat called kuih lapis in Malaysia is basically rice flour, tapioca starch, coconut milk and sugar, steamed one layer at a time in the same pan.

A food-culture article from Malaysia Airlines describes kuih lapis of about 8 or 9 layers appearing at markets, celebrations and family gatherings. Among Malay and Peranakan households, proportions and color combinations have varied from family to family, so white and pink is not the only right answer. More than color, the clue is the texture: the layers come apart when you pinch them lightly, and spring back a little when you bite.

Thailand's khanom chan is also a steamed cake of layered starch and coconut. In Indonesia, kue lapis includes steamed cakes made with local fruits, wheat flour and eggs. The cempedak version featured by Indonesia's official tourism site uses santan (coconut milk), wheat flour and eggs, and is presented as a treat for regional gifts and family occasions. The name lapis may be shared, but the combination of flours and the aroma differ from place to place.

Indonesia's lapis legit, or spekkoek, is a different layer cake altogether, baked with butter, eggs and spices. Keeping steamed kuih lapis and baked lapis legit separate in your mind makes it easier to know what to buy and what texture to expect.

In a home kitchen, rather than trying to reproduce a Malaysian market stall, decide first which flours you'll use and how deep your steamer is. That makes it easy to carry the regional differences over into a home version.

A Malaysian market stall displaying kuih lapis
Kuih in different colors lined up on banana leaves at a market
A Malaysian table where white and pink kuih lapis is pulled apart by hand
Peeling kuih lapis apart one layer at a time is part of the fun
The Malaysian original and this home version
  • Some Malaysian recipes make 10 layers or more. Here it's scaled down to 8 layers in an 18 cm square pan.
  • White and pink is an easy-to-read combination. Some households make green layers with pandan.
  • Don't judge a recipe by its number of layers alone; look at the texture of the starch and the state of the cake as it steams.

Colors at the market, and how many times to layer at home

At a market stall, kuih may sit side by side not only in white and pink but also in green, yellow and deep red. Color is sometimes tied to aroma or ingredients, but not every color means a different flavor. Some recipes use food coloring for the look and pandan for aroma.

The more layers, the finer the stripes. But in a home steamer, the size of the pan and the strength of the steam won't necessarily match a shop's. With 8 layers of about 3 to 4 mm each, it's easy to watch whether the surface has set, and you can recover if the steam weakens partway through. Rather than chasing thinness, not missing the moment to pour the next layer is what gives a neat cross-section.

Ingredients: 8 layers in an 18 cm square pan, 8 servings

Rice flour, tapioca starch, coconut milk, pandan, sugar and a pan for kuih lapis
Weigh out the flours and aromatics first so you never have to stop once steaming starts

These proportions adapt the ratios of published Malaysian home recipes to a small pan. Weigh the strained batter and divide it into 8 equal portions before steaming, and the layers will come out even.

Rice flour varies in fineness and absorbency from brand to brand. Don't adjust the water from the start; aim for a strained batter that flows easily and where the trail of a spoon disappears right away.

For tapioca starch, choose the white powdered starch, not the granules for tapioca pearls. If you switch entirely to potato starch the cake will set, but the bounce once it cools, and the feel of peeling the layers apart with your fingers, will change.

Where to find ingredients

Look for tapioca starch, cooking coconut milk and pandan leaves at Asian grocery stores or international food shops. Pandan is also sold as "bai toey," "rampe" or "pandan leaf." Fresh or frozen leaves are ideal, but you can leave them out if you can't find any. Dried leaves and powder release aroma and absorb liquid differently, so don't swap them in at the same amount in this recipe.

Dividing the batter into 8

Right after mixing, the starch holds onto the liquid, so a slightly heavier layer remains at the bottom of the bowl. Strained, the batter weighs about 920 g in total. Weigh it in its container, subtract the container's weight, then divide it into 8 bowls of about 115 g each. Weighing the portions you'll color separately prevents the mishap of only the pink layers coming out thick.

Even sitting still, the starch settles. Just before steaming, stir slowly from the bottom and scoop out 115 g without whipping in air. If you steam it full of bubbles, little holes are left on the surface, the next layer seeps into them, and the stripes blur.

The recipe uses 320 ml of coconut milk, so a 400 ml can leaves about 80 ml. If you can use the rest in a curry or soup, the can makes sense; otherwise look for a smaller package. Use unsweetened cooking coconut milk. Coconut drinks or sweetened milk change the sugar and water content, and the surface won't set in the same steaming time.

If you look for pandan online, choose leaves clearly labeled as food. Potted plants and tea powders are sold under the same name, but they're not what this recipe simmers.

Choosing a steamer: check that the pan fits first

The steamer needs to be deep enough that the bottom of the pan doesn't touch the water. Use a pot that fits an 18 cm square pan, with at least 3 cm (about 1 1/4 in) between the bottom of the pot and the bottom of the pan. Start with about 1.2 L of water, adjusted so it doesn't touch the pan.

If you use a bamboo steamer, check first that the pan fits inside its walls and under the lid. If you already have a deep pot and a steaming rack that holds the pan level, you don't need a dedicated steamer.

Instructions: don't pour the next layer until the surface sets

From start to ready-to-eat takes about 3 hours 30 minutes. Hands-on prep and steaming take about 80 minutes; the rest is cooling the syrup, letting the cake settle in the pan, and chilling it in the refrigerator to firm up the layers. Skip the cooling to save time, and the knife drags the layers sideways. Work back from when you want to eat, and set aside about 2 hours for cooling.

Cooking tips: four calls behind 8 clean layers

Return to the same conditions for every layer
  • Weigh 115 g every time: by eye, the last portions tend to run short and only the top layers end up thin. Stir the batter, then weigh, returning any excess to its bowl.
  • Watch the shine: wait until the wet gloss right after pouring disappears and the whole surface goes matte before adding the next layer. If only the edges have set and the center wobbles, it's still too early.
  • Lift the lid straight up: tilt it and the water droplets on the lid all fall in one spot. If you can't wrap the lid in a cloth, wipe its underside every time you open it.
  • Don't unmold until you cut: warm cake spreads sideways under its own weight. Stick to the order of 45 minutes at room temperature, then 1 hour in the refrigerator, and you can flip it out without crushing the layers.

Setting your steaming time with the first two layers makes the rest of the work steady. Even if the first layer sets in 4 minutes, the temperature of the pan and batter has changed by the second, and the center may still wobble after the same time. In that case, extend it to 5 minutes and use 5 minutes as the baseline from the third layer on. Matching the state of the surface makes straighter stripes than matching the clock.

Stronger steam doesn't mean finishing faster, either. Layering over high heat sets the edges of the pan first, while water dripping from the lid sits in the center. Keep a medium heat with steam rising steadily from the pot, and move the pan aside only when you add water. Cold water stops the steam, so always add boiling water.

Fixing cracked layers: steaming time and water droplets

Kuih lapis comparing clean layers with layers cracked by too-strong steam
How the layers crack tells you whether to adjust the steamer heat or the droplets from the lid

Kuih lapis hides its mistakes until you cut it. Judge it "set" by the surface alone, and you may stack the next layer while there's still a lot of moisture inside. Steam it too long, on the other hand, and the layers stay joined but are hard to separate by hand.

Problem Likely cause Fix and what to do next time
Water seeps out between layers Droplets fell from the lid, or the steam was too strong Blot the surface with paper towels and keep to medium heat from the next layer. Lift the lid straight up
Layers slide sideways The layer below was still liquid, or the batter was poured from too high Steam for 1 more minute, and pour the next layer low, down the side of the pan
Cut face is rubbery and hard Each layer was steamed too long Next time, check the surface at 4 minutes, and give only the last layer 8 minutes
Only the bottom is watery The pan touched the water, or water from the pot got into the pan Set the pan higher than the rack and lower the water level
Blotchy color Starch settled at the bottom of the bowl Before scooping each 115 g, stir slowly from the bottom about 10 times

If you don't have pandan

Pandan is there for aroma more than for green color. If you can't find frozen leaves, leave it out; white and pink layers still give you the texture. A few drops of vanilla extract is one option, but the aroma is something else entirely. For your first try, don't force it toward green; white and pink, where it's easy to see when each layer is done, is the safer choice.

Can you make it with potato starch only?

It will hold its shape, but it won't be the same as with tapioca starch. Potato starch tends to give too much bounce once cooled, or leave a starchy feel. Avoid replacing all 165 g of tapioca starch; if you really want to try, limit it to 30 g and use tapioca starch for the rest.

Storage and allergens

Once completely cool, wrap each piece in plastic wrap, put them in an airtight container and refrigerate. The texture holds best until the next day; eat it within 2 days at most. Bringing it to room temperature 20 minutes before eating softens the batter that firmed up in the fridge. Freezing tends to make the water separate, so we don't recommend it for this cake.

The recipe itself uses no wheat, eggs or dairy, but rice flour and tapioca starch may be made on shared production lines that vary by product. If you react to coconut, want to avoid food coloring, or need to manage allergies, check the ingredient list and allergen warnings on the packages.

Variations: protect the proportions, not the colors

Layering pandan green and white

Simmering pandan leaves alone may not give the vivid green you see in photos. If natural aroma is your priority, use the syrup as is and add green food coloring to one batch, about as much as fits on the tip of a toothpick. If you use pandan essence, strength varies by product, so start with the smallest amount on the label. Adding a lot of liquid changes the water ratio, so even if the color is pale, add no more than a few drops.

Alternating green and white lets you picture Southeast Asian aromas visually, more than the pink version. But green itself doesn't guarantee authenticity. The fat of the coconut milk, the bounce of the tapioca starch, and the method of setting each layer before pouring the next come first.

For three colors, keep the 8 equal portions

You can also make it in three colors: white, pink and green. If you divide the batter into thirds by color, the amount per color won't match the order of 8 layers. First divide it into 8 containers of about 115 g each, then color them in the order "white, pink, green, white, pink, green, white, pink." Portioning one layer at a time protects the thickness better than making the color batches first.

Plain white with no coloring is a perfectly good choice, too. The stripes are harder to see in the cut face, but the texture of peeling it apart layer by layer remains. If you just want to learn your steamer's heat the first time, all-white, with no coloring step, makes it easier to pinpoint what went wrong.

To make it less sweet, don't change too much at once

Sugar affects not only sweetness but also how moist the cooled cake stays. Suddenly halving the 175 g makes it firm up more after chilling. To cut the sweetness, start by going no lower than 150 g. If it still tastes sweet, drop to 140 g next time and note the steaming time and texture.

Swapping all of it for palm sugar or dark brown sugar deepens the aroma, but turns the white layers brown and changes the translucency of the steamed cake. If you want to try, split it into 125 g granulated sugar and 50 g palm sugar. Layering on another Malaysian sweetness is fun, but not for the batch where white and pink stripes are the priority.

To trace a Malaysian day of eating, start with nasi lemak (in Japanese), coconut rice for breakfast, and on days you want to know fresh-cooked food-stall fare, move on to roti canai (in Japanese). That makes it easier to see where kuih lapis fits, as an afternoon teatime snack.

FAQ

Q1. Do I use all 3 pandan leaves?

Yes. In this recipe, all 3 are tied together and go into the syrup with 200 ml water. The 3 leaves in the ingredient list and in step 1 are the same leaves. You don't set half aside or save any for another step. If the leaves are too big for a small pot, fold them in half before tying. Chopping them leaves fibers in the syrup, so simmer them tied and then remove them.

Q2. Can I use dried pandan in the same amount as fresh?

No. Fresh and frozen leaves can be measured as about 3, but dried leaves differ in both weight and how they release aroma. If you use a dried product, follow the cooking directions and amounts on the package. The first time, don't simmer a large amount trying to add more aroma; if it's faint, increase it next time. Powder absorbs the batter's liquid and leaves green specks, so don't mix it straight into the batter in this recipe.

Q3. Can I use an 18 cm round pan?

Yes, if it's a metal round pan without a removable bottom. An 18 cm round pan has a smaller base than an 18 cm square pan, so the same 115 g makes a thicker layer. Steam the first layer for 5 minutes, and if the center wobbles, extend 1 minute at a time. Avoid pans with removable bottoms, since batter can leak through the seam. Silicone pans transfer heat slowly and their sides flex, so a metal pan is easier to handle the first time.

Q4. Can I chill it in the refrigerator overnight?

You can leave it overnight before cutting, but by the next day the tapioca starch has firmed and it will feel harder than the bounce it had on the day it was made. Cover the pan with plastic wrap pressed close to keep out odors. Take it out 30 minutes before cutting, and use a lightly oiled knife. For safety, don't leave it out at room temperature for long; take out only what you'll eat.

Q5. Is it a failure if the layers don't peel apart?

If the cut face is evenly set and it has a soft bounce when you bite, it's fine to eat even if the layers don't peel cleanly one by one. Recipes with more rice flour, or layers steamed for a long time, bind more tightly. If you want layers that come apart with your fingers, don't reduce the tapioca starch, and from the second layer on, add the next layer right after the surface turns matte. Don't layer while it's still liquid; choose the moment when only the surface has set and moisture remains inside.