How to Dye Yarn Naturally

Add natural color to your knitting yarn: You can use kitchen scraps—like red cabbage, avocados, and beets—to create a brilliant range of dye colors.

four assorted colors of dyed yarn

This idea comes from our friend Ashley Poskin. Dyeing requires simple chemistry, experimentation, and exploration. Natural fibers—such as cotton, linen, silk, and wool—take dye much better than synthetics do. Many different food items that can be used when dyeing yarn; some give off the color you expect while others surprise you entirely. Black beans soaked overnight and drained result in beautiful grays and blues, while sage boils into a pretty yellow. For this demonstration, we used an avocado pit with peel which are green, but the dye result is the most beautiful blush pink. The peels and pit can be stored in the freezer until needed (just be sure to wipe them clean before freezing). You can also dry them out and store them in a container or paper bag.

The more scraps you use in the dye bath, the darker your dye bath and color as a result. Muddle fruits to better extract color while boiling, and be sure to chop items like cabbage and beets into smaller pieces beforehand. As always, be sure to strain any debris off the dye before submerging the yarn. Take color experimentation even further by adding an acid or base to the final dye. The best part of dyeing yarn naturally is that you're using food waste to create something beautiful and eco-friendly without chemicals. Once dyed, you can wind the yarn by hand into a ball, hank, or skein—ready to be used in your next knitting project. Pictured above from top to bottom: undyed yarn, avocado (in one and two dips into dye bath), beets, and red cabbage.

For more ideas, scroll through our entire collection of dyeing projects and natural dyes.

What You'll Need


  • Animal fiber yarn (such as wool, silk, or alpaca)
  • Animal fiber yarn (such as wool, silk, or alpaca)
  • Large pot
  • PH neutral dish soap
  • Alum
  • Strainer
  • Spoons


  1. yarn in bowl of white vinegar and water

    Soak yarn in a warm bath of PH neutral dish soap to rid it of any chemicals or oil treatments. (Note: If you skip this step, the yarn will still absorb color but may be less vibrant.)

  2. yarn alum avocado bowl and wooden spoon

    While the yarn is soaking, prepare the mordant bath in a large stock pot (a non-reactive pot like stainless steel or enamel works best) by adding 1 tablespoon Alum per gallon of water. Bring the water to a boil, add the pre-soaked yarn to the mordant bath and turn the temperature down to simmer. Allow the yarn to simmer in the mordant for at least 2 hours. The longer you allow the organic matter to boil, the darker the dye will become. It can take anywhere from 20 to 60 minutes to achieve a deep, rich color. Avocado pits release within the first 15 to 20 minutes, while purple cabbage leaves take up to 40 minutes. Once cabbage, onion skins, and fruits begin to lose their color and turn white or translucent you can stop the boiling process. Turn off the heat, remove the organic matter from the pot and let the water cool to room temperature. (Tip: If you notice any debris leftover in the water, you can strain it through cheesecloth or a coffee filter.)

  3. placing yarn in pan of dye

    Once cooled, add yarn and bring the pot to a simmer, then turn it off at let it steep for up to 20 minutes, to overnight. The longer the yarn steeps, the darker it will become. Be careful not to move around the yarn too much in the hot water, as it can start to felt.

  4. yarn laid out to dry

    Remove the yarn from the dye bath and rinse in warm water with PH neutral soap. (Note: It's normal for the yarn to lose color as it's being washed.) Drape or hang yarn to dry; let dry completely.

  5. red dye in pot next to plate of fruit

    After the first soak, there should be quite a bit of dye bath leftover, it will be lighter in color, but still usable. Use the remaining dye bath right away or store in a lidded jar inside the refrigerator.

Related Articles