Learn Basic Debugging by Building a Random Background Color Changer - Step 8

Tell us what’s happening:

I am genuinely not understanding why you would not use the changeBackgroundColor function when declaring what happens when btn.onclick. Help me discover what I am missing pls! Thank you :slight_smile:

Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Build a random background color changer</title>
    <link rel="stylesheet" href="./styles.css" />
    <h1>Random Background Color changer</h1>

      <section class="bg-information-container">
        <p>Hex Code: <span id="bg-hex-code">#110815</span></p>

      <button class="btn" id="btn">Change Background Color</button>
    <script src="./script.js"></script>
/* file: styles.css */
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;

:root {
  --yellow: #f1be32;
  --golden-yellow: #feac32;
  --dark-purple: #110815;
  --light-grey: #efefef;

body {
  background-color: var(--dark-purple);
  color: var(--light-grey);
  text-align: center;

.bg-information-container {
  margin: 15px 0 25px;
  font-size: 1.2rem;

.btn {
  cursor: pointer;
  padding: 10px;
  margin: 10px;
  color: var(--dark-purple);
  background-color: var(--golden-yellow);
  background-image: linear-gradient(#fecc4c, #ffac33);
  border-color: var(--golden-yellow);
  border-width: 3px;

.btn:hover {
  background-image: linear-gradient(#ffcc4c, #f89808);

/* file: script.js */
const darkColorsArr = [

function getRandomIndex() {
  const randomIndex = Math.floor(darkColorsArr.length * Math.random());
  return randomIndex;

const body = document.querySelector("body");
const bgHexCodeSpanElement = document.querySelector("#bg-hex-code");

function changeBackgroundColor() {
  const color = darkColorsArr[getRandomIndex()];

  bgHexCodeSpanElement.innerText = color;
  body.style.backgroundColor = color;
const btn = document.querySelector("#btn");

// User Editable Region

btn.onclick = changeBackgroundColor();

// User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36

Challenge Information:

Learn Basic Debugging by Building a Random Background Color Changer - Step 8

you do not want to pass to onclick the output of the function, but the function itself, so don’t call the function

Thank you! I do appreciate these troubleshooting projects, but boy howdy, I do not feel confident enough to tackle them yet haha