One of the most common errors I see in natural dye recipes and discussions online is the confusion between a mordant and a modifier. For example, I’ve heard vinegar called a mordant more times than I can count. The truth is, mordants and modifiers have very different purposes.
A mordant, usually a heavy metal such as alum, iron or copper, form a bond between the dye and the fiber. A majority of natural dyes won’t bind directly to the fiber. You may get some color from these dyes, but they will not be washfast. The mordant acts as a link between the dye and the fiber.
Some natural dyes, like walnut and onion, don’t need an additional mordant because they have their own. Walnut is filled with natural tannins which bind directly to the fiber. The natural pigment in onions also binds directly without additional chemicals.
A modifier, unlike a mordant, does not create a bond between the fiber and the dye molecules. It “modifies” the color, usually through a chemical reaction that occurs with changes in pH. Sometimes mordants can be used as modifiers, too. For example, copper adds a green tint. Vinegar, citric acid, soda ash and ammonia are some common modifiers.
But vinegar and citric acid work on acid dyes, smarty pants! Yes, they do, through a different chemical reaction than what occurs with natural dyes. Dharma has a great explanation:
“For you chemistry buffs, Acid Dyes are so called because they contain acidic molecular groups such as -S03H and work in a low pH environment with a mildly acidic “fixative” like white vinegar or citric acid as mentioned above. Acid Dyes are used to dye protein fibers (and nylon) which are all made out of proteins with amino groups -NH2 and the bond between the dye and fiber occurs between the basic amino groups and acidic -S03H groups. Acid dyes are thought to fix to fibers by hydrogen bonding, Van der Waals forces and ionic bonding.”
If you understand the chemical function of mordants and modifiers, you’ll have better luck experimenting with new natural dye materials that you might not have used before.