Preheat your oven to 350°F. Line muffin pans with 24 cupcake liners.
In a medium bowl, whisk together the all-purpose flour, cocoa powder, baking soda, baking powder, and salt. Set aside.
In a large bowl, beat the softened butter and granulated sugar with an electric mixer on medium speed until light and fluffy, about 2 minutes.
Add the eggs to the butter mixture one at a time, beating well after each addition. Mix in the vanilla extract.
Gradually add the dry ingredient mixture to the wet ingredients, alternating with the milk. Begin and end with the dry ingredients. Mix until just combined.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full.
Bake for 17-20 minutes, or until a toothpick inserted into the center of a cupcake comes out clean.
Allow the cupcakes to cool in the pan for 5 minutes, then transfer them to a wire rack to cool completely.
For the frosting, in a large bowl, beat the softened butter with an electric mixer until creamy.
Gradually add the powdered sugar, mixing on low speed. Add the vanilla extract. If the frosting is thin, add more powdered sugar as needed.
Add the heavy cream or milk, one tablespoon at a time, until the frosting reaches a spreadable consistency.
Add a few drops of red food coloring to achieve a pink color. Mix well.
Once the cupcakes are completely cool, frost them with the pink buttercream frosting.
Decorate with sprinkles or heart-shaped candies.