Combine the egg whites, sugar, and salt in a heatproof bowl set over a pot of simmering water. Heat, whisking frequently, until the mixture reaches 160 degrees F and the sugar has dissolved.
Transfer the mixture to the bowl of a stand mixer fitted with the whisk attachment. Beat on medium-high speed until stiff peaks form and the mixture has cooled to room temperature, about 8 minutes.
Reduce the speed to medium and add the butter, 2 tablespoons at a time, adding more once each addition has been incorporated. If the frosting looks soupy or curdled, continue to beat on medium-high speed until thick and smooth again, about 3 - 5 minutes more - it will come together eventually.
Mix in the vanilla extract until just incorporated. Tint with gel icing color if desired.
Store buttercream at room temperature if using the same day, or transfer to an airtight container and refrigerate up to 3 days, or freeze up to 1 month. Before using, bring to room temperature and beat with the paddle attachment on low speed until smooth again, about 5 minutes.