Preheat the oven to 350 degrees F. Prepare a 12-cup muffin pan with cupcake liners and set aside.
In a large bowl, combine the butter, sugar, and salt. Stir vigorously until thoroughly and evenly mixed. Whisk in the oil, followed by the egg, egg yolk, buttermilk, vanilla, and food coloring. Keep whisking until the mixture is all one color and consistency.
Sprinkle the flour, cocoa powder, and baking soda over the batter, and whisk gently, just to incorporate. Divide batter evenly among the cupcake liners and bake for 18-20 minutes, just until a toothpick inserted into the middle comes out clean.
Cool cupcakes in the pan for about 10 minutes, then remove to a wire rack to cool completely.
To make the frosting, beat the cream cheese and butter with an electric mixer on medium-high for 2-3 minutes, until light and fluffy. Add powdered sugar and mix on low speed just until incorporated, then increase the speed to medium-high and beat 3-4 minutes, until mixture is smooth and light. Add the vanilla and beat again 1-2 minutes. Frost cupcakes as desired.
Notes
I like using clear imitation vanilla extract in cream cheese frosting. Regular vanilla definitely works, but the clear imitation keeps it bright white and also seems to help the frosting hold its shape even better.Cupcakes adapted from One-Bowl Baking by Yvonne Ruperti.