Create a custom theme extension
A Turbo skin is a Chromium theme extension: it only changes window colors and background images. It has no scripts and requests no permissions. The format matches Chrome / Edge themes. You can load a folder for testing or pack a .crx to share.
To change colors without making an extension, use Appearance on the title bar, or Themes to open the Edge theme store. See One-click themes.
What you need
- Turbo installed (Windows or macOS)
- A text editor for
manifest.json - PNG images as needed (frame, toolbar, new-tab background)
Create a folder such as my-turbo-theme/:
my-turbo-theme/
manifest.json
images/
frame.png
toolbar.png
ntp.pngImages are optional. Missing images fall back to the solid colors in colors.
Write manifest.json
The "theme" key is required. Do not add background, content_scripts, or permissions used by regular extensions.
Copy this Manifest V3 example and edit it:
{
"manifest_version": 3,
"name": "My Turbo theme",
"version": "1.0.0",
"description": "Custom frame, toolbar, and new-tab colors",
"theme": {
"images": {
"theme_frame": "images/frame.png",
"theme_toolbar": "images/toolbar.png",
"theme_ntp_background": "images/ntp.png"
},
"colors": {
"frame": [37, 99, 235],
"frame_inactive": [100, 116, 139],
"toolbar": [241, 245, 249],
"tab_text": [15, 23, 42],
"tab_background_text": [71, 85, 105],
"bookmark_text": [30, 41, 59],
"ntp_background": [248, 250, 252],
"ntp_text": [15, 23, 42],
"omnibox_background": [255, 255, 255],
"omnibox_text": [15, 23, 42],
"toolbar_button_icon": [51, 65, 85]
},
"properties": {
"ntp_background_alignment": "center",
"ntp_background_repeat": "no-repeat"
}
}
}Colors are RGB arrays (0–255). Older store themes often use Manifest V2; Turbo can load those as well.
Common fields
Images theme.images
Paths are relative to the extension root. PNG is recommended.
| Key | Role |
|---|---|
theme_frame | Title bar / window frame (often tiled horizontally) |
theme_toolbar | Toolbar, bookmark bar, and active tab area |
theme_tab_background | Inactive tab background |
theme_ntp_background | New-tab background image |
theme_ntp_attribution | Optional small credit image on the new tab |
Other image keys (for example incognito frames) can be omitted.
Colors theme.colors
| Key | Role |
|---|---|
frame / frame_inactive | Active / inactive window frame |
toolbar | Toolbar fill and the active tab fill — the selected tab joins the toolbar. Turbo also matches the address bar to this color |
tab_text | Text on the active tab |
tab_background_text | Text on inactive tabs |
bookmark_text | Bookmark bar text |
ntp_background / ntp_text | New-tab fill and text |
omnibox_background / omnibox_text | Address bar fill and text |
toolbar_button_icon | Toolbar icon tint |
Add frame_incognito and related keys if you need a distinct incognito look.
Properties theme.properties
| Key | Typical values |
|---|---|
ntp_background_alignment | center, top, bottom, left, right |
ntp_background_repeat | no-repeat, repeat, repeat-x, repeat-y |
ntp_logo_alternate | 0 or 1 for the default NTP logo treatment |
Tints theme.tints (optional)
Three HSL numbers (0–1) to tint buttons or the frame. You can skip this and still ship a complete theme with colors and images.
Load and preview in Turbo
- Open
chrome://extensions(or Menu → Extensions → Manage extensions). - Turn on Developer mode.
- Click Load unpacked and choose the
my-turbo-themefolder. - The look applies immediately. After you edit files, click Reload on that extension.
TIP
Theme extensions appear in the list but have no toolbar icon. Remove or disable the extension to restore the previous look.
See Extension development for the rest of the developer tools.
Pack a .crx
When you are happy with the result, click Pack extension on the Extensions page and select the theme folder. You get:
.crx— install by dragging into a Turbo window, or share the file.pem— keep this private key; you need it to update the same theme later
Installing a .crx is the same as for other extensions. See Extensions.
Tips
- Pick
toolbarfirst. It is both the toolbar and the active-tab fill, and it drives the address bar. Keep image hues close to that RGB and keeptab_textreadable. Inactive tabs usetheme_tab_background/tab_background_text. - Make
theme_framewide and tile-friendly. Seams show on wide windows if the edges do not match. - Keep NTP images modest. A huge PNG slows the new tab page.
- Themes do not follow system dark mode. A light skin on a dark OS can look harsh.
- Use images you have rights to.
FAQ
Nothing changed after loading?
Put manifest.json at the folder root, check JSON syntax, and keep the "theme" key. Fix any error shown on the Extensions page, then reload.
Colors only, no images?
Delete the images object and keep colors.
How do I remove a custom theme?
Remove or disable it on chrome://extensions, or restore default colors under Settings → Appearance.
Can I publish to the Chrome Web Store?
Yes, if you follow store rules. For local use, a folder or .crx is enough. The title-bar Themes entry opens the Edge theme store for ready-made themes.
See also
- Extension development — developer mode, packing, publishing
- Extensions — stores,
.crx, and one-click appearance - Built-in productivity → One-click themes
- Chrome theme manifest (same fields as Turbo)