Build dynamic wallpaper on chrome

Build dynamic wallpaper on chrome

Play this article

##Introduction Most of the web user uses the chrome web browser for searching things on the internet. so, here I share the dynamic wallpaper using chrome browser. but, the same concept we able to do in other browsers also, like firefox, safari...etc.,

###Dynamic theme on chrome browser In chrome browser, the new tab screen will be the home screen. whenever we open it. it will show first. so, in this article, I will share how to replace the new tab screen and add our own features.

###How to replace the chrome new tab screen? Answer: Chrome extension

###Let's start the development. a screen using front-end lightweight library. I personally choose the Vue app for example. if you things any other light-weighted app. you will use it.

# In your system not installed vue-cli. the below command to use and install it.
$ yarn global add @vue/cli
$ vue create hello-world #I chose vue 3

2.create a manifest.json and add the below lines. Then, put the file into the public folder inside the Vue app.

  "name": "<App name>",
  "description": "<App description>",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": ["tabs"],
  "chrome_url_overrides": {    
    "newtab": "index.html"  ##Mention the file name. which is need to show in the new tab.
  "background": {
    "service_worker": "background.js"
  "action": {
    "default_icon": {
      "16": "/images/cool16.png",
      "32": "/images/cool32.png",
      "48": "/images/cool48.png",
      "128": "/images/cool128.png"
  "icons": {
    "16": "/images/cool16.png",
    "32": "/images/cool32.png",
    "48": "/images/cool48.png",
    "128": "/images/cool128.png"

3.Replace the below code in App.vue file.

  <div class="date-time-wrapper">
    <h1 class="time">{{time}}</h1>
    <h3 class="greet">{{greeting}}</h3>

export default {
  name: 'App',
  setup() {
    const dateObject = new Date();
    const hour = dateObject.getHours();
    let greet = "Good";

    if(hour <= 11) {
      greet += " morning";
    }else if(hour <= 18) {
      greet += " afternoon";
    }else {
      greet += " evening";
    return {
      greeting: greet,
      time: `${hour +":"+dateObject.getMinutes()}`

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  .date-time-wrapper {
    text-align: center;
    margin: auto;
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
  .time {
    font-size: 8rem;
    font-weight: 600;
    margin-bottom: 4px;
  .greet {
    font-size: 3.5rem;
    font-weight: 400;
  body {
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
    // This background will bring new dynamic wallper everytime its provided by unsplash
    background-image: url(;
    background-size: cover;
    background-color: auto;

4.Once done all steps. Go to the app home directory and run the below command.

$ yarn serve

visit the serving URL like http://localhost:8080. we able to see the below screen. App screen

That's it we build the dynamic wallpaper screen using the Vue app.

Next chapter I will share how to test in chrome browser in local and publish the chrome extension and list it in the marketplace app.

Thanks for reading this post.🍻