How to specify two percentages in a linear gradient?

Tell us what’s happening:
I don’t know how to set linear gradients between percentage types. It was not explained before.

  **Your code so far**
/* file: index.html */
<!DOCTYPE html>
<html>    
<head>
  <title>City Skyline</title>
  <link href="styles.css" rel="stylesheet" />   
</head>

<body>
  <div class="background-buildings">
    <div></div>
    <div></div>
    <div class="bb1">
      <div class="bb1a bb1-window"></div>
      <div class="bb1b bb1-window"></div>
      <div class="bb1c bb1-window"></div>
      <div class="bb1d"></div>
    </div>
    <div class="bb2">
      <div class="bb2a"></div>
      <div class="bb2b"></div>
    </div>
    <div class="bb3"></div>
    <div></div>
    <div class="bb4"></div>
    <div></div>
    <div></div>
  </div>

  <div class="foreground-buildings">
    <div></div>
    <div></div>
    <div class="fb1"></div>
    <div class="fb2"></div>
    <div></div>
    <div class="fb3"></div>
    <div class="fb4"></div>
    <div class="fb5"></div>
    <div class="fb6"></div>
    <div></div>
    <div></div>
  </div>
</body>
</html>
/* file: styles.css */
:root {
--building-color1: #aa80ff;
--building-color2: #66cc99;
--building-color3: #cc6699;
--building-color4: #538cc6;
--window-color1: black;
--window-color2: #8cd9b3;
}

* {
border: 1px solid black;
box-sizing: border-box;
}

body {
height: 100vh;
margin: 0;
overflow: hidden;
}

.background-buildings, .foreground-buildings {
width: 100%;
height: 100%;
display: flex;
align-items: flex-end;
justify-content: space-evenly;
position: absolute;
top: 0;
}

/* BACKGROUND BUILDINGS - "bb" stands for "background building" */
.bb1 {
width: 10%;
height: 70%;
display: flex;
flex-direction: column;
align-items: center;
}

.bb1a {
width: 70%;
}

.bb1b {
width: 80%;
}

.bb1c {
width: 90%;
}

.bb1d {
width: 100%;
height: 70%;
background: linear-gradient(
    var(--building-color1) 50%,
    var(--window-color1)
  );
}

.bb1-window {
height: 10%;
background: linear-gradient(
    var(--building-color1),
    var(--window-color1)
  );
}

.bb2 {
width: 10%;
height: 50%;
background-color: var(--building-color2);
}
.bb2b {
width: 100%;
height: 100%;
background: linear-gradient(
  var(--building-color2) 0%,
  var(--window-color2) 6%
);

}
.bb3 {
width: 10%;
height: 55%;
background-color: var(--building-color3);
}

.bb4 {
width: 11%;
height: 58%;
background-color: var(--building-color4);
}

/* FOREGROUND BUILDINGS - "fb" stands for "foreground building" */
.fb1 {
width: 10%;
height: 60%;
background-color: var(--building-color4);
}

.fb2 {
width: 10%;
height: 40%;
background-color: var(--building-color3);
}

.fb3 {
width: 10%;
height: 35%;
background-color: var(--building-color1);
}

.fb4 {
width: 8%;
height: 45%;
background-color: var(--building-color1);
position: relative;
left: 10%;
}

.fb5 {
width: 10%;
height: 33%;
background-color: var(--building-color2);
position: relative;
right: 10%;
}

.fb6 {
width: 9%;
height: 38%;
background-color: var(--building-color3);
}
  
  **Your browser information:**

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Firefox/102.0

Challenge: Step 51

Link to the challenge:

Hi!
So you’re close, just add the the next color and percentage range as instructed. As for an explanation, the color gradients work with a color instruction followed by the value at which it starts or stops. The first var and color should be building color and 0% (where it starts) and the next var should be building color again but 6% (where it stops). This is the theory, that to make abrupt color changes, you must indicate the start and stop points of the color. The same must be done for the window color, indicate var(–window-color2) start% and , var(–window-color2) stop%.

This is in contrast to a gradual change with only specifies end points, and the transition is gradual (You currently have a gradual transition from building color 2 to window color 2 by the looks of it? )

1 Like