From eab495ffbdddf6492c2ee85f53915cd062632691 Mon Sep 17 00:00:00 2001 From: freeCodeCamp's Camper Bot Date: Mon, 8 Jul 2024 23:49:25 -0500 Subject: [PATCH] chore(i18n,learn): processed translations (#55442) --- .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ ...-meaning-by-using-descriptive-link-text.md | 2 +- ...adjust-the-hover-state-of-an-anchor-tag.md | 8 +- .../decrease-the-opacity-of-an-element.md | 2 +- ...st-an-anchor-element-within-a-paragraph.md | 6 +- .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../61408f155e798909b6908712.md | 2 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 4 +- .../5ddbd81294d8ddc1510a8e56.md | 4 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../64388945b59341057e955fbb.md | 12 +- .../643c0ab6779047014ca69b4f.md | 12 +- .../643c14c8027369027334e802.md | 8 +- .../643c337176a83407d0cd915c.md | 10 +- .../643c359312d030093352fe41.md | 12 +- .../643c565936a10109b3f59326.md | 8 +- .../643c56790fac5409eb5ec6f9.md | 4 +- .../643c8d9a73965c0a26d7f634.md | 6 +- .../643c90830bbeb40ab15148a6.md | 14 +-- .../643c95001ff61f0b3c39ce71.md | 4 +- .../643e9ee64efc77016fa3397c.md | 4 +- .../6444062a33ab4c03d0c2e9f5.md | 8 +- .../64440a50d076c204051f2cc0.md | 24 ++-- .../644fb1d7f0257702a0c935cf.md | 10 +- .../645763874fd6d901c273db29.md | 8 +- .../645f06144bc0dc0143a5a3a2.md | 10 +- .../645f7231271ab1012bc659b8.md | 6 +- .../645f764c37de33015ded1273.md | 14 +-- .../645f7879ebbdb201892e55e1.md | 14 +-- .../645f8615fa144d01c476b22c.md | 18 +-- .../646474a88d0d4a016f895ba8.md | 10 +- .../64648c3254e52901e36e7703.md | 10 +- .../646494e11d0cab03caee204c.md | 10 +- .../64649b108df035051cb2ba2d.md | 10 +- .../657386f11fb8265660bfac75.md | 14 +-- .../65738cc6cba1825b14806b3d.md | 12 +- .../65739e21dbdf776ccfbf2df5.md | 12 +- .../6576076879130f6cf7426e82.md | 10 +- .../65760954561c726e832a0cc8.md | 18 +-- .../65760ce115eb06716baeb361.md | 20 +-- .../65760de70283687288fe70cf.md | 20 +-- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../660f415b76859a2736771607.md | 4 +- .../66458f0a05df478aa627629e.md | 18 +-- .../664599653fcd6e97104f9261.md | 14 +-- .../664ed9344ba3495e1f67f8ea.md | 14 +-- .../664ed97c55a99e5ffab759dc.md | 22 ++-- .../665732da4815b70bb083915e.md | 18 +-- .../665732e62eb8b30c249b5c2c.md | 6 +- .../66643c93e05093c728abdbe9.md | 16 +-- .../66643c9a9e0ad1c787f5fe2b.md | 8 +- .../63c620161fc2b49ac340ffc4.md | 12 +- .../63cf7e324c1831f8d936b3ae.md | 10 +- .../63cf812bb8ecd4f9cf749b8f.md | 6 +- .../63cf83fdbb51d9fa54654ae6.md | 6 +- .../63cf91b0ff6e9300ead140cc.md | 8 +- .../63cf920228531a0145abd0b3.md | 8 +- .../63cf93472de77d01bf8474bf.md | 16 +-- .../63d120a05ee93f38353b84c0.md | 8 +- .../63d1214a0ac7a9389793269b.md | 30 ++--- .../63d128eaedcc773d2ded2128.md | 30 ++--- .../63e0334b7a24bd3c96aca4de.md | 8 +- .../63e036373fc9173d284e165a.md | 10 +- .../63e03b86008bbb3e1c3de846.md | 6 +- .../63e050bf935ac341b88326d6.md | 10 +- .../63e062d6090ebb486a4eda3a.md | 6 +- .../63e949b8327aa2aca2ca8eac.md | 16 +-- .../63e95a45dce95baf41dd4f78.md | 8 +- .../63e96938d2a347b2734a1587.md | 8 +- .../63e96eb94c97b6b31ee50f63.md | 8 +- .../63e9737f686c76b4078a60f4.md | 10 +- .../63f28972973504e7bb58b0b3.md | 12 +- .../63f28ef082d771e8bf71f94a.md | 8 +- .../63f29804e3ec00ea6fab1ec4.md | 14 +-- .../63f29ce62aea65eb041758c8.md | 12 +- .../63f2a0a860790eebe61bf908.md | 8 +- .../63f2a5f09a785aed155c0a56.md | 18 +-- .../63f2a8e14fb388edd3242527.md | 18 +-- .../63f2aa36fcdc63ee4e18fc37.md | 18 +-- .../641fcfd468185384ac218b7d.md | 8 +- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ ...-meaning-by-using-descriptive-link-text.md | 2 +- ...adjust-the-hover-state-of-an-anchor-tag.md | 8 +- .../decrease-the-opacity-of-an-element.md | 2 +- ...st-an-anchor-element-within-a-paragraph.md | 6 +- .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../61408f155e798909b6908712.md | 2 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../5dc24614f86c76b9248c6ebd.md | 4 +- .../5ddbd81294d8ddc1510a8e56.md | 4 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../64388945b59341057e955fbb.md | 12 +- .../643c0ab6779047014ca69b4f.md | 12 +- .../643c14c8027369027334e802.md | 8 +- .../643c337176a83407d0cd915c.md | 10 +- .../643c359312d030093352fe41.md | 12 +- .../643c565936a10109b3f59326.md | 8 +- .../643c56790fac5409eb5ec6f9.md | 4 +- .../643c8d9a73965c0a26d7f634.md | 6 +- .../643c90830bbeb40ab15148a6.md | 14 +-- .../643c95001ff61f0b3c39ce71.md | 4 +- .../643e9ee64efc77016fa3397c.md | 4 +- .../6444062a33ab4c03d0c2e9f5.md | 8 +- .../64440a50d076c204051f2cc0.md | 24 ++-- .../644fb1d7f0257702a0c935cf.md | 10 +- .../645763874fd6d901c273db29.md | 8 +- .../645f06144bc0dc0143a5a3a2.md | 10 +- .../645f7231271ab1012bc659b8.md | 6 +- .../645f764c37de33015ded1273.md | 14 +-- .../645f7879ebbdb201892e55e1.md | 14 +-- .../645f8615fa144d01c476b22c.md | 18 +-- .../646474a88d0d4a016f895ba8.md | 10 +- .../64648c3254e52901e36e7703.md | 10 +- .../646494e11d0cab03caee204c.md | 10 +- .../64649b108df035051cb2ba2d.md | 10 +- .../657386f11fb8265660bfac75.md | 14 +-- .../65738cc6cba1825b14806b3d.md | 12 +- .../65739e21dbdf776ccfbf2df5.md | 12 +- .../6576076879130f6cf7426e82.md | 10 +- .../65760954561c726e832a0cc8.md | 18 +-- .../65760ce115eb06716baeb361.md | 20 +-- .../65760de70283687288fe70cf.md | 20 +-- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../660f415b76859a2736771607.md | 4 +- .../66458f0a05df478aa627629e.md | 18 +-- .../664599653fcd6e97104f9261.md | 14 +-- .../664ed9344ba3495e1f67f8ea.md | 14 +-- .../664ed97c55a99e5ffab759dc.md | 22 ++-- .../665732da4815b70bb083915e.md | 18 +-- .../665732e62eb8b30c249b5c2c.md | 6 +- .../66643c93e05093c728abdbe9.md | 16 +-- .../66643c9a9e0ad1c787f5fe2b.md | 8 +- .../63c620161fc2b49ac340ffc4.md | 12 +- .../63cf7e324c1831f8d936b3ae.md | 10 +- .../63cf812bb8ecd4f9cf749b8f.md | 6 +- .../63cf83fdbb51d9fa54654ae6.md | 6 +- .../63cf91b0ff6e9300ead140cc.md | 8 +- .../63cf920228531a0145abd0b3.md | 8 +- .../63cf93472de77d01bf8474bf.md | 16 +-- .../63d120a05ee93f38353b84c0.md | 8 +- .../63d1214a0ac7a9389793269b.md | 30 ++--- .../63d128eaedcc773d2ded2128.md | 30 ++--- .../63e0334b7a24bd3c96aca4de.md | 8 +- .../63e036373fc9173d284e165a.md | 10 +- .../63e03b86008bbb3e1c3de846.md | 6 +- .../63e050bf935ac341b88326d6.md | 10 +- .../63e062d6090ebb486a4eda3a.md | 6 +- .../63e949b8327aa2aca2ca8eac.md | 16 +-- .../63e95a45dce95baf41dd4f78.md | 8 +- .../63e96938d2a347b2734a1587.md | 8 +- .../63e96eb94c97b6b31ee50f63.md | 8 +- .../63e9737f686c76b4078a60f4.md | 10 +- .../63f28972973504e7bb58b0b3.md | 12 +- .../63f28ef082d771e8bf71f94a.md | 8 +- .../63f29804e3ec00ea6fab1ec4.md | 14 +-- .../63f29ce62aea65eb041758c8.md | 12 +- .../63f2a0a860790eebe61bf908.md | 8 +- .../63f2a5f09a785aed155c0a56.md | 18 +-- .../63f2a8e14fb388edd3242527.md | 18 +-- .../63f2aa36fcdc63ee4e18fc37.md | 18 +-- .../641fcfd468185384ac218b7d.md | 8 +- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ ...-reinitializing-variables-inside-a-loop.md | 16 +-- ...d-where-an-objects-prototype-comes-from.md | 12 +- .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 24 ++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ .../sass/create-reusable-css-with-mixins.md | 8 +- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 4 +- .../5ef9b03c81a63668521804d8.md | 2 +- .../5ef9b03c81a63668521804dc.md | 2 +- .../62bb4009e3458a128ff57d5d.md | 8 +- .../60f0286404aefb0562a4fdf9.md | 12 +- .../646ceb843412c74edee27a79.md | 22 ++-- .../646cecc9eb5c4f4f73dafd07.md | 2 +- .../646cef0c2b98915094df7099.md | 2 +- .../646cf1206cac5f51804f49cf.md | 2 +- .../646cf2249f02ca5233d9af7c.md | 2 +- .../646cf48d8f8e1f535a1821d3.md | 2 +- .../646cf6cbca98e258da65c979.md | 2 +- .../646cf88aa884405a11ea5bcc.md | 2 +- .../646cfc2b8e6fe95c20a819d5.md | 2 +- .../646cfd853634255d02b64cc1.md | 2 +- .../646cfde6ac612e5d60391f50.md | 2 +- .../646dd556d524bc61c0139bd6.md | 2 +- .../646dd6f9caa862627dd87772.md | 2 +- .../646dd7cfd0cfac630c1dd520.md | 2 +- .../646dd8c79ec23463a3d0e356.md | 2 +- .../646dd9d9a729916460724f16.md | 2 +- .../646ddab8afd73764f5241bbf.md | 2 +- .../646ddb61ff08366570cc5902.md | 2 +- .../646ddd3f9f97a0667b964bdb.md | 2 +- .../646dde7dc20dc167489faa69.md | 2 +- .../646ddf888632fa67f1180940.md | 2 +- .../646de5dc8988076a1d992afd.md | 2 +- .../646de6a97b50a86ac487de86.md | 2 +- .../646de7b64467e96b7d35b5cd.md | 2 +- .../646de8478d6f796bfbdccfb2.md | 2 +- .../646de8d204a3426c7d184372.md | 2 +- .../646dea1c98c2426d43a705c3.md | 2 +- .../646deb169847f86df0f95bfc.md | 2 +- .../646dec359bef3b7811fba5a6.md | 2 +- .../646dedbcba062079128b2ecc.md | 2 +- .../646def5e863abf7a14501421.md | 2 +- .../646df03c8f79337ab46f148b.md | 2 +- .../646df0cf26413a7b35e4b8b3.md | 2 +- .../646df1d1aa4ae57bdf1869c4.md | 2 +- .../646dffd8ce9ac77ec1906f2e.md | 2 +- .../646f0417322c0e04983a5149.md | 2 +- .../646f08293804a30685533c6f.md | 2 +- .../646f09293eb3230723a62f77.md | 2 +- .../646f0c9a1e3360092d1bbd33.md | 2 +- .../646f0ce5737243098ad6e494.md | 2 +- .../646f0ef13604420a8744f7d4.md | 2 +- .../646f0f7c5933560af8e7e380.md | 2 +- .../646f102bf87b350b593baa72.md | 2 +- .../646f107abb89d00bb99f387a.md | 2 +- .../646f12da0b4c5d0ca162834a.md | 2 +- .../646f135eab69d90d0c6d4e9b.md | 2 +- .../646f159b2cffb21150b927cb.md | 2 +- .../646f164bf100dd11d226161f.md | 2 +- .../646f1764e2f1d212ba9785a7.md | 2 +- .../646f1802a09a171332e14630.md | 2 +- .../646f4d6c42dc5f214f4e7444.md | 2 +- .../646f4e46e81f7021d5fd9c1d.md | 2 +- .../646f4f6a14e3c522d130a0d2.md | 2 +- .../646f4fe12b7985232bf475a5.md | 2 +- .../646f507e4d1cd323f17db4fc.md | 2 +- .../646f516dbfc1342495515625.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../64a2687ef267e5934a2f93e3.md | 2 +- .../64a26ac5540c5493f4641f10.md | 2 +- .../64a3bcbc83e574b58c8ed048.md | 2 +- .../6676a8a8d9861319ee901a90.md | 30 ++--- .../6676a8b01e56ec1a1e07c202.md | 24 ++-- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ .../sass/create-reusable-css-with-mixins.md | 14 +-- .../build-a-budget-app-project/budget-app.md | 18 +-- .../probability-calculator.md | 6 +- .../6569c05b9166f9d5bb36c09e.md | 2 +- .../6569c2cbf6c993ea8cd85682.md | 2 +- .../65823ff0d4b991510fade1a8.md | 4 +- .../614396f7ae83f20ea6f9f4b3.md | 22 ++-- .../6143cb26f7edff2dc28f7da5.md | 4 +- .../6144e818fd5ea704fe56081d.md | 4 +- .../6144f8dc6849e405dd8bb829.md | 4 +- .../6145e6eeaa66c605eb087fe9.md | 4 +- .../6145e8b5080a5f06bb0223d0.md | 4 +- .../6145eb5f08a38a0786c7a80c.md | 4 +- .../6145ed1f22caab087630aaad.md | 4 +- .../6145ee65e2e1530938cb594d.md | 4 +- .../6145f02240ff8f09f7ec913c.md | 4 +- .../6145f14f019a4b0adb94b051.md | 4 +- .../6145f3a5cd9be60b9459cdd6.md | 4 +- .../6145f47393fbe70c4d885f9c.md | 4 +- .../6145f59029474c0d3dc1c8b8.md | 4 +- .../6145f685797bd30df9784e8c.md | 4 +- .../6145f829ac6a920ebf5797d7.md | 4 +- .../6145f8f8bcd4370f6509078e.md | 4 +- .../6145fb5018cb5b100cb2a88c.md | 4 +- .../6145fc3707fc3310c277f5c8.md | 4 +- .../614796cb8086be482d60e0ac.md | 4 +- .../6147a14ef5668b5881ef2297.md | 4 +- .../614878f7a412310647873015.md | 4 +- .../61487b77d4a37707073a64e5.md | 4 +- .../61487da611a65307e78d2c20.md | 4 +- .../61487f703571b60899055cf9.md | 4 +- .../614880dc16070e093e29bc56.md | 4 +- .../614883b6fa720e09fb167de9.md | 4 +- .../614884c1f5d6f30ab3d78cde.md | 4 +- .../61488ecfd05e290b5712e6da.md | 4 +- .../6148d99cdc7acd0c519862cb.md | 4 +- .../6148da157cc0bd0d06df5c0a.md | 4 +- .../6148dc095264000dce348bf5.md | 4 +- .../6148dcaaf2e8750e6cb4501a.md | 4 +- .../6148dd31d210990f0fb140f8.md | 4 +- .../6148defa9c01520fb9d178a0.md | 4 +- .../6148dfab9b54c110577de165.md | 4 +- .../6148e0bcc13efd10f7d7a6a9.md | 4 +- .../6148e161ecec9511941f8833.md | 4 +- .../6148e28706b34912340fd042.md | 4 +- .../6148e335c1edd512d00e4691.md | 4 +- .../6148e41c728f65138addf9cc.md | 4 +- .../6148e5aeb102e3142de026a2.md | 8 +- .../6351e7a8684bf5377c4ee7f7.md | 4 +- .../5f331e55dfab7a896e53c3a1.md | 14 ++- .../5f3477cb2e27333b1ab2b955.md | 28 +++-- .../5f3ef6e01f288a026d709587.md | 30 +++-- .../5f46e8284aae155c83015dee.md | 21 +++- .../5d822fd413a79914d39e98fb.md | 2 +- .../5dc23f9bf86c76b9248c6eba.md | 2 +- .../646ceb843412c74edee27a79.md | 2 +- .../6476f7a4827bcc61682f2347.md | 2 +- .../6676a8a8d9861319ee901a90.md | 2 +- .../655485321913feabbc5f00f8.md | 2 +- .../6555d458687cb3b357834df9.md | 2 +- .../6555dd138e70cae6b546966d.md | 2 +- .../6555de565387a2efe90a6ccc.md | 2 +- .../6555e04aeb225bfbae237344.md | 2 +- .../6555e0bfe4d69904410f7cd3.md | 2 +- .../6555e57d3e6d9d221c4735be.md | 2 +- .../6555e6cec786da2aadc11ea0.md | 2 +- .../65572399a8e16d50bc2c1ff3.md | 2 +- .../655724bac464795a0ad91082.md | 2 +- .../655729e68e49b277a6b448bd.md | 2 +- .../65572bb34a7e488224b937fc.md | 2 +- .../65572e5aaf022790fb4a81b1.md | 2 +- .../65573a97c59ddbbf028ca95e.md | 2 +- .../6557421eb6a7a0f0500e3106.md | 2 +- .../655b4c8f636d9675953a0388.md | 2 +- .../655b4dad1d38ff7cdd65cbfe.md | 4 +- .../63c9e45519caf31b987fbb5f.md | 14 +-- .../introduction-flexbox-lesson-a.md | 60 +++++++++ .../introduction-flexbox-lesson-b.md | 40 ++++++ .../introduction-flexbox-lesson-c.md | 44 +++++++ .../introduction-flexbox-lesson-d.md | 36 ++++++ .../introduction-flexbox-lesson-e.md | 46 +++++++ .../introduction-flexbox-lesson-f.md | 40 ++++++ .../introduction-flexbox-lesson-g.md | 45 +++++++ .../introduction-flexbox-lesson-h.md | 41 +++++++ .../introduction-flexbox-lesson-i.md | 45 +++++++ .../introduction-flexbox-lesson-j.md | 52 ++++++++ .../introduction-flexbox-lesson-k.md | 48 ++++++++ .../learn-arrays-and-loops-lesson-a.md | 44 +++++++ .../learn-arrays-and-loops-lesson-b.md | 47 +++++++ .../learn-arrays-and-loops-lesson-c.md | 64 ++++++++++ .../learn-arrays-and-loops-lesson-d.md | 67 ++++++++++ .../learn-arrays-and-loops-lesson-e.md | 63 ++++++++++ .../learn-arrays-and-loops-lesson-f.md | 82 +++++++++++++ .../learn-arrays-and-loops-lesson-g.md | 57 +++++++++ .../learn-arrays-and-loops-lesson-h.md | 58 +++++++++ .../learn-block-and-inline-lesson-a.md | 28 +++++ .../learn-block-and-inline-lesson-b.md | 41 +++++++ .../learn-block-and-inline-lesson-c.md | 36 ++++++ .../learn-block-and-inline-lesson-d.md | 36 ++++++ .../learn-block-and-inline-lesson-e.md | 36 ++++++ .../learn-block-and-inline-lesson-f.md | 36 ++++++ .../learn-block-and-inline-lesson-g.md | 36 ++++++ .../learn-block-and-inline-lesson-h.md | 36 ++++++ .../learn-block-and-inline-lesson-i.md | 32 +++++ .../learn-block-and-inline-lesson-j.md | 36 ++++++ .../learn-block-and-inline-lesson-k.md | 36 ++++++ .../css-foundations-lesson-a.md | 53 ++++++++ .../css-foundations-lesson-b.md | 75 +++++++++++ .../css-foundations-lesson-c.md | 90 ++++++++++++++ .../css-foundations-lesson-d.md | 86 +++++++++++++ .../css-foundations-lesson-e.md | 61 +++++++++ .../css-foundations-lesson-f.md | 47 +++++++ .../css-foundations-lesson-g.md | 54 ++++++++ .../css-foundations-lesson-h.md | 46 +++++++ .../the-cascade-of-css-lesson-a.md | 39 ++++++ .../the-cascade-of-css-lesson-b.md | 42 +++++++ .../the-cascade-of-css-lesson-c.md | 58 +++++++++ .../the-cascade-of-css-lesson-d.md | 58 +++++++++ .../the-cascade-of-css-lesson-e.md | 51 ++++++++ .../the-cascade-of-css-lesson-f.md | 63 ++++++++++ .../the-cascade-of-css-lesson-g.md | 60 +++++++++ .../the-cascade-of-css-lesson-h.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-a.md | 51 ++++++++ ...rn-data-types-and-conditionals-lesson-b.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-c.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-d.md | 42 +++++++ ...rn-data-types-and-conditionals-lesson-e.md | 46 +++++++ ...rn-data-types-and-conditionals-lesson-f.md | 59 +++++++++ ...rn-data-types-and-conditionals-lesson-g.md | 54 ++++++++ ...rn-data-types-and-conditionals-lesson-h.md | 58 +++++++++ ...rn-data-types-and-conditionals-lesson-i.md | 60 +++++++++ ...rn-data-types-and-conditionals-lesson-j.md | 101 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-k.md | 102 +++++++++++++++ ...rn-data-types-and-conditionals-lesson-l.md | 42 +++++++ .../learn-function-basics-lesson-a.md | 48 ++++++++ .../learn-function-basics-lesson-b.md | 52 ++++++++ .../learn-function-basics-lesson-c.md | 62 ++++++++++ .../learn-function-basics-lesson-d.md | 56 +++++++++ .../learn-function-basics-lesson-e.md | 74 +++++++++++ .../learn-function-basics-lesson-f.md | 52 ++++++++ .../html-foundations-lesson-a.md | 46 +++++++ .../html-foundations-lesson-b.md | 39 ++++++ .../html-foundations-lesson-c.md | 54 ++++++++ .../html-foundations-lesson-d.md | 46 +++++++ .../html-foundations-lesson-e.md | 65 ++++++++++ .../html-foundations-lesson-f.md | 48 ++++++++ .../html-foundations-lesson-g.md | 33 +++++ .../html-foundations-lesson-h.md | 32 +++++ ...problems-and-understand-errors-lesson-a.md | 53 ++++++++ ...problems-and-understand-errors-lesson-b.md | 56 +++++++++ ...problems-and-understand-errors-lesson-c.md | 53 ++++++++ ...problems-and-understand-errors-lesson-d.md | 39 ++++++ ...problems-and-understand-errors-lesson-e.md | 58 +++++++++ ...problems-and-understand-errors-lesson-f.md | 63 ++++++++++ ...problems-and-understand-errors-lesson-g.md | 56 +++++++++ ...problems-and-understand-errors-lesson-h.md | 42 +++++++ .../learn-variables-and-operators-lesson-a.md | 64 ++++++++++ .../learn-variables-and-operators-lesson-b.md | 65 ++++++++++ .../learn-variables-and-operators-lesson-c.md | 51 ++++++++ .../learn-variables-and-operators-lesson-d.md | 66 ++++++++++ .../learn-variables-and-operators-lesson-e.md | 51 ++++++++ .../learn-variables-and-operators-lesson-f.md | 82 +++++++++++++ .../learn-variables-and-operators-lesson-g.md | 81 ++++++++++++ .../learn-variables-and-operators-lesson-h.md | 61 +++++++++ .../learn-variables-and-operators-lesson-i.md | 116 ++++++++++++++++++ .../links-and-images-lesson-a.md | 68 ++++++++++ .../links-and-images-lesson-b.md | 62 ++++++++++ .../links-and-images-lesson-c.md | 63 ++++++++++ .../links-and-images-lesson-d.md | 112 +++++++++++++++++ .../links-and-images-lesson-e.md | 98 +++++++++++++++ .../links-and-images-lesson-f.md | 93 ++++++++++++++ .../links-and-images-lesson-g.md | 93 ++++++++++++++ .../links-and-images-lesson-h.md | 97 +++++++++++++++ .../the-box-model-lesson-a.md | 45 +++++++ .../the-box-model-lesson-b.md | 42 +++++++ .../the-box-model-lesson-c.md | 46 +++++++ .../the-box-model-lesson-d.md | 45 +++++++ .../the-box-model-lesson-e.md | 38 ++++++ .../the-box-model-lesson-f.md | 48 ++++++++ .../the-box-model-lesson-g.md | 52 ++++++++ .../the-box-model-lesson-h.md | 37 ++++++ .../the-box-model-lesson-i.md | 36 ++++++ .../the-box-model-lesson-j.md | 37 ++++++ .../the-box-model-lesson-k.md | 36 ++++++ .../the-box-model-lesson-l.md | 28 +++++ .../the-box-model-lesson-m.md | 67 ++++++++++ .../working-with-text-lesson-a.md | 60 +++++++++ .../working-with-text-lesson-b.md | 39 ++++++ .../working-with-text-lesson-c.md | 47 +++++++ .../working-with-text-lesson-d.md | 38 ++++++ .../working-with-text-lesson-e.md | 65 ++++++++++ .../working-with-text-lesson-f.md | 66 ++++++++++ .../working-with-text-lesson-g.md | 48 ++++++++ .../working-with-text-lesson-h.md | 65 ++++++++++ .../working-with-text-lesson-i.md | 44 +++++++ .../working-with-text-lesson-j.md | 44 +++++++ .../6606682f3fbb93838673920d.md | 2 +- .../66066c563917c5874b792337.md | 8 +- .../660681a717d84e89da14f6f4.md | 18 +-- .../660682b572c0bb8aa3075feb.md | 12 +- .../6606838ecf64478b53a51496.md | 16 +-- .../660683e649f8fa8bbd5baac5.md | 2 +- .../66068414094b3a8c10a4770d.md | 8 +- .../6606846eba453e8c7bacb2f7.md | 16 +-- .../660684bfc24bf48cfaaf9cfa.md | 8 +- .../660686845b5e788def3527ca.md | 18 +-- .../66068a6d0bb2aa90f0d93979.md | 2 +- .../66068ad667567091500128c5.md | 10 +- .../66068b650b681c91de9e19a0.md | 16 +-- .../66068bf9c9046292705b856d.md | 16 +-- .../66068c5cfc7a4992f2574ab2.md | 8 +- .../66068d4033a07d9393291ef0.md | 10 +- .../66068f5b2b7dda9450a7cc2c.md | 16 +-- .../66068fc7aa2fe094c5cb84bd.md | 6 +- .../6606906b3f31fc953f1ee3b6.md | 24 ++-- .../660694cf7803c598ce999171.md | 2 +- .../6606952c28640e9941c8fa29.md | 10 +- .../660695c672854899d6862834.md | 16 +-- .../660696292c16659a5e9ccf81.md | 10 +- .../660696cce3e4e79af4612466.md | 16 +-- .../66069719acca7d9b59499ce9.md | 10 +- .../6606977e8f0b509bdac39012.md | 16 +-- .../660697f307c6559c60e976f7.md | 10 +- .../6606989c34f0be9d141130b1.md | 24 ++-- .../6636159376b91532f4f8e49b.md | 2 +- .../663621cf8781e93738b3e30f.md | 2 +- .../6636242c12c019384fd78b5a.md | 2 +- .../6617562f72eb2a9387252430.md | 2 +- .../661757150c7a75961a574a39.md | 2 +- .../66175792ec93b19771c55c62.md | 2 +- .../6617962704224fe969a76811.md | 2 +- .../6617b1efe920c2ffea40b54d.md | 2 +- .../65fd595245455d0dca3434ba.md | 2 +- .../65fd5a9680a9540e9787dec5.md | 14 +-- .../65fd5c89285ea50f25bd0241.md | 18 +-- .../65fd5d1a6cb7f10f77a06163.md | 12 +- .../65fd5da902959d0fda781aa3.md | 14 +-- .../65fd5dfc174596101eae1107.md | 18 +-- .../65fd5f2abfdbc510942d76f8.md | 18 +-- .../65fd5f86457b4910e35b51c9.md | 6 +- .../65fd620e9ba99c116c42c361.md | 22 ++-- .../65fd63be9afd7611d2a9b788.md | 24 ++-- .../65ffa914bc44081a196fa6f7.md | 22 ++-- .../65ffa9d80e7ffb1ab9b4df1c.md | 10 +- .../65fff2b49779301d9bdab6fa.md | 18 +-- .../65fff336d7553c1df86f7968.md | 18 +-- .../65fff428290eaa1e5819c119.md | 10 +- .../65fff57ce568cf1ed9702fbf.md | 20 +-- .../66000a440c2f492ddee509f9.md | 2 +- .../662514383f43d53b748dff42.md | 2 +- .../661256fe823f142fb9858beb.md | 2 +- .../6613d6c3e74a984d6fcbd013.md | 2 +- .../6613d803f9d4884e2a882a99.md | 2 +- .../6614be98fc11336c52aa3093.md | 2 +- .../662efee6946fda26f424c1a5.md | 2 +- 2040 files changed, 61909 insertions(+), 2896 deletions(-) create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/arabic/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/chinese-traditional/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/chinese/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/espanol/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/italian/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/korean/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/portuguese/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/swahili/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-i.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-links-and-images/links-and-images-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-i.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-j.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-k.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-l.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-the-box-model/the-box-model-lesson-m.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-a.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-b.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-c.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-d.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-e.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-f.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-g.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-h.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-i.md create mode 100644 curriculum/challenges/ukrainian/16-the-odin-project/top-working-with-text/working-with-text-lesson-j.md diff --git a/curriculum/challenges/arabic/03-front-end-development-libraries/sass/create-reusable-css-with-mixins.md b/curriculum/challenges/arabic/03-front-end-development-libraries/sass/create-reusable-css-with-mixins.md index 1df40c93426..07a4c56c663 100644 --- a/curriculum/challenges/arabic/03-front-end-development-libraries/sass/create-reusable-css-with-mixins.md +++ b/curriculum/challenges/arabic/03-front-end-development-libraries/sass/create-reusable-css-with-mixins.md @@ -70,7 +70,7 @@ nav a { Write a mixin named `shape` and give it 3 parameters: `$w`, `$h`, and `$bg-color`. -Use the `shape` mixin to give the `#square` element a width and height of `50px`, and the color `red`. For the `#rect-a` element add a width of `100px`, a height of `50px`, and the color `blue`. Finally, for the `#rect-b` element add a width of `50px`, a height of `100px`, and the color `orange`. +Use the `shape` mixin to give the `#square` element a width and height of `50px`, and the background color `red`. For the `#rect-a` element add a width of `100px`, a height of `50px`, and the background color `blue`. Finally, for the `#rect-b` element add a width of `50px`, a height of `100px`, and the background color `orange`. # --hints-- @@ -98,22 +98,22 @@ Your mixin should include a `background-color` property that uses the `$bg-color assert.match(__helpers.removeWhiteSpace(code), /background-color:\$bg\-color;/gi); ``` -You should replace the styles inside the `#square` selector with a call to the `shape` mixin using the `@include` keyword. Setting a width and height of `50px`, and the color `red`. +You should replace the styles inside the `#square` selector with a call to the `shape` mixin using the `@include` keyword. Setting a width and height of `50px`, and the background color `red`. ```js -assert.match(code, /#square\s*{\s*@include\s+shape\(\s*50px,\s*50px,\s*red\s*\)\s*;\s*}/gi); +assert.match(code, /#square\s*{\s*@include\s+shape\s*\(\s*50px\s*,\s*50px\s*,\s*red\s*\)\s*;\s*}/gi); ``` -You should replace the styles inside the `#rect-a` selector with a call to the `shape` mixin using the `@include` keyword. Setting a width of `100px`, a height of `50px`, and the color `blue`. +You should replace the styles inside the `#rect-a` selector with a call to the `shape` mixin using the `@include` keyword. Setting a width of `100px`, a height of `50px`, and the background color `blue`. ```js -assert.match(code, /#rect-a\s*{\s*@include\s+shape\(\s*100px,\s*50px,\s*blue\s*\)\s*;\s*}/gi); +assert.match(code, /#rect-a\s*{\s*@include\s+shape\s*\(\s*100px\s*,\s*50px\s*,\s*blue\s*\)\s*;\s*}/gi); ``` -You should replace the styles inside the `#rect-b` selector with a call to the `shape` mixin using the `@include` keyword. Setting a width of `50px`, a height of `100px`, and the color `orange`. +You should replace the styles inside the `#rect-b` selector with a call to the `shape` mixin using the `@include` keyword. Setting a width of `50px`, a height of `100px`, and the background color `orange`. ```js -assert.match(code, /#rect-b\s*{\s*@include\s+shape\(\s*50px,\s*100px,\s*orange\s*\)\s*;\s*}/gi); +assert.match(code, /#rect-b\s*{\s*@include\s+shape\s*\(\s*50px\s*,\s*100px\s*,\s*orange\s*\)\s*;\s*}/gi); ``` # --seed-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md index 53c78f64ffe..131eb607061 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-budget-app-project/budget-app.md @@ -10,10 +10,10 @@ dashedName: build-a-budget-app-project Complete the `Category` class. It should be able to instantiate objects based on different budget categories like *food*, *clothing*, and *entertainment*. When objects are created, they are passed in the name of the category. The class should have an instance variable called `ledger` that is a list. The class should also contain the following methods: -- A `deposit` method that accepts an amount and description. If no description is given, it should default to an empty string. The method should append an object to the ledger list in the form of `{"amount": amount, "description": description}`. +- A `deposit` method that accepts an amount and description. If no description is given, it should default to an empty string. The method should append an object to the ledger list in the form of `{'amount': amount, 'description': description}`. - A `withdraw` method that is similar to the `deposit` method, but the amount passed in should be stored in the ledger as a negative number. If there are not enough funds, nothing should be added to the ledger. This method should return `True` if the withdrawal took place, and `False` otherwise. - A `get_balance` method that returns the current balance of the budget category based on the deposits and withdrawals that have occurred. -- A `transfer` method that accepts an amount and another budget category as arguments. The method should add a withdrawal with the amount and the description "Transfer to [Destination Budget Category]". The method should then add a deposit to the other budget category with the amount and the description "Transfer from [Source Budget Category]". If there are not enough funds, nothing should be added to either ledgers. This method should return `True` if the transfer took place, and `False` otherwise. +- A `transfer` method that accepts an amount and another budget category as arguments. The method should add a withdrawal with the amount and the description 'Transfer to [Destination Budget Category]'. The method should then add a deposit to the other budget category with the amount and the description 'Transfer from [Source Budget Category]'. If there are not enough funds, nothing should be added to either ledgers. This method should return `True` if the transfer took place, and `False` otherwise. - A `check_funds` method that accepts an amount as an argument. It returns `False` if the amount is greater than the balance of the budget category and returns `True` otherwise. This method should be used by both the `withdraw` method and `transfer` method. When the budget object is printed it should display: @@ -25,11 +25,11 @@ When the budget object is printed it should display: Here is an example usage: ```py -food = Category("Food") -food.deposit(1000, "deposit") -food.withdraw(10.15, "groceries") -food.withdraw(15.89, "restaurant and more food for dessert") -clothing = Category("Clothing") +food = Category('Food') +food.deposit(1000, 'deposit') +food.withdraw(10.15, 'groceries') +food.withdraw(15.89, 'restaurant and more food for dessert') +clothing = Category('Clothing') food.transfer(50, clothing) print(food) ``` @@ -47,7 +47,7 @@ Total: 923.96 Besides the `Category` class, create a function (outside of the class) called `create_spend_chart` that takes a list of categories as an argument. It should return a string that is a bar chart. -The chart should show the percentage spent in each category passed in to the function. The percentage spent should be calculated only with withdrawals and not with deposits. Down the left side of the chart should be labels 0 - 100. The "bars" in the bar chart should be made out of the "o" character. The height of each bar should be rounded down to the nearest 10. The horizontal line below the bars should go two spaces past the final bar. Each category name should be written vertically below the bar. There should be a title at the top that says "Percentage spent by category". +The chart should show the percentage spent in each category passed in to the function. The percentage spent should be calculated only with withdrawals and not with deposits. Down the left side of the chart should be labels 0 - 100. The 'bars' in the bar chart should be made out of the 'o' character. The height of each bar should be rounded down to the nearest 10. The horizontal line below the bars should go two spaces past the final bar. Each category name should be written vertically below the bar. There should be a title at the top that says 'Percentage spent by category'. This function will be tested with up to four categories. @@ -272,7 +272,7 @@ t.result.wasSuccessful() }) ``` -Calling `food.deposit(900, "deposit")` and `food.withdraw(45.67, "milk, cereal, eggs, bacon, bread")` should return a balance of `854.33`. +Calling `food.deposit(900, 'deposit')` and `food.withdraw(45.67, 'milk, cereal, eggs, bacon, bread')` should return a balance of `854.33`. ```js ({ diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md index b49581bf018..ee429bb945e 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/build-a-probability-calculator-project/probability-calculator.md @@ -20,14 +20,14 @@ hat2 = Hat(red=5, orange=4) hat3 = Hat(red=5, orange=4, black=1, blue=0, pink=2, striped=9) ``` -A hat will always be created with at least one ball. The arguments passed into the hat object upon creation should be converted to a `contents` instance variable. `contents` should be a list of strings containing one item for each ball in the hat. Each item in the list should be a color name representing a single ball of that color. For example, if your hat is `{"red": 2, "blue": 1}`, `contents` should be `["red", "red", "blue"]`. +A hat will always be created with at least one ball. The arguments passed into the hat object upon creation should be converted to a `contents` instance variable. `contents` should be a list of strings containing one item for each ball in the hat. Each item in the list should be a color name representing a single ball of that color. For example, if your hat is `{'red': 2, 'blue': 1}`, `contents` should be `['red', 'red', 'blue']`. The `Hat` class should have a `draw` method that accepts an argument indicating the number of balls to draw from the hat. This method should remove balls at random from `contents` and return those balls as a list of strings. The balls should not go back into the hat during the draw, similar to an urn experiment without replacement. If the number of balls to draw exceeds the available quantity, return all the balls. Next, create an `experiment` function in `main.py` (not inside the `Hat` class). This function should accept the following arguments: - `hat`: A hat object containing balls that should be copied inside the function. -- `expected_balls`: An object indicating the exact group of balls to attempt to draw from the hat for the experiment. For example, to determine the probability of drawing 2 blue balls and 1 red ball from the hat, set `expected_balls` to `{"blue":2, "red":1}`. +- `expected_balls`: An object indicating the exact group of balls to attempt to draw from the hat for the experiment. For example, to determine the probability of drawing 2 blue balls and 1 red ball from the hat, set `expected_balls` to `{'blue':2, 'red':1}`. - `num_balls_drawn`: The number of balls to draw out of the hat in each experiment. - `num_experiments`: The number of experiments to perform. (The more experiments performed, the more accurate the approximate probability will be.) @@ -40,7 +40,7 @@ Here is how you would call the `experiment` function based on the example above ```py hat = Hat(black=6, red=4, green=3) probability = experiment(hat=hat, - expected_balls={"red":2,"green":1}, + expected_balls={'red':2,'green':1}, num_balls_drawn=5, num_experiments=2000) ``` diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c05b9166f9d5bb36c09e.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c05b9166f9d5bb36c09e.md index 9440425971f..812a2ebad11 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c05b9166f9d5bb36c09e.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c05b9166f9d5bb36c09e.md @@ -7,7 +7,7 @@ dashedName: step-30 # --description-- -Use the `print()` function to print the string `Unsorted array:`. +Use the `print()` function to print the string `'Unsorted array:'`. # --hints-- diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c2cbf6c993ea8cd85682.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c2cbf6c993ea8cd85682.md index 86be059d642..6ec118aacc9 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c2cbf6c993ea8cd85682.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-data-structures-by-building-the-merge-sort-algorithm/6569c2cbf6c993ea8cd85682.md @@ -7,7 +7,7 @@ dashedName: step-33 # --description-- -At this point, the `numbers` list has been sorted. Call the `print` function to print string `Sorted array:` and the sorted list. +At this point, the `numbers` list has been sorted. Call the `print` function to print string `'Sorted array: '` and the sorted list. To do that, concatenate `'Sorted array: '` and `str(numbers)` in the `print()` call. diff --git a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md index 289c306da64..328ba82fa16 100644 --- a/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md +++ b/curriculum/challenges/arabic/07-scientific-computing-with-python/learn-lambda-functions-by-building-an-expense-tracker/65823ff0d4b991510fade1a8.md @@ -7,11 +7,11 @@ dashedName: step-21 # --description-- -Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and return the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. +Within the `filter_expenses_by_category` function, replace `pass` with a `lambda` function. Use `expense` as the parameter and evaluate the comparison between the value of the `'category'` key of the `expense` dictionary and `category` using the equality operator. # --hints-- -You should create a `lambda` function that uses a parameter named `expense` and returns the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. +You should create a `lambda` function that uses a parameter named `expense` and evaluates the expression `expense['category'] == category` inside the `filter_expenses_by_category` function. ```js ({ test: () => assert(runPython(`_Node(_code).find_function("filter_expenses_by_category").has_stmt("lambda expense: expense['category'] == category")`)) }) diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614396f7ae83f20ea6f9f4b3.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614396f7ae83f20ea6f9f4b3.md index b9c52da5a06..fd9322b8616 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614396f7ae83f20ea6f9f4b3.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614396f7ae83f20ea6f9f4b3.md @@ -9,7 +9,7 @@ dashedName: step-26 داخل عنصر `section` الثاني، قم بإضافة عنصرين `div` يحملين class بقيمة `question-block`. -ثم داخل كل عنصر `div.question-block`، قم بإضافة عنصر `p` مع نص للأرقام المتزايدة، بدءا من `1`، و `fieldset` واحد مع class بقيمة `question`. +Then, within each `div.question-block` element, add one `h3` element with text of incrementing numbers, starting at `1`, and one `fieldset` element with a class of `question`. # --hints-- @@ -31,22 +31,22 @@ assert.equal(document.querySelectorAll('section:nth-of-type(2) > div')?.[0]?.cla assert.equal(document.querySelectorAll('section:nth-of-type(2) > div')?.[1]?.className, 'question-block'); ``` -يجب عليك دمج عنصر `p` واحد داخل كل عنصر من عناصر `div.question-block`. +You should nest one `h3` element within each `div.question-block` element. ```js -assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > p')?.length, 2); +assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > h3')?.length, 2); ``` -يجب عليك إعطاء أول عنصر `p` النص `1`. +You should give the first `h3` element text of `1`. ```js -assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > p')?.[0]?.textContent, '1'); +assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > h3')?.[0]?.textContent, '1'); ``` -يجب عليك إعطاء ثاني عنصر `p` النص `2`. +You should give the second `h3` element text of `2`. ```js -assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > p')?.[1]?.textContent, '2'); +assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > h3')?.[1]?.textContent, '2'); ``` يجب عليك دمج عنصر `fieldset` واحد داخل كل عنصر من عناصر `div.question-block`. @@ -55,16 +55,16 @@ assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-bl assert.equal(document.querySelectorAll('section:nth-of-type(2) > div.question-block > fieldset')?.length, 2); ``` -يجب عليك وضع عنصر `fieldset` الأول بعد عنصر `p` الأول. +You should place the first `fieldset` element after the first `h3` element. ```js -assert.exists(document.querySelector('section:nth-of-type(2) > div.question-block > p + fieldset')); +assert.exists(document.querySelector('section:nth-of-type(2) > div.question-block > h3 + fieldset')); ``` -يجب عليك وضع عنصر `fieldset` الثاني بعد عنصر `p` الثاني. +You should place the second `fieldset` element after the second `h3` element. ```js -assert.exists(document.querySelector('section:nth-of-type(2) > div.question-block:nth-of-type(2) > p + fieldset')); +assert.exists(document.querySelector('section:nth-of-type(2) > div.question-block:nth-of-type(2) > h3 + fieldset')); ``` يجب عليك إعطاء أول عنصر `fieldset` سمة class بقيمة `question`. diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6143cb26f7edff2dc28f7da5.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6143cb26f7edff2dc28f7da5.md index c58c54de5c5..8509361d6ee 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6143cb26f7edff2dc28f7da5.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6143cb26f7edff2dc28f7da5.md @@ -96,11 +96,11 @@ assert.equal(document.querySelectorAll('fieldset > ul')?.[1]?.querySelectorAll('

HTML

-

1

+

1

-

2

+

2

diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144e818fd5ea704fe56081d.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144e818fd5ea704fe56081d.md index 18fc642e267..4595318a0fa 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144e818fd5ea704fe56081d.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144e818fd5ea704fe56081d.md @@ -102,7 +102,7 @@ assert.notEqual(document.querySelectorAll('legend')?.[0]?.textContent, document.

HTML

-

1

+

1

    @@ -112,7 +112,7 @@ assert.notEqual(document.querySelectorAll('legend')?.[0]?.textContent, document.
-

2

+

2

    diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144f8dc6849e405dd8bb829.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144f8dc6849e405dd8bb829.md index 58445d7499d..25a85e320f4 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144f8dc6849e405dd8bb829.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6144f8dc6849e405dd8bb829.md @@ -131,7 +131,7 @@ assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -145,7 +145,7 @@ assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e6eeaa66c605eb087fe9.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e6eeaa66c605eb087fe9.md index 07de4ea9a67..2478d4d85a2 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e6eeaa66c605eb087fe9.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e6eeaa66c605eb087fe9.md @@ -81,7 +81,7 @@ assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -103,7 +103,7 @@ assert.equal(document.querySelectorAll('ul.answers-list > li > label > input')?.
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e8b5080a5f06bb0223d0.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e8b5080a5f06bb0223d0.md index db7f0eff784..8b974507853 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e8b5080a5f06bb0223d0.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145e8b5080a5f06bb0223d0.md @@ -171,7 +171,7 @@ assert.equal(document.querySelectorAll('ul.answers-list > li > label')?.[3]?.tex

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -193,7 +193,7 @@ assert.equal(document.querySelectorAll('ul.answers-list > li > label')?.[3]?.tex
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145eb5f08a38a0786c7a80c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145eb5f08a38a0786c7a80c.md index 1b06bcec425..95d71cda37f 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145eb5f08a38a0786c7a80c.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145eb5f08a38a0786c7a80c.md @@ -104,7 +104,7 @@ assert.notEqual(i(0), i(2));

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -128,7 +128,7 @@ assert.notEqual(i(0), i(2));
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ed1f22caab087630aaad.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ed1f22caab087630aaad.md index 18a80a967e9..2d871627147 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ed1f22caab087630aaad.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ed1f22caab087630aaad.md @@ -69,7 +69,7 @@ assert.include(new __helpers.CSSHelp(document).getStyle('p::before')?.content, '

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -92,7 +92,7 @@ assert.include(new __helpers.CSSHelp(document).getStyle('p::before')?.content, '
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ee65e2e1530938cb594d.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ee65e2e1530938cb594d.md index 1f58013b17e..af27966f7ca 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ee65e2e1530938cb594d.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145ee65e2e1530938cb594d.md @@ -107,7 +107,7 @@ assert.equal(document.querySelector('section:nth-of-type(3) > div.formrow > div:

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -130,7 +130,7 @@ assert.equal(document.querySelector('section:nth-of-type(3) > div.formrow > div:
    -

    2

    +

    1

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md index 144a4b481cc..646db9110f8 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md @@ -81,7 +81,7 @@ assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[1]?.q

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -104,7 +104,7 @@ assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[1]?.q
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f14f019a4b0adb94b051.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f14f019a4b0adb94b051.md index d931237c31d..f3d45f64f22 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f14f019a4b0adb94b051.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f14f019a4b0adb94b051.md @@ -113,7 +113,7 @@ assert.isTrue(document.querySelector('div.answer > select')?.required);

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -136,7 +136,7 @@ assert.isTrue(document.querySelector('div.answer > select')?.required);
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f3a5cd9be60b9459cdd6.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f3a5cd9be60b9459cdd6.md index dec6ca3a816..bc192caf9d4 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f3a5cd9be60b9459cdd6.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f3a5cd9be60b9459cdd6.md @@ -81,7 +81,7 @@ assert.notEmpty(document.querySelector('.answer > select')?.name);

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -104,7 +104,7 @@ assert.notEmpty(document.querySelector('.answer > select')?.name);
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f47393fbe70c4d885f9c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f47393fbe70c4d885f9c.md index 545262f98a3..19939be0a53 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f47393fbe70c4d885f9c.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f47393fbe70c4d885f9c.md @@ -87,7 +87,7 @@ assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('tex

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -110,7 +110,7 @@ assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('tex
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f59029474c0d3dc1c8b8.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f59029474c0d3dc1c8b8.md index 11913def6d0..d5d5ae07225 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f59029474c0d3dc1c8b8.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f59029474c0d3dc1c8b8.md @@ -94,7 +94,7 @@ assert.match(document.querySelectorAll('.answer')?.[1]?.querySelector('textarea'

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -117,7 +117,7 @@ assert.match(document.querySelectorAll('.answer')?.[1]?.querySelector('textarea'
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f685797bd30df9784e8c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f685797bd30df9784e8c.md index a0038c2a41a..530ed004a8c 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f685797bd30df9784e8c.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f685797bd30df9784e8c.md @@ -88,7 +88,7 @@ assert.equal(document.querySelector('button[type="submit"]')?.textContent ?? doc

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -111,7 +111,7 @@ assert.equal(document.querySelector('button[type="submit"]')?.textContent ?? doc
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f829ac6a920ebf5797d7.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f829ac6a920ebf5797d7.md index b3a72a044f8..134dbba6923 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f829ac6a920ebf5797d7.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f829ac6a920ebf5797d7.md @@ -71,7 +71,7 @@ assert.exists(document.querySelector('footer > address'));

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -94,7 +94,7 @@ assert.exists(document.querySelector('footer > address'));
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md index 0ef0c2ab62c..51263e968e9 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f8f8bcd4370f6509078e.md @@ -72,7 +72,7 @@ assert.equal(document.querySelector('address')?.innerText, 'freeCodeCamp\nSan Fr

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -95,7 +95,7 @@ assert.equal(document.querySelector('address')?.innerText, 'freeCodeCamp\nSan Fr
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fb5018cb5b100cb2a88c.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fb5018cb5b100cb2a88c.md index 3e3789ef4a6..79e419b02a4 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fb5018cb5b100cb2a88c.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fb5018cb5b100cb2a88c.md @@ -78,7 +78,7 @@ assert.equal(document.querySelector('address')?.innerHTML?.match(/freeCodeCamp/g

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -101,7 +101,7 @@ assert.equal(document.querySelector('address')?.innerHTML?.match(/freeCodeCamp/g
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fc3707fc3310c277f5c8.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fc3707fc3310c277f5c8.md index 44b7b5fe302..bd9cd778117 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fc3707fc3310c277f5c8.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145fc3707fc3310c277f5c8.md @@ -103,7 +103,7 @@ assert.equal(display, 'block');

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -126,7 +126,7 @@ assert.equal(display, 'block');
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614796cb8086be482d60e0ac.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614796cb8086be482d60e0ac.md index 929eccea9b6..92cdc33950a 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614796cb8086be482d60e0ac.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614796cb8086be482d60e0ac.md @@ -111,7 +111,7 @@ for (let elem of document.querySelectorAll('li > a')) {

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -134,7 +134,7 @@ for (let elem of document.querySelectorAll('li > a')) {
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6147a14ef5668b5881ef2297.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6147a14ef5668b5881ef2297.md index 5637fe19c51..b8a0a4ef1c8 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6147a14ef5668b5881ef2297.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6147a14ef5668b5881ef2297.md @@ -96,7 +96,7 @@ assert.equal(cursor, 'pointer');

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -119,7 +119,7 @@ assert.equal(cursor, 'pointer');
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614878f7a412310647873015.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614878f7a412310647873015.md index 85bae6ce040..87ce056d705 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614878f7a412310647873015.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614878f7a412310647873015.md @@ -83,7 +83,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('header')?.top, '0px');

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -106,7 +106,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('header')?.top, '0px');
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487b77d4a37707073a64e5.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487b77d4a37707073a64e5.md index e67703b69d6..4a37c7926d0 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487b77d4a37707073a64e5.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487b77d4a37707073a64e5.md @@ -85,7 +85,7 @@ assert.isEmpty(new __helpers.CSSHelp(document).getStyle('main')?.paddingRight);

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -108,7 +108,7 @@ assert.isEmpty(new __helpers.CSSHelp(document).getStyle('main')?.paddingRight);
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487da611a65307e78d2c20.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487da611a65307e78d2c20.md index 4842169078d..2a5ce499460 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487da611a65307e78d2c20.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487da611a65307e78d2c20.md @@ -96,7 +96,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('nav > ul')?.height, '100%

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -119,7 +119,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('nav > ul')?.height, '100%
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487f703571b60899055cf9.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487f703571b60899055cf9.md index 36ea1585ae6..44a1cc4b8f0 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487f703571b60899055cf9.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61487f703571b60899055cf9.md @@ -101,7 +101,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('section')?.maxWidth, '600

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -124,7 +124,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('section')?.maxWidth, '600
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614880dc16070e093e29bc56.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614880dc16070e093e29bc56.md index 2a4799aed65..b636b2673ae 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614880dc16070e093e29bc56.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614880dc16070e093e29bc56.md @@ -69,7 +69,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('h2')?.paddingTop, '60px')

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -92,7 +92,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('h2')?.paddingTop, '60px')
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614883b6fa720e09fb167de9.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614883b6fa720e09fb167de9.md index c582e58b61a..08801278696 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614883b6fa720e09fb167de9.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614883b6fa720e09fb167de9.md @@ -87,7 +87,7 @@ assert.isAtLeast(Number(new __helpers.CSSHelp(document).getStyle('.info')?.paddi

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -110,7 +110,7 @@ assert.isAtLeast(Number(new __helpers.CSSHelp(document).getStyle('.info')?.paddi
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614884c1f5d6f30ab3d78cde.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614884c1f5d6f30ab3d78cde.md index fccdb4e5f47..49a724fc242 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614884c1f5d6f30ab3d78cde.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614884c1f5d6f30ab3d78cde.md @@ -167,7 +167,7 @@ assert.isAtLeast(valInPx, 13);

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -190,7 +190,7 @@ assert.isAtLeast(valInPx, 13);
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61488ecfd05e290b5712e6da.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61488ecfd05e290b5712e6da.md index bf844191fcd..98540236721 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61488ecfd05e290b5712e6da.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61488ecfd05e290b5712e6da.md @@ -80,7 +80,7 @@ assert.equal(textAlign, 'left');

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -103,7 +103,7 @@ assert.equal(textAlign, 'left');
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148d99cdc7acd0c519862cb.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148d99cdc7acd0c519862cb.md index 2b9e399c4f5..10d0be69dfe 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148d99cdc7acd0c519862cb.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148d99cdc7acd0c519862cb.md @@ -80,7 +80,7 @@ assert.equal(minWidth, '55px');

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -103,7 +103,7 @@ assert.equal(minWidth, '55px');
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148da157cc0bd0d06df5c0a.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148da157cc0bd0d06df5c0a.md index 9e2dd4e0ac0..38ae0d45dab 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148da157cc0bd0d06df5c0a.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148da157cc0bd0d06df5c0a.md @@ -83,7 +83,7 @@ document.querySelectorAll('.info label').forEach(el => {

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -106,7 +106,7 @@ document.querySelectorAll('.info label').forEach(el => {
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dc095264000dce348bf5.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dc095264000dce348bf5.md index f960d0cfe4d..5b061f4261e 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dc095264000dce348bf5.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dc095264000dce348bf5.md @@ -101,7 +101,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.question-block')?.textAl

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -124,7 +124,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.question-block')?.textAl
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dcaaf2e8750e6cb4501a.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dcaaf2e8750e6cb4501a.md index 33089161d21..d454ebf4e83 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dcaaf2e8750e6cb4501a.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dcaaf2e8750e6cb4501a.md @@ -87,7 +87,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('p')?.fontSize, '20px');

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -110,7 +110,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('p')?.fontSize, '20px');
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dd31d210990f0fb140f8.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dd31d210990f0fb140f8.md index 56e18373106..e5ac048c30c 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dd31d210990f0fb140f8.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dd31d210990f0fb140f8.md @@ -77,7 +77,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.question')?.paddingBotto

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -100,7 +100,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.question')?.paddingBotto
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148defa9c01520fb9d178a0.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148defa9c01520fb9d178a0.md index b17df2b1e63..55c9af1a49a 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148defa9c01520fb9d178a0.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148defa9c01520fb9d178a0.md @@ -83,7 +83,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.answers-list')?.padding,

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -106,7 +106,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.answers-list')?.padding,
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dfab9b54c110577de165.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dfab9b54c110577de165.md index e4a4b0d3863..47682d18ca0 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dfab9b54c110577de165.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148dfab9b54c110577de165.md @@ -115,7 +115,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('button')?.border, '3px so

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -138,7 +138,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('button')?.border, '3px so
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e0bcc13efd10f7d7a6a9.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e0bcc13efd10f7d7a6a9.md index 8973159fca3..e2dadf5875b 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e0bcc13efd10f7d7a6a9.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e0bcc13efd10f7d7a6a9.md @@ -81,7 +81,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('footer')?.justifyContent,

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -104,7 +104,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('footer')?.justifyContent,
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e161ecec9511941f8833.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e161ecec9511941f8833.md index 8b88c465fbe..7dba38b4b61 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e161ecec9511941f8833.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e161ecec9511941f8833.md @@ -95,7 +95,7 @@ assert.isAtLeast(contrast(backgroundColour, aColour), 7);

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -118,7 +118,7 @@ assert.isAtLeast(contrast(backgroundColour, aColour), 7);
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e28706b34912340fd042.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e28706b34912340fd042.md index 8956cdd5c72..965e4b094cd 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e28706b34912340fd042.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e28706b34912340fd042.md @@ -93,7 +93,7 @@ assert.isAtLeast(Number(window.getComputedStyle(document.querySelector('address'

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -116,7 +116,7 @@ assert.isAtLeast(Number(window.getComputedStyle(document.querySelector('address'
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md index 960f896231a..77acc4d7915 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md @@ -71,7 +71,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('*')?.scrollBehavior, 'smo

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -94,7 +94,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('*')?.scrollBehavior, 'smo
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e41c728f65138addf9cc.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e41c728f65138addf9cc.md index c68ecc36914..d5e1472fdf8 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e41c728f65138addf9cc.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e41c728f65138addf9cc.md @@ -87,7 +87,7 @@ assert.notExists(new __helpers.CSSHelp(document).getStyle('*'));

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -110,7 +110,7 @@ assert.notExists(new __helpers.CSSHelp(document).getStyle('*'));
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e5aeb102e3142de026a2.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e5aeb102e3142de026a2.md index 0c4bdce770b..abedb1ac6f3 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e5aeb102e3142de026a2.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e5aeb102e3142de026a2.md @@ -89,7 +89,7 @@ assert.equal(document.querySelectorAll('a')?.[2]?.getAttribute('accesskey')?.len

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -112,7 +112,7 @@ assert.equal(document.querySelectorAll('a')?.[2]?.getAttribute('accesskey')?.len
    -

    2

    +

    2

    A label element nesting an input element is required to have a @@ -408,7 +408,7 @@ address {

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -431,7 +431,7 @@ address {
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6351e7a8684bf5377c4ee7f7.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6351e7a8684bf5377c4ee7f7.md index 128aba582d6..6fd7b92940d 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6351e7a8684bf5377c4ee7f7.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6351e7a8684bf5377c4ee7f7.md @@ -111,7 +111,7 @@ assert.equal(htmlFor, document.querySelectorAll('ul.answers-list > li > label >

    HTML

    -

    1

    +

    1

    The legend element represents a caption for the content of its @@ -133,7 +133,7 @@ assert.equal(htmlFor, document.querySelectorAll('ul.answers-list > li > label >
    -

    2

    +

    2

    A label element nesting an input element is required to have a diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f331e55dfab7a896e53c3a1.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f331e55dfab7a896e53c3a1.md index d92e706db3c..8c0c891f3b3 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f331e55dfab7a896e53c3a1.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f331e55dfab7a896e53c3a1.md @@ -9,26 +9,32 @@ dashedName: step-3 يكون `title` واحد من عدة عناصر توفر معلومات إضافية غير مرئية على صفحة الويب، لكنه مفيد لمحركات البحث أو كيف يتم عرض الصفحة. -داخل عنصر `head`، قم بدمج عنصر `meta` مع سمة تسمى `charset` و تعيين قيمتها إلي `utf-8` لإخبار المتصفح كيفية ترميز الأحرف للصفحة. لاحظ أن عناصر `meta` مغلقة ذاتيا (self closing). +Inside the `head` element, nest a `meta` element with an attribute named `charset` set to the value `utf-8` to tell the browser how to encode characters for the page. # --hints-- يجب أن يكون لديك وسم `meta`. ```js -assert(code.match(//is)); +assert.match(code, //is); +``` + +The `meta` element is a void element, it should not have an end tag ``. + +```js +assert.notMatch(code, /<\/meta>/i); ``` يجب أن يحتوي وسم `meta` الخاص بك علي سمة `charset`. ```js -assert(code.match(/`. + +```js +assert.notMatch(code, /<\/link>/i); ``` لا يجب عليك تغيير عنصر `head` الحالي. تأكد من أنك لم تقم بحذف علامة الإغلاق (closing tag). ```js -assert($('head').length === 1); +const headElementCount = document.querySelectorAll('head')?.length; +assert.strictEqual(headElementCount, 1); ``` -الكود الخاص بك يجب أن يحتوي على عنصر `link` مغلق ذاتيا. +You should have one `link` element. ```js -const link = document.querySelectorAll('link'); -assert(link.length === 1); +const linkElementCount = document.querySelectorAll('link')?.length; +assert.strictEqual(linkElementCount, 1); ``` يجب أن يكون عنصر `link` الخاص بك داخل عنصر `head` الخاص بك. ```js const link = document.querySelector('head > link'); -assert(link); +assert.isNotNull(link); ``` يجب أن يكون عنصر `link` الخاص بك على سمة `rel` بقيمة `stylesheet`. ```js -const link = document.querySelector('link') -const rel = link.getAttribute('rel') -assert(rel == `stylesheet`) +const linkRelValue = document.querySelector('link')?.getAttribute('rel'); +assert.strictEqual(linkRelValue, 'stylesheet'); ``` عنصر `link` الخاص بك يجب أن يحتوي على سمة `href` بقيمة `styles.css`. ```js -const link = document.querySelector('link') -assert(link.dataset.href == 'styles.css') +const linkHrefValue = document.querySelector('link')?.dataset?.href; +assert.strictEqual(linkHrefValue, 'styles.css'); ``` diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md index ba2922e9dbc..36cb15cbe06 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md @@ -9,34 +9,42 @@ dashedName: step-66 يمكنك استخدام عنصر `hr` لعرض مقطع بين أجزاء من محتوى مختلف. -أولاً، أضف عنصر `hr` بين عنصر `p` مع فئة (class) تسمى `established` و أول عنصر `section`. لاحظ أن عناصر `hr` مغلقة ذاتيا (self closing). +First, add an `hr` element between the `p` element with the class `established` and the first `section` element. # --hints-- -يجب عليك إضافة عنصر `hr`. عناصر `hr` مغلقة ذاتيا. +يجب عليك إضافة عنصر `hr`. ```js -assert(code.match(//i)); -assert(!code.match(/<\/hr>/i)); +assert.match(code, //i); ``` -لا تغيير عنصرك `p` الموجود مع فئة (class) تسمى `established`. +The `hr` element is a void element, it should not have an end tag ``. ```js -assert($('p.established').length === 1); +assert.notMatch(code, /<\/hr>/i); ``` -لا يجب عليك تغيير عنصر `main` الحالي. +You should not change your existing `p` element with the class `established`. ```js -assert($('main').length === 1); +const pElementCount = document.querySelectorAll('p.established')?.length; +assert.strictEqual(pElementCount, 1); ``` -يجب أن يكون عنصرك `hr` بين عنصرك `p` وعنصرك `section`. +You should not change your existing `main` element. ```js -assert($('hr')[0].previousElementSibling.tagName === 'P'); -assert($('hr')[0].nextElementSibling.tagName === 'SECTION'); +const mainElementCount = document.querySelectorAll('main')?.length; +assert.strictEqual(mainElementCount, 1); +``` + +Your `hr` element should be between your `p` element and your `section` element. + +```js +const hrElement = document.querySelector('hr'); +assert.strictEqual(hrElement?.previousElementSibling?.tagName, 'P'); +assert.strictEqual(hrElement?.nextElementSibling?.tagName, 'SECTION'); ``` # --seed-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f46e8284aae155c83015dee.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f46e8284aae155c83015dee.md index 16ef45749f4..9db6ae85e96 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f46e8284aae155c83015dee.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f46e8284aae155c83015dee.md @@ -13,22 +13,31 @@ dashedName: step-88 # --hints-- -يجب أن يكون لديك وسم ``. تذكر أن عناصر `img` هي self-closing. +You should have an `` tag. ```js -assert($('img').length === 1); +const imageElementCount = document.querySelectorAll('img')?.length; +assert.strictEqual(imageElementCount, 1); ``` -يجب أن يكون لعنصر `img` الخاص بك سمة `src` بقيمة `https://cdn.freecodecamp.org/curriculum/css-cafe/coffee.jpg`. +The `img` element is a void element, it should not have an end tag ``. ```js -assert($('img').attr('src') === 'https://cdn.freecodecamp.org/curriculum/css-cafe/coffee.jpg'); +assert.notMatch(code, /<\/img>/i); ``` -يجب أن يكون لعنصر `img` الخاص بك سمة `alt` بقيمة `coffee icon`. +Your `img` element should have a `src` attribute, with the value `"https://cdn.freecodecamp.org/curriculum/css-cafe/coffee.jpg"`. ```js -assert($('img').attr('alt').match(/coffee icon/i)); +const imageSrcValue = document.querySelector('img')?.getAttribute('src'); +assert.strictEqual(imageSrcValue, 'https://cdn.freecodecamp.org/curriculum/css-cafe/coffee.jpg'); +``` + +Your `img` element should have an `alt` attribute, with the value `"coffee icon"`. + +```js +const imageAltValue = document.querySelector('img')?.getAttribute('alt'); +assert.match(imageAltValue, /coffee icon/i); ``` # --seed-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fb.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fb.md index 820a1345818..5e5135f9eb7 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fb.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98fb.md @@ -7,7 +7,7 @@ dashedName: step-51 # --description-- -غالباً ما تتغير التحولات المتداخلة تدريجياً من لون إلى آخر. يمكنك أن تجعل التغيير خطاً صلباً مثل: +غالباً ما تتغير التحولات المتداخلة تدريجياً من لون إلى آخر. When a more abrupt change is required, the transition can be made with a hard stop like this: ```css linear-gradient( diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md index 67c08412cb3..f33b86d905b 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md @@ -7,7 +7,7 @@ dashedName: step-7 # --description-- -يمكنك إضافة صور إلى موقع الويب الخاص بك باستخدام عنصر `img`. `img` عناصر تحتوي على opening tag بدون closing tag. A tag for an element without a closing tag is known as a void element. +يمكنك إضافة صور إلى موقع الويب الخاص بك باستخدام عنصر `img`. `img` عناصر تحتوي على opening tag بدون closing tag. An element without a closing tag is known as a void element. أضف عنصر `img` تحت عنصر `p`. في هذه المرحلة، لن تظهر أي صورة في المتصفح. diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md index a6bc395ad35..3af6beeb221 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ceb843412c74edee27a79.md @@ -11,7 +11,7 @@ Now you will learn a CSS trick to draw triangles. This will be used to draw ears on the cat. -Using a class selector, give the `.cat-right-ear` element `height` and `width` properties set to `100px`. Set the `background-color` to white. Set the left and right borders to `35px solid blue`. Set the top and bottom borders to `35px solid red`. +Using a class selector, give the `.cat-right-ear` element `height` and `width` properties set to `100px`. Set the `background-color` to `white`. Set the left and right borders to `35px solid blue`. Set the top and bottom borders to `35px solid red`. # --hints-- diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6476f7a4827bcc61682f2347.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6476f7a4827bcc61682f2347.md index d2839cd2028..b1fb723bd61 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6476f7a4827bcc61682f2347.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6476f7a4827bcc61682f2347.md @@ -9,7 +9,7 @@ dashedName: step-11 The next position property is `absolute`. When you use the `absolute` value for your `position` property, the element is taken out of the normal flow of the document, and then its position is determined by the `top`, `right`, `bottom`, and `left` properties. -Set the position property of your `.cat-head` element to `absolute`, then set `top` and `left` properties to any positive pixel value. +Set the `position` property of your `.cat-head` element to `absolute`, then set `top` and `left` properties to any positive pixel value. diff --git a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6676a8a8d9861319ee901a90.md b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6676a8a8d9861319ee901a90.md index 97c2bd562fb..4d920f5cc8b 100644 --- a/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6676a8a8d9861319ee901a90.md +++ b/curriculum/challenges/arabic/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/6676a8a8d9861319ee901a90.md @@ -16,7 +16,7 @@ Using a class selector, give the `.cat-left-ear` element a left and right border # --hints-- -Your `.cat-right-ear` selector not should have a `height` property. +Your `.cat-right-ear` selector should not have a `height` property. ```js assert(!new __helpers.CSSHelp(document).getStyle('.cat-right-ear')?.height) diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md index b030cec1fce..619bf72c8d2 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655485321913feabbc5f00f8.md @@ -651,7 +651,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md index ce7bf7f4b2f..0cc6a15fd0e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555d458687cb3b357834df9.md @@ -657,7 +657,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md index 898f6ec2d06..13ea8711659 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555dd138e70cae6b546966d.md @@ -654,7 +654,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md index ed9c0b940de..33c70e16516 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555de565387a2efe90a6ccc.md @@ -662,7 +662,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md index 69b56cbdc2e..a4315a1aea1 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e04aeb225bfbae237344.md @@ -643,7 +643,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md index 0fdbc11d3da..58cc51c9f19 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e0bfe4d69904410f7cd3.md @@ -661,7 +661,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md index 017038df5b1..229bd67f64e 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e57d3e6d9d221c4735be.md @@ -651,7 +651,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md index c01b6fdac92..7e78d82537a 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6555e6cec786da2aadc11ea0.md @@ -667,7 +667,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md index 644230ea84a..13a4244b187 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572399a8e16d50bc2c1ff3.md @@ -667,7 +667,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md index f71d9047700..9f1dd78615b 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655724bac464795a0ad91082.md @@ -643,7 +643,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md index e29586aeab4..189627c3d5d 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655729e68e49b277a6b448bd.md @@ -11,7 +11,7 @@ Now that you've created the `resetButton`, you need to assign it an `id` and `ar For example, `element.id` would set an `id` attribute, and `element.ariaLabel` would set an `aria-label` attribute. Both of them accept their values as a string. -Set the `id` attribute of `resetButton` to `"reset"` and its `"aria-label"` attribute to `"Reset playlist"`. +Set the `id` attribute of the `resetButton` element to `"reset"` and its `aria-label` attribute to `"Reset playlist"`. # --hints-- diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md index e9360d8add4..825137685ac 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572bb34a7e488224b937fc.md @@ -671,7 +671,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md index cedb5106ec4..d8f3cb71be0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65572e5aaf022790fb4a81b1.md @@ -655,7 +655,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md index 72f13bb0659..7e5f09a6132 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/65573a97c59ddbbf028ca95e.md @@ -667,7 +667,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md index 17ab3bdd7f4..36972c0a112 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/6557421eb6a7a0f0500e3106.md @@ -641,7 +641,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md index 14aceb8006a..6389c2cb538 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4c8f636d9675953a0388.md @@ -624,7 +624,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md index bb8b8090c1c..daad28850f0 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-basic-string-and-array-methods-by-building-a-music-player/655b4dad1d38ff7cdd65cbfe.md @@ -665,7 +665,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); @@ -1451,7 +1451,7 @@ const playNextSong = () => { } }; -const playPreviousSong = () =>{ +const playPreviousSong = () => { if (userData?.currentSong === null) return; else { const currentSongIndex = getCurrentSongIndex(); diff --git a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md index db04fc12f89..0a6619e6ffc 100644 --- a/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md +++ b/curriculum/challenges/arabic/15-javascript-algorithms-and-data-structures-22/learn-form-validation-by-building-a-calorie-counter/63c9e45519caf31b987fbb5f.md @@ -11,13 +11,7 @@ Your `getCaloriesFromInputs` function will set the global error flag to `true` i # --hints-- -Your `calculateCalories` function should have an `if` statement. - -```js -assert.match(calculateCalories.toString(), /if\s*\(/); -``` - -Your `if` statement should check the truthiness of the `isError` variable. +Your `calculateCalories` function should have an `if` statement that checks the truthiness of the `isError` variable. ```js assert.match(calculateCalories.toString(), /if\s*\(\s*isError\s*\)/); @@ -29,6 +23,12 @@ Your `if` statement should use `return` to end the function execution. assert.match(calculateCalories.toString(), /if\s*\(\s*isError\s*\)\s*\{?\s*return\s*;?\s*\}?\s*/); ``` +Your `if` statement should be placed after the last `getCaloriesFromInputs` function call. + +```js +assert.match(code, /if\s*\(\s*isError\s*\)\s*\{?\s*return\s*;?\s*\}?\s*\}\s*function\s+/); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md new file mode 100644 index 00000000000..84fa81be0c8 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-a.md @@ -0,0 +1,60 @@ +--- +id: 6571b2fccc1de61d7b4dd37f +title: Introduction to Flexbox Lesson A +challengeType: 15 +dashedName: introduction-flexbox-lesson-a +--- + +# --description-- + +## Before we get started + +Flexbox layouts can get a little complicated. In a previous lesson, you learned how to inspect and debug things using your browser’s developer tools. Those tools will be crucial for you in the following lessons. If something isn’t behaving the way you expect, inspecting it in the developer tools should be your first step every time. + +Flexbox isn’t necessarily any more difficult than the other concepts that we’ve covered so far, but it does have a few more moving parts. It is going to be somewhat difficult to make use of any of the things you’re learning in these first lessons until you get to the end and can put it all together. As we go, do yourself a favor and play with all of the code examples. + +You will almost definitely need to come back and reference these lessons (or a couple of the resources we share with you) when you get to the assignments at the end of the section, but if you take your time and experiment with all the code examples we provide, you’ll know better where to look when that time comes. + +## Let’s flex + +Flexbox is a way to arrange items into rows or columns. These items will flex (i.e. grow or shrink) based on some simple rules that you can define. To get started, let’s look at a simple demonstration. + +> We’ve embedded a lot of interactive examples in these lessons. Take your time to experiment with them as you go to cement the concepts in your mind! + + + +We’ll get into exactly what’s going on here soon enough. But for now, let’s uncomment the two flex related CSS declarations in the above Codepen by removing the `/*` and `*/` tags surrounding them, then check out the result. + +> Comments prevent the browser from interpreting lines as code, and are wrapped between specific tags. CSS uses `/*` as an opening comment tag and `*/` as a closing comment tag, while HTML and JavaScript have their own syntax. Commented out lines of code can be re-enabled simply by removing the comment tags surrounding the code. + +All 3 divs should now be arranged horizontally. If you resize the results frame with the `1x`, `.5x` and `.25x` buttons you’ll also see that the `div` elements will "flex". They will fill the available area and will each have equal width. + +If you add another `div` to the HTML, inside of `.flex-container`, it will show up alongside the others, and everything will flex to fit within the available area. + +> If it’s hard to see what's going on in the small embedded CodePen, feel free to click the "Edit on CodePen" or "Fork on CodePen" button. This will bring the example into a full-sized environment. Some of the later examples might especially benefit from doing this. + +# --question-- + +## --text-- + +What happens when the two flex related CSS declarations in the CodePen are uncommented? + +## --answers-- + +The `div` elements become hidden from view, losing their visibility within the container. + +--- + +All 3 `div` elements are arranged horizontally, and they flex to fill the available area with equal width. + +--- + +Each `div` element enlarges and covers the entire container, overlapping each other. + +--- + +The `div` elements align vertically in a single column, ignoring the flex-related CSS declarations. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md new file mode 100644 index 00000000000..822207e3678 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-b.md @@ -0,0 +1,40 @@ +--- +id: 6571b2fecc1de61d7b4dd380 +title: Introduction to Flexbox Lesson B +challengeType: 15 +dashedName: introduction-flexbox-lesson-b +--- + +# --description-- + +As you’ve seen, flexbox is not just a single CSS property but a whole toolbox of properties that you can use to put things where you need them. Some of these properties belong on the flex container, while some go on the flex items. This is a simple yet important concept. + +A flex container is any element that has `display: flex` on it. A flex item is any element that lives directly inside of a flex container. + +An outer rectangle representing a flex container encompassing three smaller inner rectangles lined up side by side, each representing a flex item. + +# --question-- + +## --text-- + +What’s the difference between a flex container and a flex item? + +## --answers-- + +Flex containers are elements with `display: flex`, while flex items are elements within flex containers. + +--- + +Flex containers are elements within flex items, while flex items define the overall layout. + +--- + +Flex containers are elements using flexbox, and flex items are inline elements. + +--- + +Flex containers are elements that define the layout structure, while flex items control the overall page design. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md new file mode 100644 index 00000000000..1bf56cd2bbc --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-c.md @@ -0,0 +1,44 @@ +--- +id: 6571b2fecc1de61d7b4dd381 +title: Introduction to Flexbox Lesson C +challengeType: 15 +dashedName: introduction-flexbox-lesson-c +--- + +# --description-- + +Somewhat confusingly, any element can be both a flex container and a flex item. Said another way, you can also put `display: flex` on a flex item and then use flexbox to arrange its children. + +a flex container that has multiple flex items, within those flex items are nested flex items as well. Making the parent of those nested flex items also a flex container. + +Creating and nesting multiple flex containers and items is the primary way you will be building up complex layouts. The following image was achieved using only flexbox to arrange, size, and place the various elements. Flexbox is a very powerful tool. + +a complex layout of flex items and flex containers. There are multiple flex containers nested into each other, thus making them flex items as well + +Certainly, the image features a representation of a CSS Flexbox layout with nested flex containers. The outer container is denoted as "ALSO a flex container" highlighted in blue, and within it is another container marked as "with flex items" in red. Inside the red container, there are three items labeled as "flex items" in peach. This demonstrates that a flex container can be nested within another flex container and contain its own flex items, showcasing the recursive nature of Flexbox layout structures. + +# --question-- + +## --text-- + +Which CSS property is applied to elements to make them flex containers? + +## --answers-- + +`align-items` + +--- + +`display: flex` + +--- + +`justify-content` + +--- + +`flex` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md new file mode 100644 index 00000000000..f7e458c52d3 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-d.md @@ -0,0 +1,36 @@ +--- +id: 6571b2ffcc1de61d7b4dd382 +title: Introduction to Flexbox Lesson D +challengeType: 15 +dashedName: introduction-flexbox-lesson-d +--- + +# --description-- + +Now that you have a basic understanding of how flexbox works, what is the primairy role of a flex item in a `flexbox` layout? Try and answer the question below. + +# --question-- + +## --text-- + +What role does a flex item play within a flex container? + +## --answers-- + +Flex items define the overall layout structure. + +--- + +Flex items set the background colors of flex containers. + +--- + +Flex items allow the flex container to resize based on content. + +--- + +Flex items are elements that reside directly within a flex container. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md new file mode 100644 index 00000000000..d498dc9ca1d --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-e.md @@ -0,0 +1,46 @@ +--- +id: 6571b300cc1de61d7b4dd383 +title: Introduction to Flexbox Lesson E +challengeType: 15 +dashedName: introduction-flexbox-lesson-e +--- + +# --description-- + +The `flex` declaration is actually a shorthand for 3 properties that you can set on a flex item. These properties affect how flex items size themselves within their container. You've seen some shorthand properties before, but you haven't officially defined them yet. + +> Shorthand properties are CSS properties that let you set the values of multiple other CSS properties simultaneously. Using a shorthand property, you can write more concise (and often more readable) stylesheets, saving time and energy. + +In this case, `flex` is actually a shorthand for `flex-grow`, `flex-shrink` and `flex-basis`. + +CSS code setting the flex property to 1 for a div element. + +In the above screenshot, `flex: 1` equates to: `flex-grow: 1`, `flex-shrink: 1`, `flex-basis: 0`. + +Very often, you see the flex shorthand defined with only one value. In that case, that value is applied to `flex-grow`. So when you put `flex: 1` on our divs, you were actually specifying a shorthand of `flex: 1 1 0`. + +# --question-- + +## --text-- + +Which properties are set by the `flex` shorthand? + +## --answers-- + +`flex-grow`, `flex-shrink`, and `flex` + +--- + +`flex-basis`, `flex-wrap`, and `flex-direction` + +--- + +`flex-grow`, `flex-shrink`, and `flex-basis` + +--- + +`flex-direction`, `flex`, and `flex-wrap` + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md new file mode 100644 index 00000000000..4eaf7c90e6a --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-f.md @@ -0,0 +1,40 @@ +--- +id: 6571b300cc1de61d7b4dd384 +title: Introduction to Flexbox Lesson F +challengeType: 15 +dashedName: introduction-flexbox-lesson-f +--- + +# --description-- + +`flex-grow` expects a single number as its value, and that number is used as the flex-item's "growth factor". When you applied `flex: 1` to every div inside our container, you were telling every div to grow the same amount. The result of this is that every div ends up the exact same size. If you instead add `flex: 2` to just one of the divs, then that div would grow to 2x the size of the others. + +In the following example the `flex` shorthand has values for `flex-shrink` and `flex-basis` specified with their default values. + + + +# --question-- + +## --text-- + +What does setting `flex: 2` to one specific div inside a flex container, while other divs have `flex: 1`, imply? + +## --answers-- + +The container will shrink to accommodate the larger div. + +--- + +All divs will retain the same size due to conflicting `flex` values. + +--- + +The specific div will grow to be twice the size of the others. + +--- + +All divs will shrink equally to adjust to the new `flex` values. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md new file mode 100644 index 00000000000..ec641fb8038 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-g.md @@ -0,0 +1,45 @@ +--- +id: 6571c34568e4b3b17d3957f8 +title: Introduction to Flexbox Lesson G +challengeType: 15 +dashedName: introduction-flexbox-lesson-g +--- + +# --description-- + +`flex-shrink` is similar to `flex-grow`, but sets the "shrink factor" of a flex item. `flex-shrink` only ends up being applied if the size of all flex items is larger than their parent container. For example, if our 3 divs from above had a width declaration like: `width: 100px`, and `.flex-container` was smaller than `300px`, our divs would have to shrink to fit. + +The default shrink factor is `flex-shrink: 1`, which means all items will shrink evenly. If you do not want an item to shrink then you can specify `flex-shrink: 0;`. You can also specify higher numbers to make certain items shrink at a higher rate than normal. + +Here's an example. If you shrink your browser window you'll notice that `.two` never gets smaller than the given width of `250px`, even though the `flex-grow` rule would otherwise specify that each element should be equally sized. + + + +An important implication to notice here is that when you specify `flex-grow` or `flex-shrink`, flex items do not necessarily respect your given values for `width`. In the above example, all 3 divs are given a `width` of `250px`, but when their parent is big enough, they grow to fill it. Likewise, when the parent is too small, the default behavior is for them to shrink to fit. This is not a bug, but it could be confusing behavior if you aren’t expecting it. + +# --question-- + +## --text-- + +What is the default behavior of `flex-shrink` when applied to flex items? + +## --answers-- + +It prevents any item from shrinking. + +--- + +It makes all items shrink at an equal rate. + +--- + +It causes only specific items to shrink. + +--- + +It enlarges the items' sizes equally. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md new file mode 100644 index 00000000000..7f370e28917 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-h.md @@ -0,0 +1,41 @@ +--- +id: 6571c34668e4b3b17d3957f9 +title: Introduction to Flexbox Lesson H +challengeType: 15 +dashedName: introduction-flexbox-lesson-h +--- + +# --description-- + +No matter which direction you're using, you need to think of your flex-containers as having 2 axes: the main axis and the cross axis. It is the direction of these axes that changes when the `flex-direction` is changed. In most circumstances, `flex-direction: row` puts the main axis horizontal (left-to-right), and `column` puts the main axis vertical (top-to-bottom). + +In other words, in our very first example, you put `display: flex` on a div and it arranged its children horizontally. This is a demonstration of `flex-direction: row`, the default setting. The following example is very similar. If you uncomment the line that says `flex-direction: column`, those divs will stack vertically. + + + +# --question-- + +## --text-- + +Which CSS property changes the main axis direction in flex containers to arrange items from top to bottom? + +## --answers-- + +`align-items` + +--- + +`flex-flow` + +--- + +`flex-direction` + +--- + +`justify-content` + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md new file mode 100644 index 00000000000..af3b6bc7af9 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-i.md @@ -0,0 +1,45 @@ +--- +id: 6571c34768e4b3b17d3957fa +title: Introduction to Flexbox Lesson I +challengeType: 15 +dashedName: introduction-flexbox-lesson-i +--- + +# --description-- + + + +One thing to note is that in this example, `flex-direction: column` would not work as expected if you used the shorthand `flex: 1`. Try it out now (i.e. go change the flex value on the `flex: 1 1 auto;` line). Can you figure out why it does not work if `flex: 1` is used? The divs collapse, even though they clearly have a height defined there. + +The reason for this is that the flex shorthand expands `flex-basis` to `0`, which means that all `flex-growing` and `flex-shrinking` would begin their calculations from 0. Empty divs by default have 0 height, so for our flex items to fill up the height of their container, they don't actually need to have any height at all. + +The example above fixed this by specifying `flex: 1 1 auto`, telling the flex items to default to their given height. You could also have fixed it by putting a `height` on the parent `.flex-container`, or by using `flex-grow: 1` instead of the shorthand. + +Another detail to notice: when you changed the `flex-direction` to `column`, `flex-basis` refers to `height` instead of `width`. Given the context this may be obvious, but it's something to be aware of. + +# --question-- + +## --text-- + +Why does using `flex: 1` shorthand with `flex-direction: column` lead to collapsed divs in the example described? + +## --answers-- + +The `flex` shorthand defaults `flex-basis` to 0, disregarding the defined height of the divs. + +--- + +The `flex` shorthand overrides the specified `flex-direction`, causing collapsing. + +--- + +`flex: 1` only works in a row-based layout, not in a column-based one. + +--- + +The `flex-basis` property becomes fixed to the width, ignoring the height in column layout. + + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md new file mode 100644 index 00000000000..d2ad72a1ea2 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-j.md @@ -0,0 +1,52 @@ +--- +id: 6571c34868e4b3b17d3957fb +title: Introduction to Flexbox Lesson J +challengeType: 15 +dashedName: introduction-flexbox-lesson-j +--- + +# --description-- + +Let's look at an example. + + + +You should be able to predict what happens if you put `flex: 1` on the `.item` by now. Give it a shot before you move on! + +Adding `flex: 1` to `.item` makes each of the items grow to fill the available space, but what if you wanted them to stay the same width, but distribute themselves differently inside the container? You can do this! + +Remove `flex: 1` from `.item` and add `justify-content: space-between` to `.container`. Doing so should give you something like this: + +Three small boxes within a much larger rectangle. The boxes are arranged in a single row, one close to the left edge of the container, one close to the right edge of the container, and the last directly in the middle of the container, placing as much space as possible between each box. + +`justify-content` aligns items across the **main axis**. There are a few values that you can use here. You'll learn the rest of them in the reading assignments, but for now try changing it to center, which should center the boxes along the main axis. + +# --question-- + +## --assignment-- + +Before moving on to the next lesson, see what is possible with the `justify-content` property. Read this [interactive article on MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content) and play around with the different values of `justify-content` on the example. + +## --text-- + +How does applying `justify-content: space-between` to a flex container affect the positioning of its items? + +## --answers-- + +It evenly distributes space between items, pushing the first and last items to the edges. + +--- + +It centers all items within the container. + +--- + +It causes the items to grow to fill available space. + +--- + +It aligns items to the left side while leaving excessive space on the right side. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md new file mode 100644 index 00000000000..d3137b0af56 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-introduction-to-flexbox/introduction-flexbox-lesson-k.md @@ -0,0 +1,48 @@ +--- +id: 6597b43d854b3fa8e35d66d7 +title: Introduction to Flexbox Lesson K +challengeType: 15 +dashedName: introduction-flexbox-lesson-k +--- + +# --description-- + + + +To change the placement of items along the cross axis use `align-items`. Try getting the boxes to the center of the container by adding `align-items: center` to `.container`. The desired result looks like this: + +three blue squares centered in the middle of the flex container + +Because `justify-content` and `align-items` are based on the main and cross axis of your container, their behavior changes when you change the flex-direction of a flex-container. For example, when you change `flex-direction` to `column`, `justify-content` aligns vertically and `align-items` aligns horizontally. The most common behavior, however, is the default, i.e. `justify-content` aligns items horizontally (because the main axis defaults to horizontal), and `align-items` aligns them vertically. One of the biggest sticking points that beginners have with flexbox is confusion when this behavior changes. + +# --question-- + +## --assignment-- + +Before moving on to the next lesson, see if you can figure out how `align-items` behaves when you change the `flex-direction` property to `column`. + +## --text-- + +When changing the `flex-direction` property to `column` in a flex container, how does `align-items` behave in relation to the flex items? + +## --answers-- + +It distributes space between items evenly. + +--- + +It aligns items horizontally along the main axis. + +--- + +It centers items vertically along the cross axis. + +--- + +It aligns items to the start of the container along the cross axis. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md new file mode 100644 index 00000000000..d7f18cd25b4 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-a.md @@ -0,0 +1,44 @@ +--- +id: 661e27508602567c118451d1 +title: Learn Arrays and Loops Lesson A +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-a +--- + +# --description-- + +Strings and numbers may be our building blocks, but as your scripts get more complex, you're going to need a way to deal with large quantities of them. Luckily, JavaScript has a couple of data types that are used for just that. An Array is an ordered collection of items (Strings, numbers, or other things). + +Arrays are a way to store multiple values in a single variable. They are a special type of object that has a length property and a series of numbered properties. Each numbered property is called an element, and each element can store a value of any type. + +An Example of an array is: + +```javascript +const fruits = ['apple', 'banana', 'orange']; +``` + +# --question-- + +## --text-- + +What is an array in JavaScript? + +## --answers-- + +A function that stores multiple strings and numbers. + +--- + +A data type used exclusively for numerical operations. + +--- + +An ordered collection of items that can store values of any type, including strings and numbers. + +--- + +A variable that can only store string values. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md new file mode 100644 index 00000000000..b236859b448 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-b.md @@ -0,0 +1,47 @@ +--- +id: 661e27568602567c118451d2 +title: Learn Arrays and Loops Lesson B +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-b +--- + +# --description-- + +To access the elements of an array, you can use the index number. The index number starts from 0, so the first element of an array is at index 0, the second element is at index 1, and so on. + +For example, to access the first element of the `fruits` array, you can use the following code: + +```javascript +const fruits = ['apple', 'banana', 'orange']; +console.log(fruits[0]); // Output: apple +console.log(fruits[2]); // Output: orange +``` + +If the index is out of range, JavaScript will return `undefined`. Meaning that if you try to access `fruits[3]` in the above example, it will return `undefined`. + + +# --question-- + +## --text-- + +What is the element at the fourth index of the `fruits` array? + +## --answers-- + +`orange` + +--- + +`apple` + +--- + +`pineapple` + +--- + +`undefined` + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md new file mode 100644 index 00000000000..77689a7e3be --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-c.md @@ -0,0 +1,64 @@ +--- +id: 661e27578602567c118451d3 +title: Learn Arrays and Loops Lesson C +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-c +--- + +# --description-- + +One of the most common ways to add a new element to an array is by using the `push()` method. The `push()` method adds one or more elements to the end of an array and returns the new length of the array. + +For example, to add a new element to the `pet` array, you can use the following code: + +```javascript +const pet = ['cat', 'dog', 'bunny']; +pet.push('parrot'); +console.log(pet); // Output: ['cat', 'dog', 'bunny', 'parrot'] +``` + +To remove the last element of an array, you can use the `pop()` method. The `pop()` method removes the last element from an array and returns that element. + +For example, to remove the last element from the `pet` array, you can use the following code: + +```javascript +const pet = ['cat', 'dog', 'tiger']; +pet.pop(); +console.log(pet); // Output: ['cat', 'dog'] +``` + + +# --question-- + +## --text-- + +Given the following JavaScript code, what will be the output after executing the code snippet? + +```javascript +const animals = ['deer', 'whale', 'frog']; +animals.push('shark', 'bear'); +const removed = animals.pop(); + +console.log(animals); +console.log(removed); +``` + +## --answers-- + +`['deer', 'whale', 'frog', 'shark', 'bear']` and `'bear'` + +--- + +`['deer', 'whale', 'frog', 'shark']` and `'bear'` + +--- + +`['deer', 'whale', 'frog', 'shark', 'bear']` and `null` + +--- + +`['deer', 'whale', 'frog', 'shark', 'bear']` and `['deer', 'whale', 'frog', 'shark']` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md new file mode 100644 index 00000000000..3954469401c --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-d.md @@ -0,0 +1,67 @@ +--- +id: 661e27588602567c118451d4 +title: Learn Arrays and Loops Lesson D +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-d +--- + +# --description-- + +One of the more complex methods used with arrays are the `splice()` and `slice()` methods. The `splice()` method changes the contents of an array by removing or replacing an element in the array. The `slice()` method returns a shallow copy of a portion of an array into a new array object selected from `begin` to `end` (`end` not included). The original array will not be modified. + +For example, to remove the second element from the `characters` array, you can use the following code: + +```javascript +const characters = ['Harry', 'Ron', 'Hermione']; +characters.splice(1, 1); +console.log(characters); // Output: ['Harry', 'Hermione'] +``` + +The above element removes the second element from the `characters` array. The `splice()` method takes two arguments: the index of the element to remove and the number of elements to remove. + + +To create a new array with the second element from the `character` array, you can use the following code: + +```javascript +const characters = ['Harry', 'Ron', 'Hermione']; +const newCharacters = characters.slice(1, 2); +console.log(newCharacters); // Output: ['Ron'] +``` + +The above code creates a new array `newCharacters` with the second element from the `characters` array. The `slice()` method takes two arguments: the index of the element to start the slice and the index of the element to end the slice (not included). + +# --question-- + +## --text-- + +What will be the output of the following JavaScript code snippet? + + +```javascript +const numbers = [10, 20, 30, 40, 50]; +numbers.splice(3, 1); +const slicedNumbers = numbers.slice(2, 4); + +console.log(numbers); +console.log(slicedNumbers); +``` + +## --answers-- + +`numbers` output: `[10, 20, 30, 50]` and `slicedNumbers` output: `[30, 50]` + +--- + +`numbers` output: `[10, 20, 30, 40]` and `slicedNumbers` output: `[30, 40]` + +--- + +`numbers` output: `[10, 20, 50, 40]` and `slicedNumbers` output: `[20, 50]` + +--- + +`numbers` output: `[10, 20, 30, 50, 40]` and `slicedNumbers` output: `[30, 50]` + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md new file mode 100644 index 00000000000..28382318c19 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-e.md @@ -0,0 +1,63 @@ +--- +id: 661e27588602567c118451d5 +title: Learn Arrays and Loops Lesson E +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-e +--- + +# --description-- + +Now that you have a basic understanding about arrays, let's talk about loops. Loops are used to execute a block of code multiple times. One of those loops is the `while` loop. The `while` loop executes a block of code as long as the condition is true. The syntax of the `while` loop is as follows: + +```javascript +while (condition) { + // code block to be executed +} +``` + +For example, the following code snippet prints the numbers from 1 to 5: + +```javascript +let i = 1; +while (i <= 5) { + console.log(i); + i++; +} +``` + +The above code snippet initializes a variable `i` with the value `1`. The `while` loop executes the block of code as long as the value of `i` is less than or equal to `5`. The value of `i` is incremented by `1` in each iteration. + +# --question-- + +## --text-- + +What will be the output of the following JavaScript code snippet? + +```javascript +let i = 5; +while (i >= 0) { + console.log(i); + i--; +} +``` + + +## --answers-- + +`5`, `4`, `3`, `2`, `1`, `0` + +--- + +`5`, `4`, `3`, `2`, `1` + +--- + +`5`, `4`, `3`, `2`, `1`, `0`, `-1` + +--- + +`1`, `2`, `3`, `4`, `5` + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md new file mode 100644 index 00000000000..b5908948394 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-f.md @@ -0,0 +1,82 @@ +--- +id: 661e27598602567c118451d6 +title: Learn Arrays and Loops Lesson F +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-f +--- + +# --description-- + +The `for` loop is another type of loop that is used to execute a block of code multiple times. The `for` loop is used when the number of iterations is known. The syntax of the `for` loop is as follows: + +```javascript +for (initialization; condition; increment/decrement) { + // code block to be executed +} +``` + +For example, the following code snippet prints the numbers from 1 to 5: + +```javascript +for (let i = 1; i <= 5; i++) { + console.log(i); +} +``` + +To iterate over an array using a `for` loop, you can use the array's length property. For example, the following code snippet prints the elements of an array: + +```javascript +const arr = [1, 2, 3, 4, 5]; +for (let i = 0; i < arr.length; i++) { + console.log(arr[i]); +} +``` + +# --question-- + +## --text-- + +What will be the output of the following JavaScript code snippet? + +```javascript +const items = ['apple', 'banana', 'cherry', 'date']; +for (let i = 1; i < items.length; i++) { + console.log(items[i]); +} +``` + +## --answers-- + +```bash +apple +banana +cherry +date +``` + +--- + +```bash +banana +cherry +``` + +--- + +```bash +apple +banana +cherry +``` + +--- + +```bash +banana +cherry +date +``` + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md new file mode 100644 index 00000000000..f73a588c036 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-g.md @@ -0,0 +1,57 @@ +--- +id: 661e275a8602567c118451d7 +title: Learn Arrays and Loops Lesson G +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-g +--- + +# --description-- + +Now that you know about the most common ways to iterate over values and arrays, there are a few more ways to iterate over arrays. Arrays have a built-in method called `map()`, which is used to create a new array by applying a function to each element of the original array. The `map()` method does not change the original array. The syntax of the `map()` method is as follows: + +```javascript +const array = [1, 2, 3, 4, 5]; + +const newArray = array.map((arrayValue) => { + return arrayValue * 2; +}); + +console.log(newArray); // Output: [2, 4, 6, 8, 10] +``` + +The `map()` method creates a new array by applying the function `(arrayValue) => { return arrayValue * 2;` to each element of the original array. This is particularly useful when you want to transform the elements of an array without changing the original array. + +# --question-- + +## --text-- + +What will be the output of the following JavaScript code snippet? + +```javascript +const numbers = [1, 2, 3, 4, 5]; +const newNumbers = numbers.map((number) => { + return number * 3; +}); + +console.log(newNumbers); +``` + +## --answers-- + +`[1, 2, 3, 4, 5]` + +--- + +`[3, 6, 9, 12, 15]` + +--- + +`[1, 3, 5, 7, 9]` + +--- + +`[3, 6, 9, 12, 15, 18]` + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md new file mode 100644 index 00000000000..9c024e353e5 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-arrays-and-loops/learn-arrays-and-loops-lesson-h.md @@ -0,0 +1,58 @@ +--- +id: 661e275a8602567c118451d8 +title: Learn Arrays and Loops Lesson H +challengeType: 15 +dashedName: learn-arrays-and-loops-lesson-h +--- + +# --description-- + +One other useful array method is the `filter()` method. The `filter()` method creates a new array with all elements that pass the test implemented by the provided function. The syntax of the `filter()` method is as follows: + +```javascript +const numbers = [2, 5, 6, 1, 9, -1] + +const newNumbers = numbers.filter((number) => { + return number > 2; +}); + +console.log(newNumbers); // Output: [5, 6, 9] +``` + +The `filter()` method creates a new array with all elements that are greater than 2. The `filter()` method does not change the original array. + +# --question-- + +## --text-- + +What will be the output of the following JavaScript code snippet? + +```javascript +const strings = ['apple', 'banana', 'cherry', 'orange', 'kiwi', 'mango']; +const newStrings = strings.filter((string) => { + return string.length > 5; +}); + +console.log(newStrings); +``` + +## --answers-- + +`['apple', 'banana', 'cherry', 'orange', 'kiwi', 'mango']` + +--- + +`['apple', 'banana', 'cherry', 'orange', 'kiwi']` + +--- + +`['banana, 'cherry', 'orange']` + +--- + +`['apple', 'banana', 'cherry', 'orange', 'kiwi']` + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md new file mode 100644 index 00000000000..e4e05c6caa9 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-a.md @@ -0,0 +1,28 @@ +--- +id: 6570447ce7b02272663824df +title: Learn Block and Inline Lesson A +challengeType: 15 +dashedName: learn-block-and-inline-lesson-a +--- + +# --description-- + +Most of the elements that you have learned about so far are block elements. In other words, their default style is `display: block`. By default, block elements will appear on the page stacked atop each other, each new element starting on a new line. + +# --question-- + +## --text-- + +Which of the following statements about block elements is true? + +## --answers-- + +Block elements take up only the space necessary for their content. + +--- + +Block elements start on a new line and take up the full width available. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md new file mode 100644 index 00000000000..1adf9ce84ff --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-b.md @@ -0,0 +1,41 @@ +--- +id: 6570447de7b02272663824e0 +title: Learn Block and Inline Lesson B +challengeType: 15 +dashedName: learn-block-and-inline-lesson-b +--- + +# --description-- + +Inline elements, however, do not start on a new line. They appear in line with whatever elements they are placed beside. A clear example of an inline element is a link, or `` tag. If you stick one of these in the middle of a paragraph of text, it will behave like a part of the paragraph. (Like this) The link’s text will sit alongside other words in that paragraph. Additionally, padding and margin behave differently on inline elements. In general, you do not want to try to put extra padding or margin on inline elements. + +# --question-- + +## --assignment-- + +Search the web for a list of `block` elements and a list of `inline` elements. + +## --text-- + +What is the difference between a `block` element and an `inline` element? + +## --answers-- + +`block` elements are displayed without line breaks, while `inline` elements are displayed with line breaks. + +--- + +`block` elements take up the full width available, while `inline` elements only take up the space necessary for their content. + +--- + +`block` elements are always positioned horizontally, while `inline` elements are positioned vertically. + +--- + +`block` elements are used for small sections of text, while `inline` elements are used for larger chunks of content. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md new file mode 100644 index 00000000000..8d5a6c6a1e7 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-c.md @@ -0,0 +1,36 @@ +--- +id: 6570447ee7b02272663824e1 +title: Learn Block and Inline Lesson C +challengeType: 15 +dashedName: learn-block-and-inline-lesson-c +--- + +# --description-- + +Padding is used to create space around an element's content, inside of any defined borders. With inline elements, padding adds space to the left, right, top, and bottom of the content. However, it's important to note that while padding does affect the space around the content, it does not affect the layout of other elements around the inline element. This means that horizontal padding (left and right) is respected, but vertical padding (top and bottom) does not cause other elements to move away. + +# --question-- + +## --text-- + +How does `padding` affect `inline` elements? + +## --answers-- + +Padding has no effect on `inline` elements. + +--- + +Padding increases the width and height of `inline` elements. + +--- + +Padding only affects the horizontal spacing of `inline` elements. + +--- + +Padding only affects the vertical spacing of `inline` elements. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md new file mode 100644 index 00000000000..8fb0f2e731e --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-d.md @@ -0,0 +1,36 @@ +--- +id: 6570447ee7b02272663824e2 +title: Learn Block and Inline Lesson D +challengeType: 15 +dashedName: learn-block-and-inline-lesson-d +--- + +# --description-- + +Now that you have a basic understanding on how adding width and height to `inline` elements works, what happens when you add a top margin to an `inline` element? + +# --question-- + +## --text-- + +How does `margin-top` affect `inline` elements? + +## --answers-- + +`margin-top` has no impact on the layout of `inline` elements + +--- + +`margin-top` increases the height of `inline` elements. + +--- + +`margin-top` adds space above the `inline` element. + +--- + +`margin-top` only affects the horizontal spacing of `inline` elements. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md new file mode 100644 index 00000000000..edd07ca1499 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-e.md @@ -0,0 +1,36 @@ +--- +id: 6570447fe7b02272663824e3 +title: Learn Block and Inline Lesson E +challengeType: 15 +dashedName: learn-block-and-inline-lesson-e +--- + +# --description-- + +Inline-block elements behave like inline elements, but with block-style padding and margin. `display: inline-block` is a useful tool to know about, but in practice, you'll probably end up reaching for flexbox more often if you're trying to line up a bunch of boxes. Flexbox will be covered in-depth in the next lesson. + +# --question-- + +## --text-- + +What is the difference between an `inline` element and an `inline-block` element? + +## --answers-- + +`inline` elements are displayed without line breaks, while `inline-block` elements are displayed with line breaks. + +--- + +`inline` elements do not allow setting width and height, while `inline-block` elements allow setting width and height. + +--- + +`inline` elements are always positioned horizontally, while `inline-block` elements are positioned vertically. + +--- + +`inline` elements can contain block-level elements, while `inline-block` elements cannot contain other elements. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md new file mode 100644 index 00000000000..1833bdad58b --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-f.md @@ -0,0 +1,36 @@ +--- +id: 65704480e7b02272663824e4 +title: Learn Block and Inline Lesson F +challengeType: 15 +dashedName: learn-block-and-inline-lesson-f +--- + +# --description-- + +The concept of “Normal flow” is implied in the box-model resources, but isn’t laid out very specifically. Read Normal Flow from MDN to make sure you understand how elements lay themselves out by default. + +# --question-- + +## --text-- + +What is the "Normal flow" in CSS layouts? + +## --answers-- + +Normal flow refers to the process of animating elements in a CSS layout. + +--- + +Normal flow is a CSS property used to control the visibility of elements in a layout. + +--- + +Normal flow is a CSS rule that defines the order of media queries for responsive design. + +--- + +Normal flow in CSS layouts refers to the default positioning of elements on a webpage. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md new file mode 100644 index 00000000000..cdd4d5aa872 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-g.md @@ -0,0 +1,36 @@ +--- +id: 65704482e7b02272663824e5 +title: Learn Block and Inline Lesson G +challengeType: 15 +dashedName: learn-block-and-inline-lesson-g +--- + +# --description-- + +Now that you have some basic understanding of `block` and inline `elements`, pull up your list of `block` and `inline` elements from a couple questions ago and see if you can identify which of the following elements are `block` elements and which are `inline` elements. + +# --question-- + +## --text-- + +Which of the following is NOT an `inline` element? + +## --answers-- + +form element + +--- + +anchor element + +--- + +image element + +--- + +span element + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md new file mode 100644 index 00000000000..a5880579050 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-h.md @@ -0,0 +1,36 @@ +--- +id: 65704483e7b02272663824e6 +title: Learn Block and Inline Lesson H +challengeType: 15 +dashedName: learn-block-and-inline-lesson-h +--- + +# --description-- + +Now that you have some basic understanding of `block` and inline elements, pull up your list of `block` and `inline` elements from a couple questions ago and see if you can identify which of the following elements are `block` elements and which are `inline` elements. + +# --question-- + +## --text-- + +Which of the following is NOT a `block` level element? + +## --answers-- + +paragraph element + +--- + +image element + +--- + +unordered list element + +--- + +footer element + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md new file mode 100644 index 00000000000..9a9b79ea930 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-i.md @@ -0,0 +1,32 @@ +--- +id: 65704484e7b02272663824e7 +title: Learn Block and Inline Lesson I +challengeType: 15 +dashedName: learn-block-and-inline-lesson-i +--- + +# --description-- + +You can't talk about `block` and `inline` elements without discussing `div`s and `span`s. All the other HTML elements you have encountered so far give meaning to their content. For example, paragraph elements tell the browser to display the text it contains as a paragraph. Strong elements tell the browser which texts within are important and so on. Yet, `div`s and `span`s give no particular meaning to their content. They are just generic boxes that can contain anything. + +# --question-- + +## --text-- + +What is the primary difference of `span` and `div` elements from other elements? + +## --answers-- + +Unlike specific HTML elements that carry inherent meanings, `span` and `div` elements are versatile and are primarily used for styling and layout purposes. + +--- + +`span` and `div` elements do not impart any specific semantic meaning to the content they contain, unlike other HTML elements such as paragraphs or headings. + +--- + +`span` and `div` elements are generic containers that allow developers to apply CSS styles and structure content without any particular semantic significance. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md new file mode 100644 index 00000000000..5f6cd8f9636 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-j.md @@ -0,0 +1,36 @@ +--- +id: 65704485e7b02272663824e8 +title: Learn Block and Inline Lesson J +challengeType: 15 +dashedName: learn-block-and-inline-lesson-j +--- + +# --description-- + +Now that you have a basic understanding on how adding width and height to `inline` elements works, what happens when you add a top padding of 10 pixels to a `span` element? + +# --question-- + +## --text-- + +What happens when you add `padding-top: 10px;` to a `span` element? + +## --answers-- + +The `span` element's content will shift downward by 10 pixels. + +--- + +The `span` element will gain additional space above its content. + +--- + +The `span` element's width will increase by 10 pixels. + +--- + +Padding has no effect on the layout of a `span` element. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md new file mode 100644 index 00000000000..8a395de16e6 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-block-and-inline/learn-block-and-inline-lesson-k.md @@ -0,0 +1,36 @@ +--- +id: 65704486e7b02272663824e9 +title: Learn Block and Inline Lesson K +challengeType: 15 +dashedName: learn-block-and-inline-lesson-k +--- + +# --description-- + +Now that you have a basic understanding on how adding width and height to `inline` elements works. + +# --question-- + +## --text-- + +What happens when you add a bottom padding of 15 pixels to a `span` element with display set to `inline-block`? + +## --answers-- + +The `span` element's content will shift upward by 15 pixels. + +--- + +The `span` element's width will increase by 15 pixels. + +--- + +The `span` element will gain additional space below its content. + +--- + +Padding has no effect on the layout of an `inline-block` `span` element. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md new file mode 100644 index 00000000000..30d70604443 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-a.md @@ -0,0 +1,53 @@ +--- +id: 63ee351d0d8d4841c3a7091a +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson A +challengeType: 15 +dashedName: css-foundations-lesson-a +--- + +# --description-- + +A type selector (or element selector) will select all elements of the given element type, and the syntax is just the name of the element: + +```html + + +
    Hello, World!
    +
    Hello again!
    +

    Hi...

    +
    Okay, bye.
    +``` + +```css +/* styles.css */ + +div { + color: white; +} +``` + +Here, all three `
    ` elements would be selected, while the `

    ` element wouldn’t be. + +# --question-- + +## --text-- + +Which of the following best describes the CSS code given above? + +## --answers-- + +The code applies a `white` color to all elements in the HTML file. + +--- + +The code applies a `white` color to all `div` elements in the HTML file. + +--- + +The code applies a `white` color to all `p` elements in the HTML file. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md new file mode 100644 index 00000000000..4431d278eef --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-b.md @@ -0,0 +1,75 @@ +--- +id: 63ee35240d8d4841c3a7091b +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson B +challengeType: 15 +dashedName: css-foundations-lesson-b +--- + +# --description-- + +Class selectors will select all elements with the given `class`, which is just an attribute you place on an HTML element. Here’s how you add a class to an HTML tag and select it in CSS: + +```html + + +

    + Please agree to our terms of service. +
    +``` + +```css +/* styles.css */ + +.alert-text { + color: red; +} +``` + +Note the syntax for `class` selectors: a period immediately followed by the case-sensitive value of the class attribute. Classes aren’t required to be unique, so you can use the same `class` on as many elements as you want. + +Another thing you can do with the `class` attribute is to add multiple classes to a single element as a space-separated list, such as `class="alert-text severe-alert"`. Since whitespace is used to separate `class` names like this, you should never use spaces for multi-worded names and should use a hyphen instead. + +## ID Selectors +ID selectors are similar to `class` selectors. They select an element with the given `id`, which is another attribute you place on an HTML element: + +```html + + +
    My Awesome 90's Page
    +``` + +```css +/* styles.css */ + +#title { + background-color: red; +} +``` + +Instead of a period, you use a hashtag immediately followed by the case-sensitive value of the `id` attribute. A common pitfall is people overusing the `id` attribute when they don’t necessarily need to, and when classes will suffice. While there are cases where using an `id` makes sense or is needed, such as taking advantage of specificity or having links redirect to a section on the current page, you should use `id`s sparingly (if at all). + +The major difference between classes and IDs is that an element can only have one `id`. An `id` cannot be repeated on a single page, and the `id` attribute should not contain any whitespace at all. + +# --question-- + +## --text-- + +What is the syntax for class and ID selectors? + +## --answers-- + +To select a `class` you use `$` and to select an `id` you use `#` + +--- + +To select a `class` you use `.` and to select an `id` you use `*` + +--- + +To select a `class` you use `.` and to select an `id` you use `#` + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md new file mode 100644 index 00000000000..03f093145ff --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-c.md @@ -0,0 +1,90 @@ +--- +id: 63ee352b0d8d4841c3a7091c +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson C +challengeType: 15 +dashedName: css-foundations-lesson-c +--- + +# --description-- + +What if you have two groups of elements that share some of their style declarations? + +```css +.read { + color: white; + background-color: black; + /* several unique declarations */ +} + +.unread { + color: white; + background-color: black; + /* several unique declarations */ +} +``` + +Both our `.read` and `.unread` selectors share the `color: white;` and `background-color: black;` declarations, but otherwise have several of their own unique declarations. To cut down on the repetition, you can group these two selectors together as a comma-separated list: + +```css +.read, +.unread { + color: white; + background-color: black; +} + +.read { + /* several unique declarations */ +} + +.unread { + /* several unique declarations */ +} +``` + +Both of the examples above (with and without grouping) will have the same result, but the second example reduces the repetition of declarations and makes it easier to edit either the `color` or `background-color` for both classes at once. + +# --question-- + +## --text-- + +How would you apply a single rule to two different selectors, `.red-box` and `.yellow-box`? + +## --answers-- + +```css +.red-box, +.yellow-box { + width: 25px; + height: 25px; +} +``` + +--- + +```css +.red-box { + width: 25px; + height: 25px; +} + +.yellow-box { + width: 25px; + height: 25px; +} +``` + +--- + +```css +.red-box { + width: 25px; + .yellow-box { + height: 25px; + } +} +``` + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md new file mode 100644 index 00000000000..9dc6044c89b --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-d.md @@ -0,0 +1,86 @@ +--- +id: 63ee35300d8d4841c3a7091d +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson D +challengeType: 15 +dashedName: css-foundations-lesson-d +--- + +# --description-- + +Another way to use selectors is to chain them as a list without any separation. Let’s say you had the following HTML: + +```html +
    +
    Latest Posts
    +

    This is where a preview for a post might go.

    +
    +``` + +You have two elements with the `subsection` class that have some sort of unique styles, but what if you only want to apply a separate rule to the element that also has `header` as a second class? Well, you could chain both the `class` selectors together in your CSS like so: + +```css +.subsection.header { + color: red; +} +``` + +What `.subsection.header` does is it selects any element that has both the `subsection` and `header` classes. Notice how there isn’t any space between the `.subsection` and `.header` `class` selectors. This syntax basically works for chaining any combination of selectors, except for chaining more than one type selector. + +This can also be used to chain a class and an ID, as shown below: + +```html +
    +
    Latest Posts
    +

    This is where a preview for a post might go.

    +
    +``` + +You can take the two elements above and combine them with the following: + +```css +.subsection.header { + color: red; +} + +.subsection#preview { + color: blue; +} +``` + +In general, you can’t chain more than one type selector since an element can’t be two different types at once. For example, chaining two type selectors like `div` and `p` would give us the selector `divp`, which wouldn’t work since the selector would try to find a literal `` element, which doesn’t exist. + +# --question-- + +## --text-- + +Given an element that has an `id` of `title` and a `class` of `primary`, how would you use both attributes for a single rule? + +## --answers-- + +```css +.title.primary { + ... +} +``` + +--- + +```css +.title > primary { + ... +} +``` + +--- + +```css +#title.primary { + ... +} +``` + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md new file mode 100644 index 00000000000..f813f0f3f45 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-e.md @@ -0,0 +1,61 @@ +--- +id: 63ee35370d8d4841c3a7091e +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson E +challengeType: 15 +dashedName: css-foundations-lesson-e +--- + +# --description-- + +Combinators allow us to combine multiple selectors differently than either grouping or chaining them, as they show a relationship between the selectors. There are four types of combinators in total, but for right now we’re going to only show you the descendant combinator, which is represented in CSS by a single space between selectors. A descendant combinator will only cause elements that match the last selector to be selected if they also have an ancestor (parent, grandparent, etc) that matches the previous selector. + +So something like `.ancestor .child` would select an element with the class `child` if it has an ancestor with the class `ancestor`. Another way to think of it is child will only be selected if it is nested inside of `ancestor`, no matter how deep. Take a quick look at the example below and see if you can tell which elements would be selected based on the CSS rule provided: + +```html + + +
    +
    +
    +
    +
    +
    + +
    +``` + +```css +/* styles.css */ + +.ancestor .contents { + /* some declarations */ +} +``` + +In the above example, the first two elements with the `contents` class (`B` and `C`) would be selected, but that last element (`D`) won’t be. Was your guess correct? + +There’s really no limit to how many combinators you can add to a rule, so `.one .two .three .four` would be totally valid. This would just select an element that has a class of `four` if it has an ancestor with a class of `three`, and if that ancestor has its own ancestor with a class of `two`, and so on. You generally want to avoid trying to select elements that need this level of nesting, though, as it can get pretty confusing and long, and it can cause issues when it comes to specificity. + +# --question-- + +## --text-- + +What does the descendant combinator do? + +## --answers-- + +It groups certain classes together which share the same declarations. + +--- + +It gives the ability to select an element that shares the same `class` and `id`. + +--- + +It allows you to select an element based on its relationship with its ancestor (parent, grandparent, and so on). + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md new file mode 100644 index 00000000000..512036b1aba --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-f.md @@ -0,0 +1,47 @@ +--- +id: 63ee353e0d8d4841c3a7091f +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson F +challengeType: 15 +dashedName: css-foundations-lesson-f +--- + +# --description-- + +Okay, you went over quite a bit so far. The only thing left for now is to go over how to add all this CSS to your HTML. There are three methods to do so. + +External CSS is the most common method you will come across, and it involves creating a separate file for the CSS and linking it inside of an HTML’s opening and closing `` tags with a self-closing `` element: + +First, you add a self-closing `` element inside of the opening and closing `` tags of the HTML file. The `href` attribute is the location of the CSS file, either an absolute URL or, what you’ll be utilizing, a URL relative to the location of the HTML file. In the example above, you are assuming both files are located in the same directory. The `rel` attribute is required, and it specifies the relationship between the HTML file and the linked file. + +Then inside of the newly created `styles.css` file, you have the selector (the `div` and `p`), followed by a pair of opening and closing curly braces, which create a “declaration block”. Finally, you place any declarations inside of the declaration block. `color: white;` is one declaration, with `color` being the property and `white` being the value, and `background-color: black;` is another declaration. + +A note on file names: `styles.css` is just what you went with as the file name here. You can name the file whatever you want as long as the file type is `.css`, though “style” or “styles” is most commonly used. + +A couple of the pros to this method are: + +1. It keeps your HTML and CSS separated, which results in the HTML file being smaller and making things look cleaner. +2. You only need to edit the CSS in one place, which is especially handy for websites with many pages that all share similar styles. + +# --question-- + +## --text-- + +Which of the following best describes the purpose of the `rel` attribute in the `` element when linking an external CSS file to an HTML file? + +## --answers-- + +It specifies the location of the CSS file relative to the location of the HTML file. + +--- + +It specifies the relationship between the HTML file and the linked file. + +--- + +It specifies the type of file being linked (e.g. "stylesheet"). + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md new file mode 100644 index 00000000000..d31beea7a94 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-g.md @@ -0,0 +1,54 @@ +--- +id: 63ee35450d8d4841c3a70920 +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson G +challengeType: 15 +dashedName: css-foundations-lesson-g +--- + +# --description-- + +Internal CSS (or embedded CSS) involves adding the CSS within the HTML file itself instead of creating a completely separate file. With the internal method, you place all the rules inside of a pair of opening and closing ` + +... +``` + +This method can be useful for adding unique styles to a single page of a website, but it doesn’t keep things separate like the external method, and depending on how many rules and declarations there are it can cause the HTML file to get pretty big. + +# --question-- + +## --text-- + +Which of the following is a difference between internal and external CSS methods? + +## --answers-- + +The external method places CSS rules in a separate file, while the internal method places CSS rules within the HTML file itself. + +--- + +The internal method keeps CSS separate from HTML, while the external method embeds CSS directly in HTML. + +--- + +The internal method uses `` element to link CSS to HTML, while the external method embeds CSS directly in HTML. + + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md new file mode 100644 index 00000000000..ccbb24c894c --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-foundations/css-foundations-lesson-h.md @@ -0,0 +1,46 @@ +--- +id: 63ee354c0d8d4841c3a70921 +videoId: LGQuIIv2RVA +title: CSS Foundations Lesson H +challengeType: 15 +dashedName: css-foundations-lesson-h +--- + +# --description-- + +Inline `CSS` makes it possible to add styles directly to `HTML` elements, though this method isn’t as recommended: + +```html + +
    ...
    + +``` + +The first thing to note is that there aren't any selectors here, since the styles are being added directly to the opening `
    ` tag itself. Next, you have the `style` attribute, with its value within the pair of quotation marks being the declarations. + +If you need to add a unique style for a single element, this method can work just fine. Generally, though, this isn’t exactly a recommended way for adding CSS to HTML for a few reasons: + +It can quickly become pretty messy once you start adding a lot of declarations to a single element, causing your HTML file to become unnecessarily bloated. If you want many elements to have the same style, you would have to copy + paste the same style to each individual element, causing lots of unnecessary repetition and more bloat. Any inline CSS will override the other two methods, which can cause unexpected results. (While you won’t dive into it here, this can actually be taken advantage of). + +# --question-- + +## --text-- + +Which of the following is the main disadvantage of using inline CSS? + +## --answers-- + +It can quickly become pretty messy once you start adding a lot of declarations to a single element, causing your HTML file to become unnecessarily bloated. + +--- + +It requires using selectors, which can be complicated for beginners. + +--- + +Any inline CSS will override the other two methods (internal and external), which can cause unexpected results. + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md new file mode 100644 index 00000000000..2e292c446fd --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-a.md @@ -0,0 +1,39 @@ +--- +id: 6489bcd7b7600c818dc297ea +title: The Cascade of CSS Lesson A +challengeType: 15 +dashedName: the-cascade-of-css-lesson-a +--- + +# --description-- + +Sometimes we may have rules that conflict with one another, and we end up with some unexpected results. “But I wanted these paragraphs to be blue, why are they red like these other paragraphs?!” As frustrating as this can be, it’s important to understand that CSS doesn’t just do things against your wishes. CSS only does what we tell it to do. One exception to this is the default styles that are provided by a browser. These default styles vary from browser to browser, and they are why some elements create a large “gap” between themselves and other elements, or why buttons look the way they do, despite us not writing any CSS rules to style them that way. + +So if you end up with some unexpected behavior like this it’s either because of these default styles, not understanding how a property works, or not understanding this little thing called the cascade. + +The cascade is what determines which rules actually get applied to your HTML. There are different factors that the cascade uses to determine this. We will examine three of these factors, which will hopefully help you avoid those frustrating “I hate CSS” moments. + +# --question-- +## --text-- + +Why might you encounter unexpected behavior in CSS? + +## --answers-- + +Due to conflicting rules and unexpected results + +--- + +Due to the browser's default styles + +--- + +Due to a lack of understanding of CSS properties + +--- + +All of the above + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md new file mode 100644 index 00000000000..d1891dcb6cc --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-b.md @@ -0,0 +1,42 @@ +--- +id: 6489c96782cf2e4f86f03ae2 +title: The Cascade of CSS Lesson B +challengeType: 15 +dashedName: the-cascade-of-css-lesson-b +--- + +# --description-- + +A CSS declaration that is more specific will take precedence over less specific ones. Inline styles, which you went over in a previous lesson, have the highest specificity compared to selectors, while each type of selector has its own specificity level that contributes to how specific a declaration is. Other selectors contribute to specificity, but you're focusing only on the ones you’ve gone over so far: + +1. ID selectors (most specific selector) +2. Class selectors +3. Type selectors + +Specificity will only be taken into account when an element has multiple, conflicting declarations targeting it, sort of like a tie-breaker. An ID selector will always beat any number of class selectors, a class selector will always beat any number of type selectors, and a type selector will always beat any number of anything less specific than it. When no declaration has a selector with a higher specificity, a larger amount of a single selector will beat a smaller amount of that same selector. + +# --question-- + +## --text-- + +Which of the following is the correct order of specificity for CSS selectors, from most specific to least specific? + +## --answers-- + +Type selectors, class selectors, ID selectors + +--- + +ID selectors, class selectors, type selectors + +--- + +Class selectors, type selectors, ID selectors + +--- + +ID selectors, type selectors, class selectors + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md new file mode 100644 index 00000000000..aee970d3d1f --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-c.md @@ -0,0 +1,58 @@ +--- +id: 6489cb0b82cf2e4f86f03ae3 +title: The Cascade of CSS Lesson C +challengeType: 15 +dashedName: the-cascade-of-css-lesson-c +--- + +# --description-- + +Let’s take a look at a few quick examples to visualize how specificity works. Consider the following HTML and CSS code: + +```html + + +
    +
    +
    +``` + +```css +/* rule 1 */ +.subsection { + color: blue; +} + +/* rule 2 */ +.main .list { + color: red; +} +``` + +In the example above, both rules are using only class selectors, but rule 2 is more specific because it is using more class selectors. + +# --question-- + +## --text-- + +Based on the given HTML and CSS code, which color would the `
    ` element be rendered as? + +## --answers-- + +blue + +--- + +red + +--- + +purple + +--- + +black + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md new file mode 100644 index 00000000000..18738183e1e --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-d.md @@ -0,0 +1,58 @@ +--- +id: 6489cf5882cf2e4f86f03ae5 +title: The Cascade of CSS Lesson D +challengeType: 15 +dashedName: the-cascade-of-css-lesson-d +--- + +# --description-- + +Now, let’s change things a little bit: + +```html + + +
    +
    +
    +``` + +```css +/* rule 1 */ +#subsection { + color: blue; +} + +/* rule 2 */ +.main .list { + color: red; +} +``` + +In the example above, despite rule 2 having more class selectors than ID selectors, rule 1 is more specific because ID beats class. + +# --question-- + +## --text-- + +Based on the modified HTML and CSS code, which color would the `
    ` element be rendered as? + +## --answers-- + +orange + +--- + +red + +--- + +blue + +--- + +cyan + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md new file mode 100644 index 00000000000..b7608df5093 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-e.md @@ -0,0 +1,51 @@ +--- +id: 6489cf6282cf2e4f86f03ae6 +title: The Cascade of CSS Lesson E +challengeType: 15 +dashedName: the-cascade-of-css-lesson-e +--- + +# --description-- + +```css +/* rule 1 */ +#subsection .list { + background-color: yellow; + color: blue; +} + +/* rule 2 */ +#subsection .main .list { + color: red; +} +``` + +In this final example, both rules are using ID and class selectors, so neither rule is using a more specific selector than the other. The cascade then checks the amounts of each selector type. Both rules only have one ID selector, but rule 2 has more class selectors, so rule 2 has a higher specificity! + +While the `color: red` declaration would take precedence, the `background-color: yellow` declaration would still be applied since there’s no conflicting declaration for it. + +# --question-- + +## --text-- + +Considering the updated CSS code, which of the following describes the rendering of the `
    ` element? + +## --answers-- + +Text color: Red, Background color: Transparent + +--- + +Text color: Red, Background color: Yellow + +--- + +Text color: Blue, Background color: Transparent + +--- + +Text color: Blue, Background color: Yellow + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md new file mode 100644 index 00000000000..97c78768eb6 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-f.md @@ -0,0 +1,63 @@ +--- +id: 6489cf6782cf2e4f86f03ae7 +title: The Cascade of CSS Lesson F +challengeType: 15 +dashedName: the-cascade-of-css-lesson-f +--- + +# --description-- + +```css +/* rule 1 */ +.class.second-class { + font-size: 12px; +} + +/* rule 2 */ +.class .second-class { + font-size: 24px; +} +``` + +Here both rule 1 and rule 2 have the same specificity. Rule 1 uses a chaining selector (no space) and rule 2 uses a descendant combinator (the empty space). But both rules have two classes and the combinator symbol itself does not add to the specificity. + +```css +/* rule 1 */ +.class.second-class { + font-size: 12px; +} +/* rule 2 */ +.class > .second-class { + font-size: 24px; +} +``` + +This example shows the same thing. Even though rule 2 is using a child combinator (`>`), this does not change the specificity value. Both rules still have two classes so they have the same specificity values. + +*Note:* Not everything adds to specificity When comparing selectors, you may come across special symbols for the universal selector (`*`) as well as combinators (`+`, `~`, `>`, and an empty space). These symbols do not add any specificity in and of themselves. + +# --question-- + +## --text-- + +Based on the given CSS code, which font size would be applied to elements with the class "class second-class"? + +## --answers-- + +12px + +--- + +36px + +--- + +24px + +--- + +48px + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md new file mode 100644 index 00000000000..ef09942a733 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-g.md @@ -0,0 +1,60 @@ +--- +id: 6489cf7682cf2e4f86f03ae8 +title: The Cascade of CSS Lesson G +challengeType: 15 +dashedName: the-cascade-of-css-lesson-g +--- + +# --description-- + +Inheritance refers to certain CSS properties that, when applied to an element, are inherited by that element’s descendants, even if we don’t explicitly write a rule for those descendants. Typography based properties (`color`, `font-size`, `font-family`, etc.) are usually inherited, while most other properties aren’t. + +The exception to this is when directly targeting an element, as this always beats inheritance: + +```html + + +
    +
    +
    +``` + +```css +/* styles.css */ + +#parent { + color: red; +} + +.child { + color: blue; +} +``` + +Despite the `parent` element having a higher specificity with an ID, the `child` element would have the `color: blue` style applied since that declaration directly targets it, while `color: red` from the parent is only inherited. + +# --question-- + +## --text-- + +Based on the given HTML and CSS code, what would be the color of the `
    ` element? + +## --answers-- + +Red + +--- + +Blue + +--- + +Inherited from the parent element + +--- + +Transparent + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md new file mode 100644 index 00000000000..da43c0c9240 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-css-specificity/the-cascade-of-css-lesson-h.md @@ -0,0 +1,51 @@ +--- +id: 648acb0745e79f79650fa2ac +title: The Cascade of CSS Lesson H +challengeType: 15 +dashedName: the-cascade-of-css-lesson-h +--- + +# --description-- + +The final factor, the end of the line, the tie-breaker of the tie-breaker. Let’s say that after every other factor has been taken into account, there are still multiple conflicting rules targeting an element. How does the cascade determine which rule to apply? + +Really simply, actually. Whichever rule was the last defined is the winner. + +```css +/* styles.css */ + +.alert { + color: red; +} + +.warning { + color: yellow; +} +``` + +For an element that has both the `alert` and `warning` classes, the cascade would run through every other factor, including inheritance (none here) and specificity (neither rule is more specific than the other). Since the `.warning` rule was the last one defined, and no other factor was able to determine which rule to apply, it’s the one that gets applied to the element. + +# --question-- +## --text-- + +What determines which CSS rule is applied when there are conflicting rules targeting the same element? + +## --answers-- + +The specificity of the CSS rule. + +--- + +The inheritance hierarchy of the element. + +--- + +The presence of classes or IDs on the element. + +--- + +The order in which the rules were defined. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md new file mode 100644 index 00000000000..48136d70112 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-a.md @@ -0,0 +1,51 @@ +--- +id: 65e9713d484dd50f720e6fe6 +title: Learn Data Types and Conditionals Lesson A +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-a +--- + +# --description-- + +Depending on what kind of work you're doing, you might end up working more with pieces of text rather than numbers. A **string** is a piece of text… and is a fundamental building block of the language. + +HTML provides structure and meaning to text, CSS allows us to precisely style it, and JavaScript offers many features for manipulating strings. These include creating custom welcome messages and prompts, showing the right text labels when needed, sorting terms into the desired order, and much more. + +Strings are a fundamental data type in JavaScript. They are used to represent text and are wrapped in either single, double quotes or backticks: + +```javascript +let greeting = "Hello World!"; + +let greeting2 = 'I am learning JavaScript!'; + +let greeting3 = `with The Odin Project!`; +``` + +Strings declared using single quotes and strings declared using double quotes are the same, and which you use is down to personal preference — although it is good practice to choose one style and use it consistently in your code. + +# --assignment-- + +There are many ways to manipulate strings in JavaScript. Go through points 8 through 12 of our JavaScript String Handbook + +# --question-- + +## --text-- + +Which statement accurately describes the versatility and use of strings in JavaScript in conjunction with HTML, CSS, and JavaScript itself? + +## --answers-- + +Strings in JavaScript can only be manipulated using CSS for web page design. + +--- + +JavaScript strings are exclusively used for mathematical computations and cannot interact with HTML or CSS. + +--- + +Strings allow for text manipulation in JavaScript, including but not limited to creating custom messages, sorting terms, and dynamically updating HTML content with CSS styling. + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md new file mode 100644 index 00000000000..d006d88c782 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-b.md @@ -0,0 +1,46 @@ +--- +id: 65e97164484dd50f720e6fe7 +title: Learn Data Types and Conditionals Lesson B +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-b +--- + +# --description-- + +Now that you have gone through the points listed in the assignment of the previous challenge, you should have a good understanding of how strings can be manipulated in JavaScript. + +Currently, this given string has a trailing space at the end after the exclamation mark. To solve this, you need to remove the trailing space from the string using a predefined method. + +```javascript +let greeting = "Hello World! "; + +console.log(greeting); +``` + + Link to Guide + +# --question-- + +## --text-- + +Following the problem above, which method should be used to only remove the trailing space from the string? + +## --answers-- + +The `trim()` method should be used to only remove the trailing space from the string. + +--- + +The `replace()` method should be used to only remove the trailing space from the string. + +--- + +The `trimEnd()` method should be used to only remove the trailing space from the string. + +--- + +The `trimStart()` method should be used to only remove the trailing space from the string. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md new file mode 100644 index 00000000000..efe82f59f24 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-c.md @@ -0,0 +1,42 @@ +--- +id: 65e97251484dd50f720e6fe8 +title: Learn Data Types and Conditionals Lesson C +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-c +--- + +# --description-- + +Seeing the example below, You want to make sure the word `loves` is present in the string. + +```javascript +let sentence = "freeCodeCamp loves The Odin Project!"; +``` + + Link to Guide + +# --question-- + +## --text-- + +Which method should be used to check if the word `loves` is present in the string? + +## --answers-- + +The `includes()` method should be used to check if the word `loves` is present in the string. + +--- + +The `indexOf()` method should be used to check if the word `loves` is present in the string. + +--- + +The `search()` method should be used to check if the word `loves` is present in the string. + +--- + +The `toUpperCase()` method should be used to check if the word `loves` is present in the string. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md new file mode 100644 index 00000000000..5acd29aa255 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-d.md @@ -0,0 +1,42 @@ +--- +id: 65e9725a484dd50f720e6fe9 +title: Learn Data Types and Conditionals Lesson D +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-d +--- + +# --description-- + +Seeing the example below You want to know the index of the last occurence of the word `The` in the string. + +```javascript +let sentence = "freeCodeCamp loves The Odin Project! The Odin Project is great!"; +``` + + Link to Guide + +# --question-- + +## --text-- + +Which method should be used to find the index of the last occurence of the word `The` in the string? + +## --answers-- + +The `includes()` method should be used to find the index of the last occurence of the word `The` in the string. + +--- + +The `lastIndexOf()` method should be used to find the index of the last occurence of the word `The` in the string. + +--- + +The `indexOf()` method should be used to find the index of the last occurence of the word `The` in the string. + +--- + +The `search()` method should be used to find the index of the last occurence of the word `The` in the string. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md new file mode 100644 index 00000000000..8ca178a3a3a --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-e.md @@ -0,0 +1,46 @@ +--- +id: 65e97260484dd50f720e6fea +title: Learn Data Types and Conditionals Lesson E +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-e +--- + +# --description-- + +Strings defined using backticks are called template literals. They are a new way to define strings in JavaScript. They allow you to embed expressions within the string. This is done by wrapping the expression in `${}`. + +For example, the following code: + +```javascript +let name = "John"; +let age = 25; +let greeting = `Hello, my name is ${name} and I am ${age} years old.`; +``` + +will result in the `greeting` variable containing the string "Hello, my name is John and I am 25 years old." + +# --question-- + +## --text-- + +Which of the following is the correct way to define a template literal in JavaScript? + +## --answers-- + +`` `Hello, my name is ${name} and I am ${age} years old.` `` + +--- + +`` `Hello, my name is `name` and I am `age` years old.` `` + +--- + +`` `Hello, my name is {name} and I am {age} years old.` `` + +--- + +`` `Hello, my name is $name and I am $age years old.` `` + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md new file mode 100644 index 00000000000..5427eaba950 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-f.md @@ -0,0 +1,59 @@ +--- +id: 65e97267484dd50f720e6feb +title: Learn Data Types and Conditionals Lesson F +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-f +--- + +# --description-- + +You know that JavaScript has a variety of data types, including strings, numbers and booleans. You can use comparison operators to compare these data types and make decisions based on the results. + +The following comparison operators are available in JavaScript: + +| Operator | Description | Example | +| -------- | ------------------------ | ------- | +| == | Equal (value comparison) | x == y | +| != | Not equal | x != y | +| > | Greater than | x > y | +| < | Less than | x < y | +| >= | Greater than or equal to | x >= y | +| <= | Less than or equal to | x <= y | + +To use a comparison in a variable assignment, you can use the `==` operator. For example: + +```javascript +let x = 5; +let y = 5; + +let result = x == y; + +console.log(result); // true +``` + + +# --question-- + +## --text-- + +Which of the following is the correct way to check if the variable `x` is equal to the number `5` in JavaScript? + +## --answers-- + +`x = 5` + +--- + +`x <= 5` + +--- + +`x == 5` + +--- + +`x >= 5` + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md new file mode 100644 index 00000000000..fb331d483e9 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-g.md @@ -0,0 +1,54 @@ +--- +id: 65e9726d484dd50f720e6fec +title: Learn Data Types and Conditionals Lesson G +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-g +--- + +# --description-- + +JavaScript also has the ability to compare types and values using the strict equality operator `===`. This operator checks if the two values are equal and of the same type. For example: + +```javascript +let x = 5; +let y = "5"; + +let result = x === y; + +console.log(result); // false +``` + +In this example, the `result` variable will contain `false` because `x` is a number and `y` is a string. But if you use the `==` operator, the result will be `true` because JavaScript will convert the string to a number and compare the values. + +This operator is called the strict equality operator because it checks for both value and type equality. It is often recommended to use the `===` operator to avoid unexpected results when comparing values. + +There is also a strict inequality operator `!==` that checks if the two values are not equal and of the same type. + +There are a lot of ways to use the strict equality operator, and it's important to understand how it works. + +# --assignment-- + +Read this article on JavaScript.info to learn more about the strict equality operator. + +# --question-- + +## --text-- + +What happens when you use the strict equality operator `===` to compare a number of the value `0` and a boolean of the value `false`? + +## --answers-- + +The output would be `true`. + +--- + +The output would be `false`. + +--- + +You cannot compare a number and a boolean using the strict equality operator. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md new file mode 100644 index 00000000000..47131dd4005 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-h.md @@ -0,0 +1,58 @@ +--- +id: 65e9727a484dd50f720e6fed +title: Learn Data Types and Conditionals Lesson H +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-h +--- + +# --description-- + +In any programming language, you need to compare values to make decisions. For example, if the weather is sunny, you will go out, otherwise you will stay at home. Another example would be to see if a user has enough points to level up in a game. + +The `if-else` conditional statement is used to make decisions in JavaScript. It is often used with comparison operators to compare values and make decisions based on the results. + +An example of an if statement is: + +```javascript +let x = 5; + +if (x > 3) { + console.log("x is greater than 3"); +} else { + console.log("x is less than or equal to 3"); +} +``` + +In this example, the `x` variable is compared to the number `3` using the `>` operator. If `x` is greater than `3`, the first block of code will be executed. Otherwise, the second block of code will be executed. + +# --question-- + +## --text-- + +What will be the output of the following code? + +```javascript + +let x = 9; +let y = "5"; + +if (x == y) { + console.log("x is equal to y"); +} else { + console.log("x is not equal to y"); +} + +``` + +## --answers-- + +`x is equal to y` + +--- + +`x is not equal to y` + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md new file mode 100644 index 00000000000..fdd1b60e47f --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-i.md @@ -0,0 +1,60 @@ +--- +id: 65e97280484dd50f720e6fee +title: Learn Data Types and Conditionals Lesson I +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-i +--- + +# --description-- + +In the last example, you had two choices `if` or `else`. But what if you want to have more than two choices? You can use the `else if` statement to add more conditions to our code. The `else if` statement allows us to check multiple conditions and execute a block of code when the first condition is true. If the first condition is false, it will check the next condition and so on. If none of the conditions are true, the `else` block will be executed. + +Here is an example of the `else if` statement: + +```javascript +let x = 5; + +if (x > 10) { + console.log("x is greater than 10"); +} else if (x > 5) { + console.log("x is greater than 5"); +} else { + console.log("x is less than or equal to 5"); +} +``` + +In this example, the `x` variable is compared to the number `10` using the `>` operator. If `x` is greater than `10`, the first block of code will be executed. Otherwise, the `else if` statement will check the next condition. If `x` is greater than `5`, the second block of code will be executed. Otherwise, the `else` block will be executed. + +# --question-- + +## --text-- + +What will be the output of the following code? + +```javascript +let x = 4; + +if (x > 10) { + console.log("x is greater than 10"); +} else if (x > 5) { + console.log("x is greater than 5"); +} else { + console.log("x is less than or equal to 5"); +} +``` + +## --answers-- + +`x is less than or equal to 5` + +--- + +`x is greater than 5` + +--- + +`x is greater than 10` + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md new file mode 100644 index 00000000000..1163a094c48 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-j.md @@ -0,0 +1,101 @@ +--- +id: 65e97288484dd50f720e6fef +title: Learn Data Types and Conditionals Lesson J +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-j +--- + +# --description-- + +More complex conditional statements might include multiple conditions. That is why logical operators are used to combine multiple conditions. The logical operators are `&&`, `||` and `!` which are used to represent `and`, `or` and `not` respectively. + +The logical operator `||` is used to combine two boolean conditions. It returns `true` if at least one of the conditions is `true`. Otherwise, it returns `false`: + +```javascript +let a = 5; +let b = 10; +let c = 15; + +if (a > b || a > c) { + console.log("At least one of the conditions is true"); +} else { + console.log("Both of the conditions are false"); +} +``` + +The logical operator `&&` is used to combine two boolean conditions. It returns `true` only if both of the conditions are `true`. Otherwise, it returns `false`: + +```javascript +let a = 5; +let b = 10; +let c = 15; + +if (a < b && a < c) { + console.log("Both of the conditions are true"); +} else { + console.log("At least one of the conditions is false"); +} +``` + +The logical operator `!` is used to negate a boolean condition. It returns `true` if the condition is `false`. Otherwise, it returns `false`: + +```javascript +let a = 5; +let b = 10; + +if (!(a > b)) { + console.log("The condition is false"); +} else { + console.log("The condition is true"); +} +``` + +In the above example, the extra pair of parentheses is used to make the code more readable. It is not necessary to use them. + +# --question-- + +## --text-- + +You're tasked with writing an `if` statement that checks for the following conditions in a web app to display `Welcome!` to the user: + +1. The user must either have a premium account (`isPremium`) or have been a member for more than a year (`membershipDuration` > 12 months). + +1. The user must not be currently blocked from the service (`!isBlocked`). + +Which if statement correctly checks these conditions? + +## --answers-- + +```javascript +if (isPremium && membershipDuration > 12 && !isBlocked) { + console.log("Welcome!"); +} +``` + +--- + +```javascript +if (isPremium || (membershipDuration > 12 && !isBlocked)) { + console.log("Welcome!"); +} +``` + +--- + +```javascript +if ((isPremium || membershipDuration > 12) && !isBlocked) { + console.log("Welcome!"); +} +``` + +--- + +```javascript +if (!isPremium || membershipDuration <= 12 || isBlocked) { + console.log("Welcome!"); +} +``` + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md new file mode 100644 index 00000000000..59af5ee4add --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-k.md @@ -0,0 +1,102 @@ +--- +id: 65e9728d484dd50f720e6ff0 +title: Learn Data Types and Conditionals Lesson K +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-k +--- + +# --description-- + +The `switch` statement is used to perform different actions based on different conditions. It is similar to the `if-else` statement, but is more readable and easier to understand when there are multiple conditions to check. The `switch` statement is used to select one of many code blocks to be executed. + +The `switch` statement evaluates an expression and compares it with the values of each case. If there is a match, the associated block of code is executed. If there is no match, the default block of code is executed. + +```javascript +let day = "Monday"; + +switch (day) { + case "Monday": + console.log("Today is Monday"); + break; + case "Tuesday": + console.log("Today is Tuesday"); + break; + case "Wednesday": + console.log("Today is Wednesday"); + break; + case "Thursday": + console.log("Today is Thursday"); + break; + case "Friday": + console.log("Today is Friday"); + break; + case "Saturday": + console.log("Today is Saturday"); + break; + case "Sunday": + console.log("Today is Sunday"); + break; + default: + console.log("Invalid day"); +} +``` + +In the above example, the value of the `day` variable is compared with the values of each case. If there is a match, the associated block of code is executed. If there is no match, the default block of code is executed. + +# --question-- + +## --text-- + +Given the JavaScript code snippet below, which modifies the `activity` variable based on the day of the week, what will be the value of the `activity` variable if the value of the `day` variable is `"Tuesday"`? + +```javascript +let day = "Tuesday"; +let activity; + +switch (day) { + case "Monday": + activity = "Go to the gym"; + break; + case "Tuesday": + activity = "Attend coding meetup"; + break; + case "Wednesday": + activity = "Watch a movie"; + break; + case "Thursday": + activity = "Visit a museum"; + break; + case "Friday": + activity = "Dinner with friends"; + break; + case "Saturday": + activity = "Hiking in the mountains"; + break; + case "Sunday": + activity = "Rest at home"; + break; + default: + activity = "Undefined day"; +} + +``` + +## --answers-- + +The value of the `activity` variable will be `"Attend coding meetup"`. + +--- + +The value of the `activity` variable will be `"Watch a movie"`. + +--- + +The value of the `activity` variable will be `"Undefined day"`. + +--- + +The value of the `activity` variable will be `"Go to the gym"`. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md new file mode 100644 index 00000000000..f17ab8ffd27 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-data-types-and-conditionals/learn-data-types-and-conditionals-lesson-l.md @@ -0,0 +1,42 @@ +--- +id: 65e97293484dd50f720e6ff1 +title: Learn Data Types and Conditionals Lesson L +challengeType: 15 +dashedName: learn-data-types-and-conditionals-lesson-l +--- + +# --description-- + +Another way to compare conditional statements would be the ternary operator. The ternary operator is a shorthand way of writing an `if-else` statement. It is used to evaluate a condition and return a value based on the result of the condition. The syntax of the ternary operator is as follows: + +```javascript +let result = condition ? value1 : value2; +``` + +In the above example, if the condition is true, the value of `result` will be `value1`. Otherwise, the value of `result` will be `value2`. + +Ternary operators are often used to assign a value to a variable based on a condition. They are also used to return a value based on a condition. + +# --question-- + +## --text-- + +What is the value of the `result` variable if the value of the `condition` variable is `true`? + +```javascript +let condition = true; +let result = condition ? "option 1" : "option 2"; +``` + +## --answers-- + +`"option 2"` + +--- + +`"option 1"` + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md new file mode 100644 index 00000000000..d58d1fcceb5 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-a.md @@ -0,0 +1,48 @@ +--- +id: 6617a128e90de1b3fd10bd4d +title: Learn Function Basics Lesson A +challengeType: 15 +dashedName: learn-function-basics-lesson-a +--- + +# --description-- + +Let’s discuss parameters and arguments in the context of the following example function: + +```js +function favoriteAnimal(animal) { + return animal + " is my favorite animal!" +} + +console.log(favoriteAnimal('Goat')); +``` + +In JavaScript, parameters are the items listed between the parentheses `()` in the function declaration. Function arguments are the actual values you decide to pass to the function. + +In the example above, the function definition is written on the first line: `function favoriteAnimal(animal)`. The parameter, `animal`, is found inside the parentheses. You could just as easily replace `animal` with `pet`, `x`, or `blah`. But in this case, naming the parameter `animal` gives someone reading your code a bit of context so that they don't have to guess what `animal` may eventually contain. + +# --question-- + +## --text-- + +What does the parameter in the function `favoriteAnimal` represent in the context of JavaScript functions? + +## --answers-- + +The actual value that is used when calling the function. + +--- + +A placeholder for the value that will be passed to the function when it is called. + +--- + +The name of the function. + +--- + +The result of the function execution. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md new file mode 100644 index 00000000000..6d2617ffff9 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-b.md @@ -0,0 +1,52 @@ +--- +id: 6617a1fce90de1b3fd10bd4e +title: Learn Function Basics Lesson B +challengeType: 15 +dashedName: learn-function-basics-lesson-b +--- + +# --description-- + +```js +function favoriteAnimal(animal) { + return animal + " is my favorite animal!" +} + +console.log(favoriteAnimal('Goat')); +``` + +By putting `animal` inside the parentheses of the `favoriteAnimal()` function, you are telling JavaScript that you will send some value to your `favoriteAnimal` function. This means that animal is just a placeholder for some future value. But what value are you sending? + +The last line, `favoriteAnimal('Goat')`, is where you are calling your `favoriteAnimal` function and passing the value `'Goat'` inside that function. Here, `'Goat'` is your argument. You are telling the `favoriteAnimal` function, "Please send `'Goat'` to the `favoriteAnimal` function and use `'Goat'` wherever the `'animal'` placeholder is." Because of the flexibility that using a parameter provides, you can declare any animal to be your favorite. + +Here is a diagram to help you visualize how parameters are passed to a function, and how values get returned from it. + +A description of a function with arrows explaining that the values between the parentheses of the function itself are called parameters, and the values which are issued when the function is used are called arguments + +Make note of the fact that by calling `favoriteAnimal()` inside of `console.log()` with the argument `'Goat'`, you get the return value of the function, string of `"Goat is my favorite animal!"`, printed to the console. You're passing in a function call `favoriteAnimal('Goat')` as an argument in a different function call - `log()`. + +# --question-- + +## --text-- + +If you change the argument from `'Goat'` to `'Elephant'` in the `favoriteAnimal('Goat')` function call, what would `console.log(favoriteAnimal('Elephant'))` print to the console? + +## --answers-- + +`"Goat is my favorite animal!"` + +--- + +The function will return an error because `"Elephant"` is not a recognized argument. + +--- + +`"Elephant is my favorite animal!"` + +--- + +`"Kangaroo is my favorite animal!"` + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md new file mode 100644 index 00000000000..c64dc5b3030 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-c.md @@ -0,0 +1,62 @@ +--- +id: 6617aee05b87c334e7ae8014 +title: Learn Function Basics Lesson C +challengeType: 15 +dashedName: learn-function-basics-lesson-c +--- + +# --description-- + +A variable declared inside a function is only visible inside a function. This is called the scope of the variable, this particular scope is called the local scope. Variables declared outside of a function are called global variables and are visible throughout the program. For example, the following code will raise an error: + +```js +function myFunction() { + let x = 10; +} + +console.log(x); +``` + +The variable `x` is declared inside the function `myFunction` and is not visible outside of the function. The code will raise a `ReferenceError` because `x` is not defined. + +If you declare a variable outside of a function, it is called a global variable and is visible throughout the program. For example, the following code will work: + +```js +let x = 10; + +function myFunction() { + console.log(x); +} + +myFunction(); +``` + +If a same-named variable is declared inside the function then it shadows the outer one. + +# --question-- + +## --text-- + +What will be the output of the following code? + +```js +let x = 10; + +function myFunction() { + let x = 20; + console.log(x); +} +``` + +## --answers-- + +10 + +--- + +20 + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md new file mode 100644 index 00000000000..39f0c73af6e --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-d.md @@ -0,0 +1,56 @@ +--- +id: 6617aee95b87c334e7ae8015 +title: Learn Function Basics Lesson D +challengeType: 15 +dashedName: learn-function-basics-lesson-d +--- + +# --description-- + +If a function is called, but an argument is not provided, then the parameter will be assigned the value of `undefined`. This can lead to unexpected results if the function is not designed to handle this case. + +```js +function favoriteAnimal(animal) { + return animal + " is my favorite animal!" +} + +console.log(favoriteAnimal()); // Output: undefined is my favorite animal! +``` + +In the example above, the function `favoriteAnimal` is called without an argument. The parameter `animal` is assigned the value of `undefined`, which is then concatenated with the string `" is my favorite animal!"`. + +If a value is not provided you can make use of default parameters. Default parameters allow you to assign a default value to a parameter if no value is provided when the function is called. + +```js +function favoriteAnimal(animal = 'Giant Panda') { + return animal + " is my favorite animal!" +} +``` + +In the example above, the default value of the parameter `animal` is set to `'Giant Panda'`. If the function `favoriteAnimal` is called without an argument, the parameter `animal` will be assigned the value `'Giant Panda'`. + +# --question-- + +## --text-- + +How do default parameters in JavaScript functions enhance the behavior of functions like `favoriteAnimal` when called without any arguments? + +## --answers-- + +They cause the function to throw an error if no argument is provided. + +--- + +They prevent the function from being called without the required number of arguments. + +--- + +They ensure the function returns `null` to indicate that no argument was passed. + +--- + +They allow the function to execute with a predefined value, avoiding `undefined` related issues. + +## --video-solution-- + +4 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md new file mode 100644 index 00000000000..3f9b2b0ee20 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-e.md @@ -0,0 +1,74 @@ +--- +id: 6617aef05b87c334e7ae8016 +title: Learn Function Basics Lesson E +challengeType: 15 +dashedName: learn-function-basics-lesson-e +--- + +# --description-- + +As you have seen before, functions can return a value using the `return` keyword. The `return` keyword is used to return a value from a function. When the `return` keyword is used, the function will stop executing and return the value specified after the `return` keyword. + +```js +function add(a, b) { + return a + b +} + +console.log(add(2, 3)); // Output: 5 +``` + +But what happens if the `return` keyword is used before the end of the function? To answer this question, consider the following example: + +```js +function add(a, b) { + if(a > 2){ + return b; + } + + return a + b; +} + +console.log(add(3, 7)); // Output: 7 +``` + +In the example above, the function `add` has a conditional statement that checks if the value of `a` is greater than `2`. If the condition is met, the function will return the value of `b` and stop executing. If the condition is not met, the function will return the sum of `a` and `b`. + +# --question-- + +## --text-- + +What is the output of the following code snippet? + +```js +function add(a, b = 12) { + if(b > 11){ + return b * 2; + } else if(a > 3){ + return b; + } + + return a + b; +} + +console.log(add(3)); +``` + +## --answers-- + +The output is `24`. + +--- + +The output is `14`. + +--- + +The output is `15`. + +--- + +The output is `12`. + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md new file mode 100644 index 00000000000..202651121c6 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-function-basics/learn-function-basics-lesson-f.md @@ -0,0 +1,52 @@ +--- +id: 6617aef85b87c334e7ae8017 +title: Learn Function Basics Lesson F +challengeType: 15 +dashedName: learn-function-basics-lesson-f +--- + +# --description-- + +Arrow functions are a more modern way to write functions in JavaScript. They provide a more compact syntax compared to traditional function expressions. Arrow functions are defined using the `=>` syntax. + +```js +const add = (a, b) => { + return a + b; +} +``` + +In the example above, the arrow function `add` takes two parameters `a` and `b` and returns their sum. The `return` keyword is used to return the result of the addition operation. + +If the arrow function has only one expression, the curly braces `{}` and the `return` keyword can be omitted. The expression will be implicitly returned. + +```js +const add = (a, b) => a + b; +``` + +In the example above, the arrow function `add` takes two parameters `a` and `b` and returns their sum. The `return` keyword and curly braces `{}` are omitted, and the result of the addition operation is implicitly returned. + +# --question-- + +## --text-- + +What makes arrow functions different from traditional function expressions in JavaScript? + +## --answers-- + +They cannot return values. + +--- + +They cannot take parameters. + +--- + +They have a more compact syntax compared to traditional function expressions. + +--- + +They require the use of the `function` keyword. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md new file mode 100644 index 00000000000..545705ca00f --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-a.md @@ -0,0 +1,46 @@ +--- +id: 637f4e0e72c65bc8e73dfe1e +videoId: LGQuIIv2RVA +title: HTML Foundations Lesson A +challengeType: 15 +dashedName: html-foundations-lesson-a +--- + +# --description-- + +Almost all elements on an HTML page are just pieces of content wrapped in opening and closing HTML tags. + +Opening tags tell the browser this is the start of an HTML element. They are comprised of a keyword enclosed in angle brackets `<>`. For example, an opening paragraph tag looks like this: `

    `. + +Closing tags tell the browser where an element ends. They are almost the same as opening tags; the only difference is that they have a forward slash before the keyword. For example, a closing paragraph tag looks like this: `

    `. + +A full paragraph element looks like this: + +An opening p tag, followed by the content string "some text content", followed by a closing p tag. + +# --assignment-- + +Watch Kevin Powell’s Introduction to HTML video + +# --question-- + +## --text-- + +What are HTML tags? + +## --answers-- + +HTML tags tell the browser what content an element contains. + +--- + +HTML tags tell the browser when to load its content. + +--- + +HTML tags tell the browser what content the next element contains. + + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md new file mode 100644 index 00000000000..cbf924480fc --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-b.md @@ -0,0 +1,39 @@ +--- +id: 637f4e1672c65bc8e73dfe1f +title: HTML Foundations Lesson B +challengeType: 15 +dashedName: html-foundations-lesson-b +--- + +# --description-- + +You can think of elements as containers for content. The opening and closing tags tell the browser what content the element contains. The browser can then use that information to determine how it should interpret and format the content. + +There are some HTML elements that do not have a closing tag. These elements often look like this: `
    ` or ``, but some can also be used without the closing forward slash such as `
    ` or ``. These are known as self-closing tags or empty elements because they don’t wrap any content. You will encounter a few of these in later lessons, but for the most part, elements will have both opening and closing tags. + +HTML has a vast list of predefined tags that you can use to create all kinds of different elements. It is important to use the correct tags for content. Using the correct tags can have a big impact on two aspects of your sites: how they are ranked in search engines; and how accessible they are to users who rely on assistive technologies, like screen readers, to use the internet. + +Using the correct elements for content is called semantic HTML. You will explore this in much more depth later on in the curriculum. + +# --question-- + +## --text-- + +Why are self-closing tags like `
    ` or `` essential in HTML? + +## --answers-- + +They prevent formatting issues in HTML documents. + +--- + +They indicate empty elements and require no closing tag. + +--- + +They improve website performance by reducing code complexity. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md new file mode 100644 index 00000000000..51c84c3d068 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-c.md @@ -0,0 +1,54 @@ +--- +id: 637f4e1c72c65bc8e73dfe20 +title: HTML Foundations Lesson C +challengeType: 15 +dashedName: html-foundations-lesson-c +--- + +# --description-- + +To demonstrate an HTML boilerplate, you first need an HTML file to work with. + +Create a new folder on your computer and name it `html-boilerplate`. Within that folder create a new file and name it `index.html`. + +You’re probably already familiar with a lot of different types of files, for example doc, pdf, and image files. + +To let the computer know you want to create an HTML file, you need to append the filename with the `.html` extension as you have done when creating the `index.html` file. + +It is worth noting that you named your HTML file index. You should always name the HTML file that will contain the homepage of your websites `index.html`. This is because web servers will by default look for an `index.html` page when users land on your websites - and not having one will cause big problems. + +## The DOCTYPE + +Every HTML page starts with a doctype declaration. The doctype’s purpose is to tell the browser what version of HTML it should use to render the document. The latest version of HTML is HTML5, and the doctype for that version is simply ``. + +The doctypes for older versions of HTML were a bit more complicated. For example, this is the doctype declaration for HTML4: + +```html + +``` + +However, you probably won’t ever want to be using an older version of HTML, and so you’ll always use ``. + +Open the `index.html` file created earlier in your text editor and add `` to the very first line. + +# --question-- +## --text-- + +What is the purpose of the `DOCTYPE` declaration? + +## --answers-- + +It tells the browser which version of HTML to use to render the document. + +--- + +It tells the browser that this document uses JavaScript. + +--- + +It tells the browser the title of the document. + + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md new file mode 100644 index 00000000000..895e6f06caa --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-d.md @@ -0,0 +1,46 @@ +--- +id: 637f4e2872c65bc8e73dfe21 +title: HTML Foundations Lesson D +challengeType: 15 +dashedName: html-foundations-lesson-d +--- + +# --description-- + +After you declare the doctype, you need to provide an `` element. This is what’s known as the root element of the document, meaning that every other element in the document will be a descendant of it. + +This becomes more important later on when you learn about manipulating HTML with JavaScript. For now, just know that the `html` element should be included on every HTML document. + +Back in the `index.html` file, let’s add the `` element by typing out its opening and closing tags, like so: + +```html + + + +``` + +## What is the lang attribute? +`lang` specifies the language of the text content in that element. This attribute is primarily used for improving accessibility of the webpage. It allows assistive technologies, for example screen readers, to adapt according to the language and invoke correct pronunciation. + +# --question-- + +## --text-- + +What is the `html` element? + +## --answers-- + +It is the root element in the document and tells the browser which version of HTML it should use. + +--- + +It is the root element in the document and all other elements should descend from it. + +--- + +It is the root element in the document and all other elements should come after it. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md new file mode 100644 index 00000000000..6b23f758ad3 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-e.md @@ -0,0 +1,65 @@ +--- +id: 637f4e2f72c65bc8e73dfe22 +title: HTML Foundations Lesson E +challengeType: 15 +dashedName: html-foundations-lesson-e +--- + +# --description-- + +The `` element is where you put important meta-information about your webpages, and stuff required for your webpages to render correctly in the browser. Inside the ``, you should not use any element that displays content on the webpage. + +## The Charset Meta Element +You should always have the `meta` tag for the `charset` encoding of the webpage in the `head` element: ``. + +Setting the encoding is very important because it ensures that the webpage will display special symbols and characters from different languages correctly in the browser. + +## Title Element +Another element you should always include in the head of an HTML document is the `title` element: + +```html +My First Webpage +``` + +The `title` element is used to give webpages a human-readable title which is displayed in your webpage’s browser tab. + +If you didn’t include a `title` element, the webpage’s title would default to its file name. In your case that would be `index.html`, which isn’t very meaningful for users; this would make it very difficult to find your webpage if the user has many browser tabs open. + +There are many more elements that can go within the `head` of an HTML document. However, for now it’s only crucial to know about the two elements you have covered here. You will introduce more elements that go into the `head` throughout the rest of the curriculum. + +Back in `index.html` file, let’s add a `head` element with a `charset` `meta` element and a `title` within it. The head element goes within the HTML element and should always be the first element under the opening `` tag: + + +```html + + + + + + My First Webpage + + +``` + +# --question-- + +## --text-- + +What is the purpose of the `head` element? + +## --answers-- + +The `head` element is used to display all elements that are displayed on the webpage. + +--- + +The `head` element is used to display important information about your webpage and is used to render web pages correctly with `meta` elements. + +--- + +The `head` element is used to display the header content on top of the webpage. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md new file mode 100644 index 00000000000..bc0d7262f1d --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-f.md @@ -0,0 +1,48 @@ +--- +id: 637f4e3672c65bc8e73dfe23 +videoId: V8UAEoOvqFg +title: HTML Foundations Lesson F +challengeType: 15 +dashedName: html-foundations-lesson-f +--- + +# --description-- + +The final element needed to complete the HTML boilerplate is the `` element. This is where all the content that will be displayed to users will go - the text, images, lists, links, and so on. + +To complete the boilerplate, add a `body` element to the `index.html` file. The `body` element also goes within the `html` element and is always below the `head` element, like so: + +# --assignment-- + +Watch and follow along to Kevin Powell’s brilliant Building your first web page video above. + +--- + +Build some muscle memory by deleting the contents of the `index.html` file and trying to write out all the boilerplate again from memory. Don’t worry if you have to peek at the lesson content the first few times if you get stuck. Just keep going until you can do it a couple of times from memory. + +--- + +Run your boilerplate through this [HTML validator](https://www.freeformatter.com/html-validator.html). Validators ensure your markup is correct and are an excellent learning tool, as they provide feedback on syntax errors you may be making often and aren’t aware of, such as missing closing tags and extra spaces in your HTML. + +# --question-- + +## --text-- + +What is the purpose of the `body` element? + +## --answers-- + +This is where all important information about the webpage is displayed such as the `title` and `meta` tags. + +--- + +This is where you tell the browser how to render the webpage correctly. + +--- + +This is where all content will be displayed on the page such images, text, and links. + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md new file mode 100644 index 00000000000..5cfe098a523 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-g.md @@ -0,0 +1,33 @@ +--- +id: 6376327e2724a688c04636e3 +title: HTML Foundations Lesson G +challengeType: 15 +dashedName: html-foundations-lesson-g +--- + +# --description-- + +HTML and CSS are two languages that work together to create everything that you see when you look at something on the internet. HTML is the raw data that a webpage is built out of. All the text, links, cards, lists, and buttons are created in HTML. CSS is what adds style to those plain elements. HTML puts information on a webpage, and CSS positions that information, gives it color, changes the font, and makes it look great! + +# --question-- + +## --text-- + +What are the primary responsibilities of HTML and CSS in creating a webpage? + +## --answers-- + +HTML structures the content, while CSS styles the elements. + +--- + +HTML creates the visual design, while CSS organizes the content. + +--- + +CSS manages the functionality, while HTML controls the layout. + + +## --video-solution-- + +1 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md new file mode 100644 index 00000000000..6983034f3ad --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-html-foundations/html-foundations-lesson-h.md @@ -0,0 +1,32 @@ +--- +id: 637633162724a688c04636e4 +title: HTML Foundations Lesson H +challengeType: 15 +dashedName: html-foundations-lesson-h +--- + +# --description-- + +Many helpful resources out there keep referring to HTML and CSS as programming languages, but if you want to get technical, labeling them as such is not quite accurate. This is because they are only concerned with presenting information. They are not used to program logic. JavaScript, which you will learn in the next section, is a programming language because it’s used to make webpages do things. Yet, there is quite a lot you can do with just HTML and CSS, and you will definitely need them both. Throughout our curriculum, the following lessons focus on giving you the tools you need to succeed once you reach JavaScript content. + +# --question-- + +## --text-- + +Why are HTML and CSS not typically classified as programming languages? + +## --answers-- + +They lack the ability to create webpages. + +--- + +They focus on presenting information rather than programming logic. + +--- + +They are outdated technologies. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md new file mode 100644 index 00000000000..995073b8a26 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-a.md @@ -0,0 +1,53 @@ +--- +id: 66581a78b1eb2281159492fa +title: Learn to Solve Problems and Understand Errors Lesson A +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-a +--- + +# --description-- + +Before you start digging into some pretty nifty JavaScript, you need to begin talking about problem solving: the most important skill a developer needs. + +Problem solving is the core thing software developers do. The programming languages and tools they use are secondary to this fundamental skill. + +From his book, "Think Like a Programmer", V. Anton Spraul defines problem solving in programming as: + +> Problem solving is writing an original program that performs a particular set of tasks and meets all stated constraints. + +The set of tasks can range from solving small coding exercises all the way up to building a social network site like Facebook or a search engine like Google. Each problem has its own set of constraints, for example, high performance and scalability may not matter too much in a coding exercise but it will be vital in apps like Google that need to service billions of search queries each day. + +New programmers often find problem solving the hardest skill to build. It's not uncommon for budding programmers to breeze through learning syntax and programming concepts, yet when trying to code something on their own, they find themselves staring blankly at their text editor not knowing where to start. + +The best way to improve your problem solving ability is by building experience by making lots and lots of programs. The more practice you have the better you'll be prepared to solve real world problems. + +# --question-- + +## --assignment-- + +Read How to Think Like a Programmer - Lessons in Problem Solving by Richard Reis. + +## --text-- + +According to V. Anton Spraul in "Think Like a Programmer," what is problem solving in programming? + +## --answers-- + +Learning the syntax and concepts of different programming languages. + +--- + +Building applications with high performance and scalability as the key features. + +--- + +Writing an original program that performs a specific set of tasks and meets all stated constraints. + +--- + +Solving coding exercises to improve programming skills. + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md new file mode 100644 index 00000000000..ae905ecf893 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-b.md @@ -0,0 +1,56 @@ +--- +id: 66581a7ab1eb2281159492fb +title: Learn to Solve Problems and Understand Errors Lesson B +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-b +--- + +# --description-- + +## Understand the problem +The first step to solving a problem is understanding exactly what the problem is. If you don’t understand the problem, you won’t know when you’ve successfully solved it and may waste a lot of time on a wrong solution. + +To gain clarity and understanding of the problem, write it down on paper, reword it in plain English until it makes sense to you, and draw diagrams if that helps. When you can explain the problem to someone else in plain English, you understand it. + +### Plan +Now that you know what you’re aiming to solve, don’t jump into coding just yet. It’s time to plan out how you’re going to solve it first. Some of the questions you should answer at this stage of the process: + +- Does your program have a user interface? What will it look like? What functionality will the interface have? Sketch this out on paper. + +- What inputs will your program have? Will the user enter data or will you get input from somewhere else? + +- What’s the desired output? + +- Given your inputs, what are the steps necessary to return the desired output? + +The last question is where you will write out an algorithm to solve the problem. You can think of an algorithm as a recipe for solving a particular problem. It defines the steps that need to be taken by the computer to solve a problem in pseudocode. + +# --question-- + +## --assignment-- +Watch How to Begin Thinking Like a Programmer by Coding Tech. It’s an hour long but packed full of information and definitely worth your time watching. + +## --text-- + +What should you do before starting to code according to the provided text? + +## --answers-- + +Immediately start coding to see what problems arise. + +--- + +Write out the problem in plain English and make sure you can explain it to someone else. + +--- + +Sketch the user interface and start coding the most complex functions first. + +--- + +Collect all possible inputs from users and other sources. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md new file mode 100644 index 00000000000..c837fd96582 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-c.md @@ -0,0 +1,53 @@ +--- +id: 66581a7bb1eb2281159492fc +title: Learn to Solve Problems and Understand Errors Lesson C +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-c +--- + +# --description-- + +## Psuedocode + +Pseudocode is writing out the logic for your program in natural language instead of code. It helps you slow down and think through the steps your program will have to go through to solve the problem. + +Here’s an example of what the pseudocode for a program that prints all numbers up to an inputted number might look like: + +```bash +When the user inputs a number +Initialize a counter variable and set its value to zero +While counter is smaller than user inputted number increment the counter by one +Print the value of the counter variable +``` + +This is a basic program to demonstrate how pseudocode looks. There will be more examples of pseudocode included in the assignments. + + +# --question-- + +## --assignment-- +Read this Pseudocode: What It Is and How to Write It article from Built In. + +## --text-- + +What are the benefits of using pseudocode according to the linked article? + +## --answers-- + +Pseudocode is primarily beneficial for beginners as it helps them learn programming languages faster by skipping complex syntax. + +--- + +Pseudocode simplifies communication with non-programmers, aids in code construction, provides a good basis for documentation, and helps in bug detection. + +--- + +Pseudocode entirely eliminates the need for programmers to understand or use programming languages, making it the primary tool for professional coders. + +--- + +Pseudocode is used exclusively for creating detailed flowcharts that replace traditional coding in complex software development environments. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md new file mode 100644 index 00000000000..1a210400dd8 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-d.md @@ -0,0 +1,39 @@ +--- +id: 66581a7bb1eb2281159492fd +title: Learn to Solve Problems and Understand Errors Lesson D +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-d +--- + +# --description-- + +Reading and understanding error messages is a requirement as a developer. At first glance, many beginners shrink away from error messages as they appear to be “scary” and difficult to understand because they include terms one may not be familiar with. + +However, error messages provide developers with a treasure trove of knowledge, and tell you everything you need to know about how to resolve them! Being able to parse error messages and warnings without fear will enable you to effectively debug your applications, receive meaningful help from others, and empower yourself to push forward when faced with an error. + +# --question-- + +## --text-- + +According to the text, why should developers not shy away from error messages? + +## --answers-- + +Error messages are only for advanced programmers and can be ignored by beginners until they gain more experience. + +--- + +Error messages need to be memorized completely to be effective in programming. + +--- + +Error messages provide crucial information that helps developers understand and fix problems in their code. + +--- + +Error messages are meant to be handled by automated debugging tools and do not require human interpretation. + + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md new file mode 100644 index 00000000000..bfbe3e7f4ea --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-e.md @@ -0,0 +1,58 @@ +--- +id: 66581a7cb1eb2281159492fe +title: Learn to Solve Problems and Understand Errors Lesson E +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-e +--- + +# --description-- + +Let’s assume you have written the following code: + +```javascript +const a = "Hello"; +const b = "World"; + +console.log(c); +``` + +This code will run, but it will generate an error. In technical terms, this is called throwing an error. The first part of an error displays the type of error. This provides the first clue as to what you're dealing with. You'll learn more about the different error types later in the lesson. In this example, you have a `ReferenceError`. + +An error being displayed in the developer console + +A `ReferenceError` is thrown when one refers to a variable that is not declared and/or initialized within the current scope. In our case, the error message explains that the error has occurred because `c is not defined`. + +Different errors of this type have different messages based on what is causing the `ReferenceError`. For example, another message you may run into is `ReferenceError: can't access lexical declaration 'X' before initialization`. + +The next part of an error gives us the name of the file in which you can find the error (in this case, our `script.js`), and also the line number. + +This allows you to easily navigate to the problematic line in your code. Here, the error originates from the fourth line of `script.js`, which is displayed as a link under the error message with the text at `script.js:4`. If you click this link, most browsers will navigate to the exact line of code and the rest of your script in the Sources tab of the Developer Tools. + +Sometimes your browser’s console will also display the column (or character) in the line at which the error is occurring. In our example, this would be at `script.js:4:13`. + +# --question-- + +## --text-- + +What does the `ReferenceError` in the provided JavaScript code indicate? + +## --answers-- + +The variable used has been declared but used incorrectly in its type. + +--- + +The variable called in the code has not been declared within the current scope. + +--- + +The code has an issue with its syntax that prevents it from being parsed correctly. + +--- + +The variable used has been declared but not initialized within the current scope. + + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md new file mode 100644 index 00000000000..5fdeefef3ee --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-f.md @@ -0,0 +1,63 @@ +--- +id: 66581a7db1eb2281159492ff +title: Learn to Solve Problems and Understand Errors Lesson F +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-f +--- + +# --description-- + +Another important part of an error is the stack trace. This helps you understand when the error was thrown in your application, and what functions were called that led up to the error. So, for example, if you have the following code: + +```javascript +const a = 5; +const b = 10; + +function add() { + return c; +} + +function print() { + add(); +} + +print(); +``` + +Our function `print()` should call on `add()`, which returns a variable named `c`, which currently has not been declared. The corresponding error is as follows: + +An error showing with a stacktrace in the developer console + +The stack trace tells us that: + +1. `c is not defined` in scope of `add()`, which is declared on line 5. +1. `add()` was called by `print()`, which was declared on line 9. +1. `print()` itself was called on line 12. + +Thus the stack trace lets you trace the evolution of an error back to its origin, which here is the declaration of `add()`. + +# --question-- + +## --text-- + +How does the stack trace help in debugging the error in the provided JavaScript code? + +## --answers-- + +The stack trace shows that the function `add()` correctly returns the value of `c`. + +--- + +The stack trace indicates which line in the code needs to be edited to correct a syntax error. + +--- + +The stack trace provides a detailed path of function calls leading to the error, helping identify where `c` is incorrectly referenced. + +--- + +The stack trace only indicates that `print()` was called, but does not provide details about the error in `add()`. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md new file mode 100644 index 00000000000..decdc0a6121 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-g.md @@ -0,0 +1,56 @@ +--- +id: 66581a7eb1eb228115949300 +title: Learn to Solve Problems and Understand Errors Lesson G +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-g +--- + +# --description-- + +Say you have two strings that you would like to combine to create one message, such as below: + +```js +const str1 = "Hello"; +const str2 = "World!"; +const message = str1.push(str2); +``` + +an example of a type error in the Chrome developer console + +Here, you'll get a `TypeError` with a message stating that `str1.push is not a function`. This is a common error message that confuses learners because you might know that `.push()` is certainly a function (for example, if you have used it to add items to arrays before). + +But that's the key - `.push()` is not a String method, it's an Array method. Hence, it is “not a function” that you can find as a String method. If you change`.push()` to `.concat()`, a proper String method, our code runs as intended! + +A good note to keep in mind when faced with a `TypeError` is to consider the data type you are trying to run a method or operation against. You'll likely find that it is not what you think, or the operation or method is not compatible with that type. + +# --question-- + +## --text-- + +Why does the following JavaScript code result in a `TypeError`? + +```js +const str1 = "Hello"; +const str2 = "World!"; +const message = str1.push(str2); +``` + +## --answers-- + +The `.push()` method can only be used on objects, not strings. + +--- + +The `.push()` method is not available for strings because it is an Array method. + +--- + +The `.push()` method is incorrectly spelled and should be .pusch(). + +--- + +The `TypeError` is a result of a syntax error in the JavaScript code. + +## --video-solution-- + +2 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md new file mode 100644 index 00000000000..5993f5c4745 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-to-solve-problems-and-understand-errors/learn-to-solve-problems-and-understand-errors-lesson-h.md @@ -0,0 +1,42 @@ +--- +id: 66581a7fb1eb228115949301 +title: Learn to Solve Problems and Understand Errors Lesson H +challengeType: 15 +dashedName: learn-to-solve-problems-and-understand-errors-lesson-h +--- + +# --description-- + +At this point, you might be wondering how you can resolve these errors. + +1. You can start by understanding that the error message is your friend - not your enemy. Error messages tell you exactly what is wrong with your code, and which lines to examine to find the source of the error. Without error messages it would be a nightmare to debug our code - because it would still not work, you just wouldn’t know why! + +1. You shoud search your error on the web, most of the time you will be able to find a fix or explanation on StackOverflow or in the documentation. If nothing else, you will receive more clarity as to why you are receiving this error. + +1. Another way is to use `console.log()` — it is a popular choice for quick debugging. For more involved troubleshooting, using the debugger might be more appropriate, but using `console.log()` is great for getting immediate feedback without needing to step through your functions. There are also other useful methods such as `console.table()`, `console.trace()`, and more! + +# --question-- + +## --text-- + +When encountering an error in your code, which of the following is NOT a recommended step for identifying and resolving the issue? + +## --answers-- + +Utilizing `console.log()` or other console methods to debug and gain insights into the values and state of your code. + +--- + +Searching for the error message on resources like StackOverflow or reading documentation. + +--- + +Ignoring the error messages and guessing what might be wrong. + +--- + +Using error messages as a guide to understand what part of the code is causing the problem. + +## --video-solution-- + +3 diff --git a/curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md b/curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md new file mode 100644 index 00000000000..2401487a055 --- /dev/null +++ b/curriculum/challenges/arabic/16-the-odin-project/top-learn-variables-and-operators/learn-variables-and-operators-lesson-a.md @@ -0,0 +1,64 @@ +--- +id: 65e185b1500d930ce8ed909b +title: Learn Variables and Operators Lesson A +challengeType: 15 +dashedName: learn-variables-and-operators-lesson-a +--- + +# --description-- +The simplest way to get started is to create an HTML file with the JavaScript code inside of it. Type the basic HTML skeleton into a file on your computer somewhere: + +```html + + + + + Page Title + + + + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a ` + + +``` + +Save and open this file up in a web browser (you can use "Live Server" on Visual Studio Code to do this!) and then open up the browser’s console by right-clicking on the blank webpage and selecting "Inspect" or "Inspect Element". In the ‘Developer Tools’ pane find and select the ‘Console’ tab, where you should see the output of our `console.log` statement. + +> `console.log()` is the command to print something to the developer console in your browser. You can use this to print the results from any of the following articles and exercises to the console. We encourage you to code along with all of the examples in this and future lessons. + +Another way to include JavaScript in a webpage is through an external script. This is very similar to linking external CSS docs to your website. + +```html + +``` + +JavaScript files have the extension `.js` similar to `.css` for stylesheets. External JavaScript files are used for more complex scripts. + +# --question-- + +## --text-- + +Which statement accurately describes how to include JavaScript in an HTML document? + +## --answers-- + +JavaScript can only be included internally within a `