diff --git a/public/index.html b/public/index.html
index aa069f2..ff10222 100644
--- a/public/index.html
+++ b/public/index.html
@@ -15,6 +15,7 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
+
-
React App
+ Learn Morse Code
diff --git a/src/App.js b/src/App.js
index 27dbfe7..c56c56f 100644
--- a/src/App.js
+++ b/src/App.js
@@ -21,7 +21,6 @@ import Legend from './components/Legend';
import WordsPerMinute from "./components/WordsPerMinute"
import MorseButtons from './components/MorseButtons'
import Footer from './components/Footer';
-import { WPMContext } from './contexts/wpmContext';
import StraightKey from './components/StraightKey';
import ElectronicKey from './components/ElectronicKey';
@@ -31,19 +30,24 @@ export default React.memo(function App() {
const {keyType} = useContext(KeyTypeContext)
const {gameMode} = useContext(GameModeContext)
- const wpm = useContext(WPMContext)
-
return (
<>
-
+
-
-
-
+
+
+
+
+
+
+ {gameMode === 'challenge' &&
+
+ }
+
{keyType === "straight" ?
:
@@ -64,17 +68,12 @@ export default React.memo(function App() {
} */}
{gameMode === 'challenge' &&
- <>
-
-
-
-
-
-
- >
+
}
+
+
diff --git a/src/components/KeyTypePicker.js b/src/components/KeyTypePicker.js
index 2448a00..1b8fdbe 100644
--- a/src/components/KeyTypePicker.js
+++ b/src/components/KeyTypePicker.js
@@ -1,6 +1,7 @@
import React, {useContext} from "react"
import {KeyTypeContext} from "../contexts/keyTypeContext"
+
export default React.memo(function KeyTypePicker() {
const {setKeyType} = useContext(KeyTypeContext)
@@ -9,7 +10,7 @@ export default React.memo(function KeyTypePicker() {
setKeyType(e.target.id)
console.log("KEYTYPE PICKED:", e.target.id);
- let buttons = document.querySelector(".mode-picker#keyType").childNodes
+ let buttons = document.querySelector(".mode-picker#keyType #buttons").childNodes
buttons.forEach(button => {
if (button.id === e.target.id) {
button.classList.add('selected')
@@ -21,23 +22,30 @@ export default React.memo(function KeyTypePicker() {
document.querySelector('.paddle').classList.add('showPaddles')
document.querySelector('.paddle#left').classList.add('showPaddles')
document.querySelector('.paddle#right').classList.add('showPaddles')
+ document.getElementById('morseButtonText').innerHTML = ''
} else {
document.querySelector('#morseButton').classList.remove('showPaddles')
document.querySelector('.paddle').classList.remove('showPaddles')
document.querySelector('.paddle#left').classList.remove('showPaddles')
document.querySelector('.paddle#right').classList.remove('showPaddles')
+ document.getElementById('morseButtonText').innerHTML = 'SPACEBAR'
}
}
return (
-
-
+
+ Keyer Type
+
+
+
+
+
)
})
diff --git a/src/components/ModePicker.js b/src/components/ModePicker.js
index 470f7e5..2deb56e 100644
--- a/src/components/ModePicker.js
+++ b/src/components/ModePicker.js
@@ -10,20 +10,32 @@ function ModePicker() {
function handleClick(e) {
setMorseCharBuffer('')
setGameMode(e.target.id)
+
+ let buttons = document.querySelector(".mode-picker#gameMode #buttons").childNodes
+ buttons.forEach(button => {
+ if (button.id === e.target.id) {
+ button.classList.add('selected')
+ } else { button.classList.remove('selected')}
+ })
console.log("Switched to " + e.target.id + " mode.");
}
return (
-
-
-
+
+ Mode
+
+
+
+
+
+
)
}
diff --git a/src/components/MorseButtons.js b/src/components/MorseButtons.js
index c0468eb..ff955f2 100644
--- a/src/components/MorseButtons.js
+++ b/src/components/MorseButtons.js
@@ -2,9 +2,14 @@ import React from "react"
export default React.memo(function MorseButtons() {
return (
-
-
-
-
+ <>
+
+
+
+
+
+ SPACEBAR
+
+ >
)
})
\ No newline at end of file
diff --git a/src/components/WordListPicker.js b/src/components/WordListPicker.js
index 2f686fe..078e0a8 100644
--- a/src/components/WordListPicker.js
+++ b/src/components/WordListPicker.js
@@ -4,7 +4,7 @@ import { WordFeederContext } from "../contexts/wordFeederContext";
export default React.memo(function WordListPicker() {
- const {setWordListCategory} = useContext(WordListPickerContext)
+ const {wordListCategory, setWordListCategory} = useContext(WordListPickerContext)
const {resetFeeder, setOrder} = useContext(WordFeederContext)
const orderOpts = ['sequential', 'random']
@@ -13,7 +13,7 @@ export default React.memo(function WordListPicker() {
resetFeeder()
if (orderOpts.includes(e.target.id)) {
- let buttons = document.querySelector(".mode-picker#wordOrderPicker").childNodes
+ let buttons = document.querySelector(".mode-picker#wordOrderPicker #buttons").childNodes
buttons.forEach(button => {
if (button.id === e.target.id) {
button.classList.add('selected')
@@ -22,40 +22,48 @@ export default React.memo(function WordListPicker() {
setOrder(e.target.id)
} else {
- let buttons = document.querySelector(".mode-picker#wordListPicker").childNodes
- buttons.forEach(button => {
- if (button.id === e.target.id) {
- button.classList.add('selected')
- } else { button.classList.remove('selected')}
- })
-
- setWordListCategory(e.target.id)
- console.log("Switched to " + e.target.id + " mode.");
+ setWordListCategory(e.target.value)
+ console.log("Switched to " + e.target.value + " word list.");
}
-
-
}
return (
<>
-
-
-
+
+ Word List
+
+
+
+
+ {/*
+
+
+
+
*/}
-
-
+
+ Word Order
+
+
+
+
+
>
)
diff --git a/src/components/WordsPerMinute.js b/src/components/WordsPerMinute.js
index 57c93d1..5af5cf4 100644
--- a/src/components/WordsPerMinute.js
+++ b/src/components/WordsPerMinute.js
@@ -12,6 +12,13 @@ export default React.memo(function WordsPerMinute(props) {
return (
//
-
+
)
})
\ No newline at end of file
diff --git a/src/config.json b/src/config.json
index 9fdd0f1..ab09ed6 100644
--- a/src/config.json
+++ b/src/config.json
@@ -8,5 +8,5 @@
"normal": 24,
"fast": 17
},
- "historySize": 10
+ "historySize": 7
}
\ No newline at end of file
diff --git a/src/css/App.css b/src/css/App.css
index 0b61858..74674a4 100644
--- a/src/css/App.css
+++ b/src/css/App.css
@@ -1,14 +1,21 @@
+@import url("https://fonts.googleapis.com/css?family=Courier+Prime:700|Rubik&display=swap");
* {
-webkit-box-sizing: border-box;
box-sizing: border-box;
margin: 0px;
padding: 0px;
+ cursor: default;
+}
+
+button {
+ font-family: #f2f2f2;
+ cursor: pointer;
}
html, body {
height: 100%;
width: 100%;
- background: #2c2c2c;
+ background: #f2f2f2;
}
#root {
@@ -54,21 +61,33 @@ header {
align-self: center;
}
+.mode-picker #title {
+ 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;
+ margin: 7px;
+}
+
.mode-picker button {
- background: #2c2c2c;
- color: #CCC;
- margin: 15px;
+ background: #f2f2f2;
+ color: #333;
+ margin: 7px;
padding: 5px;
- -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px rgba(255, 255, 255, 0.1);
- box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px rgba(255, 255, 255, 0.1);
+ -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
+ box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
border: 0px;
border-radius: 5px;
}
.mode-picker .selected {
- color: goldenrod;
- -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.2), inset 0px -1px 1px rgba(255, 255, 255, 0.1);
- box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.2), inset 0px -1px 1px rgba(255, 255, 255, 0.1);
+ -webkit-box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.2), inset 0px -1px 1px white;
+ box-shadow: inset 0px 2px 2px rgba(0, 0, 0, 0.2), inset 0px -1px 1px white;
}
#legend {
@@ -85,14 +104,14 @@ header {
-ms-flex-pack: space-evenly;
justify-content: space-evenly;
position: fixed;
- top: 50px;
+ top: 250px;
left: 50px;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
#legend div {
- border: 1px solid #999;
+ border: 1px solid #ccc;
border-radius: 3px;
margin: 1px;
width: 80px;
@@ -101,7 +120,6 @@ header {
display: flex;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
- background: #BBB;
}
#legend div button {
@@ -110,6 +128,8 @@ header {
margin: 4px;
border: 0px;
border-radius: 2px;
+ -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
+ box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
}
#legend div span {
@@ -123,7 +143,8 @@ header {
#morseButton {
width: 100px;
height: 100px;
- margin: 30px;
+ margin-top: 30px;
+ margin-bottom: 10px;
border-radius: 50px;
-ms-flex-item-align: center;
align-self: center;
@@ -138,6 +159,8 @@ header {
align-items: center;
-webkit-transition: all 500ms ease-in-out;
transition: all 500ms ease-in-out;
+ -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
+ box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
}
#morseButton.showPaddles {
@@ -147,6 +170,23 @@ header {
box-shadow: 0px 0px 0px transparent;
}
+#morseButtonText {
+ font-weight: bold;
+ color: #ccc;
+ font-size: 0.7rem;
+ margin-bottom: 40px;
+}
+
+#paddleText {
+ width: 150px;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+}
+
.paddle {
font-size: 1rem;
color: transparent;
@@ -183,6 +223,79 @@ header {
font-weight: bold;
width: 250px;
height: 100px;
+ -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
+ box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
+}
+
+i[class*="ri-"] {
+ font-weight: normal;
+ font-size: 0.9rem;
+ color: #777;
+}
+
+i[class*="ri-"]:hover {
+ color: goldenrod;
+}
+
+#mainOptions {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-align: start;
+ -ms-flex-align: start;
+ align-items: flex-start;
+ width: 400px;
+}
+
+#mainOptions .mode-picker {
+ -ms-flex-item-align: start;
+ align-self: flex-start;
+ width: 100%;
+ -webkit-box-pack: start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+}
+
+#mainOptions .mode-picker #buttons {
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -ms-flex-line-pack: justify;
+ align-content: space-between;
+}
+
+#mainOptions .mode-picker #input {
+ margin-left: 10px;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+#mainOptions .mode-picker #input input {
+ width: 50px;
+ text-align: center;
+ border-radius: 3px;
+ border: 1px solid #ddd;
+ height: 1.3rem;
+}
+
+#mainOptions .mode-picker #input select:focus {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+#mainOptions #title {
+ font-weight: bold;
}
#challengeWord {
@@ -204,8 +317,8 @@ header {
width: -moz-fit-content;
width: fit-content;
display: flex;
- font-size: 40px;
- font-family: 'Courier';
+ font-size: 3rem;
+ font-family: "Courier Prime", monospace;
font-weight: bold;
background: #EEE;
text-transform: uppercase;
@@ -218,6 +331,7 @@ header {
#challengeWord span {
padding: 4px;
margin: 1px;
+ line-height: 2.5rem;
-webkit-transition: background 300ms ease-in-out;
transition: background 300ms ease-in-out;
}
@@ -244,10 +358,11 @@ header {
width: 50vw;
height: 150px;
margin-bottom: 20px;
+ font-family: "Courier Prime", monospace;
}
#morseBufferDisplay #alphanumeric-container {
- background: #ccc;
+ background: #fdfdfd;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
@@ -263,14 +378,10 @@ header {
-ms-flex-align: center;
align-items: center;
border-radius: 4px;
- -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
- box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
}
#morseBufferDisplay #alphanumeric-container #alphanumeric {
font-size: 40px;
- font-family: 'Courier';
- font-weight: bold;
background-color: transparent;
}
@@ -299,7 +410,7 @@ header {
-ms-flex-pack: center;
justify-content: center;
font-size: 25px;
- font-family: 'Courier';
+ font-family: "Courier", monospace;
font-weight: bold;
}
@@ -310,7 +421,7 @@ header {
}
#morseBufferDisplay #ditDahs .ditDah {
- background: #DDD;
+ background: #fdfdfd;
height: 40px;
width: 30px !important;
margin-left: 3px;
@@ -330,16 +441,6 @@ header {
transition: all 100ms ease-in-out;
}
-.example-appear {
- opacity: 0.01;
-}
-
-.example-appear.example-appear-active {
- opacity: 1;
- -webkit-transition: opacity .5s ease-in;
- transition: opacity .5s ease-in;
-}
-
#challengeBufferDisplay {
display: -webkit-box;
display: -ms-flexbox;
@@ -358,6 +459,8 @@ header {
width: 100%;
height: 150px;
margin-bottom: 20px;
+ font-family: "Courier Prime", monospace;
+ font-weight: bold;
}
#challengeBufferDisplay #alphanumeric-container {
@@ -373,8 +476,6 @@ header {
#challengeBufferDisplay #alphanumeric-container #alphanumeric {
font-size: 40px;
- font-family: 'Courier';
- font-weight: bold;
background-color: transparent;
margin-bottom: 10px;
}
@@ -404,7 +505,7 @@ header {
-ms-flex-pack: center;
justify-content: center;
font-size: 25px;
- font-family: 'Courier';
+ font-family: "Courier", monospace;
font-weight: bold;
}
@@ -419,8 +520,8 @@ header {
width: 30px !important;
margin-left: 3px;
border-radius: 5px;
- -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
- box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
+ box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px white;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
@@ -467,38 +568,26 @@ header {
}
#morseHistory .morseCard:nth-child(2) {
- opacity: 90%;
+ opacity: 85%;
}
#morseHistory .morseCard:nth-child(3) {
- opacity: 80%;
-}
-
-#morseHistory .morseCard:nth-child(4) {
opacity: 70%;
}
+#morseHistory .morseCard:nth-child(4) {
+ opacity: 55%;
+}
+
#morseHistory .morseCard:nth-child(5) {
- opacity: 60%;
-}
-
-#morseHistory .morseCard:nth-child(6) {
- opacity: 50%;
-}
-
-#morseHistory .morseCard:nth-child(7) {
opacity: 40%;
}
-#morseHistory .morseCard:nth-child(8) {
- opacity: 30%;
-}
-
-#morseHistory .morseCard:nth-child(9) {
+#morseHistory .morseCard:nth-child(6) {
opacity: 20%;
}
-#morseHistory .morseCard:nth-child(10) {
+#morseHistory .morseCard:nth-child(7) {
opacity: 10%;
}
@@ -516,20 +605,23 @@ header {
/* border: 1px solid orange; */
margin-bottom: 2px;
font-size: 1.5rem;
- font-family: 'Courier';
+ font-family: "Courier Prime", monospace;
/* width: 100%; */
}
.morseCard div div {
cursor: default;
padding: 5px;
- margin: 3px;
- background: #EEE;
+ margin: 2px;
+ background: #fdfdfd;
white-space: nowrap;
- border-radius: 5px;
+ border-radius: 3px;
-webkit-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
- line-height: 1rem;
+ line-height: 1.2rem;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
}
.morseCard .ditDahs-container, .morseCard .alphanumeric-container {
@@ -557,5 +649,7 @@ header {
-ms-flex-align: center;
align-items: center;
overflow-wrap: break-word;
+ font-family: "Courier", monospace;
+ font-weight: bold;
}
/*# sourceMappingURL=App.css.map */
\ No newline at end of file
diff --git a/src/css/App.css.map b/src/css/App.css.map
index cfff7be..c2bc9b5 100644
--- a/src/css/App.css.map
+++ b/src/css/App.css.map
@@ -1,6 +1,6 @@
{
"version": 3,
- "mappings": "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",
+ "mappings": "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",
"sources": [
"../scss/App.scss"
],
diff --git a/src/hooks/useElectronicKey.js b/src/hooks/useElectronicKey.js
index 308cdc3..77ee095 100644
--- a/src/hooks/useElectronicKey.js
+++ b/src/hooks/useElectronicKey.js
@@ -350,7 +350,7 @@ function useElectronicKey() {
// clearHistory()
}
// eslint-disable-next-line
- }, [wpm])
+ }, [wpm, gameMode])
useEffect(() => {
// PRACTICE MODE
diff --git a/src/scss/App.scss b/src/scss/App.scss
index b5ed4ef..1746ffc 100644
--- a/src/scss/App.scss
+++ b/src/scss/App.scss
@@ -1,20 +1,38 @@
-$main-bg-color: #2c2c2c;
-$main-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2);
+// $main-bg-color-dark: #2c2c2c;
+@import url('https://fonts.googleapis.com/css?family=Courier+Prime:700|Rubik&display=swap');
+$main-font: 'Rubik', sans-serif;
+$buffer-font: 'Courier Prime', monospace;
+$ditDah-font: 'Courier', monospace;
+
+$main-bg-color-light: #f2f2f2;
+
+$main-font-color-light: #333;
+
+$morseCard-shadow-light: 0px 3px 3px rgba(0, 0, 0, 0.2);
+$main-box-shadow-light: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px rgba(255, 255, 255, 1);
+$main-box-shadow-light-selected: inset 0px 2px 2px rgba(0, 0, 0, 0.2), inset 0px -1px 1px rgba(255, 255, 255, 1);
$main-box-shadow-dark: 0px 3px 3px rgba(0, 0, 0, 0.2), 0px -1px 1px rgba(255, 255, 255, 0.1);
$main-box-shadow-dark-selected: inset 0px 2px 2px rgba(0, 0, 0, 0.2), inset 0px -1px 1px rgba(255, 255, 255, 0.1);
+
$main-border-radius: 5px;
+
$border-radius-neumorphic: 0px -6px 10px rgba(255, 255, 255, 1), 0px 4px 15px rgba(0, 0, 0, 0.15);
$border-radius-neumorphic-dark: 0px -10px 20px rgba(255, 255, 255, 0.1), 0px 10px 10px rgba(0, 0, 0, 0.4);
$border-radius-neumorphic-active: 0 15px 20px rgba(0, 0, 0, 0.015), inset 0px -2px 5px rgb(255, 255, 255), inset 0px 2px 5px rgba(0, 0, 0, 0.15);
* {
box-sizing: border-box;
margin: 0px;
- padding: 0px
+ padding: 0px;
+ cursor: default;
+}
+button {
+ font-family: $main-bg-color-light;
+ cursor: pointer;
}
html, body {
height: 100%;
width: 100%;
- background: $main-bg-color;
+ background: $main-bg-color-light;
// background: #444;
}
#root {
@@ -43,19 +61,26 @@ footer {
.mode-picker {
display: flex;
align-self: center;
+ #title {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin: 7px;
+ }
+
button {
// background: #fcfcfc;
- background: $main-bg-color;
- color: #CCC;
- margin: 15px;
+ background: $main-bg-color-light;
+ color: $main-font-color-light;
+ margin: 7px;
padding: 5px;
- box-shadow: $main-box-shadow-dark;
+ box-shadow: $main-box-shadow-light;
border: 0px;
border-radius: $main-border-radius;
}
.selected {
- color: goldenrod;
- box-shadow: $main-box-shadow-dark-selected;
+ // color: goldenrod;
+ box-shadow: $main-box-shadow-light-selected;
}
}
@@ -66,18 +91,18 @@ footer {
flex-direction: column;
justify-content: space-evenly;
position: fixed;
- top: 50px;
+ top: 250px;
left: 50px;
flex-wrap: wrap;
div {
- border: 1px solid #999;
+ border: 1px solid #ccc;
border-radius: 3px;
margin: 1px;
width: 80px;
display: flex;
flex-wrap: nowrap;
- background: #BBB;
+ // background: #BBB;
button {
width: 20px;
@@ -85,6 +110,7 @@ footer {
margin: 4px;
border: 0px;
border-radius: 2px;
+ box-shadow: $main-box-shadow-light;
}
span {
width: 60%;
@@ -98,7 +124,8 @@ footer {
#morseButton {
width: 100px;
height: 100px;
- margin: 30px;
+ margin-top: 30px;
+ margin-bottom: 10px;
// background: goldenrod;
border-radius: 50px;
align-self: center;
@@ -106,12 +133,24 @@ footer {
justify-content: center;
align-items: center;
transition: all 500ms ease-in-out;
+ box-shadow: $main-box-shadow-light;
}
#morseButton.showPaddles {
width: 239px;
background: transparent;
box-shadow: 0px 0px 0px transparent;
}
+#morseButtonText {
+ font-weight: bold;
+ color: #ccc;
+ font-size: 0.7rem;
+ margin-bottom: 40px;
+}
+#paddleText {
+ width: 150px;
+ display: flex;
+ justify-content: space-between;
+}
.paddle {
font-size: 1rem;
@@ -122,7 +161,7 @@ footer {
margin: 0px;
border: 0px;
transition: all 500ms ease-in-out;
-
+
left {
border-radius: 50px 0 0 50px;
@@ -145,6 +184,56 @@ footer {
font-weight: bold;
width: 250px;
height: 100px;
+ box-shadow: $main-box-shadow-light;
+ }
+}
+i[class*="ri-"] {
+ font-weight: normal;
+ font-size: 0.9rem;
+ color: #777;
+ &:hover {
+ color: goldenrod;
+ }
+}
+
+#mainOptions {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ width: 400px;
+ // border: 1px solid red;
+ .mode-picker {
+ align-self: flex-start;
+ // border: 1px solid green;
+ width: 100%;
+ justify-content: flex-start;
+ #buttons {
+ // border: 1px solid blue;
+ display: flex;
+ justify-content: space-between;
+ align-content: space-between;
+ }
+ #input {
+ margin-left: 10px;
+ display: flex;
+ align-items: center;
+ input {
+ width: 50px;
+ // appearance: textfield;
+ text-align: center;
+ border-radius: 3px;
+ border: 1px solid #ddd;
+ height: 1.3rem;
+ }
+ select {
+ &:focus {
+ box-shadow: none;
+ }
+ }
+ }
+ }
+ #title {
+ font-weight: bold;
}
}
@@ -160,8 +249,9 @@ footer {
border-radius: 5px;
width: fit-content;
display: flex;
- font-size: 40px;
- font-family: 'Courier';
+ font-size: 3rem;
+ // font-family: 'Courier';
+ font-family: $buffer-font;
font-weight: bold;
background: #EEE;
text-transform: uppercase;
@@ -171,6 +261,7 @@ footer {
span {
padding: 4px;
margin: 1px;
+ line-height: 2.5rem;
transition: background 300ms ease-in-out; //, opacity 100ms ease-in-out;
}
&.correct {
@@ -189,10 +280,11 @@ footer {
width: 50vw;
height: 150px;
margin-bottom: 20px;
+ font-family: $buffer-font;
#alphanumeric-container {
// border-left: 2px solid #000;
- background: #ccc;
+ background: #fdfdfd;
display: flex;
padding-left: 5px;
height: 50px;
@@ -202,12 +294,10 @@ footer {
justify-content: center;
align-items: center;
border-radius: 4px;
- box-shadow: $main-box-shadow;
+ // box-shadow: $main-box-shadow-light;
#alphanumeric {
font-size: 40px;
- font-family: 'Courier';
- font-weight: bold;
background-color: transparent;
@@ -233,7 +323,7 @@ footer {
flex-direction: row;
justify-content: center;
font-size: 25px;
- font-family: 'Courier';
+ font-family: $ditDah-font;
font-weight: bold;
span {
@@ -242,7 +332,7 @@ footer {
}
.ditDah {
- background: #DDD;
+ background: #fdfdfd;
height: 40px;
width: 30px !important;
margin-left: 3px;
@@ -259,15 +349,6 @@ footer {
}
}
-.example-appear {
- opacity: 0.01;
- }
-
-.example-appear.example-appear-active {
- opacity: 1;
- transition: opacity .5s ease-in;
-}
-
#challengeBufferDisplay {
display: flex;
justify-content: center;
@@ -277,6 +358,8 @@ footer {
width: 100%;
height: 150px;
margin-bottom: 20px;
+ font-family: $buffer-font;
+ font-weight: bold;
#alphanumeric-container {
// border-left: 2px solid #000;
@@ -287,8 +370,6 @@ footer {
#alphanumeric {
font-size: 40px;
- font-family: 'Courier';
- font-weight: bold;
background-color: transparent;
margin-bottom: 10px;
@@ -313,7 +394,7 @@ footer {
flex-direction: row;
justify-content: center;
font-size: 25px;
- font-family: 'Courier';
+ font-family: $ditDah-font;
font-weight: bold;
span {
@@ -328,7 +409,7 @@ footer {
margin-left: 3px;
// box-shadow: 0px 1px 0px #000;
border-radius: $main-border-radius;
- box-shadow: $main-box-shadow;
+ box-shadow: $main-box-shadow-light;
display: flex;
justify-content: center;
align-items: center;
@@ -372,32 +453,32 @@ footer {
opacity: 100%;
}
.morseCard:nth-child(2){
- opacity: 90%;
+ opacity: 85%;
}
.morseCard:nth-child(3){
- opacity: 80%;
- }
- .morseCard:nth-child(4){
opacity: 70%;
}
+ .morseCard:nth-child(4){
+ opacity: 55%;
+ }
.morseCard:nth-child(5){
- opacity: 60%;
- }
- .morseCard:nth-child(6){
- opacity: 50%;
- }
- .morseCard:nth-child(7){
opacity: 40%;
}
- .morseCard:nth-child(8){
- opacity: 30%;
- }
- .morseCard:nth-child(9){
+ .morseCard:nth-child(6){
opacity: 20%;
}
- .morseCard:nth-child(10){
+ .morseCard:nth-child(7){
opacity: 10%;
}
+ // .morseCard:nth-child(8){
+ // opacity: 30%;
+ // }
+ // .morseCard:nth-child(9){
+ // opacity: 20%;
+ // }
+ // .morseCard:nth-child(10){
+ // opacity: 10%;
+ // }
}
.morseCard {
@@ -407,21 +488,21 @@ footer {
/* border: 1px solid orange; */
margin-bottom: 2px;
font-size: 1.5rem;
- font-family: 'Courier';
+ font-family: $buffer-font;
/* width: 100%; */
-
-
+
+
div div {
- // border: 1px solid purple;
cursor: default;
padding: 5px;
- margin: 3px;
- background: #EEE;
+ margin: 2px;
+ background: #fdfdfd;
// width: 50%;
white-space: nowrap;
- border-radius: $main-border-radius;
- box-shadow: $main-box-shadow;
- line-height: 1rem;
+ border-radius: 3px;
+ box-shadow: $morseCard-shadow-light;
+ line-height: 1.2rem;
+ display: flex;
}
.ditDahs-container, .alphanumeric-container {
display: flex;
@@ -437,5 +518,7 @@ footer {
justify-content: flex-end;
align-items: center;
overflow-wrap: break-word;
+ font-family: $ditDah-font;
+ font-weight: bold;
}
}
\ No newline at end of file