Dyeing PBT Keycaps: A Long Overdue Post

Hi everyone!

I’m back with some more mad science.
Last year I went down the path of dying keycaps. While Initially I set out to dye a set of BoW EC keycaps for use on a Topre board, I never managed to complete my journey. Still, I feel like there is some valuable information here and I’ve written about it enough that it’s time to give it it’s own post.

Background & Science (Intro):

I wanted to provide links to some background articles I referenced or found helpful. Note that many of these are aged, and their claims that RIT dyes do not work are largely based on the standard RIT line and not the Dyemore line for polyesters that is a more recent release.

Notes on dying Model M PBT - Geekhack
Dying Keycaps - Geekhack
Dying PBT Caps with Dylon - Deskthority
Imgur photo guide

  • PBT (Polybutylene terephthalate) is in the polyester plastic family and can often be dyed with dyes intended for synthetic fabrics.

  • Dying is dependent on concentration, temperature, and time.

  • The dye will not rub off with use. Dying PBT physically changes the color of the plastic and will penetrate all the way to the center of the keycap given enough time. I wanted to include a photo I saw of a dyed keycap cut in half for reference; alas, my google fu is failing me.

  • Do I need to say it? Components in these dyes aren’t great for you. I can’t speak to the extent, but I try to:

    • Not to stand over the pot breathing it.
    • Keep a window open and a fan on.
    • Use dedicated vessels and utensils.
    • Don’t get it on my skin, in my eyes, or ingest it. Skin contact wont kill you, but I still try to keep my hands clean and / or wear gloves.

Process (Methods):

Modeled after threads above and youtube guides, I purchased a new 3qt pot and mesh strainer, grabbed a dedicated stainless steel spoon and some mixing vessels. No need to ruin good cookware; go down to your thrift shop or seconds shop.

For temperature control, I have a Dot thermometer that I purchased a second, dedicated probe for. I clip this to the side of my pot with a clothes pin and away I go.

For measuring dye, I recommend a couple small syringes. Depending on the color you’re shooting for, you may be measuring milliliters.

And finally, for testing, I ordered a $20 104-key set of white PBT MX keycaps from Jeff Bezo’s himself. They are a great, affordable way to get your colors honed in before going for a 70$ kit.

As far as dyes go, I encountered iDye Poly and Rit Dyemore. Both are designed to dye synthetic fabrics and both work well, though I preferred the Dyemore for 3 reasons:

  • Its in a resealable bottle and easier to measure desired quantities out.
  • iDye Poly’s formula is slightly grainy. Best bet if you intend to use it is to mix your dye, heat it, and then run it through a filter medium (coffee filter worked great).
  • Availability. I can source Rit Dyemore for <4$ bottle at Michael’s locally.

If going with Rit Dyemore, they also have this handy blending site. Not all colors may be achievable (as we will discuss later), but its great for making custom colors.

Once you have your dye and equipment, the basic process is as follows:

  • Bring water to temperature (near boil)
  • Add dye
  • Add caps
  • Start timer
  • Remove and rinse clean

That’s really all you need to know to start.

Things I’ve Come to Believe (Conclusions):

From my experience and trial and errors, I’ve developed this set of guides for my dying. It is by no means concrete. As a matter of fact, part of the reason I’m posting this is I have my doubts about some of my conclusions and I think the community could resolve it in short order.

  • Control Your Temperature: Its easy to think boiling is the way to go. I did on my first run of caps. The result was terrible unevenness. Too high, and you get spotty, inconsistent results. I’ve found my sweet spot to be around 192-195 degrees. This will slow it down and get more even looking results. In the below photo, the top row of green caps was my first run at 210º F, the bottom row my second run at around 195. Note the improved consistency.

  • Adjust Your Concentration: I’ve found about 40% of the recommended concentration to work well. So I scale it down from 3gallons in the recipe to whatever volume I’m using, then take it down to 40%. Ymmv, I just found too high a concentration and I didn’t have much control over the color I got. See color website linked above for more formulas.

  • Monitor Your Time: When testing, I like to drop 5 caps in at a time and do 5, 10, 15, 20, 30 minutes to get a feel for the spectrum. Most of the colors I ever wanted were in the 10-15 minute or 30 minute range, depending on how dark I was going. In the green-cap photo above, left to right is 2, 5, 10, 15, 20, and 30 minutes.

  • Dish Soap: The recipe on the bottle calls for adding dish soap when dying fabrics. I tried this, and I think there is some placebo affect, yet I still add a small spoonful for each run.

  • Wash Your Caps: Following up on soap, I definitely recommend washing caps with soap before use to ensure a more even dye.

  • Bubbles & Stirring: Part of the inconsistencies I found were from bubbles forming / hanging on the caps. Solutions I found were boiling the water for 10-15 minutes before use, stirring regularly (gently so as to not scratch the caps), and potentially the addition of dish soap (?). In the green cap photo above, the top row really shows what occurs when bubbles cling to to keycaps.

  • A Note on Water Quality: I am on a well and the water is not especially clean, so I decided to use our drinking water, which comes from a 5-stage home filter / RO system. I can’t say that water quality would negatively affect the dye, but as with anything, I would expect pH, chlorine levels, minerality, etc to affect your outcome to a degree. Would love to hear from others on this.

  • Take Notes: When you get that perfect color, you’re going to want to know how to recreate it. Concentrations, dye ratios, times, temperatures, what you had for breakfast. Just write it down and you’ll thank me later.

Problems encountered:

Most colors are made up of other colors (duh!), but in my case mostly greens / blues, so many colors I wanted to get would look great on cap faces, but corners tend to dye more quickly and express the base color (so grey had a blue-tinged corners, beiges and browns had green). Orange, blue, and green all expressed really well, though. I’ve yet to come up with a good way to solve this issue, but if it can be done, the colors look great imo.

Thoughts & Concerns:

At this point, its been several months since I’ve had time to touch this project, but my concerns are that perhaps my concentration-time logic is not sound for all colors. I’ve tended towards lower, slower, less concentrated dyes, but it is possible that a low-temp, high concentration, short time dye will work better for other colors. I hope to see others picking up the torch and refining the methods, as I think this is a really affordable, practical way to get some customs colors done. It’s also just something fun to do while fighting the Oregon winters.

Thanks for reading. I’m sure I’ve left out helpful details, so please ask questions and definitely let me know if you try this and anything works for you! :slight_smile:

Additional Photos:


This is super cool. Thanks for posting!


To say you’ve taken this seriously is a severe understatement. Nice work Rooski!


Thanks for sharing, this is very informative!

1 Like

Great post and valuable information!

I’ve made several dyeing-experiments myself, and would like to add some of my experiences.
(Some pictures of my experiments can be found here: Dyeing pre-colored (grey) PBT caps?)

So far I only used iDye Poly, since it’s the only dye suitable for synthetics that I can get here.

I actually boil the caps, and I never experienced that terrible unevenness as seen in your pictures.
I’m really curious why…

I can confirm that. Depending on the colour, I dilute quite a lot. Otherwise the caps get too dark to fast, unable to control the shade.

I tried it with a few drops in the beginning, but I found that the results without soap are as even/good as with soap. And since I boil the caps when dyeing, doing so without soap spares my the disgusting colourful foam :wink:

I can confirm that. I made myself a special glass strainer that I can lift in and out of the dyeing solution, and by that “stirring” the caps just with the flow/eddies of the liquid without the need of a tool like a spoon.

In the beginning I used destilled water, but after a few runs I decided to try with our tap water.
That’s something that varies a lot from place to place.
Our tap water is very soft, without chlorine, and as far as I know very low minerality in general.


Interesting that you didn’t have trouble with boiling. Need to revisit that, I suppose. This is why I posted my experience!

I ran blue iDye poly the first time I dyed, and did so at boiling. I got more of a spectrum of color up the side of the cap than the splotchyness. Still, I’ve shied away from boiling cause I’ve never had the results I wanted.

Your glass strainer sounds amazing. Several times I contemplated investing in a stirring hotplate so I could set the temperature to 194 and let it stir the caps. It never came to pass, though. If anyone here has one, I’d love to see results. :grin:

I thought of a stirring hotplate too, but I decided against it.
They stirring magnet at the bottom will lead to scratches I’m afraid.
The magnet itself is covered in teflon, I’m more afraid the constant whirl it creates.

I’m quite happy with my glass strainer, and since I have to have an eye on the dyeing process anyway, I might as well lift the strainer in and out a few times during the process.

I have some blue caps lying around which I dyed with iDye poly, and they came out really nice.
I’ll make some pictures later today if you like.

Please do!

Great post Rooski15!

I have done some very light experimenting with dying. While the plastic being used was most likely not PBT it might be useful. Adding salt helps penetrate the plastic a bit. Acetone has a stronger affect (albeit more dangerous as it can melt/warp plastic). I tried to keep on a medium to low/medium and not go to boiling. I would like to get back to it but the odor was strong and the experiment was not appreciated by all in the household.

JST Connectors



A few of the caps i dyed with iDye Poly blue.

The caps are from two different Varmilo keyboards, the alphas and the spacebar from a new and unused board, the mods from a used one which I bought second hand.

The used caps were not cleaned prior to dyeing, I intentionally took the risk.



When using iDye blue. This is what I wound up with. If it looks darker on the sides with a gradient leading to a lighter face, that’s accurate. Could have been a product of keycap density in those areas, not entirely sure.


I experienced something similar in the early days of my dyeing-experiments.

I was then using distilled water and keeping the temperature at 80 C.
The colour I used was iDye Poly Purple, the resulting keyboard is this one.

The caps were mainly kbdfans dsa, only a few were vortex tab dsa.

I had some kind of gradient effect on the caps from the vortex tab, but not on the kbdfans ones.

All the caps got the exact same treatment, all caps were brand new and never used.

So my conclusion is that this gradient effect is due to the properties of the caps, and has nothing to do with the used dye or temperature.

1 Like

That’s great feedback, thank you!

I’ll have to try a boil in next time I run some caps just to see, but it makes sense that it could be attributed to the cap properties.

Maybe I’ll bite the bullet and try to finish this dye job.

i see maybe 2048 ec in some of these dyed caps. any chance you could dye an Enter keycap green sometime? i wanna outfit my poor hhkb with some spice ~