I decided that one controller and input device per shelf would simplify the wiring scheme and allow the use of low power microcontrollers. Each shelf will be its own unit, and all we will have to do is chain power from one shelf to the next when they are installed.
I put a lot of thought into how the controller should allow a color to be selected, and after considering potentiometers, rotary encoders, and pushbuttons, I decided that the cleanest way would be to use Atmel's "qtouch" series of capacitive touch sensors to detect the presence of a finger over a copper pad etched on the backside of the control panel. This creates a completely flat, blank front panel for the controller, which shows the positions of the three touch buttons by an LED glowing through the PCB substrate.
I already had some Attiny2313 microcontrollers on hand, so I designed the controller around them. Two buttons on the front change the color of the light by going around the color wheel clockwise or counterclockwise, but this only allows fully saturated colors and not white, so a third button selects white, and if held turns off the lights. A cycling mode can also be entered where the controller cycles around the color wheel by itself, and the arrow buttons instead select the speed at which it does so.
The hollow construction of the shelves will make it easy to hide all wiring and electronics on the interior of the shelves.