01 - Line baking sheets with parchment paper or silicone macaron mats. Fit a large piping bag with a round tip approximately 1/2 inch in diameter.
02 - Sift almond flour and powdered sugar together into a large bowl. Discard any coarse bits that remain in the sieve.
03 - In a clean, grease-free bowl, beat egg whites until foamy. Add cream of tartar. Gradually incorporate granulated sugar while beating until stiff, glossy peaks form.
04 - Gently fold the sifted almond flour and powdered sugar mixture into the meringue in three additions. Use a spatula to fold and press the batter against the bowl until it flows in thick ribbons and you can draw a figure 8 without the batter breaking.
05 - If using gel food coloring, add now and fold until evenly distributed throughout the batter.
06 - Transfer batter to the prepared piping bag. Pipe circles 1 1/2 inches in diameter onto the baking sheets, leaving approximately 1 1/4 inches between each shell.
07 - Firmly tap the baking sheets on the counter several times to release trapped air. Use a toothpick to pop any remaining visible bubbles for smooth tops.
08 - Let piped shells rest uncovered at room temperature for 30-60 minutes, or until a skin forms and shells no longer stick to your finger when lightly touched.
09 - Preheat oven to 300°F. Bake one tray at a time for 12-15 minutes, rotating halfway through. Shells are done when they have developed feet and lift cleanly off the parchment paper.
10 - Allow shells to cool completely on the baking sheets before attempting to remove them.
11 - Beat softened butter until creamy. Add powdered sugar, vanilla extract, salt, and 1 tablespoon milk. Beat until fluffy, adding additional milk as needed to achieve a smooth, pipeable consistency.
12 - Pair similar-sized shells. Pipe a dollop of buttercream onto the flat side of half the shells. Gently press remaining shells on top to create sandwiches.
13 - Refrigerate assembled macarons in an airtight container for 24 hours before serving. Bring to room temperature before enjoying for optimal texture.