Plant Dyed Fabrics

This blog is an introduction to dyeing fabrics with plants. We won’t be using any fancy equipment or mordants here (we’ll get back to that later) – just plants, water, and the fabric you wish to dye. While there are many plants which can be used to dye fabric, this blog will focus on dyes derived from common kitchen scraps: avocado skins and stones, red and yellow onion skins, and carrot tops. 

Using kitchen scraps to dye fabrics is a wonderful way to use plant parts that would otherwise be composted. You may wish to give new life to old or thrifted clothes or use plants to dye bolts of fabric and yarn. Either way, this project is fun, can easily be done over the weekend, and is family friendly. 

Experimentation is a key part of this process. If you fall in love with plant dyeing, try other plants from your garden (nettles make a beautiful slate blue) or pantry (sumac produces a deep burgundy shade). Keep a journal about your process/results, test fabric swatches, and get creative with patterns!

Choosing your Fabric

We recommend using natural fabrics like cotton, wool, or silk. You can use synthetic fabrics, but colors tend to be softer and splotchier, which may be exactly what you’re looking for. All of the fabrics you’ll see in this blog post are 100% cotton. Even though we’re using natural fibers, you’ll want to wash fabrics before dyeing them to ensure an even, saturated color. 

Speaking of evenness, anything with a seam (think clothing) will likely produce an uneven finish. This isn’t a bad thing though! Intentionally, or unintentionally, uneven dyes can be beautiful. While the plant dye and fabrics do their thing, colors can vary widely (more on that later), so accepting that you’re just along for the ride can help you see the beauty in what you’re doing.


Avocado Skins and Stones Scrape away as much flesh from the skins as possible. Set on a sunny windowsill to dry. Gently wash away avocado flesh from stones. Store in a paper bag until ready to use or freeze for longer storage (up to three months). 

Carrot Tops Use stem and leafy parts. Use immediately or store in the freezer for up to three days. 

Red and Yellow Onion Skins Peel away outer layers of onions. Set skins on a sunny windowsill to dry. Store in a paper bag until ready to use or freeze for longer storage (up to three months).


As a general rule, the more plant material you have, the deeper your dye will be.

  • avocado skins and stones: pinky peach
  • red onion skins: pale pink/mauve/brown
  • avocado skins + red onion skins: orange-y peach
  • yellow onion skins: yellow/brown
  • carrot tops: green/pale green
  • yellow onion skins + carrot tops: yellow/pale yellow
Dye vs stain

While many plants can be used to change the color of a fabric, not all of them are actual dyes. Plants like spinach, turmeric, and beets will stain your fabric blue, yellow, and pink, respectively, but the colors will fade with time and washes in a matter of weeks to months. Plants that dye fabric release pigments which bind to the fabric’s fibers. While these dyes may gradually fade over time, the color will hold for years.  


A mordant is a substance which helps the pigments from plants bind to the fibers in your fabric. If you’re dying plant fibers like cotton and you want a vibrant shade, you may want to use a mordant, but this is optional. Animal fibers like wool and silk tend to have an easier time binding with pigments. One of the easiest mordants to use is unsweetened soy milk. After you wash your fabrics, you can soak them in soy milk, lightly ring out, and then allow to air dry before dyeing. 

A note on colors

Colors can vary widely depending on many factors. One avocado skin may produce a bright pink, while another dusty rose. Red onion skins may give you pale mauve or a deeper brown. Color can also vary depending on the material you’re dyeing. Cotton may take carrot tops differently than wool, for example. The water you use can also affect the final color outcome. All of that is to say, your dyes may look very different from those in this post, but this is all part of the fun! Allow this process to surprise and delight you.


  • large pot

  • plants you’re using to dye with

  • fabric that you are dyeing 

  • wooden spoon

  • gloves (only necessary if you wish to avoid temporarily dyeing your hands)

  • optional: strips of fabric to create patterns


1. Pre-wash the fabric you wish to dye with a gentle fabric soap by soaking fabric in soap and warm or hot water for several hours or overnight. Rinse and keep damp before adding to your dye pot. 

2. Fill your dye pot with enough water to cover the material you wish to dye. There should be enough water so fabric can move freely around the pot. Add plant material to the pot. Bring to a boil, reduce heat, and simmer for 20-40 minutes. You’ll see the water gradually deepen in color. The longer you simmer, the darker the color generally. 


3. Begin soaking your fabric. You can begin the soak while the pot is still simmering. You can even simmer for an additional hour with your fabric in the dye pot. Remove from heat and steep for several hours to overnight. Animal fibers should soak for at least 12 hours but up to 24 hours. With a wooden spoon, stir the pot every time you think about it or walk by to encourage an even shade. The longer the fabric soaks, the more vibrant the final product.  

You can use strips of fabric to create patterns in your dye. Cut an old t-shirt or kitchen cloth into thin strips to tie tightly where you don’t want dye. Stripes are the easiest! Some cloth (red and pink mostly) may transfer its color onto the fabric you’re dyeing so use white/undyed fabric if you don’t want dye transfered. 

4. When your fabric has reached your desired shade, remove it from the pot. Rinse in warm or cool water and gentle fabric soap. Hang dry. 

5. Wash your plant dyed fabrics in cold water and dry on the lowest heat setting or air-dry for long-lasting color.

King sized pillow case dyed with carrot tops and yellow onion skins. Fabric strips create a striped pattern. Soaked in dye pot for 3 hours.

Small cotton pouch dyed with avocado skins and red onion skins. Soaked in dye pot for 3 hours.