How to tie-dye a cotton shirt so the color stays after washing
Wash 100% cotton hot, soak 20 minutes in soda ash at 1 cup per gallon, tie damp, apply fiber-reactive dye mixed with lukewarm water, keep damp 12 to 24 hours at room temperature, then rinse cold to warm until water runs clear and wash alone in cold. That bond keeps color from washing out.
On this page (9 sections)
- The short version
- Fabric: which cotton holds dye and how to prewash it before tying
- Folding: how to tie dye a shirt in a swirl and one easy second pattern
- Mixing: how much dye, what water temperature, and how long to let it dwell
- Dye chemistry: why food coloring and bleach fade when fiber-reactive dye stays
- Rinsing: how to rinse and wash the first time without bleeding or fading
- Kids: how to do it with kids with less mess while keeping color
- Fixes: what to check when color looks pale or blotchy
- Still wondering?
Part of our guide on fabric markers for black fabric
Key figures
- Best fabric
- 100% cotton, 5-6 oz per sq yd
- Soda ash soak
- 1 cup per gallon, 20-30 min
- Dye water temp
- Lukewarm 95-105°F
- Dwell time
- 12-24 hours, keep damp
- First rinse
- Cold to warm until clear
- First wash
- Cold alone, no softener
The short version
- Use 100% cotton and skip fabric softener or the dye cannot bond.
- Soak in soda ash 20 to 30 minutes and keep the shirt damp, not dripping.
- Mix dye with lukewarm water around 95 to 105F and let it dwell 12 to 24 hours.
- Rinse cold at first, then warm, until water runs clear before the first cold wash.
Fabric: which cotton holds dye and how to prewash it before tying

Cotton at 100% cotton and about 5-6 oz per square yard grabs fiber-reactive dye best because cellulose forms a permanent bond with the dye. A shirt labeled 50/50 cotton-polyester looks faded from the start since the polyester stays white. The dye only tints the cotton half. That leaves a heathered, pale result. Check the inside neck label before you buy or prep. If it says 100% cotton or 100% combed cotton, you are set.
Prewash with hot water at 130-140°F and a fragrance-free detergent, with no fabric softener. Oils from knitting and softener coat fibers and block dye. Hot water opens the weave and strips that coating. How much residue remains depends on the mill finish, so a new shirt needs this wash more than a thrifted one. Dry without a dryer sheet, or leave it damp for tying. You want clean, slightly damp cotton that still holds soda ash well.
Soak the damp shirt in soda ash, also called sodium carbonate, at about 1 cup per gallon of warm water for 20 to 30 minutes. Soda ash raises pH and helps the dye lock to cellulose. Wring to damp, not dripping. Too much water dilutes color, too little leaves dry spots that resist dye. This step decides wash-fastness more than any folding trick. Skip it and even good dye washes out in one laundry cycle.
- 100% cotton: holds strong, even color that stays after washing
- 50/50 blend: pale, heathered look because polyester does not take the dye
- 100% polyester or rayon blend: needs different dye chemistry, not this method
Folding: how to tie dye a shirt in a swirl and one easy second pattern
A classic swirl starts with a damp, soda-ash-soaked shirt and 3-4 rubber bands placed tight enough to resist dye, usually 1/4 inch wide bands. You work on a plastic-covered table with gloves. The shirt should lie flat, not twisted from the dryer. Smooth it and find the center of the chest. That center becomes the swirl center. Pinch and twist from there. We cover best tie dye cotton in its own article.
Tension matters more than perfect folds. Bands that are too loose let dye flood under and you lose the white lines. Bands that are very tight keep crisp lines but can leave un-dyed puckers if the fabric is bunched too thick. Aim for firm and even. The thickness of the bundle decides how far dye wicks, so a fat bundle needs more dye on each wedge.
You get two reliable patterns from one technique. The swirl gives spiraled wedges of color. A crumple gives an all-over marble with no planning. Both hold color the same way when dwell time is right. Choose the swirl when you want order, choose crumple when you want easy and fast. Either way, keep the bundle damp while you apply dye.
- Lay the damp shirt flat. Pinch the center of the chest and twist clockwise until the whole shirt forms a flat disc like a pie. Keep the disc even and smooth.
- Slide 3 to 4 rubber bands over the disc so they cross at the center. You should get 6 to 8 wedge sections. Bands should feel snug, not cutting.
- Mix dye and apply a different color to each wedge on the front, then flip and repeat on the back so color meets in the middle. Use enough to soak, not just tint.
- For the crumple pattern: scrunch the damp shirt into a loose ball, no folding, and wrap with 4 to 6 rubber bands in random directions. Drip dye into the crevices until damp throughout.
Mixing: how much dye, what water temperature, and how long to let it dwell
Mix fiber-reactive dye with lukewarm water at 95-105°F, about 2 teaspoons per 8 oz of water for strong color, less for pastels. The amount you need depends on shirt weight and how many colors you plan. A single adult tee often takes 4 to 8 oz of mixed dye per color. Shake until no grit remains. Grit leaves spots. Lukewarm helps powder dissolve without shocking the fiber. It helps to understand how to dye fabric with rit dye before going further.
Apply dye to damp, not wet, fabric. If the shirt drips, the dye runs pale. If it is dry, the dye sits on top and bonds unevenly. Squeeze bottles with a fine tip give control. Flood each section until the surface looks wet and color soaks a little past the rubber band. That tells you it reached the inner folds.
Let the bundle dwell damp for 12-24 hours at warm room temperature, around 70-75°F. Cover with plastic or zip it into a bag so it does not dry out. Time and warmth decide depth. At 6 hours you get medium color, at 12 to 24 you get full saturation that survives washing. Cold rooms need longer. Do not rush this with a dryer, heat can set wrinkles before the bond forms.
- Strong shade: 2 teaspoons dye per 8 oz lukewarm water
- Pastel shade: 1/4 to 1/2 teaspoon per 8 oz water
- Batch time: 12 to 24 hours damp and wrapped, 70 to 75F room
| Dwell | Color depth | Wash hold |
|---|---|---|
| 6 hours | Medium, slightly uneven | Some fade on first wash |
| 12 hours | Full, even | Holds well if rinsed right |
| 24 hours | Deepest, most even | Best hold, minimal fade |
Tulip Tie-Dye Kit, Artisan Soda Ash, 4 Colors | 4 Dye Colors, Color Mixing
Gives you soda ash plus 4 fiber-reactive dyes in 4-oz squeeze bottles to mix, apply and lock in color that stays after washing.
Most tie-dye fades because cotton was never prepped to bond dye, not because you rinsed wrong.
Dye chemistry: why food coloring and bleach fade when fiber-reactive dye stays
Fiber-reactive dye forms a covalent bond with cellulose in cotton when pH is high from soda ash. That bond holds through washing because the color becomes part of the fiber. Food coloring is an acid or direct dye made for protein or for tinting water, not for bonding to cellulose. It sits on the surface and rinses away. The color looks bright at first, then fades fast. We cover checking fibre match before spraying in its own article.
Bleach does the opposite. It removes color by breaking the cotton fiber itself, not by adding dye. You get a light pattern where bleach touched, but you also weaken the fabric. Over-bleached spots feel thin and can tear. Bleach patterns also keep lightening with sun and wash, so they do not stay crisp. It is a discharge, not a dye.
If you want color that stays, you need dye made for cellulose and the soda ash step that enables it. That is why craft kits labeled fiber-reactive keep color while food coloring and bleach do not. Check the kit label for fiber-reactive and soda ash included. Without those two, expect bleeding and fading no matter how long you let it sit.
| Colorant | Bonds to cotton? | Wash result |
|---|---|---|
| Fiber-reactive dye + soda ash | Yes, chemical bond | Stays bright, minimal bleed |
| Food coloring | No, surface tint only | Fades and bleeds quickly |
| Bleach | No, removes color | Pattern lightens, fabric weakens |
- holds wash after wash
- bright on cellulose
- needs only lukewarm water
- needs soda ash and dwell time
- not for polyester
Rinsing: how to rinse and wash the first time without bleeding or fading
Rinse while still tied, with cold water at 60-70°F until runoff turns pale. Keep bands on for this first pass so unbonded dye leaves slowly. You will see strong color at first. That is normal. The goal is to remove loose dye without shocking the bond. Cold keeps fibers relaxed and reduces bleeding into white areas.
Cut bands and open the shirt, then keep rinsing. Move from cold to warm, around 85-95°F, as water clears. Gently squeeze, do not wring hard. When water runs mostly clear, wash alone in the machine on cold with a small amount of pH-neutral detergent, no softener. That wash pulls the last loose dye from the folds.
Dry on medium or hang dry. Heat does not set the dye, the long damp dwell did. High heat on a first dry can bake in any remaining loose dye and tint whites. After the first wash, you can wash with like colors in cold. If you see dye in the rinse water after the machine cycle, rinse once more cold before drying. That extra minute saves a pink laundry load.
Kids: how to do it with kids with less mess while keeping color
You can keep color and cut mess by using small squeeze bottles, a rack over a tray, and a pre-tied bundle. Tie the shirts yourself with 3-4 rubber bands and let kids choose colors and squeeze. Small 4 oz bottles fit small hands and limit floods. The rack keeps shirts out of pooled dye, so backs stay clean and whites stay white.
Work on a plastic tablecloth with gloves and smocks, and mix dye before kids arrive. Pre-dissolve dye in lukewarm water at 95-105°F so there is no powder to spill. Give each color its own bottle and a paper towel for drips. Kids press gently, they do not need to soak the table. Less water on the fabric means less run.
Keep dwell time the same even with kids. Bag each shirt damp and label with name and time, then store warm at 70-75°F for 12-24 hours. Do not let kids open early to peek, that dries the bundle and stops the bond. Rinse yourself later with gloves, cold to warm, until clear. The shirts still come out bright, and the kitchen stays usable.
- Pre-tie bundles and use 4 oz bottles to limit spills
- Work on plastic, with gloves and a tray under a rack
- Bag damp shirts 12 to 24 hours before rinsing, no peeking
Fixes: what to check when color looks pale or blotchy
Pale color usually means too little dye, too short a dwell, or a blend fabric. Check the label for 100% cotton first. Then check dwell. If the bundle dried out in the bag, the reaction stops. You need damp fabric the whole 12 to 24 hours. A cold room also slows it. Move bags to a warmer spot next time, not a hot dryer.
Blotchy white spots often mean the shirt was too wet or had softener residue. Wring to damp after the soda ash soak, not dripping. Wash again without softener if you suspect coating. Gritty spots mean dye did not dissolve. Mix with lukewarm water at 95-105°F and shake until clear before you squeeze.
Lines that bled together mean bands were loose or dye pooled underneath. Tighten bands and set the bundle on a rack so it does not sit in runoff. You can re-dye a pale shirt if you re-soak in soda ash for 20 minutes and repeat. Color adds, it does not lift, so go darker on the second pass.
Still wondering?
Can I tie-dye a 50/50 cotton-polyester shirt?
You can, but only the cotton half takes fiber-reactive dye. The result looks pastel and heathered, and white polyester shows through. For bright, solid color that stays, use 100% cotton.
Do I have to use soda ash?
For fiber-reactive dye on cotton, yes. Soda ash raises pH so the dye bonds to cellulose. Without it, most color rinses out even after a long dwell. Soak 20 to 30 minutes at 1 cup per gallon, then wring to damp.
How long is too long to let dye sit?
Up to 24 hours at 70 to 75F is safe and gives the deepest color. Past 36 hours does not add much and can make the shirt smell musty if kept wet and warm. Rinse when you reach 24 hours.
Why did my white areas turn pink?
Loose dye bled during the first rinse or the bundle sat in pooled dye. Rinse cold while still tied, keep the bundle on a rack, and rinse until water runs clear before the first machine wash alone in cold.
Can I use food coloring to tie-dye?
It will tint at first but it does not bond to cotton. Expect fast fading and bleeding on the first wash. Use fiber-reactive dye with soda ash for color that stays.