Development:Third-Party Tab Themes
The tabbed browsing UI of Camino 1.0 and newer allows the use of custom of themes. The theming system for the tabs was designed to be both simple and flexible.
How does it work?
Camino's tab bar consists of one main image (
tab_bar_bg) tiled across the width of the tab bar. The various parts of the tabs and the tab divider (
tab_button_divider) are overlaid on top of the tab bar background (base).
The tabs themselves are made up of several different components, as illustrated below:
- A -
tab_bar_bg.tiff- 24 px high
- B -
tab_button_divider.tiff- 2 px wide
- C - Tri-state tab close buttons
tab_close.tiff- 14 x 14 px
tab_close_hover.tiff- 14 x 14 px
tab_close_pressed.tiff- 14 x 14 px
- D - Dual-state inactive tab
tab_bar_bg.tiff- 2 px wide
tab_hover.tiff- 2 px wide
- E -
tab_left_side.tiff- 2 px wide
- F -
tab_active_bg.tiff- 2 px wide
- G -
tab_right_side.tiff- 2 px wide
- H -
tab_menu_button.tiff- 17 x 18 px
- I -
tab_scroll_button_left.tiff- 18 x 18 px
- J -
tab_scroll_button_right.tiff- 18 x 18 px
The active tab consists of three objects. The sides of the tabs are painted using
tab_right_side. The middle part of the active tab is painted using
tab_active_bg as a pattern.
Tab Close Buttons
The close tab button has three separate states: one for the general inactive state, one for the hover state, and one for the clicked state. (The actual close buttons are only 12px wide; there is 1px of transparent margin on either side of the visible image.) The buttons are 4px from the edge of the tab and 4px from the edge of the site icon/progress spinner.
Tab Scroll Buttons
The tab scroll buttons appear at the left edge and one-from-the-right-edge when there are more tabs than can be displayed in the current window-width.
Tab Menu Button
The tab menu button appears when there are more tabs than can fit in the current window-width. It is painted in the remaining space between the right scroll button and the right edge of the tab bar.
The base for the tab bar is
tab_bar_bg, which is painted as a pattern (tiled) across the entire width of the bar. Then, at the ends of every tab, the
tab_button_divider is painted.
tab_hover images are painted as patterns, there is great freedom in what can be done. These patterns can be made as wide as you wish, which can increase your flexibility when designing tab themes. It is also possible to make the divider and side images wider than two pixels, but this could cause the expected behavior to change.