Import a theme
Import loads an existing Chrome theme into the editor so you can correct it and export it again. Reach for it when a theme was built elsewhere, or when you hold a store package and want to see what it paints.
Quick start
- Open Theme settings in the editor and find the Import section.
- Click Import theme (.json, .zip, .crx) and pick the file.
- The window repaints with the imported colors and the Import summary reads "Imported N manifest keys into the editor."
How it works
Three file kinds. The picker accepts .json, .zip and .crx. A manifest.json brings colors, tints and properties but no images, because the image files are not in it. A ZIP brings the images too. A CRX is read in both the version 2 and version 3 header layouts and unpacked as the ZIP inside it.
Localized names resolve. A manifest whose name or description reads __MSG_name__ is resolved from the _locales folder in the archive, so the Theme Information fields show the real text.
The import summary. After the import a summary states how many manifest keys were loaded and lists every key that was not fully imported, each with a reason. Dismiss it with the control beside its title.
Unknown keys survive. A key the editor does not edit is kept as it was and written back on export. That covers keys current Chrome ignores, keys Chrome renders but the editor has no field for, and keys that are not Chrome theme keys at all.
Alpha is dropped. A four-element color imports without its alpha channel, because transparency is not modeled in the editor. The summary names each such key.
Reference
| File | Reads | Images |
|---|---|---|
.json | Colors, tints, properties, metadata | None, the summary says so |
.zip | Everything the manifest references | Loaded from the archive |
.crx | CRX 2 or CRX 3 header, then the ZIP inside | Loaded from the archive |
| Summary reason | Meaning |
|---|---|
| ignored by current Chrome | Kept and re-exported as is |
| rendered by Chrome but not editable here yet | Kept and re-exported as is |
| not a Chrome theme key | Kept and re-exported as is |
| imported without its alpha channel | The color lost its fourth value |
| image slot not editable here yet | Not re-exported |
| referenced image file missing from the archive | The slot stays empty |
| image files are not part of a manifest.json import | Use the ZIP |
| value is not a color this editor can read | The slot kept its current color |
When it fails
- "Invalid manifest: missing theme.colors." The file is not a theme manifest. Pick the manifest.json of a theme, not of an extension.
- "Failed to parse manifest.json." The JSON does not parse. Fix the syntax and import again.
- "Failed to read the theme archive (ZIP/CRX)." The archive is truncated, or the CRX payload is not a ZIP. Download the file again.
- The images did not come in. You imported a bare manifest.json. Import the ZIP instead.
- A color looks different from the original. Its alpha was dropped, or the value was not readable and the slot kept its previous color. The summary names the key.