Skip to content
Youths Forum Youths Forum Youths Forum

Tech Blogs & Programming Tutorials

Youths Forum Youths Forum Youths Forum

Tech Blogs & Programming Tutorials

  • Blog
  • News
  • Programming
    • PHP
    • JavaScript
    • JQuery
    • CSS
    • HTML
    • API
  • Stock Market Live
  • Automobiles
    • Cars
  • Gadgets
    • Phones
    • Android Phones

Categories

  • Automobiles (12)
    • Cars (7)
  • Blog (103)
    • Poems (2)
    • Space (2)
  • Command (2)
  • Education (2)
  • Entertainment (4)
  • Gadgets (9)
    • Phones (8)
      • Android Phones (4)
  • HTML Templates (11)
  • IT Training Institutes (1)
  • Lifestyle (4)
  • News (51)
  • Others (23)
  • Programming (296)
    • API (16)
    • CSS (83)
    • Database (4)
    • Hosting (1)
    • HTML (37)
    • JavaScript (117)
      • JQuery (27)
      • ReactJS (7)
    • PHP (116)
  • Python (3)
  • recipes (1)
  • SEE Result (1)
  • Server (3)
  • Blog
  • News
  • Programming
    • PHP
    • JavaScript
    • JQuery
    • CSS
    • HTML
    • API
  • Stock Market Live
  • Automobiles
    • Cars
  • Gadgets
    • Phones
    • Android Phones
Close

Search

HTMLCSS

Create a 3D Rubik’s Cube with HTML and CSS

By Admin
September 22, 2024 3 Min Read
0

In this article, we’ll explore how to build a visually appealing 3D Rubik’s Cube using just HTML and CSS. This fun project will not only enhance your web development skills but also introduce you to the principles of 3D transformations and styling in CSS. Let’s dive in!

What You’ll Learn

  • Setting up the HTML structure for the cube
  • Using CSS to create 3D effects
  • Adding lines between colors for a realistic look
  • Animating the cube for dynamic display

Follow this video for complete guidance :

Step 1: Setting Up the HTML Structure

To begin, we’ll create a basic HTML structure for our Rubik’s Cube. Each face of the cube will be represented by a div, and within those, we will add smaller div elements to represent the individual squares.

Here’s the HTML code:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Rubik's Cube</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div class="rubiks-cube">
        <div class="face front">
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
            <div class="block red"></div>
        </div>
        <div class="face back">
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
            <div class="block orange"></div>
        </div>
        <div class="face left">
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
            <div class="block green"></div>
        </div>
        <div class="face right">
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
            <div class="block blue"></div>
        </div>
        <div class="face top">
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
            <div class="block white"></div>
        </div>
        <div class="face bottom">
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
            <div class="block yellow"></div>
        </div>
    </div>
</body>
</html>

Step 2: Styling with CSS

Next, we’ll style our cube using CSS. The key here is to use CSS 3D transforms to position each face of the cube correctly. We’ll also implement a grid layout to create the smaller squares and add borders for separation.

Here’s the CSS code:

body {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #f0f0f0;
    perspective: 800px;
}

.rubiks-cube {
    position: relative;
    width: 100px;
    height: 100px;
    transform-style: preserve-3d;
    transform: rotateX(-30deg) rotateY(30deg);
    animation: rotate 10s infinite linear;
}

.face {
    position: absolute;
    width: 100px;
    height: 100px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    border: 2px solid #333;
}

.block {
    border: 1px solid #333; /* Line between colors */
    box-sizing: border-box; /* Include border in total width/height */
}

.red { background-color: red; }
.orange { background-color: orange; }
.green { background-color: green; }
.blue { background-color: blue; }
.white { background-color: white; }
.yellow { background-color: yellow; }

.front { transform: translateZ(50px); }
.back { transform: rotateY(180deg) translateZ(50px); }
.left { transform: rotateY(-90deg) translateZ(50px); }
.right { transform: rotateY(90deg) translateZ(50px); }
.top { transform: rotateX(90deg) translateZ(50px); }
.bottom { transform: rotateX(-90deg) translateZ(50px); }

@keyframes rotate {
    0% {
        transform: rotateX(-30deg) rotateY(0deg);
    }
    100% {
        transform: rotateX(-30deg) rotateY(360deg);
    }
}

Step 3: Viewing Your Creation

Once you’ve added the HTML and CSS code to your project, open the HTML file in your web browser. You should see a beautifully rendered 3D Rubik’s Cube, complete with colored blocks and lines separating them. The cube will even rotate to provide a dynamic visual effect!

Customization Ideas

Feel free to modify the colors, sizes, and animation speed to create your own unique version of the Rubik’s Cube. You might also experiment with adding interactivity, such as rotating the cube in response to mouse movements or clicks.

Creating a 3D Rubik’s Cube with HTML and CSS is a fantastic way to enhance your front-end skills while having fun. This project showcases the power of CSS for creating engaging visual elements without the need for complex JavaScript or graphics libraries.

Try it out, customize it, and enjoy your very own virtual Rubik’s Cube! Happy coding!

Author

Admin

Follow Me
Other Articles
Previous

Random Password Generator using ReactJS easily

Next

Memory Game using JavaScript

No Comment! Be the first one.

Leave a Reply

Your email address will not be published. Required fields are marked *

FIFA World Cup 2026 Predict and Win by SportsGuff

Recent Posts

  • Unpacking Nepal’s Record Rs 2.12 Trillion Budget and What It Means for You
  • How to Write a Strong Scholarship Application: The Ultimate Step-by-Step Guide
  • How to Prepare for Exams Without Stress: The Ultimate Science-Backed Guide
  • Chiranjibi Adhikari Appointed Acting President of CAN Federation
  • How to Design a Student Marksheet Using HTML and CSS

Tags

adsense ai animate animation animation using HTML and CSS API blog calculator chatgpt Cryptocurrency CSS css animation design Email Facebook featured filemanager file manager free template google htaccess HTML image Instagram interview javascript JQuery jquery ui NADA AutoShow NADA Auto Show 2024 password PHP Progressive Web App PWA QR random react reactjs Rotate travel Twitter vpn youthforum youthsforum youtube

About Us

At Youths Forum, we are passionate about sharing knowledge that empowers students, educators, professionals, and technology enthusiasts.

Our Mission

Our mission is simple: to make technology and education accessible, understandable, and beneficial for everyone. We strive to create content that helps our readers learn new skills and stay updated with industry developments.

RSS RSS

  • Unpacking Nepal’s Record Rs 2.12 Trillion Budget and What It Means for You Admin
  • How to Write a Strong Scholarship Application: The Ultimate Step-by-Step Guide Admin
  • How to Prepare for Exams Without Stress: The Ultimate Science-Backed Guide Admin

Quick Links

  • Stock Market Live
  • Parliament Election 2082
Copyright 2026 — Youths Forum. All rights reserved. Blogsy WordPress Theme