Onion Skin Dye: Dyeing from the Kitchen

Who knew onion peels could be used to produce beautiful dyes? Both red and yellow onions produce beautiful colours, but I don’t recommend mixing the two together for you will likely “muddy” the colours. This experiment will focus on yellow onions, which can yield a beautiful range of soft yellows to rich oranges and all shades in between. Onion skins are rich in tannin, so even without the use of a mordant they can bind to fibres quite nicely.

You will need to collect the skins from many onions to have enough to create a dye bath. When you start saving your onion skins, be sure to store them so that they’re exposed to the air and can dry out, I recommend using a bowl or brown paper bag. Don’t store them in an airtight container as they could get mouldy.

While there is no set quantity of onion skins to use, the more onion skins relative to the amount of fibre you’re dyeing, the darker your final colours will be. If you’re only dyeing a small amount of fibres you need only use the skins of maybe 5 onions, but a larger quantity of fibres will require a large quantity of onion skins. More fabric = more onion skins. You also have the option of adding more skins throughout the dye process if your colour isn’t as deep as you’d like it to be. 

To create your dye bath you will need to follow these general steps:

  • Add your onion skins to your dye pot.
  • Add enough water to cover your fibres.
  • Bring the onion skins and water to boil and then reduce to a simmer. Allow to simmer for 1-2 hours, keep an eye on the solution and take it off once you’ve reached a depth of colour that you enjoy.
  • Strain out your onion skins.
  • Place your pre-wetted, mordanted fibres into the dye pot & simmer for at least 30 minutes, longer if you would like a deeper colour. You could also remove your dye pot from the stove and allow your fibres to soak overnight.

Keep reading to see my own experiment and the results I got! 

Fibres I used: Mercerized Cotton; Silk Habotai; 100% Wool

Paper I used: Canson Watercolour 140lb cold pressed; Canson Mix Media 98lb

For the fibres I did 3 tests per colour. I had a series of unmordanted samples, a series of alum mordanted samples, and a series of soy mordanted samples. 

Alum mordant: Follow this link for detailed instructions. 
I mordanted silk habotai, wool and cotton in alum. I used a 17% solution and mordanted them using the stovetop method. 

Soy Mordant: I only mordanted my cotton in soy, as the other fibres are protein fibres already. Link to instructions. 
I soaked my fibres overnight in the soy milk, and did the “quick dip” step 3 additional times over 2 days. I then let the cotton “cure” for 3 days before dyeing. 

After I completed my mordanting I was ready to move onto dyeing the fibres! But first I had to figure out how many onion skins to use.
I have read a variety of dye recipes that all seemed to list different quantities, but I knew I wanted a darker colour, so I opted to use at least 1/3 the weight of my dry weight of goods (DWoG). 
I weighed my fibres when they were dry, and the samples came to 51.8grams. I figured I would start with about 17g of onions skins, so I weighed them out and ended up with 18g. 

Now that I had my dye stuff weighed out I was ready to brew up my dye bath. I placed the onion skins in a large pot and covered them with water. I made sure to use enough water to cover all of my samples, and then some! 
Once my onion skins were submerged I turned on the heat and brought my dye bath to a strong simmer where I let it sit for about 15 minutes before lowering the heat to a low simmer. At this point I decided to add roughly 5g extra of onion skins. I then cooked the skins for about 1.5 hours at this temperature. 
After all that time on the stove I was happy with the depth of colour I achieved, so I strained out the skins and put my dye bath back on the stove. As the bath was reheating I made sure to pre-wet my fibres to ensure an even absorption of dye. To pre-wet them I just filled a bowl with hot water and made sure to submerge all my fibre samples. 
I wrung out my samples after about 15 minutes and added them one-by-one to the dye pot, making sure each sample was submerged. I set a timer for 30 minutes as a reminder to check the colour, but otherwise I just let the dye bath do its thing, only checking in the stir and flip the fibres occasionally. 
The 30 minute mark came and I removed my samples from the bath to check the colour. I decided I wanted it darker so I put my fibres back in for another 20 minutes, which did the trick! As I was satisfied with the colour at this point, I took my samples out, rinsed them under the tap and hung them to air dry.

I proceeded to use my same onion skin dye bath to dye some paper! I used Canson Watercolour 140lb cold pressed and Canson Mix Media 98lb papers, both of which are affordable, versatile and accessible.
I first painted on my papers with soy milk. This will cause the dye to attach to the protein in the soy milk to achieve a different colour. Painting with soy milk is a easy way to create designs and patterns! You can also follow the same steps as you would with fibres and mordant your paper with soy milk as well, just don’t put it in the washing machine.
Once the soy milk was dry I submerged each paper in the onion skin dye one at a time, waiting for each previous sheet to be completely wet before adding another sheet.

I soaked the paper for roughly an hour before hanging them to dry. 



From left to right: Alum Mordant, Soy Milk Mordant, No Mordant, Canson Watercolour 140lb cold pressed, Canson Mix Media 98lb

After completing the initial dyeing of my samples, I further divided these samples into smaller groups. These groups were so that I could “post-modify” my samples; meaning change their pH and therefore their colour! My three groups were: no post-mordant, acidic post-mordant and basic post-mordant.
Acidic post-mordant:

  • Pre-wetted the fibres
  • Mixed white vinegar and hot water at a 1:1 ratio
  • Submerged the fibres in the vinegar solution for 5 minutes
  • Removed the fibres, rinsed under the tap
  • Further rinsed fibres in hot water with a few drops of synthrapol
  • Hung fibres to air dry
  • I used the same vinegar solution to modify my paper samples.


From left to right: No Mordant, Canson Mix Media 98lb, Canson Watercolour 140lb cold pressed, Alum Mordant, Soy Milk Mordant

Basic post-mordant:

  • Pre-wetted the fibres
  • Mixed baking soda and hot water to create a basic solution
  • Use 2 tsp baking soda per 1 cup of water, I used 8 tsp of baking soda in 4 cups of water
  • Submerged the fibres in the basic solution for 5 minutes
  • Removed the fibres, rinsed under the tap
  • Further rinsed fibres in hot water with a few drops of synthrapol
  • Hung fibres to air dry
  • I used the same baking soda solution to modify my paper samples.


From left to right:  No Mordant, Canson Watercolour 140lb cold pressed, Canson Mix Media 98lb, Alum Mordant, Soy Milk Mordant

Using Format