01 - Preheat oven to 350°F if preparing the baked version with breadcrumb topping.
02 - Bring a large pot of salted water to a boil. Cook elbow macaroni according to package directions until al dente. Drain thoroughly and set aside.
03 - In a saucepan, melt butter over medium heat. Whisk in flour and cook for 1 minute, stirring constantly, until a smooth roux forms and turns slightly golden.
04 - Gradually pour in the whole milk while whisking continuously to prevent lumps. Bring to a gentle simmer and cook for 4–5 minutes, whisking often, until the sauce thickens enough to coat the back of a spoon.
05 - Reduce heat to low. Add both sharp and mild cheddar cheeses along with Dijon mustard. Stir until the cheese is completely melted and the sauce is smooth. Season with salt and black pepper to taste.
06 - Fold the cooked macaroni into the cheese sauce, stirring gently until every noodle is evenly coated.
07 - For a baked version, transfer the mixture to a greased baking dish. Combine breadcrumbs, melted butter, and grated Parmesan in a small bowl, then sprinkle evenly over the top. Bake for 15–20 minutes until the crust is golden and bubbling.
08 - Let rest for 2–3 minutes before serving hot.