Preheat the oven to 350°F. Line a cupcake pan with paper liners. In a large bowl or the bowl of a stand mixer, whisk together the flour, baking powder, baking soda, salt and sugar.
Add the butter and cut it in using two knives or the paddle attachment on your mixer, until the mixture resembles coarse crumbs and the butter pieces are no larger than pea sized.
Add the eggs one at a time, mixing after each addition. Add the vanilla and buttermilk, and stir until combined. Add the pink food coloring and stir until well distributed.
Scoop the batter into the prepared pan, filling the cups 1/2 to 2/3 full.
Bake for 15 to 18 minutes, or until the tops spring back when lightly touched. Remove from oven and let cool.
To make the frosting, add the cream cheese and butter to a medium bowl and beat until smooth. Add the powdered sugar and vanilla and beat until smooth. Add 1 Tablespoon of half and half and beat on high until light and fluffy. Add additional half and half as needed to make a light and fluffy frosting. Pipe onto cooled cupcakes and decorate as desired.