Preheat the oven to 350°F. Grease and line one 8-inch square cake pan and one 8-inch round cake pan.
In a large bowl, whisk together the flour, sugar, cocoa powder, baking soda, and salt.
Add the eggs, oil, buttermilk, food coloring, vanilla extract, and vinegar to the dry ingredients. Mix until well combined.
Divide the batter evenly between the prepared square and round pans.
Bake for 30 to 35 minutes, or until a toothpick inserted into the center comes out clean. Let the cakes cool completely.
To make the frosting, beat the cream cheese and butter together until smooth. Gradually add the powdered sugar and vanilla extract, beating until creamy.
To assemble the heart shape, place the square cake on a large platter in a diamond shape (one corner pointing down).
Cut the round cake in half. Place the two flat edges of the round halves against the top two angled sides of the square cake to form a heart.
Frost the entire cake evenly with the cream cheese frosting, covering the seams.
Notes
Make sure the cakes are completely cooled before frosting to prevent the cream cheese frosting from melting.