/curriculum/challenges/english/01-responsive-web-design/css-variables-skyline/part-090.md

https://github.com/FreeCodeCamp/FreeCodeCamp · Markdown · 662 lines · 576 code · 86 blank · 0 comment · 0 complexity · d90164cb62f221fc01dedb7eaa0e2cbb MD5 · raw file

  1. ---
  2. id: 5d822fd413a79914d39e9923
  3. title: Part 90
  4. challengeType: 0
  5. isHidden: true
  6. ---
  7. ## Description
  8. <section id='description'>
  9. Remove the `background-color` property and value from `fb3` and add them to `fb3a` and `fb3b`.
  10. </section>
  11. ## Instructions
  12. <section id='instructions'>
  13. </section>
  14. ## Tests
  15. <section id='tests'>
  16. ```yml
  17. tests:
  18. - text: test-text
  19. testString: const fb3 = code.match(/\.fb3\s*{[\s\S]+?[^}]}/g)[0]; const fb3a = code.match(/\.fb3a\s*{[\s\S]+?[^}]}/g)[0];const fb3b = code.match(/\.fb3b\s*{[\s\S]+?[^}]}/g)[0]; assert(!/background-color/g.test(fb3) && /background-color\s*:\s*var\(\s*--building-color1\s*\)\s*(;|})/g.test(fb3a) && /background-color\s*:\s*var\(\s*--building-color1\s*\)\s*(;|})/g.test(fb3b));
  20. ```
  21. </section>
  22. ## Challenge Seed
  23. <section id='challengeSeed'>
  24. <div id='html-seed'>
  25. ```html
  26. <!DOCTYPE html>
  27. <html>
  28. <head>
  29. <title>freeCodeCamp Skyline Project</title>
  30. <style>
  31. :root {
  32. --building-color1: #aa80ff;
  33. --building-color2: #66cc99;
  34. --building-color3: #cc6699;
  35. --building-color4: #538cc6;
  36. --window-color1: black;
  37. --window-color2: #8cd9b3;
  38. --window-color3: #d98cb3;
  39. --window-color4: #8cb3d9;
  40. }
  41. * {
  42. border: 1px solid black;
  43. box-sizing: border-box;
  44. }
  45. body {
  46. height: 100vh;
  47. margin: 0;
  48. overflow: hidden;
  49. }
  50. .background-buildings, .foreground-buildings {
  51. width: 100%;
  52. height: 100%;
  53. display: flex;
  54. align-items: flex-end;
  55. justify-content: space-evenly;
  56. position: absolute;
  57. top: 0;
  58. }
  59. .building-wrap {
  60. display: flex;
  61. flex-direction: column;
  62. align-items: center;
  63. }
  64. .window-wrap {
  65. display: flex;
  66. align-items: center;
  67. justify-content: space-evenly;
  68. }
  69. /* BACKGROUND BUILDINGS - "bb" stands for "background building" */
  70. .bb1 {
  71. width: 10%;
  72. height: 70%;
  73. }
  74. .bb1a {
  75. width: 70%;
  76. }
  77. .bb1b {
  78. width: 80%;
  79. }
  80. .bb1c {
  81. width: 90%;
  82. }
  83. .bb1d {
  84. width: 100%;
  85. height: 70%;
  86. background: linear-gradient(
  87. var(--building-color1) 50%,
  88. var(--window-color1)
  89. );
  90. }
  91. .bb1-window {
  92. height: 10%;
  93. background: linear-gradient(
  94. var(--building-color1),
  95. var(--window-color1)
  96. );
  97. }
  98. .bb2 {
  99. width: 10%;
  100. height: 50%;
  101. }
  102. .bb2a {
  103. border-bottom: 5vh solid var(--building-color2);
  104. border-left: 5vw solid transparent;
  105. border-right: 5vw solid transparent;
  106. }
  107. .bb2b {
  108. width: 100%;
  109. height: 100%;
  110. background: repeating-linear-gradient(
  111. var(--building-color2),
  112. var(--building-color2) 6%,
  113. var(--window-color2) 6%,
  114. var(--window-color2) 9%
  115. );
  116. }
  117. .bb3 {
  118. width: 10%;
  119. height: 55%;
  120. background: repeating-linear-gradient(
  121. 90deg,
  122. var(--building-color3),
  123. var(--building-color3),
  124. var(--window-color3) 15%
  125. );
  126. }
  127. .bb4 {
  128. width: 11%;
  129. height: 58%;
  130. }
  131. .bb4a {
  132. width: 3%;
  133. height: 10%;
  134. background-color: var(--building-color4);
  135. }
  136. .bb4b {
  137. width: 80%;
  138. height: 5%;
  139. background-color: var(--building-color4);
  140. }
  141. .bb4c {
  142. width: 100%;
  143. height: 85%;
  144. background-color: var(--building-color4);
  145. }
  146. .bb4-window {
  147. width: 18%;
  148. height: 90%;
  149. background-color: var(--window-color4);
  150. }
  151. /* FOREGROUND BUILDINGS - "fb" stands for "foreground building" */
  152. .fb1 {
  153. width: 10%;
  154. height: 60%;
  155. }
  156. .fb1a {
  157. border-bottom: 7vh solid var(--building-color4);
  158. border-left: 2vw solid transparent;
  159. border-right: 2vw solid transparent;
  160. }
  161. .fb1b {
  162. width: 60%;
  163. height: 10%;
  164. background-color: var(--building-color4);
  165. }
  166. .fb1c {
  167. width: 100%;
  168. height: 80%;
  169. background: repeating-linear-gradient(
  170. 90deg,
  171. var(--building-color4),
  172. var(--building-color4) 10%,
  173. transparent 10%,
  174. transparent 15%
  175. ),
  176. repeating-linear-gradient(
  177. var(--building-color4),
  178. var(--building-color4) 10%,
  179. var(--window-color4) 10%,
  180. var(--window-color4) 90%
  181. );
  182. }
  183. .fb2 {
  184. width: 10%;
  185. height: 40%;
  186. }
  187. .fb2a {
  188. width: 100%;
  189. border-bottom: 10vh solid var(--building-color3);
  190. border-left: 1vw solid transparent;
  191. border-right: 1vw solid transparent;
  192. }
  193. .fb2b {
  194. width: 100%;
  195. height: 75%;
  196. background-color: var(--building-color3);
  197. }
  198. .fb2-window {
  199. width: 22%;
  200. height: 100%;
  201. background-color: var(--window-color3);
  202. }
  203. .fb3 {
  204. width: 10%;
  205. height: 35%;
  206. background-color: var(--building-color1);
  207. }
  208. .fb3a {
  209. width: 80%;
  210. height: 15%;
  211. }
  212. .fb3b {
  213. width: 100%;
  214. height: 35%;
  215. }
  216. .fb4 {
  217. width: 8%;
  218. height: 45%;
  219. background-color: var(--building-color1);
  220. position: relative;
  221. left: 10%;
  222. }
  223. .fb5 {
  224. width: 10%;
  225. height: 33%;
  226. background-color: var(--building-color2);
  227. position: relative;
  228. right: 10%;
  229. }
  230. .fb6 {
  231. width: 9%;
  232. height: 38%;
  233. background-color: var(--building-color3);
  234. }
  235. </style>
  236. </head>
  237. <body>
  238. <div class="background-buildings">
  239. <div></div>
  240. <div></div>
  241. <div class="bb1 building-wrap">
  242. <div class="bb1a bb1-window"></div>
  243. <div class="bb1b bb1-window"></div>
  244. <div class="bb1c bb1-window"></div>
  245. <div class="bb1d"></div>
  246. </div>
  247. <div class="bb2">
  248. <div class="bb2a"></div>
  249. <div class="bb2b"></div>
  250. </div>
  251. <div class="bb3"></div>
  252. <div></div>
  253. <div class="bb4 building-wrap">
  254. <div class="bb4a"></div>
  255. <div class="bb4b"></div>
  256. <div class="bb4c window-wrap">
  257. <div class="bb4-window"></div>
  258. <div class="bb4-window"></div>
  259. <div class="bb4-window"></div>
  260. <div class="bb4-window"></div>
  261. </div>
  262. </div>
  263. <div></div>
  264. <div></div>
  265. </div>
  266. <div class="foreground-buildings">
  267. <div></div>
  268. <div></div>
  269. <div class="fb1 building-wrap">
  270. <div class="fb1a"></div>
  271. <div class="fb1b"></div>
  272. <div class="fb1c"></div>
  273. </div>
  274. <div class="fb2">
  275. <div class="fb2a"></div>
  276. <div class="fb2b window-wrap">
  277. <div class="fb2-window"></div>
  278. <div class="fb2-window"></div>
  279. <div class="fb2-window"></div>
  280. </div>
  281. </div>
  282. <div></div>
  283. <div class="fb3">
  284. <div class="fb3a"></div>
  285. <div class="fb3b"></div>
  286. <div class="fb3a"></div>
  287. <div class="fb3b"></div>
  288. </div>
  289. <div class="fb4"></div>
  290. <div class="fb5"></div>
  291. <div class="fb6"></div>
  292. <div></div>
  293. <div></div>
  294. </div>
  295. </body>
  296. </html>
  297. ```
  298. </div>
  299. </section>
  300. ## Solution
  301. <section id='solution'>
  302. ```html
  303. <!DOCTYPE html>
  304. <html>
  305. <head>
  306. <title>freeCodeCamp Skyline Project</title>
  307. <style>
  308. :root {
  309. --building-color1: #aa80ff;
  310. --building-color2: #66cc99;
  311. --building-color3: #cc6699;
  312. --building-color4: #538cc6;
  313. --window-color1: black;
  314. --window-color2: #8cd9b3;
  315. --window-color3: #d98cb3;
  316. --window-color4: #8cb3d9;
  317. }
  318. * {
  319. border: 1px solid black;
  320. box-sizing: border-box;
  321. }
  322. body {
  323. height: 100vh;
  324. margin: 0;
  325. overflow: hidden;
  326. }
  327. .background-buildings, .foreground-buildings {
  328. width: 100%;
  329. height: 100%;
  330. display: flex;
  331. align-items: flex-end;
  332. justify-content: space-evenly;
  333. position: absolute;
  334. top: 0;
  335. }
  336. .building-wrap {
  337. display: flex;
  338. flex-direction: column;
  339. align-items: center;
  340. }
  341. .window-wrap {
  342. display: flex;
  343. align-items: center;
  344. justify-content: space-evenly;
  345. }
  346. /* BACKGROUND BUILDINGS - "bb" stands for "background building" */
  347. .bb1 {
  348. width: 10%;
  349. height: 70%;
  350. }
  351. .bb1a {
  352. width: 70%;
  353. }
  354. .bb1b {
  355. width: 80%;
  356. }
  357. .bb1c {
  358. width: 90%;
  359. }
  360. .bb1d {
  361. width: 100%;
  362. height: 70%;
  363. background: linear-gradient(
  364. var(--building-color1) 50%,
  365. var(--window-color1)
  366. );
  367. }
  368. .bb1-window {
  369. height: 10%;
  370. background: linear-gradient(
  371. var(--building-color1),
  372. var(--window-color1)
  373. );
  374. }
  375. .bb2 {
  376. width: 10%;
  377. height: 50%;
  378. }
  379. .bb2a {
  380. border-bottom: 5vh solid var(--building-color2);
  381. border-left: 5vw solid transparent;
  382. border-right: 5vw solid transparent;
  383. }
  384. .bb2b {
  385. width: 100%;
  386. height: 100%;
  387. background: repeating-linear-gradient(
  388. var(--building-color2),
  389. var(--building-color2) 6%,
  390. var(--window-color2) 6%,
  391. var(--window-color2) 9%
  392. );
  393. }
  394. .bb3 {
  395. width: 10%;
  396. height: 55%;
  397. background: repeating-linear-gradient(
  398. 90deg,
  399. var(--building-color3),
  400. var(--building-color3),
  401. var(--window-color3) 15%
  402. );
  403. }
  404. .bb4 {
  405. width: 11%;
  406. height: 58%;
  407. }
  408. .bb4a {
  409. width: 3%;
  410. height: 10%;
  411. background-color: var(--building-color4);
  412. }
  413. .bb4b {
  414. width: 80%;
  415. height: 5%;
  416. background-color: var(--building-color4);
  417. }
  418. .bb4c {
  419. width: 100%;
  420. height: 85%;
  421. background-color: var(--building-color4);
  422. }
  423. .bb4-window {
  424. width: 18%;
  425. height: 90%;
  426. background-color: var(--window-color4);
  427. }
  428. /* FOREGROUND BUILDINGS - "fb" stands for "foreground building" */
  429. .fb1 {
  430. width: 10%;
  431. height: 60%;
  432. }
  433. .fb1a {
  434. border-bottom: 7vh solid var(--building-color4);
  435. border-left: 2vw solid transparent;
  436. border-right: 2vw solid transparent;
  437. }
  438. .fb1b {
  439. width: 60%;
  440. height: 10%;
  441. background-color: var(--building-color4);
  442. }
  443. .fb1c {
  444. width: 100%;
  445. height: 80%;
  446. background: repeating-linear-gradient(
  447. 90deg,
  448. var(--building-color4),
  449. var(--building-color4) 10%,
  450. transparent 10%,
  451. transparent 15%
  452. ),
  453. repeating-linear-gradient(
  454. var(--building-color4),
  455. var(--building-color4) 10%,
  456. var(--window-color4) 10%,
  457. var(--window-color4) 90%
  458. );
  459. }
  460. .fb2 {
  461. width: 10%;
  462. height: 40%;
  463. }
  464. .fb2a {
  465. width: 100%;
  466. border-bottom: 10vh solid var(--building-color3);
  467. border-left: 1vw solid transparent;
  468. border-right: 1vw solid transparent;
  469. }
  470. .fb2b {
  471. width: 100%;
  472. height: 75%;
  473. background-color: var(--building-color3);
  474. }
  475. .fb2-window {
  476. width: 22%;
  477. height: 100%;
  478. background-color: var(--window-color3);
  479. }
  480. .fb3 {
  481. width: 10%;
  482. height: 35%;
  483. }
  484. .fb3a {
  485. width: 80%;
  486. height: 15%;
  487. background-color: var(--building-color1);
  488. }
  489. .fb3b {
  490. width: 100%;
  491. height: 35%;
  492. background-color: var(--building-color1);
  493. }
  494. .fb4 {
  495. width: 8%;
  496. height: 45%;
  497. background-color: var(--building-color1);
  498. position: relative;
  499. left: 10%;
  500. }
  501. .fb5 {
  502. width: 10%;
  503. height: 33%;
  504. background-color: var(--building-color2);
  505. position: relative;
  506. right: 10%;
  507. }
  508. .fb6 {
  509. width: 9%;
  510. height: 38%;
  511. background-color: var(--building-color3);
  512. }
  513. </style>
  514. </head>
  515. <body>
  516. <div class="background-buildings">
  517. <div></div>
  518. <div></div>
  519. <div class="bb1 building-wrap">
  520. <div class="bb1a bb1-window"></div>
  521. <div class="bb1b bb1-window"></div>
  522. <div class="bb1c bb1-window"></div>
  523. <div class="bb1d"></div>
  524. </div>
  525. <div class="bb2">
  526. <div class="bb2a"></div>
  527. <div class="bb2b"></div>
  528. </div>
  529. <div class="bb3"></div>
  530. <div></div>
  531. <div class="bb4 building-wrap">
  532. <div class="bb4a"></div>
  533. <div class="bb4b"></div>
  534. <div class="bb4c window-wrap">
  535. <div class="bb4-window"></div>
  536. <div class="bb4-window"></div>
  537. <div class="bb4-window"></div>
  538. <div class="bb4-window"></div>
  539. </div>
  540. </div>
  541. <div></div>
  542. <div></div>
  543. </div>
  544. <div class="foreground-buildings">
  545. <div></div>
  546. <div></div>
  547. <div class="fb1 building-wrap">
  548. <div class="fb1a"></div>
  549. <div class="fb1b"></div>
  550. <div class="fb1c"></div>
  551. </div>
  552. <div class="fb2">
  553. <div class="fb2a"></div>
  554. <div class="fb2b window-wrap">
  555. <div class="fb2-window"></div>
  556. <div class="fb2-window"></div>
  557. <div class="fb2-window"></div>
  558. </div>
  559. </div>
  560. <div></div>
  561. <div class="fb3">
  562. <div class="fb3a"></div>
  563. <div class="fb3b"></div>
  564. <div class="fb3a"></div>
  565. <div class="fb3b"></div>
  566. </div>
  567. <div class="fb4"></div>
  568. <div class="fb5"></div>
  569. <div class="fb6"></div>
  570. <div></div>
  571. <div></div>
  572. </div>
  573. </body>
  574. </html>
  575. ```
  576. </section>