Preheat the oven to 350°F (175°C). Grease and line the cake pans with parchment paper.
In a large mixing bowl, combine the flour, sugar, cocoa powder, baking powder, baking soda, and salt. Whisk together until well mixed.
In another bowl, mix together the vegetable oil, buttermilk, eggs, vanilla extract, and purple food coloring until combined.
Gradually add the wet ingredients to the dry ingredients while mixing with an electric mixer on medium speed until smooth and well combined.
Divide the batter equally between the two prepared cake pans.
Bake in the preheated oven for about 25 minutes or until a toothpick inserted into the center comes out clean.
Once baked, allow the cakes to cool in the pans for 10 minutes, then remove them from the pans and transfer to a cooling rack to cool completely.
While the cakes are cooling, prepare the frosting. In a clean mixing bowl, beat the softened butter and cream cheese together until creamy.
Gradually add the powdered sugar, mixing until combined. Add vanilla extract and mix until smooth. If the frosting is too thick, add a tablespoon of milk at a time until you reach the desired consistency.
Once the cakes are completely cooled, place one cake layer on a serving platter. Spread a layer of frosting on top.
Place the second cake layer on top and frost the top and sides of the cake with the remaining frosting.
Decorate as desired and slice to serve.