Fabric Science · Fashion Wellness

5 Food Waste Scraps That Make Non-Toxic Fabric Dye

avocado skins, onion skins, walnut hulls, carrot tops and red cabbage will show you, in about an hour, what dye actually is.

September 14, 2026 · 10 min read

A grid of naturally dyed fabric swatches laid on cream linen in shades of dusty rose, rust, yellow, olive and marigold, with whole onions, avocado pits and sprigs of herbs resting on top.

Nearly everything colored in your closet got that way in a steel vat, at high heat, in water loaded with salt and alkali and a set of chemicals whose only job is to force color onto a fiber that has no particular interest in holding it.

The color itself is built from petroleum. The world makes around 800,000 tons of dye a year, and roughly 70 percent of it comes from one family, the azo dyes. They are cheap, they are brilliant, and they have a property worth knowing about: the chemical joint at the center of an azo dye can come apart. When it does, it releases compounds called aromatic amines. Some aromatic amines cause cancer.

Not all of that dye stays on the clothes. A share of every batch never bonds at all and leaves with the rinse water, which is part of why the World Bank has estimated that dyeing and treating textiles accounts for roughly 20 percent of all industrial water pollution. The color you are wearing had a second life in a river somewhere.

None of this is visible from a shop floor, and none of it is on the tag.

There is a version of the same process you can run on your own stove in about an hour, using something you were going to throw away.

Save the skins from three avocados. Not the pits, the skins: the leathery outer shells you would normally scrape into the bin. Rinse them, drop them in a pot of water, and bring it to just under a simmer.

Nothing happens for a while. Then, around the forty-minute mark, the water turns the color of a ripe peach. Leave it longer and it deepens into a dusty rose, the shade a very expensive silk slip costs three hundred dollars to be.

No powder, no bottle, no label, and no aromatic amines. That color was sitting in your compost.

The color is the part nobody checks

You have probably learned to turn a garment inside out and read the little tag. Ninety-five percent cotton, five percent elastane. Hundred percent polyester. That tag is useful, and it is incomplete in one specific way: it describes the thread and says nothing about what is on the thread.

A cotton T-shirt is roughly cotton. A black cotton T-shirt is cotton, plus a dye, plus whatever chemistry helped that dye stay put. The tag counts the first thing. It is silent about the rest.

In the United States, that silence is official. The Food and Drug Administration reviews color additives before they can go into your food, your lipstick or your medication. The Consumer Product Safety Commission covers clothing for flammability, and for lead and phthalates in children's items. Neither of them checks the dye in an adult garment. There is no federal agency whose job it is to know what color your shirt is made of.

Europe has exactly one rule here, and it is worth knowing because it tells you what the concern is. Under REACH, the European Union's chemical law, a family of dyes called azo dyes cannot be used on skin-contact textiles if they can break down into any of 22 named aromatic amines, some of which cause cancer. The limit is 30 milligrams per kilogram of fabric. That is one rule, for one family of dyes, and only in Europe.

The skin question is not theoretical either. Disperse dyes, the type used to color polyester and acetate, are among the best-documented causes of clothing rashes in dermatology. Two of them, Disperse Blue 106 and 124, were named Contact Allergen of the Year in 2000 by the American Contact Dermatitis Society. They turn up most often in dark linings and dark synthetic workout clothes, and sweat makes them easier for skin to pick up. The standard dermatological advice for anyone who reacts is simple: wear pale colors, in natural fibers.

That leaves the color as the largest thing about your clothes that nobody scores and nobody has to disclose.

Why you can't dye synthetic fibers naturally

Dyeing is not painting. Paint sits on a surface. A dye has to chemically grab hold of the fiber, which is why the same dye bath gives you a different result depending on what you put in it.

A fiber that can be dyed has two things: somewhere for the dye to attach, and enough thirst to carry the dye inside. Polyester, nylon and acrylic are drawn plastic, smooth and closed, with almost nothing exposed for a dye molecule to grab. Polyester also absorbs about half of one percent of its weight in water, so a plant dye bath never really gets in. Drop a polyester shirt in a pot of onion skins and it comes out the shade it went in. That is the whole reason the industry reaches for disperse dyes and high heat on synthetics instead.

Natural fibers are the opposite. Protein fibers, which means wool, silk and alpaca, are built from amino acids and offer a lot of places for a dye molecule to latch on. They drink color. Plant fibers like cotton and linen have far fewer of those sites, so the same pot gives you a paler, chalkier version. This is not a failure. It is the reason a wool swatch and a cotton swatch pulled from one bath look like two different colors.

Some plants carry tannins, the same puckery compounds that make strong tea feel dry in your mouth. Tannins grip fiber on their own. A dye that holds without any help is called substantive, and three of the five below are exactly that, which is why you can do this with a pot and a stove and nothing else.

The method, start to finish

It is the same every time.

Wash the fabric first in hot water with a little unscented soap and rinse it well. New fabric usually carries a finish that will block color in patches. Then get it thoroughly wet and leave it wet; dry fabric dropped into a dye bath comes out blotchy.

Make the bath by covering your scraps with water and holding it just below a simmer for 45 to 60 minutes. Do not let it boil. Boiling dulls most natural color, and it will felt wool into a solid mat. Strain the scraps out, then slide the wet fabric in and hold it at that same gentle heat for another 45 to 60 minutes. Turn off the stove and let everything cool in the pot. Overnight gives you a deeper shade.

Rinse in cool water until it runs clear, then dry in the shade rather than direct sun.

Two practical notes. Use roughly as much scrap material as fabric by weight, and more if you want it deep. And use a stainless steel pot, kept separate from your cooking pots, because aluminum and iron will shift the color on you.

Avocado skins and pits, for pink

The cleanest surprise in the whole category. Skins give a warmer, clearer rose; pits lean browner. Scrape off any green flesh, which muddies the bath. Dry your skins on the windowsill and freeze them until you have six or eight, then dye. Wool and silk come out a deep dusty rose, cotton a soft blush.

Hass avocados above, and the rose they leave on silk and linen below.
Three avocados' worth of skins will do a scarf. The pink deepens the longer the fabric sits in the pot.

Onion skins, for gold and rust

Only the papery outer layers, which you were throwing away anyway. The pigment is largely quercetin, a yellow flavonoid also found in apples and tea. Yellow onion skins give warm amber and burnt gold; red onion skins give a bronze-olive rather than the pink people expect. Gram for gram this is the strongest of the five, and a grocery bag of skins will take a silk scarf somewhere loud. Store them in a paper bag so they stay dry.

Papery onion skins above; below, wool and cotton dyed in golds and browns beside a yellow onion and a red onion.
Yellow skins on the left, red skins on the right. Red onion gives bronze and brown, not the pink people expect.

Walnut hulls, for brown

The soft green husk around a black walnut, not the hard inner shell. Its pigment, juglone, binds directly to wool and silk with no help at all, and it is the most durable color on this list. Wear gloves; it stains hands for days. This is the one to reach for when you want to rescue a pale garment with a stain on it, because a full brown covers what a pale color cannot.

Black walnut husks drying on white cloth above, and two panels of walnut-dyed fabric in warm brown below.
The green husks, not the shells. This is the most durable color on the list, and it stains hands for days.

Carrot tops, for soft yellow-green

The frondy greens from a bunch of carrots. Expect a quiet, herbal tint rather than a saturated color, and expect it to soften with washing. Carrot tops carry far less tannin than the three above, so the color sits lightly on the fiber. Use wool or silk, use a lot of greens, and treat it as a seasonal, pretty thing rather than a permanent one.

A hand holding a bunch of freshly pulled carrots above, and soft olive-green dyed linen with a carrot beside it below.
A quiet herbal green on linen. Expect it to soften with every wash.

Red cabbage, for blue, purple and green

The most fun and the least reliable. Its pigment, anthocyanin, is the same family that colors blueberries, and it reacts to pH. Add a splash of vinegar and the pot swings pink; add a pinch of baking soda and it goes blue, then green, in front of you. Children lose their minds over this. It is also what dyers call a fugitive color: anthocyanins fade in light and in the wash, sometimes within three or four washes. Dye a napkin, a ribbon or something that lives in a drawer, and enjoy it for what it is.

A halved red cabbage above, and below a skein of purple-dyed yarn lifted on a wooden spoon from a dark dye bath.
Vivid on day one. That purple will not hold, which is why this one belongs on something that lives in a drawer.

What you are left with

The thing you notice, the first time, is how ordinary the whole process is. A pot. An hour. A bag of skins from something you already ate. The color was never mysterious or high-technology. It was made somewhere you were not allowed to see.

None of this is a plan to dye your wardrobe, and a pink silk camisole does not offset anything. The change is smaller and more durable than that. After you have watched avocado skins turn water rose, you tend to stand in a store holding a very black, very cheap T-shirt and ask the question you asked over your own stove: what made this color, and did anyone check?

That question is most of the work. The clothes you are wearing right now have been against your skin longer today than any meal you ate, and you are allowed to be as curious about them as you are about your groceries. Start with the avocados. You were going to throw them out anyway.

Frequently asked

Yes, and three of the five scraps here need nothing but a pot. Avocado skins, onion skins and walnut hulls all carry tannins, the puckery compounds that make strong tea feel dry in your mouth. Tannins grip fiber on their own, so the color holds without anything added. Carrot tops and red cabbage carry far less, which is why they give softer color that fades sooner.

Many do. A mordant is a mineral that acts as a bridge between the dye and the fiber, and without one, most plant color rinses straight out. The exceptions are the tannin-rich scraps: avocado, onion skin and walnut hull hold on wool and silk with no mordant at all. If you move on to flowers, leaves or bark, you will need one, and alum is the standard home option. Skip anything calling for chrome or tin.

It depends entirely on the plant. Walnut hull is the most durable color on this list and will outlast the garment. Avocado and onion skin hold well on wool and silk. Carrot tops soften with every wash. Red cabbage is what dyers call fugitive, meaning it fades fast in light and in the wash, sometimes within three or four washes, so use it on something that lives in a drawer.

No. Polyester has no dye sites for the color to attach to, and it absorbs about half of one percent of its weight in water, so a plant dye bath never gets inside the fiber. A polyester shirt comes out of a pot of onion skins the same shade it went in. This is also why the industry uses disperse dyes and high heat on synthetics instead.

Protein fibers take it best: wool, silk and alpaca are built from amino acids and offer a lot of places for a dye molecule to latch onto, so they drink color. Plant fibers like cotton, linen and hemp have far fewer of those sites and come out paler and chalkier from the same pot. Synthetics take almost nothing.

For what touches your skin, yes. Around 70 percent of textile dye belongs to the azo family, and the chemical joint at the center of an azo dye can break apart and release aromatic amines, some of which cause cancer. The European Union restricts 22 of them in skin-contact textiles. The United States has no equivalent rule for adult clothing. Avocado skins release nothing of the kind.

Shop the edit

natural fiber pieces worth reaching for.

Sources

Back to the Journal
Add Toxome as a preferred source

pins Toxome in your Google results, so our reporting shows up first when you search fabrics and brands.