Rainbow Milk Bread Recipe

This Rainbow Bread is a burst of colorful magic in every bite! Imagine fluffy clouds of Japanese milk bread transformed into a mesmerizing kaleidoscope of vibrant hues. Soft, pillowy, and delicately sweet, each slice tells a tale of whimsy and imagination.

Whether you’re hosting a tea party, surprising the little ones with a rainbow grilled cheese sandwich, or simply seeking to infuse a pop of color into your everyday life, this Rainbow Bread recipe is here to spark joy and spread smiles all around.

three slices of rainbow bread on a cutting board with a knife.
Jump to:


Milk bread, or Shokupan (“plain bread”) is a Japanese bread made using a tangzhong or yudane. It’s an enriched bread made with egg, milk, and butter or oil like challah dough, brioche, and dough for cinnamon rolls or honey bun. Using a roux-like starter gives the bread its characteristic softness and prevents it from becoming stale as quickly as another white bread.


I use artificial food coloring in this rainbow bread recipe to get the most vibrant color. You can use a rainbow of natural food colors, but in my tests they made a pastel rainbow bread.

If you’re looking for more rainbow-inspired recipes, how about making rainbow sugar cookies, rainbow poke bowl, a rainbow fruit tart, or a rainbow salad with maple dressing? Except for the sugar cookies, the colors in those rainbow recipes are all naturally occurring!

Please see the recipe card below for complete information on ingredients and quantities.

Variations and substitutions

  • If you don’t have a Pullman loaf pan, you can make this recipe in two standard bread loaf pans.

Recipe tips and tricks

Making the starter

I use a technique and recipe for this rainbow bread that are nearly identical to my purple cow bread. First I made a tangzhong and let it cool.

Tangzhong cooling in a glass measuring cup, covered with plastic wrap.

Making the rainbow bread dough

In order to make the purple cow bread, you divide the dough into two halves with one purple and the other white. To make this rainbow bread recipe, you also divide the bread dough into half. One half of the dough stays white, and the remaining dough is divided into sixths that are colored into rainbow colors.

A pan with six rainbow-colored balls of bread dough.

Shaping the rainbow

Once colored, you roll the dough into logs about the length of your loaf pan.

The pictures below show how to form the rainbow bread. In the bottom of your pan, place four white logs to form the base of the rainbow (Panel #1, below). To get an arc of color, add a middle layer made of the red log, then two white logs, and then purple (Panel #2). The final top layer will have the orange log on top of the red, then yellow, green, and blue on top of the purple (Panel #3).

three panels showing how the rainbow bread dough is placed in the pan.

Let the bread rise in a covered pan, then bake for 35 to 40 minutes until the internal temperature is 190°F. Let your rainbow bread cool in the pan for 10 minutes, and then cool on a rack completely before slicing.

three slices of rainbow bread on a cutting board.

Recipe FAQs

Why did you leave any dough uncolored?

Most other rainbow bread recipes have you swirl a few different colors around each other in a spiral. I wanted my recipe to give you the arc of a rainbow.

How do you store this rainbow bread?

The milk bread method results in a bread that stays fresh at room temperature for longer. If you keep the loaf in a plastic bag on the countertop, and it should last a week. If you want to enjoy it over a longer period of time, I would recommend slicing it and freezing it in a freezer bag with all of the air squeezed out.

What is a Pullman loaf pan and do I need one?

This is a Pullman loaf pan or pain de mie pan. It’s what gives this bread its nice square shape, but it is not critical for this bake.

Can you make this recipe gluten-free?

I have that on my to-do list, I promise.

The end of a baked loaf of rainbow bread.

Check out other breads for sandwiches from the Ugly Duckling Bakery yeast bread archives like:

Love this recipe? Please leave a 5-heart 💜💜💜💜💜 rating in the recipe card below. Let me know how much you loved it, or any problems you had, in the comments section further down.


Rainbow Bread

5 from 1 vote
Category: Bread
Cuisine: Unspecified
Prep Time: 1 hour
Cook Time: 1 hour
Rising times (does not include cooling time for the starter): 3 hours
Total Time: 5 hours
Servings: 36 slices
Calories: 105kcal
This rainbow bread recipe was originally developed for a collaboration to celebrate Pride. As a Japanese milk bread, it is a soft, slightly sweet loaf perfect for a rainbow grilled cheese sandwich.
Print Recipe
Save This Recipe!


  • 1 Stand mixer
  • 1 13 inch Pullman loaf pan or two standard bread pans


Tangzhong (roux starter)

  • cup (45 grams) bread flour
  • ½ cup (120mL) whole milk
  • ½ cup (120mL) water


  • 4 ⅔ cup (600 grams) bread flour plus more as needed
  • ½ cup (100 grams) granulated sugar
  • 2 ¼ teaspoons instant yeast
  • 2 teaspoons salt
  • 2 large eggs
  • ¼ cup (60mL) whole milk plus more as needed
  • roux starter
  • ½ cup (8 tablespoons or 4 ounces) unsalted butter, softened and cut into cubes plus more for greasing the loaf pan
  • food coloring


Tangzhong (roux starter)

  • Make the roux starter (tangzhong). In a small pot, combine the flour, milk, and water. Over low heat, whisk until smooth and continue stirring until the whisk leaves a clear, thick track at the bottom of the pot (as if you were making a bechamel).
    ⅓ cup (45 grams) bread flour, ½ cup (120mL) whole milk, ½ cup (120mL) water
  • Remove from heat, scrape into a glass measuring cup, and cover the starter with plastic wrap, pressing down the wrap onto the surface of the roux to prevent a skin from forming (see photo). Let cool.


  • In the bowl of a mixer, use the paddle to combine the flour, sugar, and yeast and mix on low speed briefly. Add the salt and mix for about 10 seconds.
    4 ⅔ cup (600 grams) bread flour, ½ cup (100 grams) granulated sugar, 2 ¼ teaspoons instant yeast, 2 teaspoons salt
  • Add the egg, milk, and the starter. Mix on low speed. When it comes together, add the butter cubes.
    2 large eggs, ¼ cup (60mL) whole milk, ½ cup (8 tablespoons or 4 ounces) unsalted butter, softened and cut into cubes, roux starter
  • When the dough starts to come together, switch to the dough hook. (If the dough doesn't come together, add an additional tablespoon of milk at a time). Increase the speed to medium and knead for 10 minutes, adding flour as necessary if the dough sticks to the bottom of the mixer. At the end of kneading, the dough should be soft and tacky but not sticky.
  • Divide the dough in half, and place one half into a greased bowl and cover it with plastic.
  • Divide the remaining dough into sixths. Because the amount of dough is so small, it is easiest to work the food coloring in by hand (although you may want to wear a glove to prevent the coloring from getting on your hands).
  • I used Wilton color right concentrated food coloring in the following amounts. If you are using a different food coloring, you will need different amounts to get the desired colors.
    Red: 4 drops red. Orange: 2 drops orange, 2 drops yellow. Yellow: 4 drops yellow. Green: 3 drops yellow. One drop blue. Blue: 4 drops blue. Purple: 4 drops pink. 1 drop blue. 1 drop red.
    food coloring
  • Once you've worked all of the color in as evenly as possible, form the dough into a ball. Leave the rainbow colored balls on a tray or plate and cover with plastic wrap to rise until doubled in size, about 60 minutes.
  • Lightly butter a 13" by 4" by 4" Pullman loaf pan, including the lid.
  • To create the pattern, divide the white dough into six equal parts. Roll each part into a log the length of the pan, and lay four logs into the bottom.
  • Create a second layer with a red log, two white logs, and the purple log.
  • The final layer should lay the orange log on top of the red log, then the yellow, green, and blue on top of the purple (see photos).
  • Put the lid on the pan and let the dough rise in a warm, draft-free location until it is nearly up to the lid, about 2 hours.
  • Thirty minutes before baking, preheat the oven to 350°F.
  • Bake for 35 to 40 minutes until the internal temperature is 190°F.
  • Let cool in the pan for 10 minutes, and then cool on a rack completely before slicing.


Variation: make this as a surprise inside!


Calories: 105kcal | Carbohydrates: 16g | Protein: 3g | Fat: 3g | Saturated Fat: 2g | Polyunsaturated Fat: 1g | Monounsaturated Fat: 1g | Trans Fat: 1g | Cholesterol: 16mg | Sodium: 136mg | Potassium: 36mg | Fiber: 1g | Sugar: 3g | Vitamin A: 101IU | Vitamin C: 1mg | Calcium: 11mg | Iron: 1mg
Love this recipe?Mention @Uglyducklingbakery or tag #uglyducklingbakery!

You’re an adventurous home cook looking for inspiration in your weeknight meals and weekend baking. Get that inspiration here:

Leave a Reply

Your email address will not be published. Required fields are marked *

Recipe Rating

This site uses Akismet to reduce spam. Learn how your comment data is processed.