IntroductionOne of the largest problems facing artists that wish to create truly original themes for Chromium is knowing the exact constraints that the software imposes upon them. This document will attempt to answer many of those questions. As a constant work in progress, there could be errors or omissions in this document, if you happen to find one please let us know.Things to Note
SetupThese setup steps only apply if you wish to follow along and perform the experiments used to determine these constraints. Even if you don't wish to follow along, this setup process should present interesting reading material.Pattern ImagesWe will begin by creating a series of test pattern images; using varying colors of these patterns in place of the default images to gauge locations, margins, overlaps, and similar constraints. These pattern images are 'pixel-precise' and each size was made separately, not merely resized. This allows us to gather information from their placement on a pixel-precise level as well.
![]() Actual Size Web PageTo provide a consistent browser view, we will create a very basic HTML document to display in our tabs. This gives us a plain black page with 10 broken bars as the title. The broken bars were chosen as the title to hopefully present us with a title that is not as obtrusive as text, but still identifiable. Teal was chosen as the background color because it contrasts with the colors of our pattern images, and also with the Base Window color which you will learn about a little later.
OptionsSince we will be creating a nearly unusable theme, let us set our options to open two tabs upon startup, both displaying our test page. Your options should look like those below, with the urls pointing to where you stored your test page. Displaying two tabs assures we will have an example of both an active and inactive tab.Test ThemeAfter replacing the images that make up the majority of the theme, we are presented with an interface that will initially look very chaotic, but knowledge of its creation allows it to provide us with very precise layout information. (Note: You can find a copy of the theme displayed in the images for download here.)Final NoteWe will continue now by examining different parts of the interface and how they use the theme images. While trying to be clear and precise, we will also be very brief in most of the explanations; this should allow for easier browsing of this document for reference while building a theme.The following sections occur in a very specific order; if a section appears before another, it is meant to indicate that it will be drawn underneath it if they happen to overlap. This is because the browser draws all the interface elements back to front. We will attempt to point out any possible overlaps, but in the event that one is omitted, the section order will the layering order. WindowExamining our test theme immediately shows us a very important aspect of the theme system; all of our transparent test images have turned white! This is not an error in the images, instead this is showing us the true nature of how the browser builds its window. It begins by displaying, what we will refer to as, the Base Window, which is completely white. All theme designers with transparency in their Window images will have to keep this in mind to keep the white from showing through.Upper Window CornersIf the white background wasn't shocking enough, a closer look at the upper corners shows us our next interesting(i.e. limiting) design constraint. The Base Window is built with slightly rounded corners which limits us from making a theme with corners that are either harder or softer.![]() Enlarged View - Grid Denotes Pixels Window BordersThe browser then paints the theme's window images on top of this white frame. There are six different window states; Activated, Deactivated, Off-the-Record Activated, Off-the-Record Deactivated, Constrained, and Constrained 'V'. Activated is the normal window state, and Deactivated is conversely the state when the window doesn't have primary focus. Off-the-Record is called Incognito in the browser menu, and also has Activated and Deactivated states. The exact nature of the Constrained windows hasn't been determined as of this writing, but the developer documentation does refer to 'Constrained Popups' so it would probably be safe to assume that these images deal with popup windows; the images refer to both a normal constrained window, and also a 'V' constrained window, this could possibly mean vertical.Window Border LayoutWindow Border Images
Window Border DetailsMargins are from Base Window edges.
Dialog WindowDialog Windows such as Options, Task Manager, and About use a slightly different drawing system. The first thing to note is that the Base Window is black instead of white, yet still maintains the same forced rounded top corners. Dialog Windows are drawn much the same way as normal windows, with a notable exception. The top, bottom, and side images are tiled from window edge to window edge, then the corners are drawn on top of them. This would only cause an issue if you were using transparency in your images, which is unlikely considering the inconsistent white/black background they will be drawn upon.Dialog Window LayoutDialog Window DetailsMargins are from Dialog Window edges.
Content AreaThe Content Area consists of the images that border the frame that displays the web page, with an enlarged top row to leave room to draw the Navigation Bar.Top RowThe top row, shown as cyan and magenta in the image below, has a complex top margin that requires a detailed explanation. The Content Area is drawn before the Tab Row, but relies on the sizes and margins of the Tab Row to determine its position. The top margin of the top row is x, where x is the height of the Tab Row plus 12px; or more accurately the Tab Row height plus the Tab Row top margin minus 3px.Another interesting thing to note, as shown in the preceding image, is that a 1px tall gray(R=178 G=178 B=178) line is drawn within the entire width of the bottom edge of the content_top_center. Much like the rounded top corner of the Base Window, you will not be able to avoid nor change this. Content BorderThe size of the content border is controlled by the size of the images used to create it. The height of the top border, which ends up having the Navigation Bar drawn within it, is determined by the height of content_top_center. The width of the sides is determined by the widest image out of the corners and sides; if the height of the corners are less than the top or bottom, the sides will tile to fill the gaps. The height of the bottom border is determined by the height of content_bottom_center.Content Border LayoutContent Border Images
Content Border DetailsMargins are from Base Window edges.
Dialog Content BorderUnlike the standard window, the images for the content border do not affect the size of the content area in dialog windows, and the top images are not drawn at all. The images are also drawn from the edge of the content area outward, with any excess outside of the window frame being trimmed.Dialog Content Border Layout![]() Approximation of Dialog Content Border Layout - Pink shade indicates parts of the image that are trimmed Dialog Content Border DetailsMargins are from the Dialog Window edges.
Tab RowThe Tab Row consists of one or more Tabs and the New Tab button. It overlaps any image from a previous section, most notably the Top Content Border. It will stretch the entire width of the window, within its margins. Upon filling out its margins, it will begin to shrink the center image of all the Tabs horizontally at and even rate; the New Tab button will never shrink.TabsTabs are made up of three images, and possess five states; Active, Inactive, Off-the-Record Inactive, Vertical Inactive, and Hover. The Tabs and New Tab button overlap each other, with the Active tab and New Tab button always on top, and the Inactive variations of Tabs layering from left to right, and the last tab being overlapped by the New Tab button. The height of the Tab Row is determined by the tallest Tab image, but it is recommended that all the images be the same height. If you wish to have tabs with varying heights, the Inactive Tabs being shorter than the Active Tab for example, you should accomplish this using transparency. The New Tab button consists of a single image with three states; Normal, Hover, and Push. Although it possesses a different top margin, the New Tab button can affect the height of the entire Tab Row, keep this in mind when determining the size of your New Tab images. The Hover state is not drawn directly, it is instead drawn at 33% opacity over an Inactive Tab; you cannot change this opacity so take it into account when creating your Hover images.Tab LayoutTab Images
Tab DetailsMargins are from the Base Window edges, unless otherwise noted.
Tab ContentEach Tab has a content area that consists of a Favicon, the Title, and a button to close the Tab. The content area does not stay within the tab_center image. The Tab Close button has three states; Normal, Hover, and Pushed. There are occasionally additional icons that appear within the Title block, although theme designers may wish to edit these, unless they make them larger than the Favicon or Tab Close buttons they will always fit nicely within the Title block.Tab Content Layout![]() Approximation of Tab Content Layout Tab Content Images
Tab Content DetailsMargins from the confines of all three Tab images combined.
Incognito IconThe Incognito (or Off-the-Record) icon only appears when you enter the appropriate state. When in this state, the Incognito icon will be placed to the left of the First Tab, pushing all the Tabs to the right to make room.Incognito Icon Images
Incognito Icon Details
Navigation BarThe Navigation Bar is the area where most of the controls are located. It falls within the boundaries of the Content Border Top Center. There are three parts of the Navigation Bar; the Buttons, the Location Bar, and the Menu Buttons.Navigation ButtonsThere are six different Navigation Buttons; Back, Forward, Reload, Home, Star/Starred, and Go/Stop. All of them have at least three states; Normal, Hover, and Pushed. Back, Forward, Star, and Go also have a Disabled state. Home does not appear in the Navigation Bar until a home page has been set; in this document we will be assuming that Home is in the Navigation Bar. Starred replaces Star when the site has been bookmarked, and Stop replaces Go while a page is being loaded.Navigation Buttons Layout![]() Approximation of Navigation Buttons Layout Navigation Buttons Images
Navigation Buttons DetailsMargins are from the boundaries of Content Border Top Center.
Location BarThe Location Bar expands to fill all available room in the Navigation Bar between Star/Starred and Go/Stop. It has three states, Normal, Read-Only, and Keyword, it is not limited to a single state at a time. While in the Normal state, the locationbg image tiles on the X-axis behind it, with 2px showing on the top, 2px showing on the bottom, with 0px between the Location Bar and Star/Starred and Go/Stop. While in the Read-Only state, the Location Bar shrinks 1px on both sides, and shows a single pixel around the outside of the locationbg_readonly images. While in the Keyword state, the location_bar_keyword_search images are drawn within the Location Bar boundaries.Location Bar Layout![]() Approximation of Location Bar Layout Location Bar Images
Menu ButtonsMenu Buttons are very different than the other buttons of the Navigation Bar; instead of a button with different states, they are an image, and a background that has two states; Hover and Push. The Normal state is the button image drawn without the background. The background is also used in other parts of the interface, most notably the Bookmark Bar; because of this, it is a good idea to have the background images be mostly transparent borders that modify the look of what is beneath them. The actual Menu Button image is only drawn within the center part of the background.![]() Enlarged View - Menu Button image in Purple Menu Buttons Layout![]() Approximation of Menu Buttons Layout Menu Buttons Images
Menu Buttons Details
Window Controls Bar
The Window Controls Bar resides in the upper right corner of the Base Window. It contains buttons to control the state of the window, and a icon displaying a distributor logo. |
| Close | Restore |
| close close_h close_p |
restore restore_h restore_p |
| Maximize | Minimize |
| maximize maximize_h maximize_p |
minimize minimize_h minimize_p |
Window Controls Buttons Details
- Close
- Top aligned.
- Right aligned.
- Does not tile.
- Margins
- Top - 1px.
- Right - 4px.
- Maximize/Restore
- Top aligned.
- Right aligned.
- Does not tile.
- Margins
- Top - 1px.
- Right - Width of Close image, plus 4px. (or 0px between Maximize/Restore and Close)
- Minimize
- Top aligned.
- Right aligned.
- Does not tile.
- Margins
- Top - 1px.
- Right - Width of Close image, plus width of Maximize/Restore image, plus 4px. (or 0px between Minimize and Maximize/Restore)
Distributor Logo
The Distributor Logo is a small logo that resides the left of the Window Controls Bar. In the default theme it is the small Google logo. There are two states to this logo, Normal and Light, referring to state required to contrast the tone of the background they are drawn over. How the browser decides which to display as not been determined exactly, but for the purposes of theme creation, you can make both of the files the same to get the logo you want displayed. There is no size restriction on the Distributor Logo, but you must keep in mind that it will overlap all other interface elements, making them unusable.Distributor Logo Images
| Distributor Logo |
| distributor_logo distributor_logo_light |
Distributor Icon Details
- Distributor Logo
- Top aligned.
- Right aligned.
- Does not tile.
- Margins
- Top - 3px.
- Right - Width of all Window Controls images, plus 11px. (or 7px between Distributor Icon and Minimize)
Find Bar
Find Bar
Find Bar Layout

Approximation of Find Bar Layout
Find Bar Images
Find Bar Details
Find Bar Buttons
Find Bar Buttons Layout

Approximation of Find Bar Buttons Layout
Find Bar Buttons Images
Find Bar Buttons Details
Miscellaneous Sections
Download Button
Download Button Layout

Approximation of Download Button Layout
















