v26.9 was truly a mega release. It introduced some very useful new features, but above all a huge number of fixes and refinements.
Among those new features were additional per-tab colorization settings for Shelves. The problem is that, despite the various available colorization methods, not every theme is suitable for being colorized this way.
As I mentioned at the end of the v26.6 thread, nearly all Shelf themes rely on bitmap artwork, with the theme author deciding the colors, shapes and other visual details.
But there is another way of doing things: allowing users to choose the colors of individual tabs and even the shape of the tabs themselves from a handful of available styles.
In other words, simple color-based themes that users can quickly customize themselves, instead of being forced to choose among hundreds or even thousands of third-party themes.
Although the Shelf does not currently support this type of simple, solid-color user-created theme directly, we can achieve essentially the same result by combining the new per-tab Shelf colorization settings with a small selection of simple Shelf themes deliberately designed to be colorized.
Now that v26.9 is out, I finally had some time to create an example theme and determine what additional changes would be required to make this work properly.
As usual, something that sounded extremely simple turned out to involve considerably more than just creating three bitmaps. Working on the example exposed several limitations and even an old bug in the way overlapping tabs and the two small control tabs were handled.
The Shelf theme engine has now been extended with several new capabilities:
* Tabs can overlap the Shelf body by a theme-defined number of pixels. This allows an active tab to appear naturally connected to the body while preserving the body’s top edge outside the tab area.
* Themes can reverse the drawing order of overlapping tabs, allowing either the left or right tab to appear on top.
* Mini-tabs can remain anchored to the left and right edges of the Shelf when the main tab group is left, center or right justified.
* Alternatively, mini-tabs located inside the Shelf width can be rendered using the full inactive-tab artwork. With left-justified tabs, the left mini-tab retains its dedicated edge shape while the right mini-tab becomes a complete inactive tab. Right justification does the opposite, while centered tabs use complete inactive tabs on both sides.
* If an overlapping or slanted-tab theme does not provide dedicated mini-tab bitmaps at all, WorkShelf now automatically uses the inactive-tab bitmap instead, reserves enough room for the control symbols and centers those symbols correctly.
* Icon label colors can automatically switch between black and white according to the luminance of the selected Shelf color, improving readability against both light and dark backgrounds.
The end result is a simple Shelf theme whose body and individual tabs can be recolored almost at will, while still retaining proper shading, depth, overlapping edges and readable icon labels.
Naturally, this is not intended to replace traditional themes. Elaborate themes with textures, glass effects, unusual artwork and carefully coordinated colors will always have their place. This simply provides another option for users who prefer a clean design and want to choose their own colors without having to create or edit bitmap artwork.
The first working example is inspired by the overlapping tabs of the old OPENSTEP_EUI theme, but uses modern PNG artwork and was designed specifically for the new colorization system. Once it has been thoroughly tested, it can serve as the basis for a small collection of alternative tab and body shapes.
The simple example theme without any colorization:
Attachment:
Screenshot 2026-09-26 092730.png [ 47.77 KiB | Viewed 883 times ]
The same theme with Tab Colorization enabled, using the Hue Shift method, Colorize Active Tab enabled and Colorize Shelf Body with Active Tab Color enabled:
Attachment:
Screenshot 2026-09-26 093028.png [ 50.93 KiB | Viewed 883 times ]
Notice how the active tab connects seamlessly to the Shelf body instead of being separated from it by the body’s top-edge highlight. This is accomplished using the new `TabBodyOverlap` setting, which specifies how many pixels the tabs extend vertically over the top of the Shelf body.
The Shelf body is painted first, followed by the tabs. By extending the tabs a few pixels over the body, the lower portion of the active tab covers the section of the body’s top border directly beneath it. Since the active-tab bitmap has an open bottom edge, the tab and body appear to form one continuous surface. The inactive tabs retain their own closed lower edge, while the body’s top edge remains visible everywhere outside the tab area.
Also notice how the tab text color is automatically selected between black and white according to the luminance of that tab’s tint color. This automatic adjustment is only made when the original text color specified by the theme is either pure black or pure white.
The outer edges of the left and right mini-tabs in the screenshot above are straight, forming a continuation of the Shelf body just as they did in the original OPENSTEP_EUI theme. This makes sense when the tabs span the full width of the Shelf and the mini-tabs sit at the edges of the body, but not when the tab group is centered, for instance.
This is where the new `TabMiniJustificationMode` setting comes in. When set to `2`, mini-tabs located inside a left, center or right justified tab group are rendered using the full inactive-tab bitmap:
Attachment:
Screenshot 2026-09-26 093547.png [ 52.55 KiB | Viewed 883 times ]
When the tab group is left or right justified, however, the mini-tab adjoining the corresponding Shelf edge continues to use the appropriate dedicated mini-tab bitmap. Only the mini-tab located inside the Shelf width is rendered as a full inactive tab:
Attachment:
Screenshot 2026-09-26 094107.png [ 45.5 KiB | Viewed 883 times ]
Alternatively, when `TabMiniJustificationMode` is set to `1`, the mini-tabs are always anchored to the left and right edges of the Shelf body, while only the main tab group is justified:
Attachment:
Screenshot 2026-09-26 094527.png [ 56.3 KiB | Viewed 883 times ]
Once again, keep in mind that this is only an example theme, intended to serve as the basis for a small collection of themes in different styles, all deliberately designed to be colorized.
The idea is for these special themes to ship with the main application by default, allowing users to take full advantage of the new tab colorization methods and quickly create their own combinations of colors and tab styles without editing bitmap artwork or searching for third-party themes.