Preheat oven to 350°F (175°C). Grease three 8-inch round cake pans, line bottoms with parchment paper circles, and grease the parchment.
In a large bowl, sift together cake flour, sugar, cocoa powder, baking soda, and salt. Whisk to combine evenly.
In another bowl, whisk eggs until frothy, then add oil and whisk for 1 minute. Add buttermilk and vanilla, whisking until smooth and creamy.
Add blue gel food coloring (and purple if using) to wet ingredients and whisk until color is completely uniform with no streaks.
Pour wet ingredients into dry ingredients and beat on low for 30 seconds, then on medium for 2 minutes until smooth and glossy.
Add vinegar and mix on low for 10-15 seconds just until incorporated. The batter will become slightly fluffy from the reaction.
Divide batter evenly among three prepared pans (about 450-480g each). Tap pans on counter to release air bubbles, then bake for 25-28 minutes until toothpick comes out with moist crumbs.
Cool cakes in pans for 10 minutes, then invert onto wire racks, remove parchment, and flip right-side up. Cool completely (about 1 hour), then refrigerate for easier frosting.
Beat softened cream cheese for 2-3 minutes until smooth. Add butter and beat 2 minutes until fluffy, then gradually add powdered sugar one cup at a time.
Add vanilla and salt to frosting, then beat on medium-high for 3-4 minutes until light and fluffy. Refrigerate if too soft.
Level cake tops with cake leveler or serrated knife to create flat surfaces for stacking.
Place first layer cut-side up, spread ⅔ cup frosting to edges. Add second layer, spread ⅔ cup frosting. Top with final layer cut-side down, apply thin crumb coat, and refrigerate 30 minutes.
Apply final thick coat of frosting over chilled crumb coat, smoothing with offset spatula. Decorate as desired and refrigerate until ready to serve.