This post contains affiliate links. Please see our disclosure policy.

Blue and yellow tie-dyed shirt.

Happy Earth Month! April is the month for celebrating Mother Nature and the beautiful earth she gave us to call home. We should celebrate every day by being eco-conscious of what we do and what we eat, but I love celebrating holidays. April 22 is Earth Day and what a better way to celebrate than with a DIY craft to upcycle clothing and fabric you already have at home. Making natural fabric dye is incredibly easy and you probably already have all the ingredients you need: food scraps!

Dried black beans used for natural fabric dye

Giving food scraps a new purpose is a great way to reduce personal food waste. Scraps can always be composted, but there are other practical uses for them, too. Food scraps like onion skins, carrot peels, mushroom stems, and herb stems can be frozen and later used to make vegetable broth. If you grow your own carrots or buy carrots with the tops still attached from the farmer’s market, you can use those greens to make a delicious carrot top pesto. Did you know you can also use those scraps to dye your clothes?

The best way to celebrate Earth Day is to do nothing; stay home, plant some flowers in the garden, try to use less electricity and water for the day. That makes this a great stay-at-home activity because the objects needed for this project are commonly found around the house and yard.

Natural Fabric Dye Materials

To dye at home you’ll need a stainless steel pot and something to stir with. It’s always a good idea to use gloves when working with dyes, too. You will also need a fine mesh strainer.


Of course you need some type of fabric that you’ll be adhering color to. Natural fibers work best like cotton, wool, or silk. Wool and silk aren’t vegan, so the clothing I already have at home is either synthetic or cotton. Stay away from full synthetics when using natural fabric dye because the color won’t take as evenly or at all. Try to use fabrics you already have at home; old sheets, tea towels, white shirts, or dresses all work great. Upcycle what you can!

Papery onion skins in water

Food Scraps

The fun part is saving all the food scraps! Some examples of foods that can be used for natural fabric dye are avocado pits, avocado skins, onion skins, purple cabbage, black beans, tea, spinach, blackberries, blueberries, and beets. Have fun experimenting with this part! You can also forage outside for things to dye with such as flowers (we’ll talk more about that later), ferns, grass, and bark. Always make sure not to take too much from where you are foraging. Think; what stains your clothing when you spill food on it? Those will work perfect for dyes.

If you won’t be dyeing right away, store your food scraps in an airtight container in the freezer until they’re ready to use.

How to Make Natural Fabric Dye

There are a few steps to complete before dyeing fabric. Separate the food scraps by type; these will all be different colors. Chop them up into small pieces to get more color out of them, then add to a pot with double the amount of water. Simmer the scraps and water until the desired color is reached, then strain. Before you add your fabric, you need to prepare it with a color fixative.

White fabric in a pot with alum mordant.

Mordant the Fabric

Sometimes natural dye has a hard time sticking to fabric. In this case, you’ll need a color fixative before dyeing. One of the easiest to come by might already be in your spice cupboard–alum! Bring a large pot of water to a boil (use a pot that you can keep separate from cooking. A good place to find one is the thrift store). Carefully scoop out some of the water into a measuring cup, and add alum, stirring until it dissolves. The alum amount should be 10-20% of the dry weight of your fabric, so you’ll need to measure using a food scale. Add the alum solution back to the pot and stir until evenly distributed. Add the fabric to the water and let it simmer for about an hour, but don’t let the water reach a boil. Stir occasionally. Remove from the heat after an hour and let the solution and the fabric cool. Your fabric is ready to dye!

White fabric in black bean dye.

Dyeing the fabric

If the fabric has dried since mordanting, wet the fabric in warm water. Previously, I’ve left the food scraps in the water while leaving the pot to simmer with fabric for a couple hours, but this can create splotchy results. It’s best to strain the dye first, then add fabric. You can simmer it or just let the fabric soak until the desired color is reached. When the color is right for you, rinse the fabric with cold water, and let dry. You can further set the dye by ironing or putting the material in the dryer. The fabric’s color may fade over time, but you can always re-dye it!

Onion skins turning water yellow.

Dyeing with Flower Petals

Another fun way to dye fabric is with plant leaves or flower petals. All you need is some fresh petals or greenery, a hammer, and a sheet of plastic or tape. Arrange the greens and petals on fabric and cover with the sheet of plastic or tape the design down. I like to use a reusable sheet of plastic so I can have a zero-waste project. If you don’t want to use tape or plastic, arrange the design and then fold the material in half over top of it for a mirroring effect. Using the hammer or a rubber mallet, gently hammer the petals and greens; this will release their natural dye into the fabric leaving the design you’ve arranged. You should mordant this fabric, too, for the design to stay longer. It may still fade after washing.

I will always advocate for using natural ingredients in order to avoid harmful chemicals, especially during Earth Month. This is an easy way to be creative without being wasteful. Plus, you can always compost the scraps after making the dye!

Dried hibiscus spilling out of jar

Getting Started with Natural Fabric Dye

These foods make great natural dyes.

  • ​Turmeric (orange/yellow)
  • Red cabbage (blue/purple)
  • Acorns (brown)
  • Berries (purple)
  • Avocado (peach/pink)
  • ​Hibiscus (purple/blue/pink)
  • Black beans (purple/blue)
  • Nettles (green)
  • Celery leaves/other greens (green)
  • Onion skins (yellow/orange)
  • Cherries (red/pink)
  • Tea (brown)

Blue and yellow tie-dyed shirt.

I chose to work with onion skins, dried hibiscus, and black beans because those are all things I already had around the house. After mordanting my fabric on the stovetop in a saucepan, I put the fabrics in the different dyes I pre-made to let them soak until I liked the color. When rinsing in cold water, the hibiscus dye turned a nice purple/blue color, but the fabric accidentally touched the yellow shirt. I decided to tie-dye to make it look intentional, and I love the way it turned out!

Shirt dyed with hibiscus.

Natural fabric dye is a total trial and error project. Try out different things and don’t be afraid to mess up; you might create something unintentionally beautiful by doing so! Leave a comment below and let me know what food scraps you plan on upcycling your clothing with.

No ratings yet

Natural Fabric Dye | How to Utilize Food Scraps

By: Jenné
This Earth Day DIY project can be accomplished with things you already have in your home and kitchen. It's a great way to upcycle and give new life to clothing you no longer wear.
Prep Time: 2 hours
Cook Time: 2 hours
Total Time: 4 hours


  • 1 Stove
  • 1 Kitchen scale


  • 1 Stainless steel stock pot
  • 1 Wooden or stainless steel spoon
  • 1+ cups food scraps, separated by type. You'll need double the amount of water.
  • Alum, 10-20% of dried fabric weight



  • Measure alum amount in grams based on dry weight of fabric.
  • Bring large pot to a boil; carefully remove some hot water and dissolve the mordant, then add back to the pot.
  • Reduce heat and add fabric. Simmer for an hour, then carefully remove fabric to let cool.
  • Note: You can save the water and add food scraps for an even stronger colored dye since there is already mordant in it.

Dyeing with black beans

  • Cover black beans with double the amount of water. Soak for 48 hours.
  • Remove black beans with slotted spoon. If these haven't started to ferment, you can cook them and eat them. Otherwise, compost the beans.
  • At this point you can add a small amount of alum dissolved in warm water for a richer color. Otherwise, this is a cold dye process.
  • Add fabric to water and let soak until desired color is reached.

Dyeing with dried hibiscus

  • In a sauce pan, add a generous amount of dried hibiscus and water as if making tea.
  • Simmer until desired color is reached. Strain and compost dried hibiscus, or reuse for tea.
  • Add fabric to dye pot. Let soak until desired color is reached.

Dyeing with yellow onion

  • Peel the outer, papery layer of the onion. Refrigerate or cook with the onion!
  • Add the skins to a pot of water and bring to a boil. Reduce to simmer.
  • Add fabric to dye pot. Let soak until desired color is reached.

Rinsing the fabric

  • Rinse the fabric in cold water until the water runs clear. Hang to dry.
  • Further set the dye by ironing or drying in dryer for a few minutes.
  • Enjoy your upcycled clothes!
Like this recipe? Rate and comment below!

Colorful natural fabric dye

About Jenne

I’m a Georgia Peach living in Los Angeles (by way of NYC), with an insatiable love of sweet potatoes, travel, animals, and cooking. On Sweet Potato Soul you’ll discover hundreds of delicious and easy-to-make vegan recipes.

You May Also Like

Leave a comment

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