Why does malachite green dye wool & silk directly but cotton requires a mordant with tannin?
Some dyes are able to bind or bond directly with the fibers of a fabric or other absorbent surface. These are called direct dyes. Other dyes are unable to bind directly and require the use of another chemical to help it to bind. These dyes are called mordant dyes because the additive chemical is called a mordant. Most direct dyes are azo compounds, meaning that they have a nitrogen nitrogen double bond in them. This particular group is reactive and will often be what reacts with the fiber to bind to its surface. Malachite green is a dye that does not contain an azo group. While it can still bind with certain groups on wool and silk, it cannot directly chemically react with cotton fibers so tannin must be used as a mordant.