So, I see you sitting there saying to yourself: "Self, I sure would like me some nice and clicky buttons. But (with expensive exceptions) they all seem to be just one stinkin' color!"
Well, that's until now!
Step 1: Parts
I made this with a button I got from Adafruit, but I would imagine the concept would carry to most large arcade buttons:
LED Illuminated Pushbutton - 30mm Square
Also, I got my RGB LED's from Adafruit. Any 5mm RGB should work, but I strongly suggest you get diffused because otherwise you'll get a pretty evident "hotspot" on the button face.
Diffused RGB 5mm LEDs
Also, and this is pretty important, the wires I used are 26GA, I think much larger and this trick may not work.
Step 2: Wiring Up the RGB LED
First, you'll want to trim back the leads on the LED, make sure you leave the longest lead (the anode) longer than the others. Also, in most cases, the order of the leads are 1. Red, 2. Anode (longest), 3. Green (I used yellow wire) 4. Blue.
Second, solder the wires to the leads.
Next, slide the respective shrink tubing up against the LED. The length of these need to be as little as you can get away with. This is because if it's too long, the LED will stand too proud, and may restrict the movement of the button, along with not looking very diffused.
After shrinking the individual leads, slide a large shrink tube against the LED and shrink away (again, make as short as you can get away with).
Step 3: Disassemble Button
Take apart button. The black LED holder (pictured above) can be discarded.
Next, get the LED connector assembly (white with brass tabs, pictured), and pop those brass tabs off.
The area where those tabs were are going to make the space for the wires.
Step 4: Assemble LED and Button
Now, you should have the white piece with two large gaps on the sides (pictured).
Slide the wires of the LED through those holes. I did two wires each.
Then bend those wires to their respective sides.
Also, try to keep the height of the LED as low as you can, and consistent across buttons (if doing multiple).
Lastly, slide the button in, there may be a small amount of resistance, but it should click in nicely.
Step 5: Driving You New Lil' Creation!
There's obviously many options for making this pup sparkle. If you only have a couple, an straight Arduino with resistors for the cathodes are a good option. But, I have to say I'm in love with the TLC5941. It's a lovely 16-Channel PWM, so you can drive 5 RGB LEDs from 1 IC, and you only need one resistor, and a couple wires from your Arduino.
It falls out of the scope of this document to go into the details of wiring these babies up, but if there's enough interest, I can make an Instructable for that as well.