Changing the background image of Chrome’s NTP

All we need is an easy explanation of the problem, so here it is.

Is there a way to set or change the background of Chrome’s new-tabs-page without installing a theme?

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

The newtab page is not generated, it is a resource built-into Chrome that is loaded and processed at runtime. It would of course be easier to modify the New Tab page with an extension, but you can edit it to make your changes permanent (ie, built-in, even when running in bare-minimum mode with all plugins and extensions disabled), however you would have to do so again after each update (though this can be made easier in various ways). If you want to go this route, you can find the New Tab page in the file CHROME.DLL.

First close all instances of Chrome/Chromium (make sure that no instances of chrome.exe are present in the Task Manager), then make a backup copy of chrome.dll (ResHacker does this automatically, but you’ll want a spare copy just in case).

Now open chrome.dll in a resource editor such as ResHacker. The page is in the binary (BINDATA) section, under resource 523—the number may change, but search for the string bookmarkbarattached:bookmarkbarattached;. (For some reason, there is no <title>New Page</title> element in the page, it is added at runtime even though it is a static string and has no dynamic content.)

At this point, you can make whatever changes you wish. You can add elements, scripts, styles, etc.

Other than the obvious (editing compiled, binary files and the need to re-edit after updates), one caveat is that you cannot link to local files (which makes sense since the browser is not a web server). The New Tab page is “located” at the URL chrome://newtab/, so any relative URIs will be relative to that). You can of course use absolute URIs such as or chrome://theme/css/newtab.css.

When you’re done, compile the script (if the resource-editor has such a button) and save it. Now run Chrome and your New Tab page should be shiny and new.

Below, I edited the New Tab page and threw in a picture in the bottom-right corner that toggles between two graphic files when you click on it (it was originally a simple link to my homepage, but I “fancied it up” to show that you can make significant changes to the New Tab page). I also set the style of the body element to a graphic file on my site, so I can easily change it by changing the file instead of re-editing the DLL file. Of course, even easier still would be to simply add an external style sheet to the page so that any changes can be made to a text file without re-editing the DLL file.

Edited Chromium New Tab Page

Method 2

Not directly, you can customise using Speed Dial

If you aren’t satisfied with just
changing the color of Speed Dial, you
can set a background image to really
change the look. Any image works, but
it currently needs to be hosted
online. The developer notes that they
will soon be adding support for local
background images, so keep an eye out
for future updates.


Method 3

I was going to replace my old answer with this new updated one that is completely different, but apparently the old one is still valid for newer versions of Chrome, so I figured I would add this as a separate answer.

A few versions back, Chrome was changed so that everything in the browser is a web page. Once they implemented a user stylesheet, it became possible to change pretty much everything in the browser, including its own chrome.

You can indeed change your new-tab-page background without any themes, and easily too. In fact, you can customize most of the new-tab-page as well as other parts of Chrome. The only limitation is that you must use CSS to do it (you cannot replace content at this time).

The general procedure to customize Chrome is simple:

  1. Open your user data directory
  2. Open the User StyleSheets folder
  3. Open the file Custom.css in a text-editor
  4. Enter your CSS
  5. Save the file
  6. Observe the results

If you want to change the background of the new-tab-page, you can use something like this:

/*Change NTP background*/ html[themegravity] {background:url( !important;}

It’s a single, simple line, but it has a few important aspects:

  • It starts with a comment (always good to do, especially when the file starts to grow with all your customizations).
  • It creates a CSS rule for the html element with a themegravity attribute. I picked this because in the version I am using, this was the best way to narrow down the CSS rule to just the background of the NTP. Unfortunately this may vary or change from version to version, so you may have to experiment with the dev tools (F12) to find a good CSS selector that works.
  • The rule sets the background image to a tiling texture in the WikiMedia store.
  • It uses the !important modifier to ensure that the rule is used and not overridden by Chrome’s own internal stylesheets.

You can use any valid image for the background (anything that would work in a regular webpage). This gives you great flexibility because valid options include:

  • Externally hosted images
  • Local images on the system hard-drive
  • Built-in resources in Chrome
  • Base64-encoded image datastreams

Obviously you will want to be careful with externally hosted images to avoid malware as well as for performance reasons (you have to download it), but an external image has the benefit that you can assign an image on a host where the image is dynamically changed. For example, if there were a URL such as which changes every day, then setting that would give you a new background every day! ʘ◡ʘ And you only had to use a single line which never even changes. Pretty cool huh?

Like I said before, the background isn’t the only thing you can change, you can change almost everything. All you need to do is to pick the right CSS selectors narrowly enough to target the element without affecting other webpages. This can be a little tricky, but certainly doable, especially since Chrome supports CSS3. And the best part is that the changes are made instantaneously when you save the stylesheet, so you don’t have to mess with installing anything, which makes testing a breeze. (Don’t forget to use the !important modifier.)

For example you can turn this:

Screenshot of default look of NTP

into this monstrosity:

Screenshot of customized NTP

This example may not be pretty, but it demonstrates what can be done with just a bit of CSS. Below is the CSS I used to make this ugly sample; it includes a variety of hacks and tweaks that show the different kinds of selectors and images you can use. The selectors I chose work for for the version of Chrome I’m using at the moment without affecting other webpages that I’ve been to.

/*Customize the Chrome New Tab Page*/
/*Change background to tiling texture*/                          html[themegravity] {background:url( !important;}
/*Set the webstore icon to an emoji and change text to red*/     span#chrome-web-store-title {background:url(chrome://theme/IDR_PROFILE_AVATAR_14) no-repeat bottom right !important; color:#f00;}
/*Change the Chrome logo to the built-in conflicts icon*/        div#logo-img {margin-left:-70px !important; padding-left:20px !important; width:20px; height:63px; background:url(data:image/png;base64,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) !important;}
/*Hide normal Chrome logo*/                                      div#logo-img img {display: none !important;}
/*Change bar at bottom to reddish fade*/                         html[themegravity] div#footer {background-image:-webkit-linear-gradient( rgba(255, 192, 192, 1.0), rgba(200, 255, 200, 0.5)) !important;}
/*Change color of most-visited items to yellow and make bold*/   a.most-visited span.title {color:#ff8 !important; font-weight:bold !important;}
/*Give thumbnails a thick, dotted, green border*/                span.thumbnail-wrapper {border:dotted #0f0 5px !important;}

The possibilities are limitless (okay, not literally, but still pretty vast).

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from or, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply