
Double-Skin Milk with Heavy Cream
淡奶油版双皮奶 · cantonese cuisine · Canton
Double-skin milk (shuangpinai) is a traditional Cantonese dessert. This version enriches the milk with heavy cream. The author notes the original 100 g of cream made the dessert too rich for her child, so a reduced version using 50 g is included; 20 g of sugar gives only a barely sweet result.
Nutrition & allergens
Contains:EggMilk
Per serving (3 servings)
- Energy (kcal)
- 311.9(Main ingredients only; seasoning not counted)
- Protein (g)
- 9.7(Main ingredients only; seasoning not counted)
- Fat (g)
- 24.1(Main ingredients only; seasoning not counted)
- Carbs (g)
- 15.6(Main ingredients only; seasoning not counted)
- Sodium (mg)
- 132(Main ingredients only; seasoning not counted)
Estimated from verified ingredient data for the original formula — not lab values, and one dish is not a full meal.

3.76 oz

caster sugar细砂糖
0.94 oz
milk牛奶
23.52 oz

heavy cream淡奶油
4.7 oz

heavy cream淡奶油
2.35 oz
Techniques you'll use
- Steaming ↗
Cook with moist vapor for tender, clean-tasting results.
Steps
- 1
Step 1

Whisk the egg whites with the sugar until evenly combined, then set aside. (Note: 20 g of sugar yields only a barely sweet result.)
✅ Done when: The mixture is uniform with the sugar fully dissolved into the egg whites.
- 2
Step 2
Medium heat
Combine the milk and heavy cream in a small saucepan and heat until it just reaches a simmer without boiling, then turn off the heat immediately.
✅ Done when: The surface shows bubbling at the edges just before a full boil, and the heat is cut right away.
- 3
Step 3

Pour the hot milk mixture immediately into three prepared bowls and let it cool in a well-ventilated spot.
✅ Done when: A thin milk skin has formed on the surface of each bowl as the milk cools.
- 4
Step 4

Once a skin has set, pour the still-warm milk from each bowl into the egg whites, leaving the skin sitting on the bottom of the bowl. Pour slowly — nudge the skin down toward the bottom of the bowl as you pour; pouring all at once can leave the skin stuck at the rim. It is fine not to pour out every last drop, or the skin may tear.
✅ Done when: The milk skin remains intact at the bottom of each bowl with most of the warm milk poured out.
- 5
Step 5

Whisk the milk and egg whites together thoroughly, then strain through a fine sieve into each bowl and skim off any foam.
✅ Done when: The strained mixture in each bowl is smooth, with no foam on the surface.
- 6
Step 6

The leftover yolks can be used to make custard tart filling; sweetened with 5 g of sugar, it is not sweet.
✅ Done when: N/A — the yolks are reserved for another use.
- 7
Step 7

Cover each bowl with plastic wrap and poke a few holes in it; alternatively cover with foil or a lid with vent holes.
✅ Done when: Every bowl is fully covered with a vented cover in place.

Place the bowls into a steamer with boiling water. Steam for 10 minutes, then let them sit covered off the heat for another 10 minutes to finish with residual heat.
✅ Done when: The custard is just set — softly jiggly with no liquid center — after steaming and resting.
- 9
Step 9

The custard tart filling was eaten warm straight away, full of milky aroma.
✅ Done when: N/A — a serving note for the reserved yolk custard.
- 10
Step 10

Let the bowls cool to room temperature, then chill in the refrigerator.
✅ Done when: The pudding is fully chilled through before serving.