Preparing fabric with cow’s milk

When doing natural dyeing or eco-printing on plant-based fibres such as cotton, you need to prepare the fabric with something to help the plant dyes adhere. This could be mordants such as metals and/or tannins. Or you could use a protein-rich binder such as soy milk, cow’s milk, eggs or even blood. These emulate the results that you will get dyeing protein fibres (wool, silk, leather).

I have an eco-printing ecourse all about soy milk binders, which are great for achieving bright, long lasting eco-prints. In the ecourse, you can learn how to create a soy milk binder, prepare fabric with it, and then do several different projects with this clothing/ fabric. I also have an ebook about eco-printing and natural dyeing with soy milk binder. But similar results can be achieved using cow’s milk and I will share that method here.

For ethical reasons, I only use cow’s milk to prepare fabric when it would otherwise be going to waste. It doesn’t seem reasonable to buy it for this purpose when many people are starving and the dairy industry is horrific. But I have a friend who occasionally brings me bottles from their workplace that are close to their use-by date and were going to be thrown in the bin. Dumpster diving is also a good way to find wasted milk and put it to good use.

How to prepare fabric with cow’s milk


  • Scoured cotton, linen or other plant based fabric
  • A large pot or bucket
  • 1 bottle of cow’s milk
  • Water

Step one: add water to your milk at a ratio of 1:1. Pre-wet your cotton fabric (so it will absorb evenly) and add it to the milk. There should be enough space for the fabric to move freely. Let it soak for about half a day, stirring occasionally. This is best done on a cold day or in a very shady spot or else the milk will quickly get smelly and this smell will remain in the fabric even after dyeing. I soak fabric for less time in cow’s milk than when using soy milk, because it does tend to go bad faster (especially when it is already close to the use-by date).

Mordanting cotton with milk

Step two: remove the fabric, squeeze out the excess milk and put it in your washing machine on a spin cycle. Then hang to dry. Putting it on a spin cycle means that there won’t be milk dripping down the side of the fabric as it dries, which would show up as streaks when you dye it.

Step three: if your milk is still good, add the fabric back in just until it is saturated, then remove and put through the spin cycle and dry again. Do this process twice. Adding extra layers strengthens the binder, and it is done in quick dips so that the previously adhered milk won’t have time to come off. These extra steps can be omitted if your milk bucket is getting too smelly- you will still get good results from one round of soaking.

Step four: once your fabric is dry, leave it to cure for at least a week before dyeing it. Again, this strengthens the binder and helps it adhere strongly to the fabric. Then dye or eco-print with it as desired.

The difference between protein binders and metal mordants

Mordanting with milk versus iron on cotton

This picture illustrates the difference between protein binders and metal mordants. The top piece of cotton was prepared with cow’s milk. The bottom piece was mordanted with iron. Both pieces were eco-printed with the same species of eucalyptus leaves. On the milk binder, the leaves have printed a bright reddish-orange. This is similar to the results these leaves give on silk and wool, which is unsurprising because protein binders make plant fibres dye similarly to protein fibres. On the iron mordant, the leaves have printed olive-green and have some speckles and vein details. I find that iron mordants are great for bringing out details, while protein binders give flatter results but sometimes more vivid colours.

I hope this has been useful for you and gives you a way to make use of milk that would otherwise go to waste. Feel free to pin the image below to return to this information later.

Instructions for mordanting cotton with milk, for eco-printing and natural dyeing

55 thoughts on “Preparing fabric with cow’s milk”

  1. Thank you for the clear explanation of what a mordant does. I’ve read through many blogs about eco-printing, only to become confused with all the different steps and processes. Now I want to try it!

    1. Don’t wash before dyeing or you will wash out some of the milk and end up with a paler result. You can wash it well after dyeing.

  2. Thank you so much for sharing your experience and detailed instructions on natural dye and eco printing. I have been using the Iron mordent for all the while, now I can’s wait to experiment with milk. Sounds very interesting.

  3. The instructions are very clear. Just wanted to know if the cotton cloth used has to be completely dry before eco printing or a bit moist

    1. It would be best to let it dry completely and then cure for at least a couple of days, so that the milk can set into the fabric.

  4. Hi. Thank you for explaining everything step by step in “English” as opposed to “Scientist.”
    I do have a question, and I’m hoping you can help. Background: I’m getting ready to dye #10 crochet/bedspread weight cotton with avocado pits; if it matters, some mercerized, some not. I know soda ash (SA) + cotton is a great combo when dyeing, and I’ve very recently learned that SA + avocado dye stock typically gives a brighter pink. This will be my first time using a milk binder.
    Previously, I have soaked cotton yarn/fabric in a SA + water solution 12 – 24+ hours, spun out excess liquid in washing machine, and immediately began my dye process while the fiber is still slightly damp.
    Question: would it be possible to add SA to the 1:1 milk and water mix so the thread is absorbing and getting coated with both milk protein and SA?
    I know I can add SA into the dye bath, but it’s been my experience that colors on cotton are most vibrant when SA is in both the fiber and the dye bath. Thoughts?

    1. Hi Beth. I haven’t actually used soda ash to prepare cotton myself. But it definitely sounds like it is worth trying combining it with milk. I do suggest though that you let the fabric dry after soaking and spinning out the excess liquid, so that the milk can set into the fabric. And you will probably want to soak it for less time too, so the milk doesn’t go bad. Let me know how it goes!

      1. This is very helpful info. Thanks. Can you put it in the fridge to stop the milk going bad? Or will the cold temperature inhibit the process?

        1. Yes, if you are doing a small batch, the fridge is a good solution. You still don’t want to leave it for a couple of days, but overnight in the fridge would work well.

  5. Hi! Have you used a clothing dryer to expedite setting time (after dipping the fabric twice in milk) or does the fabric need to air dry for one week after the milk treatment?

    1. Hi Jamuna, I haven’t tried using a clothes dryer but I would worry that the heat might damage the soy binder in some way. The fabric only needs to be hung out until it is dry, then it can be folded up and put away until it is ready to be used. The time to let it cure between soaking and dyeing is the important factor here.

  6. Pingback: Soy Milk Binder eco-printing module – Gumnut Magic

  7. What about the plants part.Should we do mordanting with leaves or flowers too?If yes what will be preferred a milk or iron mordant.
    Thanks and regards

    1. Hi, it depends on what leaves or flowers you use. Some like eucalyptus will be colourfast on fabric prepared with cow’s milk. For others, I dip them in iron mordant before putting them on my fabric. Generally, any plant that you can eco-print with on wool without a mordant, you can eco-print with on this fabric without a mordant too.

  8. This is wonderful! Thank you. Just a question about when it is ready for dyeing. Once it’s cured, can I wet the fabric again to dye or will this affect the result? I used to always went the fabric first with some vinegar water and then place my leaves and flowers for steaming. Thank you!

  9. Soy milk is not a mordant, it’s a binder. mordants include tannic acid, alum, chrome alum, sodium chloride and certain salts of aluminum, chromium, copper, iron iodine, potassium, odium tungsten and tin. Soy sits on top of the fabric and acts like a glue for the dye to adhere to. With a mordant the dye molecules bond with the mordant into the fibers of the fabric. We should respect the persons who teach natural dyeing and use the proper terminology.

    1. Hi Lorri. You are absolutely correct. As I said in the first paragraph of this post, soy milk and cow’s milk are both binders. I admit that several years ago when I first wrote this, I erroneously referred to them as mordants, as I was led astray by other people’s use of that term for them. When I realised my mistake, I updated the post. But I see now that I didn’t change all the text. And the pin at the bottom does still talk about mordanting with milk, simply because by that time it was already all over Pinterest which I can’t do anything about. I do use the proper terminology in all my new content, and my ecourse about soy milk is called Soy Milk Binders.

    2. Hi, Lory i am from argentina and is really difficult to find easy content to learn about different mordent for botanical printing, can you tell me were i can read more about this? Thans

      1. Hi Elena, I have had my eco-printing on cotton ebook translated into Spanish, if you want to check it out. It is mostly about iron mordants, but there is a section at the end about Alum too. It is called Alquimia del eucalipto

  10. Hi do you think if I mordant my fibre(Rafia) then I soak it in soy milk will it help deepen the colour and seeing as it is already mordanted ,can I simply spin off then load into the dye bath?

    1. I actually recommend the opposite – prepare it with the soy milk first, let it cure, then give it a quick soak in the mordant. Once you have mordanted it, you don’t want to be doing a long soak in soy milk as it will dislodge some of the mordant. And it does need to dry and cure after being in the soy milk. Good luck with it!

      1. Caroline Nixon

        Actually soy won’t dislodge mordant. once the mordant is in the fabric it binds and stays there permanently. You can safely soak in soy or milk after mordanting

        1. Hi Caroline, thanks so much for clarifying that. It was taught to me to do it in that order, but your explanation makes more sense.

          1. Yes, that’s exactly how I love to work! There’s no right way either, just try things and see if you like the results

  11. Thank you so much for this I formation! I live on a farm with both dairy goats and fiber sheep. I have long wondered if I could use our extra milk in a similar way as soy milk (since I have an endless supply) when dyeing cotton and other plant based yarns for weaving. I’m definitely going to try it now! I’m confused about the best order in which to prepare the fiber. I have always used a tannin first and then mordant with plant fibers since the tannin is the mordant assist, helping the tannin bind to the finer . If the milk is the binder would I want to use that first and then the mordant? Are you saying the milk could be used without a mordant? Sounds like I need to do some experimenting.


    1. Hi, yes you can use milk without a mordant if you are using substantive dyes like eucalyptus. Basically anything that you can dye unmordanted wool with, you can use on cotton prepared with a milk binder. For mordant dyes, I tend to prepare with the binder first, then soak in the mordant, or simply dip leaves in iron mordant and put on the fabric. I have an ecourse all about soy milk binders, which would be transferrable to other milks too. I’ve never tried goats milk but considering that is has more protein than cows, it will probably give good results. Just don’t soak it too long or it will go smelly!

  12. Hi, I have been looking to understand the use of milk to treat fabric and your instructions are very easy to follow. Thank you ☺️
    Though have two questions.
    1. I live in a hot place so can I leave my fabric and milk mixture in fridge to avoid the smell, or it can impact the color?
    2. As I understand from one of the comments that milk is a binder and not mordant do we need to mordant the fabric before preparing it with milk?

    1. Hi Tanu. Yes, leaving the fabric and milk in the fridge is a great idea, it shouldn’t have any impact on how the binder works. Putting the milk binder on cotton coats it in animal proteins, which makes it similar to wool. So any leaf that you can use on wool without a mordant, e.g. eucalyptus leaves, you can use on fabric prepared with a milk binder. And any leaf that does need a mordant to print on wool, will also need a mordant for this process. We explore this a bit further in my ‘Soy Milk Binder’ eco-printing ecourse.

  13. thanks a lot for this post, it really help me to start understanding the steps with all this chemicals in the botanical prints process!

    1. They will have some effect, but results will be paler than when using soy milk – it really is a special binder.

  14. I have a box of boxes of non-refrigerator milk. It is past it’s use by date. It doesn’t smell, but I was going to toss it when I remembered… maybe I can use it as a mordant? What do you think? It is whole milk and may need to be blended, first.

    1. Yes, if it smells ok, go for it! Just remember to water it down first and to leave it soaking in a cool place for a few hours or longer – maybe check it from time to time to make sure it still smells fine. Once it goes bad, it is hard to get the smell out of the fabric – I learnt that the hard way 😆

    1. Unfortunately the best solution is to try to avoid this problem in the first place, by not using old milk, or soaking for too long or in a hot place. Once the smell is in there, it can be hard to budge. Washing it and airing it outside for a few days may help somewhat, but in an extreme case I’d recommend scouring the fabric, which will remove both the smell and the plant dyes, but at least you can start again.

  15. Jessica Bourassa-Pitroff

    Hello! Just found you by looking to make sure I can use whole milk to make a mordant. I am just starting this journey with wood dying with food scraps and plants. I sell eco-friendly wooden toys and want to try this method out. Is using whole milk safe if a baby has a milk allergy? I’d also try soy but every option brings a chance to lose a customer due to allergies. What might you suggest? Thank you!

    1. Hi Jessica, I’m not too sure sorry. I feel like the milk proteins will all bind to the dye and the wood and not be bioavailable, but I guess it also depends on what your customers feel comfortable with.

    2. While soaking your fabric in the milk solution, is there some reason you are not keeping the pot in the fridge, to keep it from going sour, and so preserving it for the next round of soaking your fabric?

      1. Hi Theresa, if you are working with small amounts of milk then yes, keeping it in the fridge to preserve it longer will help. Sometimes I am doing a large pot of it which won’t fit in the fridge, that’s why I can’t always refrigerate it.

    1. It might slightly change the colour, but if it noticebly discolours the fabric it is a sign that you have used too much. In this case, you can soak it in plain water to try to flush the excess off, or even scour it.

    1. It will have a very mild smell, that will go away after it is dyed and washed. If it has a strong unpleasant smell, it means the milk had gone bad from being left out too long or getting too warm.

Leave a Comment

Your email address will not be published. Required fields are marked *