Create a Colorful Mosaic Grid Using HTML, CSS, and JavaScript

0
Colorful Mosaic Grid Project

Create a Colorful Mosaic Grid Using HTML, CSS, and JavaScript

In this blog post, we'll build a fun and colorful mosaic grid using HTML, CSS, and JavaScript. This project is a great way to practice working with grids, styles, and interactive elements.

Step 1: Setting Up the HTML Structure

First, let's create the basic HTML structure for our mosaic grid and buttons. Copy and paste the following code into your HTML file:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Colorful Mosaic Grid</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <h1>Colorful Mosaic Grid</h1>
  <div id="grid"></div>
  <button id="randomize">Randomize Colors</button>
  <button id="reset">Reset Grid</button>

  <script src="script.js"></script>
</body>
</html>
    

Step 2: Styling the Grid with CSS

Next, let's add some basic styles to our grid and buttons using CSS. Here’s the code that you need to add to your styles.css file:

body {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f0f0f0;
  font-family: Arial, sans-serif;
  margin: 0;
  height: 100vh;
  justify-content: center;
}

h1 {
  color: #333;
  margin-bottom: 20px;
}

#grid {
  display: grid;
  grid-template-columns: repeat(10, 50px);
  grid-template-rows: repeat(10, 50px);
  gap: 2px;
  margin-bottom: 20px;
}

.tile {
  width: 50px;
  height: 50px;
  background-color: #ccc;
}

button {
  padding: 10px 20px;
  margin: 5px;
  background-color: #007BFF;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  outline: none;
}

button:hover {
  background-color: #0056b3;
}
    

Step 3: Adding Interactivity with JavaScript

Now, we’ll add JavaScript to make our grid interactive. This code will handle the randomization and reset functionality. Add the following code to your script.js file:

document.addEventListener('DOMContentLoaded', () => {
  const grid = document.getElementById('grid');
  const randomizeButton = document.getElementById('randomize');
  const resetButton = document.getElementById('reset');

  // Create grid of tiles
  for (let i = 0; i < 100; i++) {
    const tile = document.createElement('div');
    tile.classList.add('tile');
    grid.appendChild(tile);
  }

  // Function to generate a random color
  function getRandomColor() {
    const letters = '0123456789ABCDEF';
    let color = '#';
    for (let i = 0; i < 6; i++) {
      color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
  }

  // Randomize colors on all tiles
  randomizeButton.addEventListener('click', () => {
    const tiles = document.querySelectorAll('.tile');
    tiles.forEach(tile => {
      tile.style.backgroundColor = getRandomColor();
    });
  });

  // Reset colors to default
  resetButton.addEventListener('click', () => {
    const tiles = document.querySelectorAll('.tile');
    tiles.forEach(tile => {
      tile.style.backgroundColor = '#ccc';
    });
  });
});
    

Conclusion

Congratulations! You've successfully created a colorful mosaic grid with HTML, CSS, and JavaScript. This project is a great way to practice grid layouts and JavaScript interactivity.

Feel free to expand on this project by adding new features like custom color pickers or changing the grid size dynamically. Happy coding!

Watch Video

Post a Comment

0Comments
Post a Comment (0)