diff --git a/Lean-Mean-Drag-and-Drop-master/README.md b/Lean-Mean-Drag-and-Drop-master/README.md index 9f86850..dde3890 100644 --- a/Lean-Mean-Drag-and-Drop-master/README.md +++ b/Lean-Mean-Drag-and-Drop-master/README.md @@ -1,14 +1,15 @@ ## Lean-Mean-Drag-and-Drop -Lean & Mean Drag and Drop is a small script for dragging, dropping, sorting and reordering html structures + +Lean & Mean Drag and Drop is a small script for dragging, dropping, sorting and reordering html structures ### Features -- Supports nested structures ('nestable sortables') -- Smooth transitions -- Auto scroll while dragging -- Lightweight (~3.5kb gzipped) With no dependencies -- Supports touch events -- Super easy to integrate +- Supports nested structures ('nestable sortables') +- Smooth transitions +- Auto scroll while dragging +- Lightweight (~3.5kb gzipped) With no dependencies +- Supports touch events +- Super easy to integrate ### Usage @@ -23,12 +24,14 @@ Lean & Mean Drag and Drop is a small script for dragging, dropping, sorting and ``` -### Examples & Instrcutions +### Examples & Instructions can be found here: https://supraniti.github.io/Lean-Mean-Drag-and-Drop/ ### Notes + - Bug reports, Feature requests, Questions and any other feedback are welcome ### License + MIT diff --git a/alerts-data-types-variables-tutorial/index.html b/alerts-data-types-variables-tutorial/index.html new file mode 100644 index 0000000..973bafc --- /dev/null +++ b/alerts-data-types-variables-tutorial/index.html @@ -0,0 +1,356 @@ + + + + + Alerts, Data Types, Variables Tutorial | Bit by Bit + + + + + + + + +
+ +
+
+ +

+ Alerts are helpful in understanding code at its beginnings + and also when looking for errors in code. + Alerts, when run, create a popup containing text which tells + the user something. Alerts in JavaScript are written as so: +

alert
( *Thing alerted* )
;
+

+

+ Let's break this down. The first part of the alert is the + word alert. This tells the computer that we have created an + alert. +

+

+ The next part of the alert are the parentheses. These are + the brackets that surround the things that are alerted. +

+

+ Inside the parentheses are the things that are alerted. To + learn more about how these things turn out, go to the data types section. +

+

+ The last part of the alert is the semicolon which signifies + the end of the line of code. +

+
+
+

+ Here are some examples of alerts: +

+

+

+
alert
+

+ First, we have the word alert which speacifies that + we want to create an alert +

+ (
"Hello World!"
) +
;
+


+ +
+
alert
+
(

+ Next, we have parentheses that surround the alerted message +

5
) +
;
+


+ +
+
alert
+ (
true

+ The final part of an alert is the thing that is alerted +

) +
;
+
+

+ +
+
+ Bit by Bot +
+
+
+
+
+
+ +

+ There are three different data types that we learn + in Hello World. They are Strings, Numbers, and Boolean values. +

+
+
+

Strings

+

+ Strings are just words. They are text and they always appear + as they are written. You can tell things are strings as they + have quotation marks around them. +

+

+ There are two parts of strings. The quotation marks that + surround the string and the words/stuff inside the string. + The stuff inside the quotation marks are what show up + when things are alerted. +

+

+ Here are some examples of strings: +

+

+ "Hello World!"

+ "This is a string. It is words. Isn't it amazing"

+ "This is string number 3. It can have numbers and the words + true or false" +

+

+ Here are those examples as alerts: +

+

+

alert
(
"Hello World!"
)
;


+
alert
(
"This is a string. It is words. Isn't it amazing"
)
;


+
alert
(
"This is string number 3. It can have numbers and the words true or false"
)
;
+

+ +
+
+
+

Numbers

+

+ Just like their name suggests, the numbers data type refers to + things with numbers in them. Numbers also include different + opperators, or things you can find in math like + , - , / , + * , and more. +

+

+ You can tell that a data type is numbers if there are numbers + and/or operators (+ , - , / , *) with no quotation marks + around them. +

+

+ Here are some examples of numbers: +

+

+ 25

+ 7 * 3

+ 5 + 4 / 2 +

+

+ Here are those examples as alerts: +

+

+

alert
(
25
)
;


+
alert
(
7 * 3
)
;


+
alert
(
5 + 4 / 2
)
;
+

+ +
+
+

Boolean values

+

+ Boolean values are just true or false. Though they are words, + they aren't strings. Instead, they represent whether something + is true, like 2 > 1, or false, like 1 > 2. +

+

+ You can tell if things are a boolean value in two ways: +
+ 1) they are just the word true or false without quotation + marks around them.
+ 2) there is a comparison operator such as < or > (we'll learn more later!) +

+

+ Here are some examples of boolean values: +

+

+ true

+ 1 > 2

+ 25 < 78 +

+

+ Here are those examples as alerts: +

+

+

alert
(
true
)
;


+
alert
(
1 > 2
)
;


+
alert
(
25 < 78
)
;
+

+ +
+
+
+
+
+ +
+
+

+ Variables are all about storing data types in a container that + is labeled by a word or letter, just like math. For example, if + I have 2 apples, John has 10 apples, and Susan has twice as + many apples as the difference between John's apples and mine, + how would I find out how many apples Susan has? I would use + variables to represent the number of apples Susan has until I can + find the answer. +

+

+ My apples = m
+ John's apples = j
+ Sunsan's apples = s

+ s = 2(j - m)
+ m = 2
+ s = 2(j - 2)
+ j = 10
+ s = 2(10 - 2)
+ s = 2(8)
+ s = 16
+

+

+ From this example, we can see that m, j, and s are all variables + that store/represent a value/data type which, in this case, is + numbers. +

+
+
+

+ In JavaScript, variables are used to store a data type or a + piece of information that might change over time or that + we want to use several times.
+ Variables in JavaScript look like this:
+

let
variableName
= data type
;
+

+

+ Here are some examples of variables: +

+

+

+
let
+

+ We first write the word "let" to start a variable +

+
greeting
= +
"Hello! Nice to meet you"
+
;
+


+ +
+
let
+
appleNumber
+

+ Next, we write the name of our variable. We use this to + call upon the variable later +

+ = +
10
+
;
+


+ +
+
let
+
bigDog
= +
false
+

+ Lastly, we give the variable a value which should be a + data type +

+
;
+
+ +

+

+ Here are those examples as alerts: +

+

+

let
greeting
=
"Hello! Nice to meet you"
;

+
alert
(
greeting
)
;


+ +
let
appleNumber
=
10
;

+
alert
(
appleNumber
)
;


+ +
let
bigDog
=
false
;

+
alert
(
bigDog
)
;
+ +

+ +
+
+
+
+
+
+ +
+
+ +
+
+
+ + +
+ + + diff --git a/alerts-data-types-variables-tutorial/script.js b/alerts-data-types-variables-tutorial/script.js new file mode 100644 index 0000000..d31adfc --- /dev/null +++ b/alerts-data-types-variables-tutorial/script.js @@ -0,0 +1,346 @@ +let alertElement = document.getElementById("alert"); + +function alertCode() { + alert("Hello World!"); + alert(5); + alert(true); +} + +alertElement.onclick = alertCode; + +let stringElement = document.getElementById("strings"); + +function stringsCode() { + alert("Hello World!"); + alert("This is a string. It is words. Isn't it amazing"); + alert( + "This is string number 3. It can have numbers and the words true or false" + ); +} + +stringElement.onclick = stringsCode; + +let numbersElement = document.getElementById("numbers"); + +function numbersCode() { + alert(25); + alert(7 * 3); + alert(5 + 4 / 2); +} + +numbersElement.onclick = numbersCode; + +let booleanElement = document.getElementById("boolean"); + +function booleanCode() { + alert(true); + alert(1 > 2); + alert(25 < 78); +} + +booleanElement.onclick = booleanCode; + +let variableElement = document.getElementById("variable"); + +function variableCode() { + let greeting = "Hello! Nice to meet you"; + alert(greeting); + + let appleNumber = 10; + alert(appleNumber); + + let bigDog = false; + alert(bigDog); +} + +variableElement.onclick = variableCode; + +let pointsElement = document.getElementById("points"); + +// done game +let doneFunction = function () { + alert("Done!"); +}; + +//Game code alerts: +let pGameElement = document.getElementById("gameCode"); +let buildingCodeElement = document.getElementById("buildingCode"); + +let optionOne = document.getElementById("option1"); +let optionTwo = document.getElementById("option2"); +let optionThree = document.getElementById("option3"); + +let point = 0; + +function wrong() { + point--; + pGameElement.innerText = "Whoops, wrong guess, try again"; +} + +function alertComplete() { + point++; + buildingCodeElement.innerText = 'alert("Happy Birthday");'; + + pGameElement.innerText = + "Congrats, you completed the alert! You got " + point + " points!"; + + function runAlertCode() { + alert("Happy Birthday"); + } + + optionOne.innerText = " "; + optionTwo.innerText = "Run code"; + optionThree.innerText = " "; + + optionOne.onclick = doneFunction; + optionTwo.onclick = runAlertCode; + optionThree.onclick = doneFunction; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function twoCorrect() { + point++; + buildingCodeElement.innerText = "alert();"; + + pGameElement.innerText = + "Correct! Now, if I want my alert to alert the words: 'Happy Birthday', what should go inside the parentheses"; + + optionOne.innerText = "Happy Birthday"; + optionTwo.innerText = "'Happy Birthday"; + optionThree.innerText = '"Happy Birthday"'; + + optionThree.onclick = alertComplete; + optionOne.onclick = wrong; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function oneCorrect() { + point++; + buildingCodeElement.innerText = "alert"; + + pGameElement.innerText = "Correct! What is the next part of my alert?"; + + optionOne.innerText = "( );"; + optionTwo.innerText = "{ };"; + optionThree.innerText = "< >;"; + + optionOne.onclick = twoCorrect; + optionThree.onclick = wrong; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function startGame() { + pGameElement.innerText = "How do you start an alert?"; + + optionOne.innerText = "let"; + optionTwo.innerText = '""'; + optionThree.innerText = "alert"; + + optionThree.onclick = oneCorrect; + optionTwo.onclick = wrong; + optionOne.onclick = wrong; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +optionTwo.onclick = startGame; + +//Game code: Data types +let pGame2Element = document.getElementById("gameCode2"); +let buildingCode2Element = document.getElementById("buildingCode2"); + +let optionOne2 = document.getElementById("option4"); +let optionTwo2 = document.getElementById("option5"); +let optionThree2 = document.getElementById("option6"); + +function wrong2() { + point--; + pGame2Element.innerText = "Whoops, wrong guess, try again"; +} + +function dataTypeComplete() { + point++; + buildingCode2Element.innerHTML = + 'alert(8);
alert("String, 5, true");
alert(5 > 9);'; + + pGame2Element.innerText = + "Congrats, you completed the data types practice! You got " + + point + + " points!"; + + function runDataTypeCode() { + alert(8); + alert("String, 5, true"); + alert(5 > 9); + } + + optionOne2.innerText = " "; + optionTwo2.innerText = "Run code"; + optionThree2.innerText = " "; + + optionOne2.onclick = doneFunction; + optionTwo2.onclick = runDataTypeCode; + optionThree2.onclick = doneFunction; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function fourCorrect() { + point++; + buildingCode2Element.innerHTML = + 'alert(8);
alert("String, 5, true");
alert(*boolean*);'; + + pGame2Element.innerText = + "Correct! Last but not least, which of these is a boolean value?"; + + optionOne2.innerText = "5 > 9"; + optionTwo2.innerText = "None, they are all wrong"; + optionThree2.innerText = '"true"'; + + optionOne2.onclick = dataTypeComplete; + optionThree2.onclick = wrong2; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function threeCorrect() { + point++; + buildingCode2Element.innerHTML = + "alert(8);
alert(*string*);
alert(*boolean*);"; + + pGame2Element.innerText = "Correct! Which one of these things is a string?"; + + optionOne2.innerText = "(This is a string)"; + optionTwo2.innerText = "true"; + optionThree2.innerText = '"String, 5, true"'; + + optionThree2.onclick = fourCorrect; + optionTwo2.onclick = wrong2; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function startGame2() { + pGame2Element.innerText = "Which of these is a numbers data type?"; + buildingCode2Element.innerHTML = + "alert(*number*);
alert(*string*);
alert(*boolean*);"; + + optionOne2.innerText = '"3"'; + optionTwo2.innerText = "8"; + optionThree2.innerText = "5 > 2"; + + optionThree2.onclick = wrong2; + optionTwo2.onclick = threeCorrect; + optionOne2.onclick = wrong2; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +optionTwo2.onclick = startGame2; + +//Game code: Variables +let pGame3Element = document.getElementById("gameCode3"); +let buildingCode3Element = document.getElementById("buildingCode3"); + +let optionOne3 = document.getElementById("option7"); +let optionTwo3 = document.getElementById("option8"); +let optionThree3 = document.getElementById("option9"); + +function wrong3() { + point--; + pGame3Element.innerText = "Whoops, wrong guess, try again"; +} + +function variableComplete() { + point++; + buildingCode3Element.innerHTML = + "let variableName = 10 + 21;
alert(variableName);"; + + pGame3Element.innerText = + "Congrats, you completed the variable practice! You got " + + point + + " points!"; + + function runVariableCode() { + let variableName = 10 + 21; + alert(variableName); + } + + optionOne3.innerText = " "; + optionTwo3.innerText = "Run code"; + optionThree3.innerText = " "; + + optionOne3.onclick = doneFunction; + optionTwo3.onclick = runVariableCode; + optionThree3.onclick = doneFunction; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function sevenCorrect() { + point++; + buildingCode3Element.innerText = "let variableName = 10 + 21;"; + + pGame3Element.innerText = "Correct! How do you alert this variable?"; + + optionOne3.innerText = "alert(variableName)"; + optionTwo3.innerText = 'alert("variableName");'; + optionThree3.innerText = "alert(variableName);"; + + optionThree3.onclick = variableComplete; + optionTwo3.onclick = wrong3; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function sixCorrect() { + point++; + buildingCode3Element.innerText = "let variableName = "; + + pGame3Element.innerText = + "Correct! Which of these is a possible value for my variable?"; + + optionOne3.innerText = "true, 5, words"; + optionTwo3.innerText = "10 + 21"; + optionThree3.innerText = '"Hello " world'; + + optionTwo3.onclick = sevenCorrect; + optionOne3.onclick = wrong3; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function fiveCorrect() { + point++; + buildingCode3Element.innerText = "let "; + + pGame3Element.innerText = + "Correct! What is the next step in creating a variable?"; + + optionOne3.innerText = "variableName = "; + optionTwo3.innerText = "variableName()"; + optionThree3.innerText = "= ()"; + + optionOne3.onclick = sixCorrect; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function startGame3() { + pGame3Element.innerText = "How do you start a variable?"; + + optionOne3.innerText = "let"; + optionTwo3.innerText = "variable"; + optionThree3.innerText = "="; + + optionThree3.onclick = wrong3; + optionTwo3.onclick = wrong3; + optionOne3.onclick = fiveCorrect; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +optionTwo3.onclick = startGame3; diff --git a/alerts-data-types-variables-tutorial/style.css b/alerts-data-types-variables-tutorial/style.css new file mode 100644 index 0000000..59f4ff7 --- /dev/null +++ b/alerts-data-types-variables-tutorial/style.css @@ -0,0 +1,299 @@ +/* style.scss */ +/* Import the common styling */ +/* common.scss */ +/* Define all the colors */ +body { + margin: 5em 0 0 0; + padding: 0; + background-color: #fff; + font-family: 'Nunito', sans-serif; + font-weight: 600; +} + +button { + border: none; + background: #38Bfe7; + padding: 0.5em 1em; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + cursor: pointer; +} + +button:hover { + background-color: #19a8d3; +} + +button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +#header { + padding: 1em 2em; + background-color: white; + color: #000; + position: fixed; + top: 0; + left: 0; + width: 100%; + max-height: 3em; + z-index: 1000; + opacity: 95%; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; +} + +#header > * { + margin: 0; +} + +#header button { + width: 3em; +} + +#back-button { + padding: 0.25em 1em; + font-size: 1em; + height: 48px; +} + +.content { + padding: 1em; + max-width: 80%; + margin: 0 auto; +} + +/*Flexbox*/ +.flex-container-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.flex-container-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +.flex-item-header { + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; +} + +.flex-item-left { + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +#top-heading { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +#bxb-logo { + max-height: 3em; + display: block; + text-align: left; + margin-left: calc(100% - 200px); +} + +.section { + margin: 1em 0; + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; +} + +.flex-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.flex-col { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.5em; +} + +.flex-col:not(:last-child) { + margin: 0 0.2em 0 0; +} + +.flex-col:last-child { + margin: 0 0 0 0.2em; +} + +.no-flex-col { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.showcase-section { + padding: 0; +} + +.editor-section { + position: relative; + overflow: scroll; + padding: 0; +} + +.editor { + margin: 0; + height: 20em; + width: calc(100% - 35px - calc(0.625em*2)); + font-family: 'Anonymous Pro', monospace; + font-size: 0.875em; + line-height: 1.25em; + padding: 1px 0.625em; +} + +.editor-button-overlay { + position: absolute; + bottom: 1em; + right: 1em; + padding: 0; +} + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} + +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} + +.codePartThree { + display: inline-block; + color: #236274; +} + +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.semicolon { + display: inline-block; + color: #e0c02e; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + -webkit-box-shadow: black 3px 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.flex-box { + position: relative; +} + +#bit-by-bot-alert { + width: 13em; + height: auto; + position: absolute; + bottom: 15px; + right: 180px; +} + +#navQuiz { + position: relative; +} + +#bit-by-bot-quiz { + width: 20em; + height: auto; + position: absolute; + right: 150px; + top: 150px; +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/alerts-data-types-variables-tutorial/style.scss b/alerts-data-types-variables-tutorial/style.scss new file mode 100644 index 0000000..260d28f --- /dev/null +++ b/alerts-data-types-variables-tutorial/style.scss @@ -0,0 +1,113 @@ +/* style.scss */ + +/* Import the common styling */ +@import "../assets/common.scss"; + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ + +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} +.codePartThree { + display: inline-block; + color: #236274; +} +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.semicolon { + display: inline-block; + color: rgb(224, 192, 46); +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.flex-box { + position: relative; +} + +#bit-by-bot-alert { + width: 13em; + height: auto; + position: absolute; + bottom: 15px; + right: 180px; +} + +#navQuiz { + position: relative; +} + +#bit-by-bot-quiz { + width: 20em; + height: auto; + position: absolute; + right: 150px; + top: 150px; +} diff --git a/array-tutorial/index.html b/array-tutorial/index.html new file mode 100644 index 0000000..1a1eacf --- /dev/null +++ b/array-tutorial/index.html @@ -0,0 +1,303 @@ + + + + + Array Tutorial | Bit by Bit + + + + + + + + +
+ +
+ +
+ Happy Bit by Bot +
+
+
+ +
+
+ +
+ Bit by Bot Changing Arrays +
+
+
+ +
+ +
+ + + diff --git a/array-tutorial/script.js b/array-tutorial/script.js new file mode 100644 index 0000000..fb82d76 --- /dev/null +++ b/array-tutorial/script.js @@ -0,0 +1,512 @@ +//Running Code +let arrayRun = document.getElementById("runArrays"); + +let arrayRunCode = function () { + let shoppingList = ["eggs", "milk", "bread", "apples"]; + alert(shoppingList); + + let oodNumbersLessThanTen = [1, 3, 5, 7, 9]; + alert(oodNumbersLessThanTen); + + let isItWorking = [true, false, true]; + alert(isItWorking); +}; + +arrayRun.onclick = arrayRunCode; + +let indexRun = document.getElementById("indexRun"); + +let indexRunCode = function () { + let perfectSquareNumbers = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]; + alert(perfectSquareNumbers[5]); + + let greaterThanThree = [false, false, false, true, true]; + alert(greaterThanThree[2]); + + let colors = ["red", "organge", "yellow", "green", "blue", "purple"]; + alert(colors[0]); +}; + +indexRun.onclick = indexRunCode; + +let changeRun = document.getElementById("changeRun"); + +let changeRunCode = function () { + let sodaBrands = ["Coke", "Mountain Dew", "Fanta", "Dr Pepper"]; + alert("Before: " + sodaBrands); + sodaBrands.push("Pepsi"); + alert("After: " + sodaBrands); + + let numberOfBeanCans = [2, 6, 3, 1, 7, 5, 8]; + alert("Before: " + numberOfBeanCans); + numberOfBeanCans.push(4); + alert("After: " + numberOfBeanCans); + + let bestGame = [true, false, true, true]; + alert("Before: " + bestGame); + bestGame.push(true); + alert("After: " + bestGame); +}; + +changeRun.onclick = changeRunCode; + +//Indexing practice +let acAnswer = document.getElementById("acAnswer"); +let acButton = document.getElementById("acButton"); + +let acPractice = function () { + let acValue = acAnswer.value; + + if (acValue === "") { + alert("This is no code here, write a number"); + } else if (acValue > 4) { + alert("Please try a different number. This one is too big"); + } else if (acValue < 0) { + alert("Please try a different number. This one is too small"); + } else { + let answerCheck = [true, false, true, false, false]; + alert(answerCheck[acValue]); + } +}; + +acButton.onclick = acPractice; + +let ftAnswer = document.getElementById("ftAnswer"); +let ftButton = document.getElementById("ftButton"); + +let ftPractice = function () { + let ftValue = ftAnswer.value; + + if (ftValue === "") { + alert("This is no code here, write a number"); + } else if (ftValue > 4) { + alert("Please try a different number. This one is too big"); + } else if (ftValue < 0) { + alert("Please try a different number. This one is too small"); + } else { + let flowerTypes = ["daffodils", "daisies", "roses", "tulips", "hydrangeas"]; + alert(flowerTypes[ftValue]); + } +}; + +ftButton.onclick = ftPractice; + +let m3Answer = document.getElementById("m3Answer"); +let m3Button = document.getElementById("m3Button"); + +let m3Practice = function () { + let m3Value = m3Answer.value; + + if (m3Value === "") { + alert("There is no code here, write a number"); + } else if (m3Value > 9) { + alert("Please try a different number. This one is too big"); + } else if (m3Value < 0) { + alert("Please try a different number. This one is too small"); + } else { + let multiplesOfThree = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]; + alert(multiplesOfThree[m3Value]); + } +}; + +m3Button.onclick = m3Practice; + +//Game code +let pointCheck = document.getElementById("points"); + +let doneFunction = function () { + alert("Done!"); +}; + +//Building arrays +let baInstruction = document.getElementById("gameCode"); +let baCode = document.getElementById("buildingCode"); + +let baOption1 = document.getElementById("option1"); +let baOption2 = document.getElementById("option2"); +let baOption3 = document.getElementById("option3"); + +let point = 0; + +let baWrong = function () { + point--; + pointCheck.innerText = "Points: " + point; + baInstruction.innerText = + baInstruction.innerText + " Wrong guess, please try again"; +}; + +let baGameWin = function () { + point++; + pointCheck.innerText = "Points: " + point; + baInstruction.innerText = "Correct! You made an array!"; + + baOption1.innerText = ""; + baOption2.innerText = "Run code"; + baOption3.innerText = ""; + + let functionName = function () { + let arrayName = ["happiness", true, 5, "good"]; + alert(arrayName); + }; + baOption2.onclick = functionName; + baOption1.onclick = doneFunction; + baOption3.onclick = doneFunction; +}; + +let baGameCorrect5 = function () { + point++; + pointCheck.innerText = "Points: " + point; + baCode.innerHTML = + 'let arrayName = ["happiness", true, 5, "good"];
alert(arrayName);'; + + baInstruction.innerText = "What will this array alert?"; + + baOption1.innerText = "happiness,true,5,good"; + baOption2.innerText = "true,5"; + baOption3.innerText = "happiness,good"; + + baOption1.onclick = baGameWin; + baOption2.onclick = baWrong; +}; + +let baGameCorrect4 = function () { + point++; + pointCheck.innerText = "Points: " + point; + baCode.innerHTML = 'let arrayName = ["happiness", ];'; + + baInstruction.innerText = + "Add some values to the array. Make sure they are correct syntax"; + + baOption1.innerText = "nice, nice, false"; + baOption2.innerText = 'true, 5, "good"'; + baOption3.innerText = "5, 10 , 4true"; + + baOption2.onclick = baGameCorrect5; + baOption1.onclick = baWrong; +}; + +let baGameCorrect3 = function () { + point++; + pointCheck.innerText = "Points: " + point; + baCode.innerText = 'let arrayName = ["happiness"];'; + + baInstruction.innerText = "How do we separate different values in our array?"; + + baOption1.innerText = "comma: ,"; + baOption2.innerText = "space: "; + baOption3.innerText = "line: |"; + + baOption1.onclick = baGameCorrect4; +}; + +let baGameCorrect2 = function () { + point++; + pointCheck.innerText = "Points: " + point; + baCode.innerText = "let arrayName = [];"; + + baInstruction.innerText = + "Which of these is something we can have inside our array?"; + + baOption1.innerText = '"happiness"'; + baOption2.innerText = "true5"; + baOption3.innerText = "hello world"; + + baOption1.onclick = baGameCorrect3; + baOption2.onclick = baWrong; +}; + +let baGameCorrect1 = function () { + point++; + pointCheck.innerText = "Points: " + point; + baCode.innerText = "let arrayName = "; + + baInstruction.innerText = + "How do we show that this is an array (What comes next?)?"; + + baOption1.innerText = "();"; + baOption2.innerText = "[];"; + baOption3.innerText = "{};"; + + baOption2.onclick = baGameCorrect2; + baOption3.onclick = baWrong; +}; + +let baGameStart = function () { + baInstruction.innerText = "How do we start an array?"; + + baOption1.innerText = "array.() = "; + baOption2.innerText = "array(arrayName) = "; + baOption3.innerText = "let arrayName = "; + + baOption1.onclick = baWrong; + baOption2.onclick = baWrong; + baOption3.onclick = baGameCorrect1; +}; + +baOption2.onclick = baGameStart; + +//Indexing arrays +let iaInstruction = document.getElementById("gameCode2"); +let iaCode = document.getElementById("buildingCode2"); + +let iaOption1 = document.getElementById("option4"); +let iaOption2 = document.getElementById("option5"); +let iaOption3 = document.getElementById("option6"); + +let iaWrong = function () { + point--; + pointCheck.innerText = "Points: " + point; + iaInstruction.innerText = iaInstruction.innerText + " Wrong guess, try again"; +}; + +let iaGameWin = function () { + point++; + pointCheck.innerText = "Points: " + point; + iaInstruction.innerHTML = "You win! You can now index arrays!"; + iaCode.innerHTML = "Cycle and run code using buttons below"; + + let cycleOne = function () { + iaCode.innerHTML = + 'let arrayName = ["arrayValue1", "arrayValue2", "arrayValue3"];'; + + let runFunction1 = function () { + let arrayName = ["arrayValue1", "arrayValue2", "arrayValue3"]; + alert(arrayName); + }; + iaOption1.onclick = cycleTwo; + iaOption2.onclick = runFunction1; + }; + + let cycleTwo = function () { + iaCode.innerHTML = + 'let arrayName = ["arrayValue1", "arrayValue2", "arrayValue3"];
arrayName[2];'; + + let runFunction2 = function () { + let arrayName = ["arrayValue1", "arrayValue2", "arrayValue3"]; + alert(arrayName[2]); + }; + iaOption1.onclick = cycleThree; + iaOption2.onclick = runFunction2; + }; + + let cycleThree = function () { + iaCode.innerHTML = + 'let greetingArray = ["hi", "hello", "good morning", "nice to meeting you"];
alert(greetingArray[1]);'; + + let runFunction3 = function () { + let greetingArray = [ + "hi", + "hello", + "good morning", + "nice to meeting you" + ]; + alert(greetingArray[1]); + }; + iaOption1.onclick = cycleFour; + iaOption2.onclick = runFunction3; + }; + + let cycleFour = function () { + iaCode.innerHTML = + 'let gemArray = ["emerald", "ruby", "sapphire", "garnet", "rose quarts", "amaythest", "peral"];
let realGem = gemArray[8];
alert(realGem);'; + + let runFunction4 = function () { + let gemArray = [ + "emerald", + "ruby", + "sapphire", + "garnet", + "rose quarts", + "amaythest", + "peral" + ]; + let realGem = gemArray[6]; + alert(realGem); + }; + iaOption1.onclick = cycleOne; + iaOption2.onclick = runFunction4; + }; + + iaOption1.innerText = "Cycle Code"; + iaOption2.innerText = "Run function"; + iaOption3.innerText = ""; + + iaOption1.onclick = cycleOne; + iaOption2.onclick = doneFunction; + iaOption3.onclick = doneFunction; +}; + +let iaGameCorrect4 = function () { + point++; + pointCheck.innerText = "Points: " + point; + iaCode.innerHTML = + 'let gemArray = ["emerald", "ruby", "sapphire", "garnet", "rose quarts", "amaythest", "peral"];
let realGem = gemArray[?];
alert(realGem);'; + iaInstruction.innerHTML = "How do I alert peral from this array?"; + + iaOption1.innerText = "let realGem = gemArray[4];"; + iaOption2.innerText = "let realGem = gemArray[6];"; + iaOption3.innerText = "let realGem = gemArray[8];"; + + iaOption2.onclick = iaGameWin; + iaOption3.onclick = iaWrong; +}; + +let iaGameCorrect3 = function () { + point++; + pointCheck.innerText = "Points: " + point; + iaCode.innerHTML = + 'let gemArray = ["emerald", "ruby", "sapphire", "garnet", "rose quarts", "amaythest", "peral"];
let realGem = gemArray[8];
alert(realGem);'; + iaInstruction.innerHTML = "Which part of line 2 makes this incorrect?"; + + iaOption1.innerText = "let realGem"; + iaOption2.innerText = "gemArray"; + iaOption3.innerText = "[8]"; + + iaOption3.onclick = iaGameCorrect4; + iaOption2.onclick = iaWrong; +}; + +let iaGameCorrect2 = function () { + point++; + pointCheck.innerText = "Points: " + point; + iaInstruction.innerText = "How do I alert the value: hello?"; + iaCode.innerHTML = + 'let greetingArray = ["hi", "hello", "good morning", "nice to meeting you"];
alert(greetingArray[?]);'; + + iaOption1.innerText = "alert(greetingArray[1]);"; + iaOption2.innerText = "alert(greetingArray[2]);"; + iaOption3.innerText = "alert(greetingArray[3]);"; + + iaOption1.onclick = iaGameCorrect3; + iaOption2.onclick = iaWrong; +}; + +let iaGameCorrect1 = function () { + point++; + pointCheck.innerText = "Points: " + point; + iaInstruction.innerText = "How do I index this array to get arrayValue3?"; + iaCode.innerHTML = + 'let arrayName = ["arrayValue1", "arrayValue2", "arrayValue3"];'; + + iaOption1.innerText = "arrayName[1];"; + iaOption2.innerText = "arrayName[2];"; + iaOption3.innerText = "arrayName[3];"; + + iaOption2.onclick = iaGameCorrect2; + iaOption1.onclick = iaWrong; +}; + +let iaGameStart = function () { + iaInstruction.innerText = + "Let's index some arrays! Which number is the index for the first value in the array?"; + iaCode.innerHTML = + 'let arrayName = ["arrayValue1", "arrayValue2", "arrayValue3"];'; + + iaOption1.innerText = "0"; + iaOption2.innerText = "1"; + iaOption3.innerText = "first"; + + iaOption1.onclick = iaGameCorrect1; + iaOption2.onclick = iaWrong; + iaOption3.onclick = iaWrong; +}; + +iaOption2.onclick = iaGameStart; + +//Changing arrays code +let cInstruction = document.getElementById("gameCode3"); +let cCode = document.getElementById("buildingCode3"); + +let cOption1 = document.getElementById("option7"); +let cOption2 = document.getElementById("option8"); +let cOption3 = document.getElementById("option9"); + +let cWrong = function () { + point--; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = cInstruction.innerText + " Wrong guess, try again"; +}; + +let cWinGame = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = + "You won! Congratulations for calling multiple functions!"; + cCode.innerHTML = + 'let funArray = ["parties", "skydiving", "video games"];
funArray.push("hanging with friends");
alert(funArray);'; + + let runCode = function () { + let funArray = ["parties", "skydiving", "video games"]; + funArray.push("hanging with friends"); + alert(funArray); + }; + + cOption1.innerText = ""; + cOption2.innerText = "Run code"; + cOption3.innerText = ""; + + cOption1.onclick = doneFunction; + cOption2.onclick = runCode; + cOption3.onclick = doneFunction; +}; + +let cCorrect3 = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = "What can I put inside the parentheses?"; + cCode.innerHTML = + 'let funArray = ["parties", "skydiving", "video games"];
funArray.push(?);'; + + cOption1.innerText = '"music'; + cOption2.innerText = "4fun"; + cOption3.innerText = '"hanging with friends"'; + + cOption3.onclick = cWinGame; + cOption1.onclick = cWrong; +}; + +let cCorrect2 = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = "What goes inside the parentheses?"; + cCode.innerHTML = + 'let funArray = ["parties", "skydiving", "video games"];
funArray.push();'; + + cOption1.innerText = "The array we are changing"; + cOption2.innerText = "Nothing"; + cOption3.innerText = "The value we are adding"; + + cOption3.onclick = cCorrect3; + cOption1.onclick = cWrong; +}; + +let cCorrect1 = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = "What do we put after the array name?"; + cCode.innerHTML = + 'let funArray = ["parties", "skydiving", "video games"];
funArray'; + + cOption1.innerText = ".push();"; + cOption2.innerText = "push();"; + cOption3.innerText = "push{};"; + + cOption1.onclick = cCorrect2; + cOption2.onclick = cWrong; +}; + +let cStartGame = function () { + cInstruction.innerText = + "What is the first thing we type when changing an array?"; + cCode.innerHTML = 'let funArray = ["parties", "skydiving", "video games"];'; + + cOption1.innerText = "let funArray;"; + cOption2.innerText = "funArray"; + cOption3.innerText = "funArray +="; + + cOption3.onclick = cWrong; + cOption2.onclick = cCorrect1; + cOption1.onclick = cWrong; +}; + +cOption2.onclick = cStartGame; diff --git a/array-tutorial/style.css b/array-tutorial/style.css new file mode 100644 index 0000000..16838ba --- /dev/null +++ b/array-tutorial/style.css @@ -0,0 +1,323 @@ +/* style.scss */ +/* Import the common styling */ +/* common.scss */ +/* Define all the colors */ +body { + margin: 5em 0 0 0; + padding: 0; + background-color: #fff; + font-family: 'Nunito', sans-serif; + font-weight: 600; +} + +button { + border: none; + background: #38Bfe7; + padding: 0.5em 1em; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + cursor: pointer; +} + +button:hover { + background-color: #19a8d3; +} + +button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +#header { + padding: 1em 2em; + background-color: white; + color: #000; + position: fixed; + top: 0; + left: 0; + width: 100%; + max-height: 3em; + z-index: 1000; + opacity: 95%; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; +} + +#header > * { + margin: 0; +} + +#header button { + width: 3em; +} + +#back-button { + padding: 0.25em 1em; + font-size: 1em; + height: 48px; +} + +.content { + padding: 1em; + max-width: 80%; + margin: 0 auto; +} + +/*Flexbox*/ +.flex-container-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.flex-container-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +.flex-item-header { + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; +} + +.flex-item-left { + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +#top-heading { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +#bxb-logo { + max-height: 3em; + display: block; + text-align: left; + margin-left: calc(100% - 200px); +} + +.section { + margin: 1em 0; + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; +} + +.flex-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.flex-col { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.5em; +} + +.flex-col:not(:last-child) { + margin: 0 0.2em 0 0; +} + +.flex-col:last-child { + margin: 0 0 0 0.2em; +} + +.no-flex-col { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.showcase-section { + padding: 0; +} + +.editor-section { + position: relative; + overflow: scroll; + padding: 0; +} + +.editor { + margin: 0; + height: 20em; + width: calc(100% - 35px - calc(0.625em*2)); + font-family: 'Anonymous Pro', monospace; + font-size: 0.875em; + line-height: 1.25em; + padding: 1px 0.625em; +} + +.editor-button-overlay { + position: absolute; + bottom: 1em; + right: 1em; + padding: 0; +} + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +input { + width: 50px; +} + +div { + padding-bottom: 3px; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} + +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} + +.codePartThree { + display: inline-block; + color: #236274; +} + +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codeInside { + margin-left: 30px; + color: #fad636; +} + +.semicolon { + display: inline-block; + color: #f8d227; +} + +.whiteSpace { + color: white; + display: inline-block; +} + +.indexButton { + margin: 10px 0 10px 30px; + display: block; + min-width: 0; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; +} + +.item { + -webkit-box-flex: 100px; + -ms-flex: 100px 1 1; + flex: 100px 1 1; +} + +.flex-col { + overflow: hidden; +} + +.flex-box { + position: relative; +} + +#bit-by-bot-happy { + width: 20em; + height: auto; + position: absolute; + right: 100px; +} + +#bit-by-bot-changing { + width: 12em; + height: auto; + position: absolute; + right: 100px; + top: 80px; +} + +#navQuiz { + position: relative; +} + +#bit-by-bot-quiz { + width: 10em; + height: auto; + position: absolute; + right: 100px; +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/array-tutorial/style.scss b/array-tutorial/style.scss new file mode 100644 index 0000000..47719d9 --- /dev/null +++ b/array-tutorial/style.scss @@ -0,0 +1,134 @@ +/* style.scss */ + +/* Import the common styling */ +@import "../assets/common.scss"; + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ + +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +input { + width: 50px; +} + +div { + padding-bottom: 3px; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} +.codePartThree { + display: inline-block; + color: #236274; +} +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codeInside { + margin-left: 30px; + color: rgb(250, 214, 54); +} + +.semicolon { + display: inline-block; + color: rgb(248, 210, 39); +} + +.whiteSpace { + color: white; + display: inline-block; +} + +.indexButton { + margin: 10px 0 10px 30px; + display: block; + min-width: 0; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.container { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; +} + +.item { + flex: 100px 1 1; +} + +.flex-col { + overflow: hidden; +} + +.flex-box { + position: relative; +} + +#bit-by-bot-happy { + width: 20em; + height: auto; + position: absolute; + right: 100px; +} + +#bit-by-bot-changing { + width: 12em; + height: auto; + position: absolute; + right: 100px; + top: 80px; +} + +#navQuiz { + position: relative; +} + +#bit-by-bot-quiz { + width: 10em; + height: auto; + position: absolute; + right: 100px; + //margin: -120px 0 -180px 0; +} diff --git a/assets/bit-by-bot-images/bulb-surprised-bot.svg b/assets/bit-by-bot-images/bulb-surprised-bot.svg new file mode 100755 index 0000000..641dc03 --- /dev/null +++ b/assets/bit-by-bot-images/bulb-surprised-bot.svg @@ -0,0 +1,7188 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/bulb-suspicious-open-bot.svg b/assets/bit-by-bot-images/bulb-suspicious-open-bot.svg new file mode 100755 index 0000000..8f21e4e --- /dev/null +++ b/assets/bit-by-bot-images/bulb-suspicious-open-bot.svg @@ -0,0 +1,7088 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/candy-cane-bot.svg b/assets/bit-by-bot-images/candy-cane-bot.svg new file mode 100755 index 0000000..0839ba3 --- /dev/null +++ b/assets/bit-by-bot-images/candy-cane-bot.svg @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bit-by-bot-images/computer-error-bot.svg b/assets/bit-by-bot-images/computer-error-bot.svg new file mode 100755 index 0000000..4dca448 --- /dev/null +++ b/assets/bit-by-bot-images/computer-error-bot.svg @@ -0,0 +1,7862 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/computer-open-bot.svg b/assets/bit-by-bot-images/computer-open-bot.svg new file mode 100755 index 0000000..14b7cd7 --- /dev/null +++ b/assets/bit-by-bot-images/computer-open-bot.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bit-by-bot-images/computer-sound-open-bot.svg b/assets/bit-by-bot-images/computer-sound-open-bot.svg new file mode 100755 index 0000000..1d6f8b6 --- /dev/null +++ b/assets/bit-by-bot-images/computer-sound-open-bot.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bit-by-bot-images/computer-suspicious-closed-bot.svg b/assets/bit-by-bot-images/computer-suspicious-closed-bot.svg new file mode 100755 index 0000000..db84b04 --- /dev/null +++ b/assets/bit-by-bot-images/computer-suspicious-closed-bot.svg @@ -0,0 +1,7445 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/explosion-bot.svg b/assets/bit-by-bot-images/explosion-bot.svg new file mode 100755 index 0000000..b387758 --- /dev/null +++ b/assets/bit-by-bot-images/explosion-bot.svg @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bit-by-bot-images/pumpkin-orange-bot.svg b/assets/bit-by-bot-images/pumpkin-orange-bot.svg new file mode 100755 index 0000000..aaca74c --- /dev/null +++ b/assets/bit-by-bot-images/pumpkin-orange-bot.svg @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bit-by-bot-images/pumpkin-yellow-bot.svg b/assets/bit-by-bot-images/pumpkin-yellow-bot.svg new file mode 100755 index 0000000..fc39ca2 --- /dev/null +++ b/assets/bit-by-bot-images/pumpkin-yellow-bot.svg @@ -0,0 +1,7075 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/snowman-bot.svg b/assets/bit-by-bot-images/snowman-bot.svg new file mode 100755 index 0000000..7df97d2 --- /dev/null +++ b/assets/bit-by-bot-images/snowman-bot.svg @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bit-by-bot-images/sound-suspicious-closed-bot.svg b/assets/bit-by-bot-images/sound-suspicious-closed-bot.svg new file mode 100755 index 0000000..5a4e4b7 --- /dev/null +++ b/assets/bit-by-bot-images/sound-suspicious-closed-bot.svg @@ -0,0 +1,6727 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/sound-suspicious-open-bot.svg b/assets/bit-by-bot-images/sound-suspicious-open-bot.svg new file mode 100755 index 0000000..bd41757 --- /dev/null +++ b/assets/bit-by-bot-images/sound-suspicious-open-bot.svg @@ -0,0 +1,6736 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/suspicious-closed-bot.svg b/assets/bit-by-bot-images/suspicious-closed-bot.svg new file mode 100755 index 0000000..572a6b8 --- /dev/null +++ b/assets/bit-by-bot-images/suspicious-closed-bot.svg @@ -0,0 +1,6272 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/suspicious-open-bot.svg b/assets/bit-by-bot-images/suspicious-open-bot.svg new file mode 100755 index 0000000..41d3e3d --- /dev/null +++ b/assets/bit-by-bot-images/suspicious-open-bot.svg @@ -0,0 +1,6280 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/two-hands-confetti-bot.svg b/assets/bit-by-bot-images/two-hands-confetti-bot.svg new file mode 100755 index 0000000..545a07a --- /dev/null +++ b/assets/bit-by-bot-images/two-hands-confetti-bot.svg @@ -0,0 +1,11849 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/two-hands-happy-bot.svg b/assets/bit-by-bot-images/two-hands-happy-bot.svg new file mode 100755 index 0000000..3f126ac --- /dev/null +++ b/assets/bit-by-bot-images/two-hands-happy-bot.svg @@ -0,0 +1,6356 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/two-hands-party-bot.svg b/assets/bit-by-bot-images/two-hands-party-bot.svg new file mode 100755 index 0000000..f7b486d --- /dev/null +++ b/assets/bit-by-bot-images/two-hands-party-bot.svg @@ -0,0 +1,8772 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/waving-happy-bot.svg b/assets/bit-by-bot-images/waving-happy-bot.svg new file mode 100755 index 0000000..8c3a09c --- /dev/null +++ b/assets/bit-by-bot-images/waving-happy-bot.svg @@ -0,0 +1,6125 @@ + + + + + + + diff --git a/assets/bit-by-bot-images/waving-neutral-bot.svg b/assets/bit-by-bot-images/waving-neutral-bot.svg new file mode 100755 index 0000000..b509b5d --- /dev/null +++ b/assets/bit-by-bot-images/waving-neutral-bot.svg @@ -0,0 +1,6092 @@ + + + + + + + diff --git a/ifelse-demo/style.css b/assets/common.css similarity index 56% rename from ifelse-demo/style.css rename to assets/common.css index f81a189..14262f0 100644 --- a/ifelse-demo/style.css +++ b/assets/common.css @@ -1,12 +1,10 @@ -/* style.scss */ -/* Import the common styling */ /* common.scss */ /* Define all the colors */ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +17,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +42,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +68,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +131,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +152,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +171,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -150,8 +183,4 @@ button:active { right: 1em; padding: 0; } - -/* The page-specific styling */ -/* TODO: Put whatever styles you need for just your demo here */ - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=common.css.map */ \ No newline at end of file diff --git a/attribute-demo/style.css b/attribute-demo/style.css index c6d241b..021f4c3 100644 --- a/attribute-demo/style.css +++ b/attribute-demo/style.css @@ -4,7 +4,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -12,14 +12,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -33,11 +37,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -56,28 +63,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -97,11 +126,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -114,7 +147,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -131,7 +166,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -145,7 +180,7 @@ button:active { } .code { - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; } #explore-show { @@ -158,27 +193,38 @@ button:active { div.option-wrapper { margin: 0.5em 0 0.5em 0; width: 30%; + display: -webkit-box; + display: -ms-flexbox; display: flex; } + div.option-wrapper > *:first-child { - flex: 0.55; + -webkit-box-flex: 0.55; + -ms-flex: 0.55; + flex: 0.55; } #dest-option { margin: 0.5em 0 0.5em 0; width: 15%; + display: -webkit-box; + display: -ms-flexbox; display: flex; } .slider { + display: -webkit-box; + display: -ms-flexbox; display: flex; } + .slider > *:first-child { - flex: 0.11; + -webkit-box-flex: 0.11; + -ms-flex: 0.11; + flex: 0.11; } #atageditor { height: 40%; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/back-2-booleans-game/chess.html b/back-2-booleans-game/chess.html new file mode 100644 index 0000000..4811d70 --- /dev/null +++ b/back-2-booleans-game/chess.html @@ -0,0 +1,54 @@ + + + + + Chess Application | Bit by Bit + + + + + + + + +
+ +
+

Back 2 Booleans!

+

+ Welcome to the Chess club's application! We require that: +

+
!(!grade < 90 && personality==="loud")
+

First Name:

+

Last Name:

+

What is your current grade?

+

What personality trait best describes you? Pick one below + +

+ +
+ +
+ + diff --git a/back-2-booleans-game/gaming.html b/back-2-booleans-game/gaming.html new file mode 100644 index 0000000..8d6922a --- /dev/null +++ b/back-2-booleans-game/gaming.html @@ -0,0 +1,53 @@ + + + + + Gaming Application | Bit by Bit + + + + + + + + +
+ +
+

Back 2 Booleans!

+

+ Welcome to the Gaming club's application! We require that: +

+
!(grade < 70 && personality==="hates-minecraft")
+

First Name:

+

Last Name:

+

What is your current grade?

+

What personality trait best describes you? Pick one below + +

+ +
+ +
+ + diff --git a/back-2-booleans-game/index.html b/back-2-booleans-game/index.html new file mode 100644 index 0000000..fd14367 --- /dev/null +++ b/back-2-booleans-game/index.html @@ -0,0 +1,63 @@ + + + + + Back 2 Booleans Game | Bit by Bit + + + + + + + + +
+ +
+

Back 2 Booleans!

+

+ Welcome back to Booleans! Let's see if you can join our clubs! We give our requirements in DeMorgan's Laws! +

+ Bit by Bot Waving +
+
+
+
+ Volleyball +
+
+
+
+ Gaming +
+
+
+
+ Chess +
+
+
+
+ Soup Kitchen +
+
+
+ +
+ + diff --git a/back-2-booleans-game/soupKitchen.html b/back-2-booleans-game/soupKitchen.html new file mode 100644 index 0000000..e1636d2 --- /dev/null +++ b/back-2-booleans-game/soupKitchen.html @@ -0,0 +1,53 @@ + + + + + Soup Kitchen Application | Bit by Bit + + + + + + + + +
+ +
+

Back 2 Booleans!

+

+ Welcome to the Outreach club's application! We require that: +

+
!(!grade > 70 || personality!=="nice")
+

First Name:

+

Last Name:

+

What is your current grade?

+

What personality trait best describes you? Pick one below + +

+ +
+ +
+ + diff --git a/back-2-booleans-game/style.css b/back-2-booleans-game/style.css new file mode 100644 index 0000000..1896201 --- /dev/null +++ b/back-2-booleans-game/style.css @@ -0,0 +1,240 @@ +/* style.scss */ +/* Import the common styling */ +/* common.scss */ +/* Define all the colors */ +body { + margin: 5em 0 0 0; + padding: 0; + background-color: #fff; + font-family: 'Nunito', sans-serif; + font-weight: 600; +} + +button { + border: none; + background: #38Bfe7; + padding: 0.5em 1em; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + cursor: pointer; +} + +button:hover { + background-color: #19a8d3; +} + +button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +#header { + padding: 1em 2em; + background-color: white; + color: #000; + position: fixed; + top: 0; + left: 0; + width: 100%; + max-height: 3em; + z-index: 1000; + opacity: 95%; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; +} + +#header > * { + margin: 0; +} + +#header button { + width: 3em; +} + +#back-button { + padding: 0.25em 1em; + font-size: 1em; + height: 48px; +} + +.content { + padding: 1em; + max-width: 80%; + margin: 0 auto; +} + +/*Flexbox*/ +.flex-container-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.flex-container-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +.flex-item-header { + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; +} + +.flex-item-left { + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +#top-heading { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +#bxb-logo { + max-height: 3em; + display: block; + text-align: left; + margin-left: calc(100% - 200px); +} + +.section { + margin: 1em 0; + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; +} + +.flex-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.flex-col { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.5em; +} + +.flex-col:not(:last-child) { + margin: 0 0.2em 0 0; +} + +.flex-col:last-child { + margin: 0 0 0 0.2em; +} + +.no-flex-col { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.showcase-section { + padding: 0; +} + +.editor-section { + position: relative; + overflow: scroll; + padding: 0; +} + +.editor { + margin: 0; + height: 20em; + width: calc(100% - 35px - calc(0.625em*2)); + font-family: 'Anonymous Pro', monospace; + font-size: 0.875em; + line-height: 1.25em; + padding: 1px 0.625em; +} + +.editor-button-overlay { + position: absolute; + bottom: 1em; + right: 1em; + padding: 0; +} + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +.section { + position: relative; +} + +#bit-by-bot-welcome { + width: 5em; + height: auto; + position: absolute; + right: 50px; + top: 8px; +} + +.grid2x2 { + margin-top: 50px; + min-height: 100%; + display: -ms-grid; + display: grid; + -ms-grid-columns: 1fr 1fr; + grid-template-columns: 1fr 1fr; + -webkit-column-gap: 50px; + column-gap: 50px; + row-gap: 50px; + justify-items: stretch; +} + +.box { + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; + height: 150px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.grid2x2 > div > div > a { + font-size: 200%; + text-decoration: none; +} + +.code { + display: inline-block; + color: #ff8900; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/back-2-booleans-game/style.scss b/back-2-booleans-game/style.scss new file mode 100644 index 0000000..4408db5 --- /dev/null +++ b/back-2-booleans-game/style.scss @@ -0,0 +1,52 @@ +/* style.scss */ + +/* Import the common styling */ +@import "../assets/common.scss"; + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +.section { + position: relative; +} + +#bit-by-bot-welcome { + width: 5em; + height: auto; + position: absolute; + right: 50px; + top: 8px; +} + +.grid2x2 { + margin-top: 50px; + min-height: 100%; + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 50px; + row-gap: 50px; + justify-items: stretch; +} + +.box { + padding: 0.5em; + border: 0.2em solid $primary-color; + background-color: $background-color; + color: $text-color; + height: 150px; + display: flex; + justify-content: center; + align-items: center; +} + +.grid2x2 > div > div > a { + font-size: 200%; + text-decoration: none; +} + +.code { + display: inline-block; + color: $accent-color; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; +} diff --git a/back-2-booleans-game/volleyball.html b/back-2-booleans-game/volleyball.html new file mode 100644 index 0000000..661a77c --- /dev/null +++ b/back-2-booleans-game/volleyball.html @@ -0,0 +1,53 @@ + + + + + Volleyball Application | Bit by Bit + + + + + + + + +
+ +
+

Back 2 Booleans!

+

+ Welcome to the Volleyball club's application! We require that: +

+
!(grade < 80 && personality==="quiet")
+

First Name:

+

Last Name:

+

What is your current grade?

+

What personality trait best describes you? Pick one below + +

+ +
+ +
+ + diff --git a/boolean-logic-demo/style.css b/boolean-logic-demo/style.css index b9e79fc..a84c134 100644 --- a/boolean-logic-demo/style.css +++ b/boolean-logic-demo/style.css @@ -4,7 +4,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -17,14 +17,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -38,11 +42,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -61,28 +68,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -102,11 +131,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -119,7 +152,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -136,7 +171,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -158,15 +193,20 @@ button:active { } #scrollwrapper { + display: -webkit-box; + display: -ms-flexbox; display: flex; - flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; overflow-x: auto; padding: 30px; position: relative; } #card1, #card2, #card3, #card4, #card5 { - flex: 0 0 auto; + -webkit-box-flex: 0; + -ms-flex: 0 0 auto; + flex: 0 0 auto; border: 0.125em solid #000000; width: 20em; margin: 0.25em; @@ -181,55 +221,95 @@ button:active { text-align: center; } +@-webkit-keyframes rotate { + 0% { + background-color: red; + -webkit-transform: translate(-50%, -50%) rotate(0deg); + transform: translate(-50%, -50%) rotate(0deg); + } + 25% { + background-color: yellow; + -webkit-transform: translate(-50%, -50%) rotate(90deg); + transform: translate(-50%, -50%) rotate(90deg); + } + 50% { + background-color: green; + -webkit-transform: translate(-50%, -50%) rotate(180deg); + transform: translate(-50%, -50%) rotate(180deg); + } + 75% { + background-color: indigo; + -webkit-transform: translate(-50%, -50%) rotate(270deg); + transform: translate(-50%, -50%) rotate(270deg); + } + 100% { + background-color: hotpink; + -webkit-transform: translate(-50%, -50%) rotate(360deg); + transform: translate(-50%, -50%) rotate(360deg); + } +} + @keyframes rotate { 0% { background-color: red; - transform: translate(-50%, -50%) rotate(0deg); + -webkit-transform: translate(-50%, -50%) rotate(0deg); + transform: translate(-50%, -50%) rotate(0deg); } 25% { background-color: yellow; - transform: translate(-50%, -50%) rotate(90deg); + -webkit-transform: translate(-50%, -50%) rotate(90deg); + transform: translate(-50%, -50%) rotate(90deg); } 50% { background-color: green; - transform: translate(-50%, -50%) rotate(180deg); + -webkit-transform: translate(-50%, -50%) rotate(180deg); + transform: translate(-50%, -50%) rotate(180deg); } 75% { background-color: indigo; - transform: translate(-50%, -50%) rotate(270deg); + -webkit-transform: translate(-50%, -50%) rotate(270deg); + transform: translate(-50%, -50%) rotate(270deg); } 100% { background-color: hotpink; - transform: translate(-50%, -50%) rotate(360deg); + -webkit-transform: translate(-50%, -50%) rotate(360deg); + transform: translate(-50%, -50%) rotate(360deg); } } + #bitbybot { position: fixed; height: 20em; width: 20em; top: 50%; left: 50%; - transform: translate(-50%, -50%); - align-items: center; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; visibility: hidden; } + #bitbybot.active { - animation: rotate 4s infinite; + -webkit-animation: rotate 4s infinite; + animation: rotate 4s infinite; } + #bitbybot img { width: 100%; height: 100%; } select { - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; margin-bottom: 2px; } label { - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 1em; line-height: 1.25em; } @@ -246,5 +326,4 @@ th, td { input { width: 3em; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/box-model-demo/style.css b/box-model-demo/style.css index 20bf6a0..715c948 100644 --- a/box-model-demo/style.css +++ b/box-model-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -160,6 +195,8 @@ button:active { } .dynamic { + display: -webkit-box; + display: -ms-flexbox; display: flex; background-color: #1bb1de; color: #fff; @@ -183,20 +220,28 @@ button:active { } .slider { + display: -webkit-box; + display: -ms-flexbox; display: flex; padding-left: 2em; } + .slider > input { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } .center-wrapper { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } .center-content { display: inline-block; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/div-demo/style.css b/div-demo/style.css index 357efcf..0b18a28 100644 --- a/div-demo/style.css +++ b/div-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -176,7 +211,7 @@ ul { } .code { - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; } #explore-show { @@ -185,5 +220,4 @@ ul { margin: 0; border: none; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/dom-demo/style.css b/dom-demo/style.css index 2b70727..1faaeba 100644 --- a/dom-demo/style.css +++ b/dom-demo/style.css @@ -4,7 +4,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -17,14 +17,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -38,11 +42,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -61,28 +68,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -102,11 +131,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -119,7 +152,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -136,7 +171,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -205,9 +240,15 @@ button:active { #bigcont { height: 450px; width: 100%; + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: center; - align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; background-color: #ffe1bf; color: black; border: 0.2em solid #38Bfe7; @@ -270,37 +311,35 @@ h1 { #pre, #post { width: 150px; } - #rightcont { width: 420px; } - #giveID { width: 80%; } } + @media (max-width: 940px) { #pre, #post { width: 75px; } - #rightcont { width: 200px; } - #giveID { width: 40%; } - #header { font-size: smaller; } } + @media (max-width: 700px) { #header { font-size: x-small; } } + #infoText { display: block; padding: 0.5em; @@ -319,5 +358,4 @@ h1 { margin: 700px, 0px; margin-top: 140px; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/dom-tutorial-NF/index.html b/dom-tutorial-NF/index.html new file mode 100644 index 0000000..3b9a0fa --- /dev/null +++ b/dom-tutorial-NF/index.html @@ -0,0 +1,49 @@ + + + + + DOM Tutorial | Bit by Bit + + + + + + + + +
+ +
+ +
+ +
+ + + diff --git a/dom-tutorial-NF/script.js b/dom-tutorial-NF/script.js new file mode 100644 index 0000000..0d39af6 --- /dev/null +++ b/dom-tutorial-NF/script.js @@ -0,0 +1,209 @@ +let pointsElement = document.getElementById("points"); + +//Game code alerts: +let pGameElement = document.getElementById("gameCode"); +let buildingCodeElement = document.getElementById("buildingCodeHTML"); +let buildingJavaScriptElement = document.getElementById( + "buildingCodeJavaScript" +); + +let optionOne = document.getElementById("option1"); +let optionTwo = document.getElementById("option2"); +let optionThree = document.getElementById("option3"); + +let point = 0; + +function wrong() { + point--; + pointsElement.innerText = "Points: " + point + "/10"; + pGameElement.innerText = "Whoops, wrong guess, try again"; +} + +function doneFunction() { + alert("Done!"); +} + +function DOMComplete() { + point++; + buildingCodeElement.innerText = '

This is an element

'; + buildingJavaScriptElement.innerText = + 'let pElement = document.getElementById("element")'; + + pGameElement.innerText = + "Congrats, you finished creating a variable using the DOM! You got " + + point + + " points!"; + + optionOne.innerText = " "; + optionTwo.innerText = ""; + optionThree.innerText = " "; + + optionOne.onclick = doneFunction; + optionTwo.onclick = doneFunction; + optionThree.onclick = doneFunction; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function DOMthreeCorrect() { + point++; + buildingCodeElement.innerText = '

This is an element

'; + buildingJavaScriptElement.innerText = + "let pElement = document.getElementById()"; + + pGameElement.innerText = "Correct! What goes inside the parentheses?"; + + optionOne.innerText = '"element"'; + optionTwo.innerText = "element"; + optionThree.innerText = 'id="element"'; + + optionOne.onclick = DOMComplete; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function twoCorrect() { + point++; + buildingCodeElement.innerText = '

This is an element

'; + buildingJavaScriptElement.innerText = "let pElement = "; + + pGameElement.innerText = "Correct! What do we type next?"; + + optionOne.innerText = "document.getElementById();"; + optionTwo.innerText = "document.getElementByClass();"; + optionThree.innerText = 'document.getElementById"";'; + + optionOne.onclick = DOMthreeCorrect; + optionTwo.onclick = wrong; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function oneCorrect() { + point++; + buildingCodeElement.innerText = '

This is an element

'; + + pGameElement.innerText = + "Correct! What do we do in JavaScript to create an HTML element variable?"; + + optionOne.innerText = "let document.getElementById() = "; + optionTwo.innerText = "let pElement = "; + optionThree.innerText = "document.getElementById() = "; + + optionTwo.onclick = twoCorrect; + optionOne.onclick = wrong; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function startGame() { + buildingCodeElement.innerText = "

This is an element

"; + pGameElement.innerText = + "What do you use to call an HTML element in JavaScript?"; + + optionOne.innerText = "id"; + optionTwo.innerText = "class"; + optionThree.innerText = "Come here element! Come here!"; + + optionOne.onclick = oneCorrect; + optionTwo.onclick = wrong; + optionThree.onclick = wrong; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +optionTwo.onclick = startGame; + +//Game code: New Code +/* +let pGame2Element = document.getElementById("gameCode2"); +let buildingCode2Element = document.getElementById("buildingCode2"); + +let optionOne2 = document.getElementById("option4"); +let optionTwo2 = document.getElementById("option5"); +let optionThree2 = document.getElementById("option6"); + +function wrong2() { + point--; + pGame2Element.innerText = "Whoops, wrong guess, try again"; +} + +function dataTypeComplete() { + point++; + buildingCode2Element.innerHTML = + 'alert(8);
alert("String, 5, true");
alert(5 > 9);'; + + pGame2Element.innerText = + "Congrats, you completed the data types practice! You got " + + point + + " points!"; + + function runDataTypeCode() { + alert(8); + alert("String, 5, true"); + alert(5 > 9); + } + + optionOne2.innerText = " "; + optionTwo2.innerText = "Run code"; + optionThree2.innerText = " "; + + optionOne2.onclick = dataTypeComplete; + optionTwo2.onclick = runDataTypeCode; + optionThree2.onclick = dataTypeComplete; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function fourCorrect() { + point++; + buildingCode2Element.innerHTML = + 'alert(8);
alert("String, 5, true");
alert(*boolean*);'; + + pGame2Element.innerText = + "Correct! Last but not least, which of these is a boolean value?"; + + optionOne2.innerText = "5 > 9"; + optionTwo2.innerText = "None, they are all wrong"; + optionThree2.innerText = '"true"'; + + optionOne2.onclick = dataTypeComplete; + optionThree2.onclick = wrong2; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function threeCorrect() { + point++; + buildingCode2Element.innerHTML = + "alert(8);
alert(*string*);
alert(*boolean*);"; + + pGame2Element.innerText = "Correct! Which one of these things is a string?"; + + optionOne2.innerText = "(This is a string)"; + optionTwo2.innerText = "true"; + optionThree2.innerText = '"String, 5, true"'; + + optionThree2.onclick = fourCorrect; + optionTwo2.onclick = wrong2; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +function startGame2() { + pGame2Element.innerText = "What does: .onclick do?"; + buildingCode2Element.innerHTML = "buttonElement.onclick = functionName;"; + + optionOne2.innerText = "Do something when element is clicked"; + optionTwo2.innerText = "Nothing, it's wrong code"; + optionThree2.innerText = "On the click of the equal sign, something happens"; + + optionThree2.onclick = threeCorrect; + optionTwo2.onclick = wrong2; + optionOne2.onclick = wrong2; + + pointsElement.innerText = "Points: " + point + "/10"; +} + +optionTwo2.onclick = startGame2; +*/ diff --git a/dom-tutorial-NF/style.css b/dom-tutorial-NF/style.css new file mode 100644 index 0000000..b9c2afe --- /dev/null +++ b/dom-tutorial-NF/style.css @@ -0,0 +1,275 @@ +/* style.scss */ +/* Import the common styling */ +/* common.scss */ +/* Define all the colors */ +body { + margin: 5em 0 0 0; + padding: 0; + background-color: #fff; + font-family: 'Nunito', sans-serif; + font-weight: 600; +} + +button { + border: none; + background: #38Bfe7; + padding: 0.5em 1em; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + cursor: pointer; +} + +button:hover { + background-color: #19a8d3; +} + +button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +#header { + padding: 1em 2em; + background-color: white; + color: #000; + position: fixed; + top: 0; + left: 0; + width: 100%; + max-height: 3em; + z-index: 1000; + opacity: 95%; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; +} + +#header > * { + margin: 0; +} + +#header button { + width: 3em; +} + +#back-button { + padding: 0.25em 1em; + font-size: 1em; + height: 48px; +} + +.content { + padding: 1em; + max-width: 80%; + margin: 0 auto; +} + +/*Flexbox*/ +.flex-container-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.flex-container-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +.flex-item-header { + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; +} + +.flex-item-left { + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +#top-heading { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +#bxb-logo { + max-height: 3em; + display: block; + text-align: left; + margin-left: calc(100% - 200px); +} + +.section { + margin: 1em 0; + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; +} + +.flex-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.flex-col { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.5em; +} + +.flex-col:not(:last-child) { + margin: 0 0.2em 0 0; +} + +.flex-col:last-child { + margin: 0 0 0 0.2em; +} + +.no-flex-col { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.showcase-section { + padding: 0; +} + +.editor-section { + position: relative; + overflow: scroll; + padding: 0; +} + +.editor { + margin: 0; + height: 20em; + width: calc(100% - 35px - calc(0.625em*2)); + font-family: 'Anonymous Pro', monospace; + font-size: 0.875em; + line-height: 1.25em; + padding: 1px 0.625em; +} + +.editor-button-overlay { + position: absolute; + bottom: 1em; + right: 1em; + padding: 0; +} + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} + +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} + +.codePartThree { + display: inline-block; + color: #236274; +} + +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.semicolon { + display: inline-block; + color: #e0c02e; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + -webkit-box-shadow: black 3px 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/dom-tutorial-NF/style.scss b/dom-tutorial-NF/style.scss new file mode 100644 index 0000000..bf1ed55 --- /dev/null +++ b/dom-tutorial-NF/style.scss @@ -0,0 +1,89 @@ +/* style.scss */ + +/* Import the common styling */ +@import "../assets/common.scss"; + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ + +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} +.codePartThree { + display: inline-block; + color: #236274; +} +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.semicolon { + display: inline-block; + color: rgb(224, 192, 46); +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} diff --git a/events-demo/style.css b/events-demo/style.css index b3adf82..2879de1 100644 --- a/events-demo/style.css +++ b/events-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -153,18 +188,4 @@ button:active { /* The page-specific styling */ /* TODO: Put whatever styles you need for just your demo here */ - -.codeShown { - font-family: Courier; -} - -@keyframes highlight { - 5% { - background-color: yellow; - } - 100% { - background-color: white; - } -} - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/for-loop-demo/style.css b/for-loop-demo/style.css index 8eecdd9..f7c0342 100644 --- a/for-loop-demo/style.css +++ b/for-loop-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -153,10 +188,15 @@ button:active { /* The page-specific styling */ .description { + display: -webkit-box; + display: -ms-flexbox; display: flex; } + .description p { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } .reset-button { @@ -168,9 +208,15 @@ button:active { width: 4vw; background-color: #38Bfe7; border-radius: 50%; + display: -webkit-box; + display: -ms-flexbox; display: flex; - align-items: center; - justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } .body-segment-number { @@ -179,23 +225,33 @@ button:active { } .caterpillar-container { + display: -webkit-box; + display: -ms-flexbox; display: flex; - flex-flow: row nowrap; - align-items: center; - justify-content: center; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row nowrap; + flex-flow: row nowrap; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; } .big-code { - font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; font-size: 1.25em; color: #38Bfe7; } + .big-code .comment { color: #ff8900; } .bold { - font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; padding: 5px; font-weight: 800; } @@ -205,12 +261,22 @@ button:active { } .option-buttons { + display: -webkit-box; + display: -ms-flexbox; display: flex; - flex-flow: row wrap; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-flow: row wrap; + flex-flow: row wrap; margin-top: 25px; - align-items: center; - justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; } + .option-buttons button { padding: 10px; margin: 10px; @@ -227,21 +293,41 @@ button:active { } .bounce { - animation: bouncy 1s 1; + -webkit-animation: bouncy 1s 1; + animation: bouncy 1s 1; +} + +@-webkit-keyframes bouncy { + 0%, 20%, 50%, 80%, 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); + } + 60% { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + } } @keyframes bouncy { 0%, 20%, 50%, 80%, 100% { - transform: translateY(0); + -webkit-transform: translateY(0); + transform: translateY(0); } 40% { - transform: translateY(-30px); + -webkit-transform: translateY(-30px); + transform: translateY(-30px); } 60% { - transform: translateY(-15px); + -webkit-transform: translateY(-15px); + transform: translateY(-15px); } } -input[type=radio] { + +input[type="radio"] { margin-left: 20px; } @@ -264,5 +350,4 @@ input[type=radio] { #change-description { font-style: italic; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/for-loop-tutorial-NF/index.html b/for-loop-tutorial-NF/index.html new file mode 100644 index 0000000..a15ac06 --- /dev/null +++ b/for-loop-tutorial-NF/index.html @@ -0,0 +1,140 @@ + + + + + For Loop Tutorial | Bit by Bit + + + + + + + + +
+ +
+ +
+
+
+

Building For Loops

+

+ Practice building for loops down below: +

+

+ First, start the for loop: +

+

+

+ + +
+
+ +
+ + + diff --git a/for-loop-tutorial-NF/script.js b/for-loop-tutorial-NF/script.js new file mode 100644 index 0000000..8c6d5c1 --- /dev/null +++ b/for-loop-tutorial-NF/script.js @@ -0,0 +1,484 @@ +//Function run code +let forRunHelloWorldElement = document.getElementById("forRunHelloWorld"); +let forRunNumbersElement = document.getElementById("forRunNumbers"); +let forRunBlastOffElement = document.getElementById("forRunBlastOff"); + +let forHelloWorld = function () { + for (let i = 0; i < 3; i = i + 1) { + alert("Hello World!"); + } +} + +let forNumbers = function() { + for (let i = 5; i < 10; i = i + 1) { + alert(i); + } +} + +let forBlastOff = function() { + for (let i = 3; i >= 0; i--) { + if (i === 0) { + alert("Blast off!"); + } else { + alert(i); + } + } +} + +forRunHelloWorldElement.onclick = forHelloWorld; +forRunNumbersElement.onclick = forNumbers; +forRunBlastOffElement.onclick = forBlastOff; + +/* +let visualArray = ["let", "variableName", "=", "number;"]; +let noSpaceValue = inputValue.replace(/ /g, ""); +*/ + +//Building for loops +let buildingIntructions = document.getElementById("buildingIntructions"); +let pBuildingElement = document.getElementById("buildingP"); +let inputBuilding = document.getElementById("inputBuilding"); +let buttonBuilding = document.getElementById("buildingButton"); + +let conditionOne = ""; +let conditionTwo = ""; +let conditionThree = ""; +let insideCode = ""; +let variableName = ""; +let finishedCodeVariable = ""; + +let inputNumberOne = ""; +let inputNumberTwo = ""; +let numDifference = ""; +//Need = i > number; + +let finalStepLoop = function () { + finishedCodeVariable = + "for(" + + String(conditionOne) + + " " + + String(conditionTwo) + + " " + + String(conditionThree) + + " ){" + + String(insideCode) + + "}"; + eval(finishedCodeVariable); +}; + +let stepSevenLoop = function () { + let inputValue = inputBuilding.value; + let variableCheck = inputValue.includes(variableName); + + let stringVariable = '"' + variableName + '"'; + let stringVariableCheck = inputValue.includes(stringVariable); + + let alertCheck = inputValue.includes("alert"); + let openParCheck = inputValue.includes("("); + let closeParCheck = inputValue.includes(")"); + let semiCheck = inputValue.includes(";"); + + if (stringVariableCheck) { + buildingIntructions.innerText += "Make sure the data types are correct"; + } else if ( + variableCheck && + alertCheck && + openParCheck && + closeParCheck && + semiCheck + ) { + pBuildingElement.innerHTML = + "for(" + + conditionOne + + " " + + conditionTwo + + " " + + conditionThree + + " ){
" + + inputValue + + "
}"; + buildingIntructions.innerText = + "You finished the for loop! Congratulations. Click button below to run your code"; + buttonBuilding.onclick = finalStepLoop; + insideCode = inputValue; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + return insideCode; +}; + +let stepSixLoop = function () { + let inputValue = inputBuilding.value; + let openBracketCheck = inputValue.includes("{"); + let closeBracketCheck = inputValue.includes("}"); + + if (openBracketCheck && closeBracketCheck) { + pBuildingElement.innerHTML = + "for(" + + conditionOne + + " " + + conditionTwo + + " " + + conditionThree + + " ){

}"; + buildingIntructions.innerText = + "Correct! Now write code to alert the changing variable of the for loop (the variable you created at the very beginning)?"; + buttonBuilding.onclick = stepSevenLoop; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } +}; + +let stepFiveLoop = function () { + let inputValue = inputBuilding.value; + + let variableCheck = inputValue.includes(variableName); + let equalCheck = inputValue.includes("="); + let addCheck = inputValue.includes("+"); + let doubleAddCheck = inputValue.includes("++"); + let subtractCheck = inputValue.includes("-"); + let doubleMinusCheck = inputValue.includes("--"); + + numDifference = inputNumberOne - inputNumberTwo; + + let correctSignCheck = false; + + if (numDifference > 0) { + if (subtractCheck) { + correctSignCheck = true; + } else { + correctSignCheck = false; + } + } else if (numDifference < 0) { + if (addCheck) { + correctSignCheck = true; + } else { + correctSignCheck = false; + } + } else { + correctSignCheck = false; + } + + function hasNumber(myString) { + let check = /\d/.test(myString); + return check; + } + + let check1 = hasNumber(inputValue); + + if (variableCheck) { + if (equalCheck) { + if (correctSignCheck) { + if (check1) { + pBuildingElement.innerHTML = + "for(" + + conditionOne + + " " + + conditionTwo + + " " + + inputValue + + " )"; + buildingIntructions.innerText = + "Correct! What comes after our parenthese for our for loop?"; + buttonBuilding.onclick = stepSixLoop; + conditionThree = inputValue; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + + "Incorrect syntax, please try again."; + } + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + } else if (correctSignCheck) { + if (doubleAddCheck) { + pBuildingElement.innerHTML = + "for(" + conditionOne + " " + conditionTwo + " " + inputValue + " )"; + buildingIntructions.innerText = + "Correct! What comes after our parenthese for our for loop?"; + buttonBuilding.onclick = stepSixLoop; + conditionThree = inputValue; + } else if (doubleMinusCheck) { + pBuildingElement.innerHTML = + "for(" + conditionOne + " " + conditionTwo + " " + inputValue + " )"; + buildingIntructions.innerText = + "Correct! What comes after our parenthese for our for loop?"; + buttonBuilding.onclick = stepSixLoop; + conditionThree = inputValue; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + return conditionThree; +}; + +let stepFourLoop = function () { + let inputValue = inputBuilding.value; + let inputValueAsArray = inputValue.split(" "); + + let lessRemoveCheck = inputValue.includes(">"); + let greaterRemoveCheck = inputValue.includes("<"); + let equalRemoveCheck = inputValue.includes("="); + + let numOnlyNoSign = ""; + let numOnlyNoEuqal = ""; + let numOnlyOne = ""; + + if (lessRemoveCheck) { + numOnlyNoSign = inputValue.replace(">", ""); + } else if (greaterRemoveCheck) { + numOnlyNoSign = inputValue.replace("<", ""); + } + + if (equalRemoveCheck) { + numOnlyNoEuqal = numOnlyNoSign.replace("=", ""); + numOnlyOne = numOnlyNoEuqal.replace(String(variableName), ""); + } else { + numOnlyOne = numOnlyNoSign.replace(String(variableName), ""); + } + + let numOnlyTwo = numOnlyOne.replace(";", ""); + + inputNumberTwo = Number(numOnlyTwo); + + numDifference = inputNumberOne - inputNumberTwo; + + let correctSignCheck = false; + + if (numDifference > 0) { + if (lessRemoveCheck) { + correctSignCheck = true; + } else { + correctSignCheck = false; + } + } else if (numDifference < 0) { + if (greaterRemoveCheck) { + correctSignCheck = true; + } else { + correctSignCheck = false; + } + } else { + correctSignCheck = false; + } + + if (inputValueAsArray.length < 3) { + let letCheck = inputValue.includes(variableName); + let semiCheck = inputValue.includes(";"); + + function hasNumber(myString) { + let check = /\d/.test(myString); + return check; + } + + let check1 = hasNumber(inputValue); + alert(check1); + + if (!check1) { + buildingIntructions.innerText = + buildingIntructions.innerText + "Missing a number."; + } else if (letCheck && correctSignCheck && semiCheck) { + pBuildingElement.innerHTML = + "for(" + conditionOne + " " + inputValue + " )"; + buildingIntructions.innerText = + "Correct! What is the last thing we have inside the parathenses?"; + buttonBuilding.onclick = stepFiveLoop; + conditionTwo = inputValue; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + } else { + let variableNameCheck = inputValueAsArray[0]; + let greaterLesserCheckArray = inputValueAsArray[1]; + let semiCheckArray = inputValueAsArray[2]; + + let variableCheck = variableNameCheck.includes(variableName); + let lessThanCheck = greaterLesserCheckArray.includes(">"); + let greaterThanCheck = greaterLesserCheckArray.includes("<"); + let semiCheck = semiCheckArray.includes(";"); + + let greaterLesserCheck = ""; + + if (lessThanCheck || greaterThanCheck) { + greaterLesserCheck = true; + } + + function hasNumber(myString) { + let check = /\d/.test(myString); + return check; + } + + let check1 = hasNumber(inputValue); + + if (!check1) { + buildingIntructions.innerText = + buildingIntructions.innerText + "Missing a number."; + } else if ( + variableCheck && + semiCheck && + greaterLesserCheck && + correctSignCheck + ) { + pBuildingElement.innerHTML = + "for(" + conditionOne + " " + inputValue + " )"; + buildingIntructions.innerText = + "Correct! What is the last thing we have inside the parathenses?"; + buttonBuilding.onclick = stepFiveLoop; + conditionTwo = inputValue; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + } + return conditionTwo; +}; + +let stepThreeLoop = function () { + let inputValue = inputBuilding.value; + + conditionOne = inputValue; + let inputValueAsArray = inputValue.split(" "); + + if (inputValueAsArray.length < 4) { + let letCheck = inputValue.includes("let"); + let equalCheck = inputValue.includes("="); + let semiCheck = inputValue.includes(";"); + + let variableNameTry = ""; + + let letRemove = inputValue.replace("let", ""); + let equalRemove = letRemove.replace("=", ""); + let semiRemove = equalRemove.replace(";", ""); + let removeSpaceOne = semiRemove.replace(" ", ""); + let removeSpaceTwo = removeSpaceOne.replace(" ", ""); + variableNameTry = removeSpaceTwo; + + let numberArray = []; + + for (let i = 0; i < variableNameTry.length; i++) { + let letterCheck = variableNameTry[i]; + function hasNumber(myString) { + let check = /\d/.test(myString); + return check; + } + + let numberCheckValue = hasNumber(letterCheck); + + if (numberCheckValue) { + numberArray.push(letterCheck); + } + } + let madeNumber = ""; + + for (let i = 0; i < numberArray.length; i++) { + madeNumber += numberArray[i]; + } + + inputNumberOne = Number(madeNumber); + + let finalVariable = ""; + finalVariable = variableNameTry.replace(String(madeNumber), ""); + + variableName = finalVariable; + + function hasNumber(myString) { + let check = /\d/.test(myString); + return check; + } + + let check1 = hasNumber(inputValue); + + if (!check1) { + buildingIntructions.innerText = + buildingIntructions.innerText + "Missing a number."; + } else if (letCheck && equalCheck && semiCheck) { + pBuildingElement.innerHTML = "for(" + inputValue + ")"; + buildingIntructions.innerText = + "Correct! What is the next thing we add to the parentheses?"; + buttonBuilding.onclick = stepFourLoop; + return inputNumberOne; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + } else { + let letCheckArray = inputValueAsArray[0]; + variableName = inputValueAsArray[1]; + let letEqualArray = inputValueAsArray[2]; + let letSemiArray = inputValueAsArray[3]; + + let letCheck = letCheckArray.includes("let"); + let equalCheck = letEqualArray.includes("="); + let semiCheck = letSemiArray.includes(";"); + + let getNum = letSemiArray.replace(";", ""); + inputNumberOne = Number(getNum); + + function hasNumber(myString) { + let check = /\d/.test(myString); + return check; + } + + let check1 = hasNumber(inputValue); + + if (!check1) { + buildingIntructions.innerText = + buildingIntructions.innerText + "Missing a number."; + } else if (letCheck && equalCheck && semiCheck) { + pBuildingElement.innerHTML = "for(" + inputValue + ")"; + buildingIntructions.innerText = + "Correct! What is the next thing we add to the parentheses?"; + buttonBuilding.onclick = stepFourLoop; + return inputNumberOne; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } + return variableName; + } + return conditionOne; +}; + +let stepTwoLoop = function () { + let inputValue = inputBuilding.value; + + if (inputValue === "()") { + pBuildingElement.innerHTML = "for()"; + buildingIntructions.innerText = + "Correct! What is the first thing we add into the parentheses using i as the variable name?"; + buttonBuilding.onclick = stepThreeLoop; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } +}; + +let startForLoop = function () { + let inputValue = inputBuilding.value; + + if (inputValue === "for") { + pBuildingElement.innerHTML = "for"; + buildingIntructions.innerText = + "Correct! What is the next part of the for loop?"; + buttonBuilding.onclick = stepTwoLoop; + } else { + buildingIntructions.innerText = + buildingIntructions.innerText + "Incorrect syntax, please try again."; + } +}; + +buttonBuilding.onclick = startForLoop; + + + diff --git a/for-loop-tutorial-NF/style.css b/for-loop-tutorial-NF/style.css new file mode 100644 index 0000000..a191b3d --- /dev/null +++ b/for-loop-tutorial-NF/style.css @@ -0,0 +1,332 @@ +/* style.scss */ +/* Import the common styling */ +/* common.scss */ +/* Define all the colors */ +body { + margin: 5em 0 0 0; + padding: 0; + background-color: #fff; + font-family: 'Nunito', sans-serif; + font-weight: 600; +} + +button { + border: none; + background: #38Bfe7; + padding: 0.5em 1em; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + cursor: pointer; +} + +button:hover { + background-color: #19a8d3; +} + +button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +#header { + padding: 1em 2em; + background-color: white; + color: #000; + position: fixed; + top: 0; + left: 0; + width: 100%; + max-height: 3em; + z-index: 1000; + opacity: 95%; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; +} + +#header > * { + margin: 0; +} + +#header button { + width: 3em; +} + +#back-button { + padding: 0.25em 1em; + font-size: 1em; + height: 48px; +} + +.content { + padding: 1em; + max-width: 80%; + margin: 0 auto; +} + +/*Flexbox*/ +.flex-container-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.flex-container-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +.flex-item-header { + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; +} + +.flex-item-left { + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +#top-heading { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +#bxb-logo { + max-height: 3em; + display: block; + text-align: left; + margin-left: calc(100% - 200px); +} + +.section { + margin: 1em 0; + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; +} + +.flex-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.flex-col { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.5em; +} + +.flex-col:not(:last-child) { + margin: 0 0.2em 0 0; +} + +.flex-col:last-child { + margin: 0 0 0 0.2em; +} + +.no-flex-col { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.showcase-section { + padding: 0; +} + +.editor-section { + position: relative; + overflow: scroll; + padding: 0; +} + +.editor { + margin: 0; + height: 20em; + width: calc(100% - 35px - calc(0.625em*2)); + font-family: 'Anonymous Pro', monospace; + font-size: 0.875em; + line-height: 1.25em; + padding: 1px 0.625em; +} + +.editor-button-overlay { + position: absolute; + bottom: 1em; + right: 1em; + padding: 0; +} + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +nav > ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +nav > li { + display: inline-block; +} + +div { + padding: 5px 0; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} + +.codePartTwo { + display: inline-block; + color: #ff8900ff; +} + +.codePartThree { + display: inline-block; + color: #ffb560ff; +} + +.codePartFour { + display: inline-block; + color: #ffd29fff; + /*text-shadow: black 1px 1px;*/ +} + +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codeInside { + margin-left: 30px; + color: #fad636; +} + +.semicolon { + display: inline-block; + color: #f8d227; +} + +.marginNone { + margin: 0; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + -webkit-box-shadow: black 3px 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + padding: 5px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; +} + +.item { + -webkit-box-flex: 100px; + -ms-flex: 100px 1 1; + flex: 100px 1 1; +} + +.navFunctions { + position: relative; +} + +#inputBuilding { + font-size: 14px; + background-color: white; + border-color: #000; + border-width: 1px; + cursor: text; +} + +#bit-by-bot-loops { + width: 18em; + height: auto; + position: absolute; + right: 50px; + bottom: 100px; +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/for-loop-tutorial-NF/style.scss b/for-loop-tutorial-NF/style.scss new file mode 100644 index 0000000..e280e0b --- /dev/null +++ b/for-loop-tutorial-NF/style.scss @@ -0,0 +1,138 @@ +/* style.scss */ + +/* Import the common styling */ +@import "../assets/common.scss"; + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ + +nav > ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +nav > li { + display: inline-block; +} + +div { + padding: 5px 0; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} +.codePartTwo { + display: inline-block; + color: #ff8900ff; +} +.codePartThree { + display: inline-block; + color: #ffb560ff; +} +.codePartFour { + display: inline-block; + color: #ffd29fff; + /*text-shadow: black 1px 1px;*/ +} +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codeInside { + margin-left: 30px; + color: rgb(250, 214, 54); +} + +.semicolon { + display: inline-block; + color: rgb(248, 210, 39); +} + +.marginNone { + margin: 0; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + padding: 5px; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.container { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; +} + +.item { + flex: 100px 1 1; +} + +.navFunctions { + position: relative; +} + +#inputBuilding { + font-size: 14px; + background-color: white; + border-color: $text-color; + border-width: 1px; + cursor: text; +} + +#bit-by-bot-loops { + width: 18em; + height: auto; + position: absolute; + right: 50px; + bottom: 100px; +} diff --git a/function-demo/style.css b/function-demo/style.css index 953060b..e55c46b 100644 --- a/function-demo/style.css +++ b/function-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -185,7 +220,7 @@ button:active { } #spinner { - opacity: 0; + opacity: 0.0; } #danceArena { @@ -234,6 +269,7 @@ button:active { cursor: pointer; background-color: red; color: white; + -webkit-transition: 0.25s; transition: 0.25s; } @@ -252,7 +288,8 @@ button:active { padding: 10px; border: 0.2em solid #FF8900; background-color: white; - box-shadow: 8px 8px 5px #888888; + -webkit-box-shadow: 8px 8px 5px #888888; + box-shadow: 8px 8px 5px #888888; } .ui-widget-header { @@ -261,64 +298,163 @@ button:active { /* Bit by Bot Dancing animations */ /* The @keyframes CSS at-rule controls the intermediate steps in a CSS animation sequence. */ +@-webkit-keyframes headbop { + /* The transform CSS property lets you modify the coordinate space of the CSS visual formatting model. Using it, elements can be translated, rotated, scaled and skewed.*/ + 0% { + -webkit-transform: translateY(-10px); + transform: translateY(-10px); + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + 100% { + -webkit-transform: translateY(10px); + transform: translateY(10px); + } +} @keyframes headbop { /* The transform CSS property lets you modify the coordinate space of the CSS visual formatting model. Using it, elements can be translated, rotated, scaled and skewed.*/ 0% { - transform: translateY(-10px); + -webkit-transform: translateY(-10px); + transform: translateY(-10px); } 50% { - transform: rotate(5deg); + -webkit-transform: rotate(5deg); + transform: rotate(5deg); } 100% { - transform: translateY(10px); + -webkit-transform: translateY(10px); + transform: translateY(10px); } } + +@-webkit-keyframes wave-rarm { + 0% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); + } + 100% { + -webkit-transform: rotate(7deg); + transform: rotate(7deg); + } +} + @keyframes wave-rarm { 0% { - transform: rotate(-7deg); + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); } 100% { - transform: rotate(7deg); + -webkit-transform: rotate(7deg); + transform: rotate(7deg); } } + +@-webkit-keyframes wave-larm { + 0% { + -webkit-transform: rotate(7deg); + transform: rotate(7deg); + } + 100% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); + } +} + @keyframes wave-larm { 0% { - transform: rotate(7deg); + -webkit-transform: rotate(7deg); + transform: rotate(7deg); } 100% { - transform: rotate(-7deg); + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); } } + +@-webkit-keyframes walk { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + 33% { + -webkit-transform: translateX(-100px); + transform: translateX(-100px); + } + 66% { + -webkit-transform: translateY(-35px); + transform: translateY(-35px); + } + 100% { + -webkit-transform: translate(0); + transform: translate(0); + } +} + @keyframes walk { 0% { - transform: translateX(0); + -webkit-transform: translateX(0); + transform: translateX(0); } 33% { - transform: translateX(-100px); + -webkit-transform: translateX(-100px); + transform: translateX(-100px); } 66% { - transform: translateY(-35px); + -webkit-transform: translateY(-35px); + transform: translateY(-35px); + } + 100% { + -webkit-transform: translate(0); + transform: translate(0); + } +} + +@-webkit-keyframes stomp-rfoot { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); } 100% { - transform: translate(0); + -webkit-transform: translateY(-6px); + transform: translateY(-6px); } } + @keyframes stomp-rfoot { 0% { - transform: translateY(0); + -webkit-transform: translateY(0); + transform: translateY(0); } 100% { - transform: translateY(-6px); + -webkit-transform: translateY(-6px); + transform: translateY(-6px); } } + +@-webkit-keyframes stomp-lfoot { + 0% { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); + } + 100% { + -webkit-transform: translateY(0px); + transform: translateY(0px); + } +} + @keyframes stomp-lfoot { 0% { - transform: translateY(-6px); + -webkit-transform: translateY(-6px); + transform: translateY(-6px); } 100% { - transform: translateY(0px); + -webkit-transform: translateY(0px); + transform: translateY(0px); } } + .robot { position: relative; width: 8em; @@ -327,7 +463,8 @@ button:active { .robot .head { position: absolute; left: 105px; - animation: headbop 1s infinite alternate; + -webkit-animation: headbop 1s infinite alternate; + animation: headbop 1s infinite alternate; } .robot .body { @@ -338,35 +475,40 @@ button:active { } .robot .larm { - animation: wave-larm 1s infinite alternate; + -webkit-animation: wave-larm 1s infinite alternate; + animation: wave-larm 1s infinite alternate; position: absolute; z-index: 100; - transform-origin: 80% 60%; + -webkit-transform-origin: 80% 60%; + transform-origin: 80% 60%; top: 132px; left: 50px; } .robot .rarm { - animation: wave-rarm 1s infinite alternate; + -webkit-animation: wave-rarm 1s infinite alternate; + animation: wave-rarm 1s infinite alternate; position: absolute; z-index: 100; - transform-origin: 80% 60%; + -webkit-transform-origin: 80% 60%; + transform-origin: 80% 60%; top: 132px; left: 240px; } .robot .lfoot { - animation: stomp-lfoot 0.5s infinite alternate; + -webkit-animation: stomp-lfoot 0.5s infinite alternate; + animation: stomp-lfoot 0.5s infinite alternate; position: absolute; top: 270px; left: 110px; } .robot .rfoot { - animation: stomp-rfoot 0.5s infinite alternate; + -webkit-animation: stomp-rfoot 0.5s infinite alternate; + animation: stomp-rfoot 0.5s infinite alternate; position: absolute; top: 270px; left: 182px; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/functions-parameters-tutorial/index.html b/functions-parameters-tutorial/index.html new file mode 100644 index 0000000..1a43a0f --- /dev/null +++ b/functions-parameters-tutorial/index.html @@ -0,0 +1,274 @@ + + + + + Functions and Parameters Tutorial | Bit by Bit + + + + + + + + +
+ +
+ +
+
+ +
+
+ + +
+ +
+ +
+ + + diff --git a/functions-parameters-tutorial/script.js b/functions-parameters-tutorial/script.js new file mode 100644 index 0000000..abfba59 --- /dev/null +++ b/functions-parameters-tutorial/script.js @@ -0,0 +1,515 @@ +//Function run code +let functionExampleElement = document.getElementById("functionExample"); + +let functionExample = function () { + let morning = function () { + alert("Good morning! Have a lovely day"); + }; + + morning(); + + let vibe = prompt("What are the vibes?"); + + let vibeCheck = function () { + if (vibe === "good") { + alert("There are good vibes"); + } else { + alert("Bad vibes"); + } + }; + + vibeCheck(); + + let questionFunction = function () { + let question = prompt("What is 2 * 9?"); + if (question === "18") { + alert("You are correct!"); + } else if (question === "") { + alert("No response given :("); + } else { + alert("That is incorrect."); + } + }; + + questionFunction(); +}; + +functionExampleElement.onclick = functionExample; + +//Parameters run code +let meButton1 = document.getElementById("me4"); +let meButton2 = document.getElementById("me0"); +let meButton3 = document.getElementById("me1"); + +let mathEquation = function (x) { + let y = 3 * x + 5; + alert(y); +}; + +let mathEquation1 = function () { + mathEquation(4); +}; +let mathEquation2 = function () { + mathEquation(0); +}; +let mathEquation3 = function () { + mathEquation(1); +}; + +meButton1.onclick = mathEquation1; +meButton2.onclick = mathEquation2; +meButton3.onclick = mathEquation3; + +let qfButton1 = document.getElementById("qf0"); +let qfButton2 = document.getElementById("qf5"); +let qfButton3 = document.getElementById("qf2"); + +let questionFunction = function (x) { + let y = 4 * x + 2; + let question = prompt("What is x if 4x + 2 = " + y + " ?"); + let xString = x.toString(); + if (question === xString) { + alert("You are correct!"); + } else { + alert("Wrong, try again"); + } +}; + +let questionFunction1 = function () { + questionFunction(0); +}; +let questionFunction2 = function () { + questionFunction(5); +}; +let questionFunction3 = function () { + questionFunction(2); +}; + +qfButton1.onclick = questionFunction1; +qfButton2.onclick = questionFunction2; +qfButton3.onclick = questionFunction3; + +let wcButton1 = document.getElementById("wc25"); +let wcButton2 = document.getElementById("wc50"); +let wcButton3 = document.getElementById("wc80"); + +let weatherCheck = function (cloudyCheck, temperature) { + if (cloudyCheck === false && temperature > 50) { + alert("The weather is good"); + } else if (temperature > 50) { + alert("Cloudy but not cold"); + } else if (cloudyCheck === false) { + alert("Not cloudy but cold"); + } else { + alert("It's both cloudy and cold"); + } +}; + +let weatherCheck1 = function () { + weatherCheck(true, 25); +}; +let weatherCheck2 = function () { + weatherCheck(false, 50); +}; +let weatherCheck3 = function () { + weatherCheck(true, 80); +}; + +wcButton1.onclick = weatherCheck1; +wcButton2.onclick = weatherCheck2; +wcButton3.onclick = weatherCheck3; + +//Game code +let pointCheck = document.getElementById("points"); + +let doneFunction = function() { + alert("Done!"); +} + +//Building functions +let bfInstruction = document.getElementById("gameCode"); +let bfCode = document.getElementById("buildingCode"); + +let bfOption1 = document.getElementById("option1"); +let bfOption2 = document.getElementById("option2"); +let bfOption3 = document.getElementById("option3"); + +let point = 0; + +let bfWrong = function () { + point--; + pointCheck.innerText = "Points: " + point; + bfInstruction.innerText = + bfInstruction.innerText + " Wrong guess, please try again."; +}; + +let bfGameWin = function () { + point++; + pointCheck.innerText = "Points: " + point; + bfInstruction.innerText = "Correct! You made a function!"; + + bfOption1.innerText = ""; + bfOption2.innerText = "Run code"; + bfOption3.innerText = ""; + + let functionName = function () { + alert("How are we doing today?"); + }; + bfOption2.onclick = functionName; + bfOption1.onclick = doneFunction; + bfOption3.onclick = doneFunction; +}; + +let bfGameCorrect5 = function () { + point++; + pointCheck.innerText = "Points: " + point; + bfCode.innerHTML = + 'let functionName = function() {

alert("How are we doing today?");

}'; + + bfInstruction.innerText = "What will this function do?"; + + bfOption1.innerText = "Check how we are doing today"; + bfOption2.innerText = 'Alert: "How are we doing today?"'; + bfOption3.innerText = "Alert: How are we doing today?"; + + bfOption3.onclick = bfGameWin; + bfOption2.onclick = bfWrong; +}; + +let bfGameCorrect4 = function () { + point++; + pointCheck.innerText = "Points: " + point; + bfCode.innerHTML = "let functionName = function() {

}"; + + bfInstruction.innerText = + "Which is correct syntax that we can put in our function?"; + + bfOption1.innerText = 'alert = "This is really hard";'; + bfOption2.innerText = 'alert("How are we doing today?");'; + bfOption3.innerText = 'alert.("Time for a party!");'; + + bfOption2.onclick = bfGameCorrect5; + bfOption1.onclick = bfWrong; +}; + +let bfGameCorrect3 = function () { + point++; + pointCheck.innerText = "Points: " + point; + bfCode.innerText = "let functionName = function()"; + + bfInstruction.innerText = + "What is the next thing after we declare the function?"; + + bfOption1.innerText = "()"; + bfOption2.innerText = "{}"; + bfOption3.innerText = "[]"; + + bfOption2.onclick = bfGameCorrect4; + bfOption3.onclick = bfWrong; +}; + +let bfGameCorrect2 = function () { + point++; + pointCheck.innerText = "Points: " + point; + bfCode.innerText = "let functionName ="; + + bfInstruction.innerText = "How do we declare a function?"; + + bfOption1.innerText = "function"; + bfOption2.innerText = "()function"; + bfOption3.innerText = "function()"; + + bfOption3.onclick = bfGameCorrect3; + bfOption1.onclick = bfWrong; +}; + +let bfGameCorrect1 = function () { + point++; + pointCheck.innerText = "Points: " + point; + bfCode.innerText = "let functionName"; + + bfInstruction.innerText = "What is after the funciton name?"; + + bfOption1.innerText = "="; + bfOption2.innerText = "-"; + bfOption3.innerText = ":"; + + bfOption1.onclick = bfGameCorrect2; +}; + +let bfGameStart = function () { + bfInstruction.innerText = "How do we start a function?"; + + bfOption1.innerText = "let functionName"; + bfOption2.innerText = "if(functionName)"; + bfOption3.innerText = "let(functionName)"; + + bfOption1.onclick = bfGameCorrect1; + bfOption2.onclick = bfWrong; + bfOption3.onclick = bfWrong; +}; + +bfOption2.onclick = bfGameStart; + +//Functions with Parameters +let fpInstruction = document.getElementById("gameCode2"); +let fpCode = document.getElementById("buildingCode2"); + +let fpOption1 = document.getElementById("option4"); +let fpOption2 = document.getElementById("option5"); +let fpOption3 = document.getElementById("option6"); + +let fpWrong = function () { + point--; + pointCheck.innerText = "Points: " + point; + fpInstruction.innerText = fpInstruction.innerText + " Wrong guess, try again"; +}; + +let fpGameWin = function () { + point++; + pointCheck.innerText = "Points: " + point; + fpInstruction.innerHTML = "You win! You have a function with parameters"; + + let parameterFunction = function (x) { + let y = x / 2 + 5; + alert(y); + }; + + let runFunction = function () { + parameterFunction(4); + }; + + fpOption1.innerText = ""; + fpOption2.innerText = "Run function"; + fpOption3.innerText = ""; + + fpOption1.onclick = doneFunction; + fpOption2.onclick = runFunction; + fpOption3.onclick = doneFunction; +}; + +let fpGameCorrect4 = function () { + point++; + pointCheck.innerText = "Points: " + point; + fpCode.innerHTML = + 'let parameterFunction = function(x){

let y = x/2 + 5;

alert(y);

}
parameterFunction(4);'; + fpInstruction.innerHTML = "What is going to be alerted from this code?"; + + fpOption1.innerText = "7"; + fpOption2.innerText = "y"; + fpOption3.innerText = "4/2 + 5"; + + fpOption1.onclick = fpGameWin; + fpOption2.onclick = fpWrong; +}; + +let fpGameCorrect3 = function () { + point++; + pointCheck.innerText = "Points: " + point; + fpCode.innerHTML = + 'let parameterFunction = function(x){

let y = x/2 + 5;

alert(y);

}'; + fpInstruction.innerHTML = + "How do we call this function with the value of the parameter x = 4?"; + + fpOption1.innerText = "parameterFunction(0);"; + fpOption2.innerText = "parameterFunction(4);"; + fpOption3.innerText = "parameterFunction(x = 4);"; + + fpOption2.onclick = fpGameCorrect4; + fpOption3.onclick = fpWrong; +}; + +let fpGameCorrect2 = function () { + point++; + pointCheck.innerText = "Points: " + point; + fpCode.innerHTML = + 'let parameterFunction = function(x){

let y = x/2 + 5;

}'; + fpInstruction.innerHTML = + "Which piece of code alerts the new variable"; + + fpOption1.innerText = "alert(x);"; + fpOption2.innerText = 'alert("y");'; + fpOption3.innerText = "alert(y);"; + + fpOption3.onclick = fpGameCorrect3; + fpOption1.onclick = fpWrong; +}; + +let fpGameCorrect1 = function () { + point++; + pointCheck.innerText = "Points: " + point; + fpCode.innerHTML = "let parameterFunction = function(x){

}"; + fpInstruction.innerText = "Which piece of code uses that parameter:"; + + fpOption1.innerText = "let y = x/2 + 5;"; + fpOption2.innerText = 'x = "Hello World!";'; + fpOption3.innerText = "x + y - z;"; + + fpOption1.onclick = fpGameCorrect2; + fpOption3.onclick = fpWrong; +}; + +let fpGameStart = function () { + fpInstruction.innerText = "Make a parameter:"; + fpCode.innerHTML = "let parameterFunction = function(){

}"; + + fpOption1.innerText = "function(x;)"; + fpOption2.innerText = "function(let x)"; + fpOption3.innerText = "function(x)"; + + fpOption1.onclick = fpWrong; + fpOption2.onclick = fpWrong; + fpOption3.onclick = fpGameCorrect1; +}; + +fpOption2.onclick = fpGameStart; + +//Calling functions with and without parameters +let cInstruction = document.getElementById("gameCode3"); +let cCode = document.getElementById("buildingCode3"); + +let cOption1 = document.getElementById("option7"); +let cOption2 = document.getElementById("option8"); +let cOption3 = document.getElementById("option9"); + +let cWrong = function () { + point--; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = cInstruction.innerText + " Wrong guess, try again"; +}; + +let cWinGame = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = + "You won! Congratulations for calling multiple functions!"; + cCode.innerHTML = "Cycle through previous code to run them!"; + + let cycleThree = function () { + cCode.innerHTML = + 'let checkGrades = function(science, math, english){

if((science + math + english)/3 > 75){

alert("You have an A in all classes!");

} else if ((science + math + english)/3 > 50){

alert("You have a C average");

} else {

alert("Time to study!");

}

}
checkGrades(90, 67, 45);'; + + let runCodeThree = function () { + let checkGrades = function (science, math, english) { + if ((science + math + english) / 3 > 75) { + alert("You have an A in all classes!"); + } else if ((science + math + english) / 3 > 50) { + alert("You have a C average"); + } else { + alert("Time to study!"); + } + }; + checkGrades(90, 67, 45); + }; + + cOption2.onclick = runCodeThree; + cOption1.onclick = cycleOne; + cOption3.onclick = doneFunction; + }; + + let cycleTwo = function () { + cCode.innerHTML = + 'let vacationCheck = function(free){

if(free)

alert("Time for vacation!");

} else {

alert("No vacation, too busy");

}

}
vacationCheck(true);'; + + let runCodeTwo = function () { + let vacationCheck = function (free) { + if (free) { + alert("Time for vacation!"); + } else { + alert("No vacation, too busy"); + } + }; + vacationCheck(true); + }; + + cOption2.onclick = runCodeTwo; + cOption1.onclick = cycleThree; + cOption3.onclick = doneFunction; + }; + + let cycleOne = function () { + cCode.innerHTML = + 'let funFunction = function(){

alert("Hello World");

}'; + + let runCodeOne = function () { + let funFunction = function () { + alert("Hello World"); + }; + funFunction(); + }; + + cOption2.onclick = runCodeOne; + cOption1.onclick = cycleTwo; + cOption3.onclick = doneFunction; + }; + + cOption1.innerText = "Cycle through"; + cOption2.innerText = "Run code"; + cOption3.innerText = ""; + + cOption1.onclick = cycleOne; + cOption2.onclick = cWinGame; + cOption3.onclick = doneFunction; +}; + +let cCorrect3 = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = "How do you call this function?"; + cCode.innerHTML = + 'let checkGrades = function(science, math, english){

if((science + math + english)/3 > 75){

alert("You have an A in all classes!");

} else if ((science + math + english)/3 > 50){

alert("You have a C average");

} else {

alert("Time to study!");

}

}'; + + cOption1.innerText = 'checkGrades("90", "30", "100");'; + cOption2.innerText = "checkGrades(true, false, true);"; + cOption3.innerText = "checkGrades(90, 67, 45);"; + + cOption3.onclick = cWinGame; + cOption1.onclick = cWrong; +}; + +let cCorrect2 = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = "What does this function alert?"; + cCode.innerHTML = + 'let vacationCheck = function(free){

if(free)

alert("Time for vacation!");

} else {

alert("No vacation, too busy");

}

}
vacationCheck(true);'; + + cOption1.innerText = "Time for vacation!"; + cOption2.innerText = "No vacation, too busy"; + cOption3.innerText = "Nothing, this doesn't work"; + + cOption1.onclick = cCorrect3; + cOption2.onclick = cWrong; +}; + +let cCorrect1 = function () { + point++; + pointCheck.innerText = "Points: " + point; + cInstruction.innerText = "How do you call this function?"; + cCode.innerHTML = + 'let vacationCheck = function(free){

if(free){

alert("Time for vacation!");

} else {

alert("No vacation, too busy");

}

}'; + + cOption1.innerText = "function(true);"; + cOption2.innerText = "vacationCheck(true);"; + cOption3.innerText = "vacationCheck(good);"; + + cOption2.onclick = cCorrect2; + cOption3.onclick = cWrong; +}; + +let cStartGame = function () { + cInstruction.innerText = "How do you call this function?"; + cCode.innerHTML = + 'let funFunction = function(){

alert("Hello World");

}'; + + cOption1.innerText = "function();"; + cOption2.innerText = "funFunction(4);"; + cOption3.innerText = "funFunction();"; + + cOption3.onclick = cCorrect1; + cOption2.onclick = cWrong; + cOption1.onclick = cWrong; +}; + +cOption2.onclick = cStartGame; + diff --git a/functions-parameters-tutorial/style.css b/functions-parameters-tutorial/style.css new file mode 100644 index 0000000..e0d8413 --- /dev/null +++ b/functions-parameters-tutorial/style.css @@ -0,0 +1,310 @@ +/* style.scss */ +/* Import the common styling */ +/* common.scss */ +/* Define all the colors */ +body { + margin: 5em 0 0 0; + padding: 0; + background-color: #fff; + font-family: 'Nunito', sans-serif; + font-weight: 600; +} + +button { + border: none; + background: #38Bfe7; + padding: 0.5em 1em; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + cursor: pointer; +} + +button:hover { + background-color: #19a8d3; +} + +button:active { + -webkit-box-shadow: none; + box-shadow: none; +} + +#header { + padding: 1em 2em; + background-color: white; + color: #000; + position: fixed; + top: 0; + left: 0; + width: 100%; + max-height: 3em; + z-index: 1000; + opacity: 95%; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; +} + +#header > * { + margin: 0; +} + +#header button { + width: 3em; +} + +#back-button { + padding: 0.25em 1em; + font-size: 1em; + height: 48px; +} + +.content { + padding: 1em; + max-width: 80%; + margin: 0 auto; +} + +/*Flexbox*/ +.flex-container-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} + +.flex-container-left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +.flex-item-header { + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; +} + +.flex-item-left { + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; + max-width: max-content; +} + +#top-heading { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +#bxb-logo { + max-height: 3em; + display: block; + text-align: left; + margin-left: calc(100% - 200px); +} + +.section { + margin: 1em 0; + padding: 0.5em; + border: 0.2em solid #38Bfe7; + background-color: #fff; + color: #000; +} + +.flex-box { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.flex-col { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0.5em; +} + +.flex-col:not(:last-child) { + margin: 0 0.2em 0 0; +} + +.flex-col:last-child { + margin: 0 0 0 0.2em; +} + +.no-flex-col { + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; +} + +.showcase-section { + padding: 0; +} + +.editor-section { + position: relative; + overflow: scroll; + padding: 0; +} + +.editor { + margin: 0; + height: 20em; + width: calc(100% - 35px - calc(0.625em*2)); + font-family: 'Anonymous Pro', monospace; + font-size: 0.875em; + line-height: 1.25em; + padding: 1px 0.625em; +} + +.editor-button-overlay { + position: absolute; + bottom: 1em; + right: 1em; + padding: 0; +} + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} + +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} + +.codePartThree { + display: inline-block; + color: #236274; +} + +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} + +.codeInside { + margin-left: 30px; + color: #fad636; +} + +.semicolon { + display: inline-block; + color: #f8d227; +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + -webkit-box-shadow: black 3px 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + padding: 5px; + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; +} + +.item { + -webkit-box-flex: 100px; + -ms-flex: 100px 1 1; + flex: 100px 1 1; +} + +#navQuiz { + position: relative; +} + +#bit-by-bot-quiz { + width: 20em; + height: auto; + position: absolute; + top: 180px; + right: 150px; +} +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/functions-parameters-tutorial/style.scss b/functions-parameters-tutorial/style.scss new file mode 100644 index 0000000..6ab453e --- /dev/null +++ b/functions-parameters-tutorial/style.scss @@ -0,0 +1,117 @@ +/* style.scss */ + +/* Import the common styling */ +@import "../assets/common.scss"; + +/* The page-specific styling */ +/* TODO: Put whatever styles you need for just your demo here */ + +ul { + list-style: none; + padding: 0; + margin: 0 0 0 -45px; +} + +li { + display: inline-block; +} + +.code { + display: inline-block; + color: #153570; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codePartOne { + display: inline-block; + color: #50c6e9ff; +} +.codePartTwo { + display: inline-block; + color: #ffb560ff; +} +.codePartThree { + display: inline-block; + color: #236274; +} +.codeOrange { + color: #ffb560ff; + font-size: 18px; + font-weight: 600; + font-family: "Source Code Pro", monospace; + margin-left: 35px; +} +.codeInside { + margin-left: 30px; + color: rgb(250, 214, 54); +} + +.semicolon { + display: inline-block; + color: rgb(248, 210, 39); +} + +.variableStart { + display: inline-block; +} + +.hiddenVariable { + display: none; +} + +.variableStart:hover + .hiddenVariable { + display: inline-block; + position: relative; + z-index: 10; + top: 5px; + left: 5px; + background-color: white; + padding: 2px 5px 5px 5px; + margin: 0; + margin-right: 10px; + width: 250px; + border: black solid 3px; + box-shadow: black 3px 3px; +} + +.gameButton { + display: inline-block; + margin-right: 20px; + margin-bottom: 5px; + padding: 5px; + width: max-content; + min-width: 150px; + min-height: 40px; +} + +.buildingGameCode { + background-color: black; + min-height: 20px; + padding: 5px; + font-family: "Source Code Pro", monospace; + color: #50c6e9ff; +} + +.container { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; +} + +.item { + flex: 100px 1 1; +} + +#navQuiz { + position: relative; +} + +#bit-by-bot-quiz { + width: 20em; + height: auto; + position: absolute; + top: 180px; + right: 150px; +} diff --git a/html1/index.html b/html1/index.html deleted file mode 100644 index 6ca4f81..0000000 --- a/html1/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - -
- First div -
Left Div
-
Right Div -
Top
-
Mid
-
Bot
-
-
- - - - - \ No newline at end of file diff --git a/html1/lmdd.min.css b/html1/lmdd.min.css deleted file mode 100644 index 2c5455d..0000000 --- a/html1/lmdd.min.css +++ /dev/null @@ -1,48 +0,0 @@ -.no-display{ - display:none !important -} - -.no-transition,.no-transition *{ - transition:none !important -} - -.unselectable{ - -webkit-user-select:none !important; - -moz-user-select:none !important; - -ms-user-select:none !important; - user-select:none !important; - cursor:not-allowed -} - -.hidden-layer,.hidden-layer *{ - opacity:0;z-index:1; - cursor:crosshair !important -} - -.visible-layer,.visible-layer *{ - opacity:1; - z-index:-1; - pointer-events:none; - transition:all .7s -} - -.visible-layer .lmdd-mirror.gf-transition{ - transition:all .3s !important; -} - -.visible-layer .lmdd-mirror{ - z-index:1; - position:absolute; - margin:0; - pointer-events:none; - transition:top 00s,left 00s !important; - opacity:.5 -} - -.lmdd-shadow{ - opacity:.5; -} - -.lmdd-hidden{ - visibility:hidden -} \ No newline at end of file diff --git a/html1/lmdd.min.js b/html1/lmdd.min.js deleted file mode 100644 index 6af816b..0000000 --- a/html1/lmdd.min.js +++ /dev/null @@ -1,24 +0,0 @@ -var lmdd=function(){function x(a,b,l,c){l?a.classList.add(b):a.classList.remove(b);c&&p[c].push(function(){l?a.classList.remove(b):a.classList.add(b)})}function D(a,b,l,c,d){a.addEventListener(b,l,c);p[d].push(function(){a.removeEventListener(b,l,c)})}function S(a,b){var l={};Object.keys(a).forEach(function(c){l[c]=Object.prototype.hasOwnProperty.call(b,c)?b[c]:a[c]});return l}function K(a){for(var b=0;bb){e--;break}for(;f<=d&&f!==d&&!(a[f].top>b);f++);for(b= -e+1;b<=f;b++)if(b===f){g=b;break}else if(a[b].left>k.clientX){g=b;break}a=g===d?a[g-1].index+1:a[g].index}c.currentPosition=a}else c.currentPosition=!1}function F(){var a;if(a=c.currentContainer){var b=c.currentContainer;a=g;a.contains(b)||b.classList.contains("lmdd-dispatcher")?a=!1:d.lmddOptions.matchObject?(b=b.dataset.containerType||!1,a=a.dataset.itemType||!1,a=b?a?d.lmddOptions.matchObject[b][a]:d.lmddOptions.matchObject[b]["default"]:d.lmddOptions.matchObject["default"]):a=!0}a?(c.currentContainer.insertBefore(g, -c.currentContainer.childNodes[c.currentPosition]),c.currentIndex=Array.prototype.indexOf.call(g.parentNode.childNodes,g),n&&!t&&(h.elref.classList.remove("no-display"),h.elref.cloneRef.classList.remove("no-display"),h.elref.cloneRef.classList.add("no-transition"),E(g)),t=!0):d.lmddOptions.revert&&(c.originalContainer.insertBefore(g,c.originalNextSibling),c.currentIndex=c.originalIndex);z();A=k}function G(a){a.cloneRef.rectRef=a.getBoundingClientRect();var b=window.getComputedStyle?getComputedStyle(a, -null):a.currentStyle;a.cloneRef.styleRef={top:{padding:parseInt(b.paddingTop,10),margin:parseInt(b.marginTop,10),border:parseInt(b.borderTopWidth,10)},left:{padding:parseInt(b.paddingLeft,10),margin:parseInt(b.marginLeft,10),border:parseInt(b.borderLeftWidth,10)}};a.classList.contains("lmdd-block")||Array.prototype.forEach.call(a.childNodes,function(a){1===a.nodeType&&G(a)})}function U(a){var b=a.cloneNode(!0);b.id+="-lmddClone";var c=[],d=[],e=function(a,b){b.push(a);Array.prototype.forEach.call(a.childNodes, -function(a){e(a,b)})};e(a,c);e(b,d);for(a=0;a=this.el.clientHeight-this.sm&&window.pageYOffset=this.el.clientWidth-this.sm&&window.pageXOffset - - - If/Else Demo | Bit by Bit - - - - - - - - - -
-
-

- Pick two numbers and an operator to compare them with.
- < will be true if number 1 is smaller than number 2.
- > will be true if number 1 is greater than number 2.
- === will be true if both numbers are equal.
- <= will be true if number 1 is smaller than or equal to number 2.
- >= will be true if number 1 is greater than or equal to number 2.
-

-
-
-
-

- - -

- Number 1: - -
-
- Number 2: - -
-
- Operator: - -
- -

-
-
-

- -

-
-
- -
-
- Bit by Bit Coding is a registered nonprofit
- EIN 84-5025902
- © 2021 Bit by Bit Coding
-
- - - - diff --git a/ifelse-demo/script.js b/ifelse-demo/script.js deleted file mode 100644 index d16b744..0000000 --- a/ifelse-demo/script.js +++ /dev/null @@ -1,76 +0,0 @@ -let resultBox = document.getElementById("result"); - -let op = document.getElementById("op"); -createOption(op, { - '<':'<', - '>':'>', - '===':'===', - '<=':'<=', - '>=':'>=' -}); - - -function calculate(){ - let num1 = document.getElementById("num1").value; - let num2 = document.getElementById("num2").value; - - - if(op.value == '<'){ - if(num1 < num2){ - resultBox.style.backgroundColor = "lime"; - resultBox.innerText = "True!"; - }else{ - resultBox.style.backgroundColor = "red"; - if(num1 > num2){ - resultBox.innerText = `This is false because number 1:${num1} is greater than number 2:${num2}.`; - }else if(num1 == num2){ - resultBox.innerText = `This is false because number 1:${num1} is equal to number 2:${num2}, and not smaller than it.`; - } - } - } - - if(op.value == '==='){ - if(num1 == num2){ - resultBox.style.backgroundColor = "lime"; - resultBox.innerText = "True!"; - }else{ - resultBox.style.backgroundColor = "red"; - resultBox.innerText = `This is false because number 1: ${num1} is not equal to number 2: ${num2}.`; - } - } - - if(op.value == '>'){ - if(num1 > num2){ - resultBox.style.backgroundColor = "lime"; - resultBox.innerText = "True!"; - }else{ - resultBox.style.backgroundColor = "red"; - if(num1 < num2){ - resultBox.innerText = `This is false because number 1: ${num1} is smaller than number 2: ${num2}.`; - }else if(num1 == num2){ - resultBox.innerText = `This is false because number 1: ${num1} is equal to number 2: ${num2}, and not strictly greater than it.`; - } - } - } - - if(op.value == '<='){ - if(num1 <= num2){ - resultBox.style.backgroundColor = "lime"; - resultBox.innerText = "True!"; - }else{ - resultBox.style.backgroundColor = "red"; - resultBox.innerText = `This is false because number 1: ${num1} is greater than number 2: ${num2}.`; - } - } - - if(op.value == '>='){ - if(num1 >= num2){ - resultBox.style.backgroundColor = "lime"; - resultBox.innerText = "True!"; - }else{ - resultBox.style.backgroundColor = "red"; - resultBox.innerText = `This is false because number 1: ${num1} is smaller than number 2: ${num2}.`; - } - } -} - diff --git a/ifelse-demo/style.scss b/ifelse-demo/style.scss deleted file mode 100644 index 29314c9..0000000 --- a/ifelse-demo/style.scss +++ /dev/null @@ -1,7 +0,0 @@ -/* style.scss */ - -/* Import the common styling */ -@import "../assets/common.scss"; - -/* The page-specific styling */ -/* TODO: Put whatever styles you need for just your demo here */ diff --git a/math-random-demo/index.html b/math-random-demo/index.html index 55ed2a7..79d0fc9 100644 --- a/math-random-demo/index.html +++ b/math-random-demo/index.html @@ -31,7 +31,7 @@

Random Function Demo

Instructions:

-

Math.random picks a random decimal between 0 and 1. By adding a coefficient you can widen the range that the random number can fall within. Adding a constant can change where the range will fall on the number line. Try adding both a coefficient and adding a constant in the boxes below.

+

Math.random picks a random decimal between 0 and 1. By adding a coefficient, you can widen the range that the random number can fall within. Adding a constant can change where the range will fall on the number line. Try adding both a coefficient and a constant in the boxes below.

(Math.random() x ) +

diff --git a/math-random-demo/style.css b/math-random-demo/style.css index c4c2bd3..64ce4af 100644 --- a/math-random-demo/style.css +++ b/math-random-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -175,5 +210,4 @@ div.marker { height: 200px; border: 0.2em solid #38Bfe7; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/object-demo/style.css b/object-demo/style.css index ae69239..66bd6e6 100644 --- a/object-demo/style.css +++ b/object-demo/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -19,14 +19,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -40,11 +44,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -63,28 +70,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -104,11 +133,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -121,7 +154,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -138,7 +173,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -155,11 +190,13 @@ button:active { .showcase-section { position: relative; } + .showcase-section svg { position: absolute; top: 50%; left: 50%; - transform: translate(-50%, -50%); + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); height: 100%; } @@ -169,14 +206,21 @@ button:active { } div.option-wrapper { + display: -webkit-box; + display: -ms-flexbox; display: flex; margin: 1em 0 1em 0; } + div.option-wrapper > *:first-child { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; } + div.option-wrapper > *:last-child { - flex: 2; + -webkit-box-flex: 2; + -ms-flex: 2; + flex: 2; } - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/DEMO2.html b/original-demos/DEMO2.html similarity index 100% rename from DEMO2.html rename to original-demos/DEMO2.html diff --git a/DEMOcss.html b/original-demos/DEMOcss.html similarity index 100% rename from DEMOcss.html rename to original-demos/DEMOcss.html diff --git a/css3/selector.html b/original-demos/css3/selector.html similarity index 100% rename from css3/selector.html rename to original-demos/css3/selector.html diff --git a/css3/selectscript.js b/original-demos/css3/selectscript.js similarity index 100% rename from css3/selectscript.js rename to original-demos/css3/selectscript.js diff --git a/generateScript/generatescript.js b/original-demos/generateScript/generatescript.js similarity index 100% rename from generateScript/generatescript.js rename to original-demos/generateScript/generatescript.js diff --git a/generateScript/selectorGame.html b/original-demos/generateScript/selectorGame.html similarity index 100% rename from generateScript/selectorGame.html rename to original-demos/generateScript/selectorGame.html diff --git a/style.css b/style.css index f7851aa..05dd2c4 100644 --- a/style.css +++ b/style.css @@ -213,4 +213,4 @@ div.grid-item:hover { box-shadow: #aaaaaa 2px 2px 2px; background-color: #fafafa; } -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/template/style.css b/template/style.css index 3a36ad6..5d269e9 100644 --- a/template/style.css +++ b/template/style.css @@ -6,7 +6,7 @@ body { margin: 5em 0 0 0; padding: 0; background-color: #fff; - font-family: "Nunito", sans-serif; + font-family: 'Nunito', sans-serif; font-weight: 600; } @@ -14,14 +14,18 @@ button { border: none; background: #38Bfe7; padding: 0.5em 1em; - box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + -webkit-box-shadow: 0.125em 0.125em 0.2em #bfbfbf; + box-shadow: 0.125em 0.125em 0.2em #bfbfbf; cursor: pointer; } + button:hover { background-color: #19a8d3; } + button:active { - box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } #header { @@ -35,11 +39,14 @@ button:active { max-height: 3em; z-index: 1000; opacity: 95%; - box-shadow: 0 2px 2px #eee; + -webkit-box-shadow: 0 2px 2px #eee; + box-shadow: 0 2px 2px #eee; } + #header > * { margin: 0; } + #header button { width: 3em; } @@ -58,28 +65,50 @@ button:active { /*Flexbox*/ .flex-container-header { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-between; - align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } .flex-container-left { + display: -webkit-box; + display: -ms-flexbox; display: flex; - justify-content: space-evenly; - align-items: center; + -webkit-box-pack: space-evenly; + -ms-flex-pack: space-evenly; + justify-content: space-evenly; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } .flex-item-header { - flex: 1 1 200px; + -webkit-box-flex: 1; + -ms-flex: 1 1 200px; + flex: 1 1 200px; } .flex-item-left { - flex: 1 1 100px; + -webkit-box-flex: 1; + -ms-flex: 1 1 100px; + flex: 1 1 100px; + max-width: -webkit-max-content; + max-width: -moz-max-content; max-width: max-content; } #top-heading { + width: -webkit-max-content; + width: -moz-max-content; width: max-content; } @@ -99,11 +128,15 @@ button:active { } .flex-box { + display: -webkit-box; + display: -ms-flexbox; display: flex; } .flex-col { - flex: 1; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; padding: 0.5em; } @@ -116,7 +149,9 @@ button:active { } .no-flex-col { - flex: 0; + -webkit-box-flex: 0; + -ms-flex: 0; + flex: 0; } .showcase-section { @@ -133,7 +168,7 @@ button:active { margin: 0; height: 20em; width: calc(100% - 35px - calc(0.625em*2)); - font-family: "Anonymous Pro", monospace; + font-family: 'Anonymous Pro', monospace; font-size: 0.875em; line-height: 1.25em; padding: 1px 0.625em; @@ -148,5 +183,4 @@ button:active { /* The page-specific styling */ /* TODO: Put whatever styles you need for just your demo here */ - -/*# sourceMappingURL=style.css.map */ +/*# sourceMappingURL=style.css.map */ \ No newline at end of file