The appearance naming convention in the Blue and Base modules are set up so that it is clear what each implementation is for, and what it will do. Anything referring to Blue will have some blue color in it somewhere, and will likely extend an appearance with Base in its name. This is so that other colors can easily be implemented as well, keep the same basic structure and wiring, just with slightly different styles.
The only time a theme should be referred to as 'Default' is when it is the only appearance implementation required (for the basic set of themes - it can of course still be overridden in your own projects). These will typically not have simple color differences that should be overridden just to alter the colors in the widget.
A few examples of widgets that make sense to have default themes:
* FieldLabel - appearance only draws text, leaves room for a field
* Mask - only exists to mark something as temporarily unavailable
* Checkbox/Radio - these are rendered using the browser's built in input elements
For others, our naming convention says that we should name them Base, so that they can be easily overridden to select a certain color, or you can extend the Blue version if you want an appearance that is blue like our defaults, but has additional characteristics other than what we apply.
You don't need to extend BluePlainTabPanelAppearance to have access to PlainTabPanelTemplates. You can call GWT.create(BluePlainTabPanelAppearance.PlainTabPanelTemplates.class) to receive an implementation of the plain templates that you can use in your custom appearance.