Natural Dyeing Guide: How to Dye Fabric Using Food Scraps

Gloved hands holding ball of fabric over dye bath

Siriporn Lin / Getty Images

  • Working Time: 5 - 7 hours
  • Total Time: 7 hours - 3 days
  • Yield: 8 cups of liquid dye
  • Skill Level: Beginner
  • Estimated Cost: $5

While garment factories around the globe drain tons of harmful textile dyes into crucial waterways to keep up with the growing demand for fast fashion, the fruits and vegetables that could provide a cleaner alternative make up almost half the world's total food waste. Maybe discarded onion skins and avocado pits couldn't alone meet the needs of high street giants, but they can certainly add color to your personal wardrobe—for free and with little to no environmental impact, at that. 

Fruits and vegetables are great sources of natural dyes because they contain flavonoids, tannic acid, and ellagitannin—all categorized as "polyphenols"—that create their rich colors and can stain clothes. Experimenting with natural dyes at home is fun, easy, virtually free, and incredibly rewarding. 

Get to upcycling with this basic guide to food-derived fabric dyes, three fail-proof methods included.

Choosing a Fabric

Natural plant and animal fibers like cotton, linen, silk, and wool hold plant color better than synthetics. In general, fabrics that absorb water well are likely to also absorb dye well. Due to its unique chemical makeup, nylon can be dyed using food scraps, too. One study that assessed the success of dyeing nylon with onion skins found that the fabric was able to hold soft, pastel, and light color and exhibited excellent colorfastness given the dyebath was heated with an acid, such as vinegar.

What Is Colorfastness?

Colorfastness is a dyed fabric's resistance to fading or running when washed or exposed to the sun.

Always pick pure fabrics over blends because the various fibers included in blends may dye at different rates, potentially resulting in a dappled look.

Best Foods to Use

Foods that are rich in tannins are best for natural dyes. Most result in pale hues, but the color gets stronger the longer you leave the fabric submerged. Note that sometimes the pit of a fruit creates a different color than the skin, such is the case with avocado. Here are some plants popular for dyeing and the colors they produce.

  • Pink: Avocados (the stones create a deeper shade than the skins)
  • Reddish-pink: Beets, raspberries, strawberries
  • Purple: Red cabbage, blackberries, pomegranate seeds
  • Yellow-gold: Pomegranate rind, yellow onion skins
  • Green: Spinach, mint leaves
  • Blue: Black beans, blueberries
  • Brown: Coffee, tea

What You'll Need


  • Large stockpot with lid
  • Spoon or tongs
  • Strainer
  • Plastic bucket
  • Household or garden gloves


  • Undyed fabric
  • 4 cups food scraps of choice
  • 2 tbsp soda ash
  • 2 tbsp pH-neutral soap
  • 2 cups vinegar
  • 1.5 gallons water


Method 1: Quick-Boil Dye Method

Person dyeing clothes in large pot

hepjam / Getty Images

The easiest and quickest technique involves boiling food scraps on the stove, straining the liquid, then simply soaking fabric in the dye bath. This recipe will yield about half a gallon of dye. Exact measurements will vary based on the amount and type of fabric you use.

  1. Scour Your Fabric

    Bring 8 cups of water to a boil in your stockpot. Dissolve two tablespoons each of soda ash and pH-neutral soap once boiling and submerge your fabric using a wooden spoon or paddle. Reduce heat and simmer with the lid on for two hours. After two hours, drain and rinse your fabric, then set it to the side.

  2. Prepare Your Dye Bath

    Start by chopping your food scraps. Some people even use a food processor to turn them into a pulp, which may allow tannins to escape easier, but small chunks will also do. The ideal ratio for a plant dye bath is one part dye matter to two parts water, so combine 4 cups of chopped food scraps and 8 cups of water and boil for an hour. For richer color, turn the heat off and let the scraps soak in the dye bath overnight. 

    Food scraps should be virtually colorless when the dye is ready. Strain the liquid into a bucket and compost the scraps. 

  3. Soak in a Vinegar Bath

    While you're preparing your dye bath, combine 2 cups of vinegar and 8 cups of lukewarm water in a bucket. Add your fabric, cover, and let soak at room temperature for at least an hour—the longer it soaks, the better the color will stick. When finished, drain and set wet fabric aside.

  4. Dye Your Fabric

    If your fabric has dried out from the vinegar bath by the time you're ready to dye it, rinse it again—wet material absorbs color more uniformly. 

    Once the dye bath cools to room temperature, dunk your fabric into the dye using a spoon. It's best to wear gloves during this step to avoid staining your hands. Wooden spoons are prone to staining, too.

    Let the fabric soak in the dye for an hour to a day. The longer it soaks, the richer the color.

  5. Rinse and Dry 

    Once you've achieved your desired color, rinse your fabric in cold water until it runs clear, strain it, and lay it out to dry. Avoid drying your freshly dyed garments in the sun. Before wearing, wash the garment on its own or with similar colors in a pH-neutral soap.

Method 2: Tie-Dyeing With Food Scraps

Freshly tie-dyed garments hung to dry

Nuttanin Knyw / Getty Images

The traditional tie-dye method works with natural dye, too. With this technique, you can get creative with color combinations and play with patterns and folds. If you plan to use multiple colors, you'll need to create a separate dye bath for each of them. Remember that colors will change when mixed, so use a color mixing chart as a guide.

For this method, you'll also need rubber bands or twine.

  1. Prep Your Fabric

    Prep your fabric for dye by scouring and soaking in a vinegar bath, as described in the previous method. When finished, drain and set wet fabric aside while you prepare your dye bath(s).

  2. Prepare Dye

    Prepare your dye bath according to the quick-boil dye method. You can prepare several dye baths at once using different food scraps, or you can prepare one after another—this process can take several days, depending on your desired richness of color.

  3. Tie

    Twist, crimp, crumple, or fold your fabric to achieve your desired pattern. You can create a uniform checkered design by folding it vertically like an accordion, using metal clamps or simple rubber bands to secure it, then folding it the same way horizontally and dying each way. Or you can go with the classic tie-dye look by twisting from the center.

    The tighter you tie the fabric, the more you will protect the folds from color. You can even rub a bit of candle wax on your twine to make it extra-resistant to dye.

  4. Dye

    Dye the fabric as normal, by submerging it in the dye bath and leaving to soak for at least an hour. Once you've reached the shade of your liking, take the fabric out of the dye bath, rinse it until the water runs clear, remove the rubber bands or twine, create a new pattern, and dye again in a new color using the same method. 

  5. Rinse and Dry

    Once you've finished, rinse the fabric until the water runs clear and hang to dry in the shade. Before wearing, wash the garment on its own or with similar colors in a pH-neutral soap.

Method 3: Slow Solar Dyeing

Jars of food scraps fermenting on a barrel

Angela Kotsell / Getty Images

This method, also called "fermentation dyeing" uses the sun instead of heat from a stove to create a dye. Because glass jars work best for trapping the heat, you may be limited in the amount of fabric you can dye in one container. 

For this method, you'll need a lidded glass jar—or several, if creating different dyes—large enough to fit your dye bath and fabric.

  1. Prep Your Fabric

    Scour your fabric and soak it in a vinegar bath, as described in the previous methods. When finished, drain and set the wet fabric aside.

  2. Combine Ingredients

    In a glass jar, prepare your dye with one part food scraps and two parts water. Submerge your fabric, still wet from the vinegar bath, in the dye. Close the lid and shake to thoroughly mix ingredients.

  3. Let the Sun Take Over

    Put the jar in a sunny location and let it sit for several days. This can be done only on hot days, as the dye needs to reach 185 Fahrenheit for the chemical process of color transfer to occur.

  4. Rinse and Dry

    Once you've achieved your desired color, rinse the fabric until the water runs clear and hang to dry in the shade. Again, wash the garment on its own or with similar colors in a pH-neutral soap before wearing.

Frequently Asked Questions
  • Can naturally dyed fabrics be washed in the washing machine?

    Before tossing a naturally dyed garment in the washing machine, wash the item individually by hand in the sink to ensure that the color has set and will not bleed onto other articles of clothing.

  • Can you reuse or save natural dye?

    A batch of dye made from food scraps can often be used a second time to color another article of clothing. Additionally, leftover dye can be stored for later use. Pour the dye in a marked glass jar and refrigerate.

View Article Sources
  1. "Effects of textile dyes on health and the environment and bioremediation potential of living organisms." Biotechnology Research and Innovation. 2019.

  2. "Food Loss and Waste Facts." Food and Agriculture Administration of the United Nations. 2015.

  3. "Eco-dyeing of Nylon Fabric Using Natural Dyes Extracted from Onion Outer Shells: Assessment of the Effect of Different Mordant on Color and Fastness Properties." International Journal of Scientific and Engineering Research. 2016.