In a medium saucepan, carefully combine the granulated sugar, unsweetened cocoa powder, and a pinch of salt. Whisk together until the mixture is uniform and no lumps remain.
Gradually pour in the whole milk while whisking continuously. Ensure the milk is well blended with the dry ingredients before proceeding.
Place the saucepan over medium heat, stirring constantly with a wooden spoon, until the mixture reaches a gentle boil.
Allow the mixture to boil undisturbed for about 4-5 minutes, keeping an eye on the temperature. You’re aiming for the soft-ball stage, which is around 234°F (112°C) on a candy thermometer.
Once the mixture reaches the correct temperature, remove the saucepan from the heat. Stir in the cubes of unsalted butter, pure vanilla extract, and semi-sweet chocolate chips. Mix well until everything is fully melted and achieves a silky smooth consistency.
If you’ve chosen to add nuts, gently fold in the chopped pecans or walnuts at this point, enhancing the texture and flavor of your fudge.
Pour the luscious fudge mixture into a greased 8x8-inch square baking dish. Use a spatula to evenly spread it into the corners of the dish.
Let the fudge cool at room temperature for about 2 hours, or until it is set and firm to the touch.
Once fully set, carefully cut the fudge into squares using a sharp knife.
Notes
Arrange the fudge squares on a festive platter and consider wrapping some in colorful cellophane for gifts.