Searching for a natural way to color and maintain fabrics? What follows is a step-by-step guide to DIY dye fabric with plants. Note that this will only work with natural plant-based fabrics such as cotton, linen, jute, etc.
The following section may contain affiliate links. As an Amazon Associate, we earn from qualifying purchases.
Materials to DIY Dye Fabric:
- Natural Fabric (Plain white cotton fabric is inexpensive and easy to obtain by the yard, and makes great material for crafting and experimenting with DIY dye!)
- Salt
- Vinegar
- Water
- Plant material

Step 1: Extract Dye & Prepare a Dye Bath
Prepare the Plant Material
Choose a material for your DIY dye that is easy to harvest sustainably. Many materials are easy to repurpose from vegetable scraps or leftovers. Use old or leftover leaves to dye fabric with tea. Check the spice section of your preferred grocery store for ingredients to dye fabric with turmeric.
If your plant material is not already in fine particles (such as coffee or tea), mince the material into small pieces to extract as much dye as possible.

Boil the Plant Material and Strain
Add the minced material to a pot of water, about 1 cup of plant material per gallon of water. Add 1-3 tbs of salt, and boil for 30 minutes, then let rest for up to a day. After resting, is optional to boil the material once again in order to obtain a more concentrated extraction.
Let your DIY dye cool, then strain with a cheesecloth or fine strainer.

Step 2: Prepare and Dye Fabric
Boil the Fabric in Vinegar & Salt
Wash your fabric on a gentle, water-saving cycle to clean. Mix a 4:1 ratio of water and vinegar in a pot large enough to submerge the fabric; add 1 tsp mordant, such as alum, to help the dye adhere to the fabric. Add the fabric and boil for up to an hour. Strain and squeeze or wring the fabric to remove excess liquid; allow to cool, but do not dry. Vinegar will aid the process of bonding the dye to the fabric.

Soak the Fabric in a Dye Bath
Place the wet fabric in a separate pot. Add the DIY dye bath, enough to submerge the fabric entirely. Cover and let rest for 12-24 hours. To aid the dying process, experiment with adding various quantities of salt: add several tbsp; or use sea water to create the dye bath.
Step 3: Dry & Heat Treat Dyed Fabric
Hang the Fabric to Dry
Strain and ring the fabric, but do not rinse! Hang the fabric to dye, and place a tray or old towels underneath to avoid staining the surface below. Rotate the fabric about halfway through drying.
You can lay the fabric flat to dry, however this may lead to more uneven coloration. Some DIYers find this variation to be desirable and beautiful, and it is worth experimenting to generate different results. DIY dye can also be applied to folded or twisted fabric to create a tie-dye effect.

Heat Set the Fabric Dye
In order for your DIY dye to remain colorfast, your newly-dyed fabric needs to be exposed to a moderate amount of heat in order for the dye to bond to the fibers of the fabric. Once your fabric is completely dry, hang the fabric to cure in warm sunlight for 1-2 days. Alternately, you can iron your fabric, or put your fabric in the oven at a low heat (300-350) for 3-5 minutes. Put dyed fabric in the dryer on high heat for 10-15 minutes to achieve the same results.
Note that the first round of DIY dye may not uniformly color the fabric. Several rounds of dying and heat setting may be necessary to gain your desired color and uniformity.
If you plan to wax your fabric, heat set the dye simultaneously as you place it in the oven to melt in the wax. Check out this post for a great tutorial for waxing/waterproofing fabric.
Caring for DIY Dyed Fabric
Clean DIY dyed fabric in cold water with mild soap or detergent. Natural dyes tend to fade more quickly than chemical or commercial dyes; however, now that you know how to dye fabric with plants, repeat the fabric dying process as-needed to maintain the color of your fabric.
Plants that Can be Easily Used to Dye Fabric
How to Dye Fabric with Beets
Beets make some of the richest, brightest red to pink dyes. You can prepare a dye bath using the method above with whole beets; or use leftover beet skins, stems, and leaves. Mince the beet skins and leaves and boil them for 30 minutes. Let sit overnight, then strain. Soak prepared fabric in the dye bath as described above.

How to Dye Fabric with Turmeric
Turmeric creates a variety of incredibly bright, rich yellow dyes. Start with 1 tsp of turmeric per quart of water in your dye bath, and experiment with ratios to create your desired color. More turmeric will yield a deep, golden yellow. Less turmeric will create lighter, more pastel yellows.

How to Dye Fabric with Tea
Brew strong black tea and strain to create a brown dye bath. Experiment with various teas to generate different shades of brown.

How to Dye Fabric with Coffee
Brew coffee and strain to create a warm, brown dye bath. Alternatively, dissolve instant coffee into warm water with 1-3 tbs of salt and soak prepared fabric in the solution.
How to Make Green Dye with Spinach
Puree fresh spinach and boil for 20-30 minutes to create a light green dye bath. Strain and let cool, then soak prepared fabric in the dye bath. Check out this post for a detailed explanation of how to dye wool with spinach.
For further reading
Check out this book for a deep dive into using plants to create natural dye.