Chiang Mai is best for cultural/historical stuff, and has nice weather in Dec.,
but it’s far from the beach. That would be my choice, because I wouldn’t travel that far from the US just to go to the beach, plus I like cultural/historical stuff better anyway. But I did go to the beach in Thailand several times when I lived in Asia.
If you want a beach vacation, then both Krabi and Phuket are great. Krabi is quieter, Phuket has more to do.
The main town on Ko Phuket is not nice, it’s full of of drunk redneck package tourists from Australia and Europe, but there are plenty of great hotels and beaches nearby, elsewhere on the island. Last time I took the family we stayed just north of the island in Khao Lak, it was great. That’s the town that got hit hard by the tsunami in 2002, I heard lots of interesting tsunami stories there.