Preheat oven to 350°F (175°C). Line a muffin tin with 12 cupcake liners.
In a bowl, whisk together flour, baking powder, baking soda, and salt.
In another bowl, beat butter and sugar until light and fluffy. Add egg and vanilla, mixing well.
Slowly add milk to the butter mixture, mixing until combined.
Gradually add dry ingredients into the wet mixture, stirring gently until just combined.
Fill cupcake liners about ¾ full with batter. Bake for 16–18 minutes or until a toothpick comes out clean. Cool completely.
For the frosting, beat butter until smooth. Gradually add powdered sugar and milk until creamy. Tint with green food coloring.
Pipe or spread frosting on cooled cupcakes. Top each with a red candy heart.