Prep pans: Grease and line three 8-inch round pans with parchment circles. Lightly flour the sides.
Preheat: Set oven to 335°F (170°C) for even baking and flat tops.
Room temp ingredients: Butter, eggs, and buttermilk should feel slightly cool but pliable.
In a large bowl, whisk flour, baking powder, baking soda, and salt.
In a stand mixer, beat butter and sugar on medium-high for 3 minutes until pale and fluffy.
Beat in oil until glossy, about 30 seconds.
Add eggs and egg white one at a time, mixing just to combine. Scrape bowl.
Stir vanilla into the buttermilk.
Add dry ingredients in three parts, alternating with buttermilk, starting and ending with dry. Mix on low until just smooth. Do not overmix.
Weigh the batter or eyeball it into six equal portions in separate bowls.
Tint each bowl with gel color: red, orange, yellow, green, blue, purple. Start with a little color, then build to intensity.
Stir gently to avoid knocking out air.
Three-pan method: Bake three colors at a time. Spread each color into a thin even layer. Bake 12–15 minutes until the center springs back. Cool 10 minutes in pans, then turn out to cool completely.
Single-pan method: If you have one pan, bake layers one at a time, re-lining the pan each time. Keep colored batters covered so they don’t dry out.
Beat butter on medium-high for 2 minutes until creamy.
Add powdered sugar, salt, and vanilla. Mix on low until combined.
Add cream a tablespoon at a time until the frosting looks smooth and spreadable. Whip on medium-high for 1–2 minutes for fluff.
Place the purple layer on a board. Add a thin layer of frosting.
Stack blue, green, yellow, orange, then red, frosting lightly between each. Use about 1/3 cup frosting per layer to avoid slipping.
Chill the stacked cake for 15 minutes to set.
Apply a thin crumb coat. Chill 15 minutes, then finish with a smooth final coat.
Decorate with sprinkles, swirls, or keep it sleek and white.