100% cotton but only medium quality is ok; I didn't pay for the highest quality. A little rough on the nose out of the box but I can imagine they will soften over time with use and washing. I like the slightly smaller size and because of the color we don't confuse them with my husband's plain white handkerchiefs. As with most "budget" cotton bedding I buy, the hems/edges crease in the dryer. I could solve this problem by washing more thoroughly, ironing, or buying better linens. So far I've only learned to live with crumpled handkerchiefs.