Announcing My Ring Warmer App

If you have to wear a ring, then perhaps you have experienced the discomfort of putting a cold ring on your finger (maybe in the morning in a cold house). I decided that I could do something about that using the only tool in the modern developer’s toolbox — the smartphone app.

I’m kicking off the new year by announcing that my Ring Warmer app is done. Well, it’s a web app. Actually, it’s just a web page. Living as nothing more than a block of code at CodePen. Regardless, I started this in late 2012 and then mostly forgot about it, so I’m thrilled to call it done.

The opening image is an animated GIF that shows how one might use the Ring Warmer app. I’ve also embedded the same animation as an Instagram video (or view it directly on Instagram):

The idea here is that you can choose a ring size and a warmth level, place your ring in the designated spot, and wait patiently for it to work its magic.

The idea is, of course, absurd.

In the strictest sense, it can work. At the lowest setting (warm), only the red LEDs will light up, carrying one-third of the total heat a pixel can produce. As you move to the highest setting (hottest), all the LEDs are lit to generate white, so each pixel is producing its maximum heat as the red, green, and blue LEDs are all lit.

Of course, the amount of heat this carries is negligible. You will transfer more heat to the ring from the warming battery than from the pixels. The ring itself might not get very warm unless you also fire up the radio antenna (I left that feature out as a courtesy).

Now that I’ve gotten as much pranking out of this fake app as possible, I figured I’d at least write it up a bit.

Very simply, I use a border radius with some box shadows to make the glowing ring. Then I drop the white glowing dot (using box shadows and border radius) onto one edge and rotate the entire thing in perpetuity. It’s a mess of mixed sizing units, questionable animation syntax, and useless elements.

Then I made a form so you can change the ring size and the temperature. The ring size isn’t matched to any real measurements, except in Chrome on my Samsung Galaxy S4 the default size matches my ring. All sizing after that is based on ems, so it doesn’t scale like a real ring. The temperature change is nothing more than colors with CSS transitions and some JavaScript that sets explicit styles instead of classes. In other words, it’s a terrible idea to copy this code.

Search iconUsed in the search form as a button.Search iconUsed in the search form as a button.Information iconLower-case 'i' in a circle.Checkmark iconSymbol showing a checkmark.Alert iconExclamation mark within a triangle.