* feat(tools): add seed/solution restore script * chore(curriculum): remove empty sections' markers * chore(curriculum): add seed + solution to Chinese * chore: remove old formatter * fix: update getChallenges parse translated challenges separately, without reference to the source * chore(curriculum): add dashedName to English * chore(curriculum): add dashedName to Chinese * refactor: remove unused challenge property 'name' * fix: relax dashedName requirement * fix: stray tag Remove stray `pre` tag from challenge file. Signed-off-by: nhcarrigan <nhcarrigan@gmail.com> Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
		
			
				
	
	
		
			426 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			426 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5d822fd413a79914d39e9904
 | |
| title: Part 60
 | |
| challengeType: 0
 | |
| dashedName: part-60
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| So far, all the gradients you created have gone from top to bottom, that's the default direction. You can specify another direction by adding it before your colors like this:
 | |
| 
 | |
| ```css
 | |
| gradient-type(
 | |
|   direction
 | |
|   color1,
 | |
|   color2
 | |
| );
 | |
| ```
 | |
| 
 | |
| Fill in `bb3` with a `repeating-linear-gradient`. Use `90deg` for the direction, your `building-color3` for the first two colors, and `window-color3` at `15%` for the third. When you don't specify a distance for a color, it will use the values that makes sense. In this case, the first two colors will default to `0%` and `7.5%` because it starts at `0%`, and `7.5%` is half of the `15%`.
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| test-text
 | |
| 
 | |
| ```js
 | |
| const bb3 = code.match(/\.bb3\s*{[\s\S]+?[^}]}/g)[0];
 | |
| assert(
 | |
|   /background\s*:\s*repeating-linear-gradient\(\s*90deg\s*,\s*var\(\s*--building-color3\s*\)\s*(0%\s*,|,)\s*var\(\s*--building-color3\s*\)\s*(7\.5%\s*,|,)\s*var\(\s*--window-color3\s*\)\s*15%\s*\)\s*(;|})/g.test(
 | |
|     bb3
 | |
|   )
 | |
| );
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```html
 | |
| <!DOCTYPE html>
 | |
| <html>    
 | |
|   <head>
 | |
|     <title>freeCodeCamp Skyline Project</title>
 | |
|     <style>
 | |
|       :root {
 | |
|         --building-color1: #aa80ff;
 | |
|         --building-color2: #66cc99;
 | |
|         --building-color3: #cc6699;
 | |
|         --building-color4: #538cc6;
 | |
|         --window-color1: black;
 | |
|         --window-color2: #8cd9b3;
 | |
|         --window-color3: #d98cb3;
 | |
|       }
 | |
| 
 | |
|       * {
 | |
|         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%;
 | |
|       }
 | |
| 
 | |
|       .bb2a {
 | |
|         border-bottom: 5vh solid var(--building-color2);
 | |
|         border-left: 5vw solid transparent;
 | |
|         border-right: 5vw solid transparent;
 | |
|       }
 | |
| 
 | |
|       .bb2b {
 | |
|         width: 100%;
 | |
|         height: 100%;
 | |
|         background: repeating-linear-gradient(
 | |
|             var(--building-color2),
 | |
|             var(--building-color2) 6%,
 | |
|             var(--window-color2) 6%,
 | |
|             var(--window-color2) 9%
 | |
|           );
 | |
|       }
 | |
|       
 | |
|       .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);
 | |
|       }
 | |
|     </style>
 | |
|   </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>
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```html
 | |
| <!DOCTYPE html>
 | |
| <html>    
 | |
|   <head>
 | |
|     <title>freeCodeCamp Skyline Project</title>
 | |
|     <style>
 | |
|       :root {
 | |
|         --building-color1: #aa80ff;
 | |
|         --building-color2: #66cc99;
 | |
|         --building-color3: #cc6699;
 | |
|         --building-color4: #538cc6;
 | |
|         --window-color1: black;
 | |
|         --window-color2: #8cd9b3;
 | |
|         --window-color3: #d98cb3;
 | |
|       }
 | |
| 
 | |
|       * {
 | |
|         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%;
 | |
|       }
 | |
| 
 | |
|       .bb2a {
 | |
|         border-bottom: 5vh solid var(--building-color2);
 | |
|         border-left: 5vw solid transparent;
 | |
|         border-right: 5vw solid transparent;
 | |
|       }
 | |
| 
 | |
|       .bb2b {
 | |
|         width: 100%;
 | |
|         height: 100%;
 | |
|         background: repeating-linear-gradient(
 | |
|             var(--building-color2),
 | |
|             var(--building-color2) 6%,
 | |
|             var(--window-color2) 6%,
 | |
|             var(--window-color2) 9%
 | |
|           );
 | |
|       }
 | |
|       
 | |
|       .bb3 {
 | |
|         width: 10%;
 | |
|         height: 55%;
 | |
|         background-color: var(--building-color3);
 | |
|         background: repeating-linear-gradient(
 | |
|             90deg,
 | |
|             var(--building-color3),
 | |
|             var(--building-color3),
 | |
|             var(--window-color3) 15%
 | |
|           );
 | |
|       }
 | |
| 
 | |
|       .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);
 | |
|       }
 | |
|     </style>
 | |
|   </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>
 | |
| ```
 |