CSS 2nd var fallback

Hi, this is my code. How to make the 2nd fallback also an var?

> Blockquote<style>
  .penguin {
    --penguin-skin: black;
    --penguin-belly: gray;
    --penguin-beak: yellow;
    position: relative;
    margin: auto;
    display: block;
    margin-top: 5%;
    width: 300px;
    height: 300px;
  }

  .penguin-top {
    top: 10%;
    left: 25%;

    /* Change code below this line */
    background: var(--pengiun-skin);
    /* Change code above this line */

    width: 50%;
    height: 45%;
    border-radius: 70% 70% 60% 60%;
  }

  .penguin-bottom {
    top: 40%;
    left: 23.5%;

    /* Change code below this line */
    background: var(--pengiun-skin);
    /* Change code above this line */

    width: 53%;
    height: 45%;
    border-radius: 70% 70% 100% 100%;
  }

  .right-hand {
    top: 0%;
    left: -5%;
    background: var(--penguin-skin, black);
    width: 30%;
    height: 60%;
    border-radius: 30% 30% 120% 30%;
    transform: rotate(45deg);
    z-index: -1;
  }

  .left-hand {
    top: 0%;
    left: 75%;
    background: var(--penguin-skin, black);
    width: 30%;
    height: 60%;
    border-radius: 30% 30% 30% 120%;
    transform: rotate(-45deg);
    z-index: -1;
  }

  .right-cheek {
    top: 15%;
    left: 35%;
    background: var(--penguin-belly, white);
    width: 60%;
    height: 70%;
    border-radius: 70% 70% 60% 60%;
  }

  .left-cheek {
    top: 15%;
    left: 5%;
    background: var(--penguin-belly, white);
    width: 60%;
    height: 70%;
    border-radius: 70% 70% 60% 60%;
  }

  .belly {
    top: 60%;
    left: 2.5%;
    background: var(--penguin-belly, white);
    width: 95%;
    height: 100%;
    border-radius: 120% 120% 100% 100%;
  }

  .right-feet {
    top: 85%;
    left: 60%;
    background: var(--penguin-beak, orange);
    width: 15%;
    height: 30%;
    border-radius: 50% 50% 50% 50%;
    transform: rotate(-80deg);
    z-index: -2222;
  }

  .left-feet {
    top: 85%;
    left: 25%;
    background: var(--penguin-beak, orange);
    width: 15%;
    height: 30%;
    border-radius: 50% 50% 50% 50%;
    transform: rotate(80deg);
    z-index: -2222;
  }

  .right-eye {
    top: 45%;
    left: 60%;
    background: black;
    width: 15%;
    height: 17%;
    border-radius: 50%;
  }

  .left-eye {
    top: 45%;
    left: 25%;
    background: black;
    width: 15%;
    height: 17%;
    border-radius: 50%;
  }

  .sparkle {
    top: 25%;
    left: 15%;
    background: white;
    width: 35%;
    height: 35%;
    border-radius: 50%;
  }

  .blush-right {
    top: 65%;
    left: 15%;
    background: pink;
    width: 15%;
    height: 10%;
    border-radius: 50%;
  }

  .blush-left {
    top: 65%;
    left: 70%;
    background: pink;
    width: 15%;
    height: 10%;
    border-radius: 50%;
  }

  .beak-top {
    top: 60%;
    left: 40%;
    background: var(--penguin-beak, orange);
    width: 20%;
    height: 10%;
    border-radius: 50%;
  }

  .beak-bottom {
    top: 65%;
    left: 42%;
    background: var(--penguin-beak, orange);
    width: 16%;
    height: 10%;
    border-radius: 50%;
  }

  body {
    background: #c6faf1;
  }

  .penguin * {
    position: absolute;
  }
</style>
<div class="penguin">
  <div class="penguin-bottom">
    <div class="right-hand"></div>
    <div class="left-hand"></div>
    <div class="right-feet"></div>
    <div class="left-feet"></div>
  </div>
  <div class="penguin-top">
    <div class="right-cheek"></div>
    <div class="left-cheek"></div>
    <div class="belly"></div>
    <div class="right-eye">
      <div class="sparkle"></div>
    </div>
    <div class="left-eye">
      <div class="sparkle"></div>
    </div>
    <div class="blush-right"></div>
    <div class="blush-left"></div>
    <div class="beak-top"></div>
    <div class="beak-bottom"></div>
  </div>
</div>

Hi @Yama, the code you attatched is missing the parramiter of => black at both places it says /* Change code below this line */

Here’s how you do it:

background: var(--penguin-skin, black);

I tried putting 2 var in it but it doesnt work like this

background: var(–pengiun-skin, --penguin-skin);

But this one is not possible. Does that mean that it’s no use to use another var for an fallback?

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

1 Like

Is your question relating to one of the lessons? If so, which lesson so we don’t have to guess.

Hi @Yama, you simply need to add what it asks you to, where it asks you to. I put it pointing where in the code. You might have to scroll over to see it.

/* Change code below this line */     // LOOK BELOW (what is missing?)
background: var(--pengiun-skin, ); <= //background: var(--penguin-skin, black);                                                             // LOOK ABOVE (what is missing? )
/* Change code above this line */

width: 50%;
height: 45%;
border-radius: 70% 70% 60% 60%;
}

.penguin-bottom {
top: 40%;
left: 23.5%;

/* Change code below this line */         // LOOK BELOW (what is missing?)
background: var(--pengiun-skin, ); <= //background: var(--penguin-skin, black);                                                                  // LOOK ABOVE (what is missing? )

width: 53%;
height: 45%;
border-radius: 70% 70% 100% 100%;
}

Wow how did you do that with the video explanation?

at lesson “Attach a Fallback value to a CSS Variable” we learn to make a fallback even though our first var is written wrong, Like this:

background: var(--pengiun-skin, black);

what i wanted to do is insert 2 variables in my background color, while the first one is wrong so i can override it. but i think there needs to be another methode. I use this one.

background: var(---pengiun-skin, ---penguin-skin);

Is this considered good practice? Thank you for reading and helping out!

You can use another var as the fallback. But it also depends on why/how the primary var fails.

This works (color will be blue):

:root {
  --color: initial;
  --color-fallback: blue;
}

p {
  color: var(--color, var(--color-fallback));
}

This doesn’t work:

:root {
  --color: 20px;
  --color-fallback: blue;
}

p {
  color: var(--color, var(--color-fallback));
}
1 Like