How To Create a Google Chrome Theme

Themes are a great way to personalize the Google Chrome browser.  They can be published to the Google Web Store or deployed locally to your own browser. Theme, although for the most part are free, they can used to discreetly promote your own site or product

They are quite easy to create and deploy. There is different ways to create a theme which are Google Chrome Extensions but have no html, css styling or Javascript. A theme consists of images, colors and tints. These attributes are defined inside a special file called manifest.json. As the file extension suggests, the file uses the JSON notation.

The manifest.json file



The manifest.json file can be opened by any text editor.  In the following example you can see the general layout of the manifest file. The file may contain theseelements. Other elements can be added or removed depending on your design.

{
  "version": "1.0",
  "name": "kevlangdo theme",
  "icons": { "16": "icon16.png",
           	 "48": "icon48.png",
          	"128": "icon128.png" },
  "theme": {
    "images" : {
      "theme_frame" : "img/theme_frame.png",
      "theme_toolbar" : "img/theme_toolbar.png",
      "theme_ntp_background" : "img/kevlangdo_background.png",
      "theme_ntp_attribution" : "img/kevlangdo_attrib.png"
    },
    "colors" : {
      "frame" : [51, 0, 51],
      "toolbar" : [51,0, 153],
      "ntp_text" : [51,0,0],
      "ntp_link" : [51,51,205],
      "ntp_section" : [51,102, 153],
      "button_background" : [255, 255, 255]
    },
    "tints" : {
      "buttons" : [0.33, 0.5, 0.47]
    },
    "properties" : {
      "ntp_background_alignment" : "bottom"
    }
  }
}
The different attributes that describe a theme contain specific elements that must be given values in order to properly define the theme.

At the beginning you fill in the version of the theme and give the theme a name. You need to specify the product icons using the ‘icons’ element. All three sizes are required: 16 for favicon; 48 for the Extension Manager page and finally 128 for the Web Store.

Within the theme definition proper, you need to define the Theme attributes. These following elemens is only a subset of the possible elements that can be defined in your Theme design. Refer to the Google Theme docs for complete details.

Under images:
theme_frame: This element contains the relative path of the image that appears behind the tabs.theme_toolbar: This is the element that describes the path of the image that defines the current tab and underlining toolbar.
theme_ntp_background: This element defines the relative path of the main window of the browser. Where the content of a web page appears.
theme_ntp_attribution: This defines the relative path of the image of the “Theme Created By” section



Under colors:
The color section allows a designer to define different color attributes for the various elements in the Chrome Tab page. These colors are stated using RGB color codes. In our example, the following elements have been defined:

frame: This the RGB color that defines the color of the frame and border
toolbar: This defines the RGB color of toolbar
ntp_text: This defines the color of the text of the sections (e.g. “Recently Closed” or “App”)
ntp_link: This defines the color of the links in the specials sections (e.g. “Most Visited”)
button_background:This defines the color the background of the buttons in the toolbar area.

Under tints:You use Tints to alter the hue, saturation and lightness of images. In our example we have defined buttons with specific styling attributes.

Under properties:The properties section allows for certain UI refinemens like if the background image needs to be repeated, or the set the alignment of the background image. In our example, the background image for the main window has been defined as : bottom

ntp_background_alignment: Defines the alignment of the background image.

Design Tools:

Several tools are available to help design a Google Chrome Theme. At the lower end of the spectrum, a designer can use Notepad (under Windows) or Notepad++. On a Mac, TextEdit is available or TextWrangler. For Linux users, the Gedit editor does a fine job.


There are also an assortment of other tools you use such as Chrome Theme Creator Online
http://www.chrometheme.net/chrome-theme-creator-online.html.

At the other end of the spectrum, you can use Photoshop and the Google Chrome plugin to visual design a theme

Steps to Create a Basic Theme

To put it all together, I will execute these steps:

  1. Paste the json definition into the TextWrangler on my Mac
  2. Create a root folder for my theme and name it the same as my theme
  3. Create a img sub folder in my root folder
  4. Create the image files
  5. Add the image files to the img folder
  6. Update the values in the manifest.json file to reflect the paths in the folders
  7. Create or add a well designed Product icons
  8. Save the manifest.json file

Package The Theme

  1. Open the Extension Manager in Chrome (Wrench->Tools->Extensions)
  2. Switch to Developer Mode by expanding ‘+ Developer Mode’ node
  3. Pack the extension by clicking on the ‘Pack Extension’ button to bring up the configuration panel.
  4. Fill in the ‘Extension Root Directory’ by using the ‘Browse’ button
  5. IMPORTANT: Leave the Private Key field empty. It isn’t needed it when the Extension (Theme) is created. It is mandatory when updating a Theme (Extension).
  6. If error message appears, fix the manifest.json otherwise a crx file (Chrome archive) is created and a .pem file which is the private key.
  7. Test your Theme by double-clicking on the .crx file. It will be located in the folder containing the Theme Root folder.
  8. Click ‘Continue’ to install the Theme in your Chrome browser
  9. If everything is ok, package Theme for deployment to Google Chrome
  10. Create a zip file of the crx file
  11. Submit to Google Chrome Gallery

Deploy


  1. Open the Google Chrome Gallery (https://chrome.google.com/extensions)
  2. Click on the “Publish Your Extension” link
  3. Create a Developer Account if you don’t have one
  4. Click on the “Add Item” button
  5. Choose your Zip file using the ‘Choose file’ button
  6. Click ‘Upload’ to upload the zip file



That is it. In my next article I will create an actual Theme and upload it tot he Chrome Web Store.

More by this Author


Comments 12 comments

Phil Plasma profile image

Phil Plasma 5 years ago from Montreal, Quebec

Great tips. I think I'll give a try the next time I have a few spare minutes. You get a vote-up and useful for sharing these detailed instructions.


klanguedoc profile image

klanguedoc 5 years ago from Canada Author

Thanks Phil, Let me know when you have your theme on Chrome. I will check it out.

K


Vinaya Ghimire profile image

Vinaya Ghimire 4 years ago from Nepal

I'm finding little problem to work with Chrome. I think this will help me.


klanguedoc profile image

klanguedoc 4 years ago from Canada Author

Thanks. Chrome is fairly easy to use once to master the manifest.json file which is a json formatted document.


Lia Piera 4 years ago

Nice themes! If you want a bigger selection to choose from visit http://www.chrome-theme.org to grab all kinds of hd backgrounds!


klanguedoc profile image

klanguedoc 4 years ago from Canada Author

Thanks Lia Piera, I am sure to check out the link


Andrea G 4 years ago

I need help! I used this about a month ago and made a theme and I could use it on my own chrome, but now when I try and reinstall the theme, it only has the colors not the pictures! Well on top of that I cant even access the website now. Everything but the actual theme creator show and I cant seem to find any way to download it either! Help!


klanguedoc profile image

klanguedoc 4 years ago from Canada Author

Hi Andrea, have you tried uninstalling the theme and reinstalling again fresh. When you try this approach, you may be blocked because Chrome will assume that the theme is already installed and won't let you install again. So what you have to do is install another, unrelated theme, thus overwriting your original them. Then re-install your own them again.

Things may have gotten messed up because of an upgrade. Let me know if you need more help.

Kevin


radhikasree profile image

radhikasree 4 years ago from Mumbai,India

I learned something new today about personalizing Google Chrome. I would follow these steps on the pursuit of the same and thanks for sharing these notes.

Up and useful.


klanguedoc profile image

klanguedoc 4 years ago from Canada Author

Thanks radhikasree. I am glad you find it useful.


James McCullough profile image

James McCullough 4 years ago from Kelowna, British Columbia

I love Google Chrome but had never considered making my own theme before. May have to give this a try just for a fun project some time. Thanks for the information.


klanguedoc profile image

klanguedoc 4 years ago from Canada Author

It is great way to promote your work, or a web site without being intrusive.

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working