Skip to content

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 ​

  1. Open Theme settings in the editor and find the Import section.
  2. Click Import theme (.json, .zip, .crx) and pick the file.
  3. 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 ​

FileReadsImages
.jsonColors, tints, properties, metadataNone, the summary says so
.zipEverything the manifest referencesLoaded from the archive
.crxCRX 2 or CRX 3 header, then the ZIP insideLoaded from the archive
Summary reasonMeaning
ignored by current ChromeKept and re-exported as is
rendered by Chrome but not editable here yetKept and re-exported as is
not a Chrome theme keyKept and re-exported as is
imported without its alpha channelThe color lost its fourth value
image slot not editable here yetNot re-exported
referenced image file missing from the archiveThe slot stays empty
image files are not part of a manifest.json importUse the ZIP
value is not a color this editor can readThe 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.

Next ​