Preheat the oven to 350°F (175°C). Grease and flour three 8-inch round cake pans.
In a bowl, whisk together the flour, baking powder, baking soda, and salt. Set aside.
In another large bowl, cream together the butter and sugar until light and fluffy. Add eggs one at a time, then mix in the vegetable oil and vanilla extract.
Gradually add the dry ingredients to the wet ingredients, alternating with buttermilk. Mix until just combined. Stir in lime zest, lime juice, and food coloring (if using).
Divide the batter evenly among the prepared pans and bake for 20-25 minutes or until a toothpick inserted into the center comes out clean. Let cakes cool completely.
For the lime curd, whisk together egg yolks, sugar, lime juice, and zest in a saucepan. Cook over medium heat, stirring constantly until mixture thickens. Remove from heat and whisk in butter until smooth. Let it cool completely.
For the frosting, beat softened butter until creamy. Gradually add powdered sugar, lime juice, and heavy cream or milk, beating until smooth and fluffy. Mix in lime zest.
Assemble the cake by spreading lime curd between the cake layers. Frost the cake with the lime frosting.
Chill the cake for at least 1 hour before serving to allow the flavors to meld together. Slice and enjoy!