Setting a natural dye means anchoring the dye molecules to the fiber so they survive washing, sunlight and handling. Dyeing deeper or soaking longer will not do it. Almost no plant dye forms a chemical bond with fiber on its own, so you mordant first, dye in the right conditions, cool the fiber in the bath, rinse thoroughly and test before you commit a whole project.
Short version, if you want the checklist now:
- Scour the fiber so oils and sizing are gone.
- Mordant the fiber, or pre-mordant with tannin on cotton and linen.
- Dye at the temperature your dye source needs, held long enough to strike.
- Cool in the bath overnight before you touch the fiber.
- Rinse in cool water until the water runs clear.
- Test a swatch for rubbing and wash fastness before you cut the fabric.
If you learn how to set natural dyes so they do not fade from this list and nothing else, you will already be ahead of most people posting their first washed-out swatch online.
A note on expectations before we start. Some plant dyes hold beautifully and some never will, no matter what you do to them. Knowing which is which saves you a lot of wasted yarn.
Table of Contents
- What You Need
- Mordants and fixatives
- Equipment
- Safety
- Step-by-Step: How to Set Natural Dyes So They Do Not Fade
- Choose the Fixative for the Fiber and Dye
- Prepare the Fiber Before Dyeing
- Mordant the Fiber When the Dye Requires It
- Set the Dye with the Correct Bath and Temperature
- Rinse, Dry and Test for Fastness
- Common Mistakes
- How to Improve Colorfastness Without Damaging the Fiber
- Tips for Different Fibers and Projects
- Common Mistakes
- The color rubs onto your hands and the wash water
- Color bleeds badly in the first wash
- The color came out pale in the first place
- The color is uneven or blotchy
- The fiber feels harsh, stiff or brittle
- It faded after a few washes or a summer of sunlight
- Frequently Asked Questions
- What is the best mordant for natural dyeing?
- How much alum should I use as a mordant for cotton?
- Is white vinegar a mordant?
- Why does my hand-dyed fabric fade so quickly?
- Can you fix natural dye after it has faded?
- What fabrics cannot be dyed with natural dyes?
- Conclusion
What You Need

You need very little, but the pieces you do need are specific. Get them set up before you make a dye bath, because retrofitting halfway through a project is how people end up with uneven batches.
Mordants and fixatives
- Alum (potassium aluminum sulfate): the default choice for protein fibers like wool, silk and alpaca, and it brightens rather than dulls color. Nearly every beginner kit starts here.
- Iron (ferrous sulfate): used sparingly, because it darkens and shades color toward green, brown or black. Good for wool and for cellulose if you follow it with tannin.
- Tannin from acorn, sumac or oak gall: the fixative that makes cotton and linen behave. You can buy tannin or boil your own from bark or acorns.
- Aluminum acetate: a shortcut for cellulose fibers that lets you skip the separate tannin pot.
- White vinegar and salt: helpful additives, but not mordants. Vinegar adjusts pH, salt sharpens color on protein fibers. Neither creates a bond with cotton.
- Soy milk: a protein binder hobbyists use at roughly one part soy milk to five parts water. It physically wraps the fiber rather than reacting chemically, so results are less predictable than alum.
Equipment
- Two stainless steel or enamel pots, one reserved for mordants and never used for cooking
- A kitchen scale that reads grams, for weighing fiber dry and mordants
- A thermometer, since a bath that is too hot can set color unevenly
- pH strips, and a small amount of soda ash for raising pH on tannin mordants
- Fine mesh strainers and a colander with a second layer of muslin
- Long-handled tongs, a stick for turning fiber, and a timer
- Undyed test swatches of the same fiber and weight as your project
Safety
Alum and iron salts are low toxicity but not zero. Wear gloves, avoid breathing iron dust if you use powdered mordant, and keep dye baths away from drinking water. Disposal guidance matters for a studio: let the bath cool, settle the sediment, and check local rules before pouring anything down a drain, because iron in particular stains plumbing and kills plant life in waterways if it reaches a septic system.
Step-by-Step: How to Set Natural Dyes So They Do Not Fade

Choose the Fixative for the Fiber and Dye
Match the mordant to the fiber first, then check whether your dye needs anything beyond it. Wool, silk and other protein fibers accept alum readily and give you the strongest natural color with the least chemistry. Cotton, linen and hemp are cellulose fibers and will not hold plant dye on alum alone; they need a tannin pre-mordant or aluminum acetate first.
Then read up on the dye itself. Tannin-rich dyes such as madder, weld and sumac bond well with alum or iron. Some pigments, notably turmeric and avocado stone, are known weak performers even when mordanted. If a source tells you to avoid mordanting, or to use only iron, follow it. Fiber art pigment suppliers publish recommended mordants and percentages, and those instructions exist because the metal salt and the pigment interact in ways that generic advice cannot capture.
Prepare the Fiber Before Dyeing
Scour everything. Undyed cotton, linen and wool carry factory oils, spinning residues and sizing that sit on the fiber and block dye penetration, and they are the single most common reason a bath produces pale, blotchy color that fades in weeks. Well-scoured fiber takes color evenly and holds up far better to wear, UV and repeated washing.
For protein fibers, wash with a mild detergent or use a soda ash soak, then rinse until the water is clear. For cellulose, a hot wash with soda ash works well. Yarn usually needs less than raw cloth. Whatever you do, weigh the fiber dry after scouring and rinsing. Every percentage of mordant you read is calculated on weight of fiber, so a soaked fiber weighed wet will throw the whole calculation off.
Do the whole process once on a 20 to 30 gram test swatch first. It costs one small pot of bath and saves you from a quilt top that looks wonderful and goes grey in three washes.
Mordant the Fiber When the Dye Requires It
There are three ways to mordant, and the timing changes the result.
- Pre-mordanting is the most reliable for colorfastness. You mordant the fiber, rinse, then dye. Most dyers treat this as the first lever on longevity.
- Simultaneous mordanting means mordant and dye go into the same pot. It is faster and often shifts the shade, but with many plant dyes the two compete and you lose depth.
- Post-mordanting means you dye first and then fix in a second bath. It works for surface color but does not penetrate the way pre-mordanting does.
Typical quantities, calculated as a percentage of the dry weight of your fiber:
- Alum on wool, silk or alpaca: 8 to 10 percent of fiber weight.
- Tannin pre-mordant on cotton, linen or hemp: 10 to 20 percent of fiber weight, then follow with alum at 5 to 10 percent in a second bath.
- Aluminum acetate on cellulose: follow the supplier ratio, since strengths vary by product.
- Iron on wool: 2 to 4 percent of fiber weight. Iron is powerful and unforgiving; more is not better.
- Salt in a dye bath: 10 to 20 percent of fiber weight as a color sharpener, not as a fixative.
Work carefully and weigh accurately. Using dedicated equipment matters because trace iron left in a pot will dull a bright color in your next batch, which is exactly the kind of thing that makes people conclude natural dyes cannot be predictable.
Set the Dye with the Correct Bath and Temperature
There is no single recipe for all plant dyes, and anyone who gives you one is selling something. What controls fixation is heat, time, pH and how much you move the fiber around.
Most dye baths sit between 140 and 180 F, held near a simmer without a rolling boil, for one to four hours depending on the plant. Some dyes, such as madder, need long extraction at the top of that range. Others, like weld and cochineal, strike quickly and want a shorter, cooler bath. Read the dye source first.
pH changes how color takes. An acidified bath helps protein fibers strike brighter, which is why a splash of vinegar shows up in so many wool recipes. Alkaline baths, built with soda ash and tannin, open up cotton and linen and let a mordant reach the fiber properly. If you are working with tannin on cellulose, alkaline is not optional.
Gentle agitation matters more than most beginners expect. Moving the fiber every 20 minutes or so keeps dye from settling and prevents the uneven pools and sediment layering that leave a piece patchy and, eventually, pale.
Rinse, Dry and Test for Fastness
Turn off the heat and let the fiber cool in the bath. Ideally it sits overnight. Pulling hot fiber out and shocking it in cold water locks in uneven color and can shift a shade you spent hours building.
Rinse in cool water first, several changes, until the water runs clear. Warm water loosens more unbound dye and strips color you want to keep, so the last rinse should be cool. Some dyers add a small amount of vinegar to the final rinse on protein fibers, which helps set the pH and reduce bleeding in the first wash.
Dry in shade, out of direct sun, laid flat or hung with airflow. Direct sunlight while drying is one of the fastest ways to lose the color you just paid for.
Then test before you commit. Three checks take about an hour:
- Rub test (crocking). Dampen a swatch, press it against a white cotton scrap and rub firmly. Color transferring onto the scrap means dye is still moving.
- Wash test. Wash the swatch alone in cool water with a mild detergent, dry it, and compare to the un-washed swatch side by side. A meaningful drop in saturation means the piece is not ready for the wash.
- Light test. Set one swatch under a window or outdoors in direct sun and keep the other shaded. Check at one week, one month and three months. Turmeric and safflower shades will show obvious difference here; indigo and madder will not.
Keep a dated note with each dye batch: fiber, mordant and percentage, dye source, bath temperature and hours, then what the color looked like after the test wash. That log is what turns guesswork into a repeatable practice.
Common Mistakes
The mistakes that cost the most color share one pattern: something happened to the bond between dye and fiber, or the bond was never formed at all. Skipping the mordant on cotton is the big one, and so is dyeing fiber that still carries factory oils.
Overheating is the quiet second. Boiling hard for hours breaks down some plant pigments and felts wool, which permanently damages the fiber no amount of good technique will fix.
How to Improve Colorfastness Without Damaging the Fiber
If a swatch comes out weak, work through these in order rather than reaching for more dye.
Re-mordant first. A second alum bath on a piece that was under-mordanted often deepens and firms the color. Do it before the piece is cut, since you cannot easily mordant a finished seam.
Adjust the bath chemistry carefully next. Soda ash on a tannin step, vinegar in a protein-fiber bath, each measured rather than splashed in, will sometimes recover a washed-out result.
Then over-dye deliberately darker. If you know the dye is going to fade, dye one or two shades past your target and accept a slightly deeper piece now in exchange for a piece that still looks right later. Practitioners also choose the dye source for the job: if a piece will hang in a sunny window or get worn weekly, pick madder, weld or indigo rather than turmeric, safflower or avocado stone.
Protective finishes are the last resort, and only when the piece is not going to be washed often. A textile finish or binder can add surface fastness, but it changes the hand of the fabric and does nothing for light fastness.
Tips for Different Fibers and Projects
Wool takes alum at 8 to 10 percent and gives the deepest natural color of any common fiber. Dye warm rather than boiling, and move it often to avoid felting.
Silk is more delicate and reaches color at lower heat. Use a slightly warmer dye bath than wool and treat it gently, because heat-damaged silk loses its sheen permanently.
Cotton and linen need the tannin route. Pre-mordant with acorn or sumac tannin in an alkaline bath, then follow with alum. Skip this and you will get pale color that leaves in the first wash.
Hemp and bamboo behave like other cellulose fibers and respond well to tannin and aluminum acetate.
Blends need judgment rather than a formula. A cotton-linen blend takes the cellulose route; a wool-silk blend takes the protein route. On a wool-silk-cotton blend, tannin first is the safer choice, since it helps the cotton component without dulling the wool too badly.
Quilting cotton and linen for art panels: scour twice, mordant at the higher end of the range, and always test the actual fabric weight you plan to use.
Common Mistakes
Each of these shows up in the same four symptoms: color rubs off in the wash, bleeding onto other items, weak color from day one, or a piece that looks flat and blotchy. Match what you see to what caused it.
The color rubs onto your hands and the wash water
Unmordanted dye is sitting on the surface instead of bonded. On protein fibers, mordant properly with alum at 8 to 10 percent. On cellulose, start over with tannin then alum. Use hot water sparingly in the first washes, wash the piece alone, and dry it away from anything you care about.
Color bleeds badly in the first wash
Almost always an incomplete rinse. Dye that has not come out of the fiber in the pot comes out in your machine. Rinse until the water is genuinely clear, then add a final cool rinse with a splash of vinegar for protein fibers.
The color came out pale in the first place
Four causes, in order of likelihood. The fiber was not scoured. The wrong mordant was used, or none. The bath was too cool or too short for that dye. Or the dye is simply a weak performer on that fiber, which happens with turmeric, beet, safflower and avocado stone no matter how well you execute.
The color is uneven or blotchy
Usually undissolved dye landed on the fiber directly, or the fiber sat still in one spot too long. Strain your plant material well, keep the bath below a rolling boil, and turn the fiber every 20 minutes. Bunching twisted yarn lets the outer strands drink the color while the core stays white, so open your skeins before dyeing.
The fiber feels harsh, stiff or brittle
Too much mordant, usually iron, or too much heat. Excess mordant dulls color and weakens fibers, and iron beyond 4 percent on wool leaves it brittle. Once felted or heat-damaged, fiber cannot be rescued. Next time, weigh carefully and hold the bath at a gentle simmer.
It faded after a few washes or a summer of sunlight
Check your light test first. If the swatch lost color indoors, it was under-mordanted. If it lost color only in the sun, you are fighting the dye’s light fastness, which no mordant fixes. Wash cool, dry in shade, store folded in a dark box rather than on a hanger in a lit closet, and choose a more permanent dye for anything that lives in daylight.
Frequently Asked Questions
What is the best mordant for natural dyeing?
Alum is the best general-purpose choice because it brightens color and works on wool, silk and alpaca at 8 to 10 percent of fiber weight. For cotton and linen, the better answer is a tannin pre-mordant from acorn, sumac or oak gall, followed by alum, because cellulose will not bind plant dye to alum alone. Iron is powerful but darkens color, so reserve it for wool.
How much alum should I use as a mordant for cotton?
On its own, alum is not enough for cotton. Pre-mordant the scoured fiber with tannin at 10 to 20 percent of fiber weight, then give a second bath of alum at 5 to 10 percent. Alternatively use aluminum acetate at the supplier ratio and skip the tannin pot. Weigh the fiber dry after rinsing, since every percentage is calculated on dry weight.
Is white vinegar a mordant?
No. Vinegar is an acidifier, not a mordant. It lowers the pH of the dye bath, which helps protein fibers like wool and silk strike brighter and holds color slightly better in the first wash. It does nothing for cotton or linen, where you need tannin and a metal salt. Salt works the same way as a color sharpener rather than a fixative.
Why does my hand-dyed fabric fade so quickly?
The usual causes are skipping the mordant, dyeing fiber that still carried factory oils or sizing, and using more heat than the dye could take. Then there is the dye itself. Turmeric, pokeweed, safflower and avocado stone are known to fade quickly in light, and nothing you do will change that. Pick a more permanent dye such as madder, weld or indigo for pieces that will be worn or displayed.
Can you fix natural dye after it has faded?
You can improve it, but you cannot restore the original color. Re-mordanting a washed-out piece with alum sometimes firms and deepens what remains, and topping up with a fresh bath of the same dye adds a layer on top. Light damage is permanent, because UV breaks the dye molecules themselves. For anything already sun-faded, overdyeing into a deliberately darker shade usually works better than chasing the original.
What fabrics cannot be dyed with natural dyes?
Synthetics are the real no. Polyester, nylon and acrylic have no sites for a mordant to bond to, so you get a stained surface that wipes off. Wool and silk accept natural dye beautifully, and cotton and linen work well once they are properly tannin-mordanted. Be cautious with rayon, which takes color easily but is weaker when wet and more vulnerable to heat.
Conclusion
Start by naming two things before you heat anything: which fiber you have and which dye you are using. That pair decides the mordant and the percentage, and everything after it follows from those two facts. Scour, mordant at the right ratio, dye at the temperature your dye source asks for, cool in the bath, rinse until clear, then run the rub and wash test on a swatch.
The whole craft gets predictable once you do that on a test piece first. If you keep dye records the way you keep recipe notes, 2026 will find you dyeing on the second try instead of the fifth.


