There are a few ways to do this that I can thing of:
1. Just as you've done, expose a widget with an extended attribute that allows each group to define their color scheme and use this value to insert necessary markup (I would expect custom CSS) based on the selection.
2. Distribute the color variant CSS files and allow group owners to add the custom style sheet via the group's theme configuration page.
3. Create a single widget that is a locked part of the group theme's header that exposes configuration enabling the selection of color options and adds the appropriate headers/etc as its implementation (but otherwise has nothing to render).