< BACK TO COMPONENTS

Create Windows 11 Clone: HTML, CSS, JavaScript Tutorial

Faraz

By Faraz -

Learn how to create a stunning Windows 11 clone using HTML, CSS, and JavaScript. Follow our step-by-step guide for a flawless UI design.


Create Windows 11 Clone HTML, CSS, JavaScript Tutorial.jpg

In the ever-evolving landscape of web development, creating a stunning Windows 11 Clone using HTML, CSS, and JavaScript has become an exciting and rewarding endeavor. This tutorial will be your guiding light through this creative journey. Whether you're a seasoned developer looking to hone your skills or a passionate novice eager to embark on your first major project, you're in the right place.


Why Windows 11?


Windows 11 has captured the imagination of millions with its sleek, modern, and user-friendly interface. By replicating this interface on the web, you can not only pay homage to Microsoft's latest masterpiece but also gain valuable insights into web development techniques that can be applied to countless other projects. This endeavor will require a blend of HTML for structure, CSS for aesthetics, and JavaScript for interactivity – skills that are not only highly marketable but also deeply satisfying to acquire.


What You Will Learn


Throughout this tutorial, you will learn how to set up a project from scratch, create an HTML structure that mimics the Windows 11 layout, style it to perfection with CSS, and breathe life into it with JavaScript for interactivity. We'll also explore customization options, encouraging you to infuse your unique style into the clone. By the end of this journey, you will have a functional Windows 11 Clone that showcases your web development prowess.


Get Ready to Dive In


So, if you're ready to dive into the world of web development, unleash your creativity, and create a Windows 11 Clone that will leave visitors in awe, let's get started. Buckle up and embark on this exciting adventure of code, design, and limitless possibilities. Your journey towards mastering web development begins here!

Source Code

Step 1 (HTML Code):

To get started, we will first need to create a basic HTML file. In this file, we will include the main structure for our Windows 11 clone.


After creating the files just paste the following codes into your file. Make sure to save your HTML document with a .html extension, so that it can be properly viewed in a web browser.


Let me explain each part of it:


1. <!DOCTYPE html>: This is not included in your provided code, but it should be at the very beginning of an HTML document to specify the document type. However, it's not present in your code.


2. <html lang="en">: This is the opening tag for the HTML document. It specifies that the document is written in English (the "en" language code).


3. <head>: This is the head section of the HTML document. It contains metadata and other information about the page, but it's not displayed on the web page itself.


  • <meta charset="UTF-8">: This meta tag specifies the character encoding used in the document, which is UTF-8. UTF-8 is a character encoding that supports a wide range of characters, making it suitable for displaying text in various languages.
  • <meta http-equiv="X-UA-Compatible" content="IE=edge">: This meta tag is used to set the compatibility mode for Internet Explorer. It tells IE to use the latest rendering engine available.
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">: This meta tag defines the viewport settings for responsive web design. It ensures that the page is displayed properly on different screen sizes and devices.
  • <title>Windows 11 Clone</title>: This sets the title of the web page, which is displayed in the browser's title bar or tab.
  • <link rel="stylesheet" href="styles.css">: This line links an external CSS (Cascading Style Sheets) file named "styles.css" to the HTML document. CSS is used to style the web page's appearance.

4. <body>: This is the body section of the HTML document. It contains the visible content of the web page.


  • Inside the <body>, there is a <div> element with the class "desktopIcons". This represents the desktop area of the Windows 11 clone.
  • Inside this div, there are several <div> elements with the class "icon". Each "icon" div represents an icon on the desktop, such as "Recycle Bin," "Edge Browser," "This PC," and "VLC Media Player." Each icon has an <img> element for displaying an image icon and a <span> element for displaying the icon's name.
  • After the "desktopIcons" div, there is another <div> that contains various images. These represent buttons or elements in the taskbar of the Windows 11 clone.
  • Following this, there are several other divs with class names like "startmenu," "searchmenu," "widgetMenu," "fileMenu," and "microsoftstore." These probably represent different menus or application windows in the Windows 11 clone.

5. <script src="script.js"></script>: This line includes an external JavaScript file named "script.js" in the HTML document. JavaScript is a programming language used to add interactivity and dynamic behavior to web pages.


This is the basic structure of our Windows 11 clone using HTML, and now we can move on to styling it using CSS.

Step 2 (CSS Code):

Once the basic HTML structure of the Windows 11 clone is in place, the next step is to add styling to the clone website using CSS.


Next, we will create our CSS file. In this file, we will use some basic CSS rules to create our clone website.


Let's break down the code section by section:


1. The * selector applies styles to all elements on the page, resetting the margin and padding to 0 pixels. This is a common practice to ensure a consistent starting point for styling across different browsers.


2. Styles for the body element are set:


  • background: This sets the background image of the page using a URL. It positions the image in the center and covers the entire viewport (100% width and height). The no-repeat value ensures the image is not repeated, and /cover scales it to cover the entire background.
  • height: The 100vh value sets the height of the body to be equal to the viewport's height, ensuring that the background image covers the entire visible area.
  • overflow: This is set to hidden, which hides any content overflowing the body element.

3. The .taskbar class styles the taskbar:


  • position: It's set to absolute, which means the taskbar is positioned relative to its nearest positioned ancestor.
  • bottom: This positions the taskbar at the bottom of the viewport.
  • width: The taskbar spans the entire viewport width (100vw).
  • display: The flex value is used, allowing for a flexible layout of taskbar elements.
  • background-color: The background color of the taskbar is set to a light gray (#f3f3f3).
  • z-index: It sets the stacking order of the taskbar, ensuring it appears above other elements.

4. #righttaskbar styles the right side of the taskbar, where icons may appear. It's positioned at the bottom-right corner and has a specified height and right position.


5. #fileExplorer styles an icon (possibly representing a file explorer) within the taskbar. It has a specific width, height, and margin.


6. There are several sections in the code for different menus and interfaces like the Start Menu, Search Menu, Widget Menu, File Explorer, and Microsoft Store. Each section defines the width, positioning, and transition effects for these elements.


7. The .icon class styles desktop icons. Icons are given a margin, width, height, and are positioned as fixed elements. They also have font styling and an optional image.


8. Specific elements like #edge, #recyclebin, and #vlc are given unique margin-top values to position them at different heights on the desktop.


This will give our Windows 11 clone an upgraded presentation. Create a CSS file with the name of styles.css and paste the given codes into your CSS file. Remember that you must create a file with the .css extension.

*{
  margin: 0px;
  padding: 0px;
}

body{
  background: url("https://raw.githubusercontent.com/arpit456jain/Amazing-Js-Projects/master/Windows%2011/src/bg2.jpg") no-repeat center center/cover; 
  height: 100vh;
  overflow: hidden;
}

/* taskkBar */

.taskbar{
  position: absolute;
  bottom: 0px;
  width: 100vw;
  display: flex;
  justify-content: center;
  background-color: #f3f3f3;
  z-index: 110;
}

#righttaskbar{
  position: absolute;
  right: 0px;
  bottom: 1px;
  height: 40px;
}

#fileExplorer{
  width: 32px;
  height: 32px;
  margin: 5px 4px;
}

/* Start Menu */

#menu{
  width: 460px;
  border-radius: 4px;
}

.startmenu{
  position: absolute;
  bottom: -650px;
  text-align: center;
  width: 100%;
  transition: all 0.4s ease-in;
  z-index: 6;
}

/* Search Menu */

#searchBox{
  width: 545px;
  border-radius: 4px;
}

.searchmenu{
  position: absolute;
  bottom: -650px;
  text-align: center;
  width: 100%;
  transition: all 0.4s ease-in;
  z-index: 6;
}

/* Widget Menu */

#widgetBox{
  height: 94.5vh;
  border-radius: 4px;
}

.widgetmenu{
  position: absolute;
  left: -950px;
  /* text-align: center; */
  width: 100%;
  transition: all 0.6s ease-in;
  z-index: 6;
}

/* File Explorer */

#fileManager{
  width: 600px;
  border-radius: 4px;
}

.filemenu{
  position: absolute;
  left: 0px;
  top: -700px;
  text-align: center;
  width: 100%;
  transition: all 0.3s ease-in;
  z-index: 5;
}

/* File Explorer */

#store{
  width: 800px;
  border-radius: 4px;
}

.microsoftstore{
  position: absolute;
  left: 0px;
  top: -800px;
  text-align: center;
  width: 100%;
  transition: all 0.3s ease-in;
  z-index: 5;
}

/* Desktop Icon */

.icon{
  margin: 6px;
  width: 60px;
  height: 45px;
  text-align: center;
  position: fixed;
  font-size: 12px;
  font-family: 'Segoe UI Semibold';
  font-style: italic;
}

.icon img{
  width: 40px;
  margin: 2px;
}

#edge{
  margin-top: 162px;
}

#recyclebin{
  margin-top: 78px;
}

#vlc{
  margin-top: 260px;
} 

Step 3 (JavaScript Code):

Finally, we need to create a function in JavaScript. This JavaScript code appears to be controlling the behavior of a graphical user interface (GUI) that resembles a Windows-style desktop environment. Let's break down what each part of the code does:


1. The code starts by defining several variables for buttons and menus on the GUI using the getElementById and getElementsByClassName methods to access DOM elements.


  • startButton: Represents a button element with the id "startbutton."
  • startMenu: Represents a menu element with the class "startmenu."
  • searchButton: Represents a button element with the id "searchbutton."
  • searchMenu: Represents a menu element with the class "searchmenu."
  • widgetButton: Represents a button element with the id "widgetbutton."
  • widgetMenu: Represents a menu element with the class "widgetmenu."
  • fileExplorer: Represents a button element with the id "fileExplorer."
  • fileMenu: Represents a menu element with the class "filemenu."
  • storeButton: Represents a button element with the id "storebutton."
  • store: Represents a menu element with the class "microsoftstore."

2. The code adds event listeners to each of the buttons (startButton, searchButton, widgetButton, fileExplorer, and storeButton). These event listeners listen for a "click" event on the respective buttons.


3. Inside each event listener, there is a conditional statement that checks the current style of the associated menu element (startMenu, searchMenu, widgetMenu, fileMenu, or store) to determine its position.


  • If the menu is currently closed (e.g., it's bottom or left style property is set to a specific value like "-650px" or "-950px"), the code opens the menu by changing its position (e.g., setting bottom to "55px" or left to "0px").
  • If the menu is already open, the code closes the menu by resetting its position to its closed state (e.g., setting the bottom back to "-650px" or left back to "-950px").

4. The code ensures that only one menu can be open at a time by closing any other open menus when a new menu is opened. For example, when you open the "startMenu," it closes the "searchMenu," "widgetMenu," "fileMenu," and "store."


5. The code allows users to toggle the menus by clicking their respective buttons. When you click a button once, it opens the associated menu; clicking the same button again closes the menu.


Create a JavaScript file with the name script.js and paste the given codes into your JavaScript file and make sure it's linked properly to your HTML document so that the scripts are executed on the page. Remember, you’ve to create a file with .js extension.

let startButton = document.getElementById("startbutton")
let startMenu = document.getElementsByClassName("startmenu")[0]

let searchButton = document.getElementById("searchbutton")
let searchMenu = document.getElementsByClassName("searchmenu")[0]

let widgetButton = document.getElementById("widgetbutton")
let widgetMenu = document.getElementsByClassName("widgetmenu")[0]

let fileExplorer = document.getElementById("fileExplorer")
let fileMenu = document.getElementsByClassName("filemenu")[0]

let storeButton = document.getElementById("storebutton")
let store = document.getElementsByClassName("microsoftstore")[0]


startButton.addEventListener("click",()=>{
    if(startMenu.style.bottom == "-650px"){
        widgetMenu.style.left = "-950px"
        searchMenu.style.bottom = "-650px"
        startMenu.style.bottom = "55px"
    }else{
        startMenu.style.bottom = "-650px"
    }
})

searchButton.addEventListener("click",()=>{
    if(searchMenu.style.bottom == "-650px"){
        widgetMenu.style.left = "-950px"
        startMenu.style.bottom = "-650px"
        searchMenu.style.bottom = "55px"
    }else{
        searchMenu.style.bottom = "-650px"
    }
})

widgetButton.addEventListener("click",()=>{
    if(widgetMenu.style.left == "-950px"){
        startMenu.style.bottom = "-650px"
        searchMenu.style.bottom = "-650px"
        widgetMenu.style.left = "0px"
    }else{
        widgetMenu.style.left = "-950px"
    }
})

fileExplorer.addEventListener("click",()=>{
    if(fileMenu.style.top == "-700px"){
        startMenu.style.bottom = "-650px"
        searchMenu.style.bottom = "-650px"
        widgetMenu.style.left = "-950px"
        store.style.top = "-800px"
        fileMenu.style.top = "100px"
    }else{
        fileMenu.style.top = "-700px"
    }
})

storeButton.addEventListener("click",()=>{
    if(store.style.top == "-800px"){
        startMenu.style.bottom = "-650px"
        searchMenu.style.bottom = "-650px"
        widgetMenu.style.left = "-950px"
        store.style.top = "50px"
    }else{
        store.style.top = "-800px"
    }
})

Final Output:

Create Windows 11 Clone HTML, CSS, JavaScript Tutorial.gif

Conclusion:

Congratulations! You've successfully completed the journey of creating a Windows 11 Clone using HTML, CSS, and JavaScript. This project has taken you through the intricacies of web development, from structuring the layout with HTML to crafting a visually stunning user interface with CSS and adding life to it with JavaScript. Along the way, you've also explored various customization options to make your clone unique.


As you reflect on your achievement, remember that web development is a dynamic field, and your newfound skills can be applied to countless other exciting projects. Whether you want to create more web applications, build websites for clients, or even explore the world of mobile app development, the fundamentals you've learned here will serve as a solid foundation.


Web development is not just about mastering tools and technologies; it's about innovation and creativity. Don't hesitate to experiment, try out new ideas, and continually expand your skill set. Stay updated with the latest trends and technologies in the ever-evolving web development landscape.


Consider joining web development communities, forums, or social media groups to connect with fellow developers. Sharing your knowledge and experiences can be immensely rewarding, and you'll find a wealth of resources and support from the community.


We hope this tutorial has been an inspiring and educational journey for you. Remember that web development is a field where the possibilities are limitless, and your imagination is the only constraint. Keep coding, keep designing, and keep pushing the boundaries of what's possible in the digital realm. Your Windows 11 Clone is just the beginning of your exciting web development adventure!


Credit: Arpit Jain

That’s a wrap!

I hope you enjoyed this post. Now, with these examples, you can create your own amazing page.

Did you like it? Let me know in the comments below 🔥 and you can support me by buying me a coffee.

And don’t forget to sign up to our email newsletter so you can get useful content like this sent right to your inbox!

Thanks!
Faraz 😊

End of the article

Subscribe to my Newsletter

Get the latest posts delivered right to your inbox


Latest Post