├── scss
├── utils
│ ├── _index.scss
│ └── _variables.scss
├── base
│ ├── _index.scss
│ ├── _base.scss
│ └── _normalize.scss
├── styles.scss
└── components
│ ├── _typography.scss
│ ├── _scoreboard.scss
│ ├── _index.scss
│ ├── _mediaqueries.scss
│ ├── _letters.scss
│ ├── _overlay.scss
│ ├── _keyboard.scss
│ └── _animations.scss
├── images
├── liveHeart.png
└── lostHeart.png
├── .sass-cache
├── cfeb1da58a2fd2e10e4fdf12730ff73b3d2d2c38
│ ├── _base.scssc
│ ├── _normalize.scssc
│ └── _index.scssc
├── 07db57c0bfd9960f6e07c8bd16c1c156cb01c810
│ ├── _letters.scssc
│ ├── _overlay.scssc
│ ├── _animations.scssc
│ ├── _keyboard.scssc
│ ├── _mediaqueries.scssc
│ ├── _index.scssc
│ ├── _typography.scssc
│ └── _scoreboard.scssc
├── 7cc8784d265d4ab9c9777508c4d28cbbcf96d57a
│ ├── _variables.scssc
│ └── _index.scssc
└── 19699f31bd945a150ab1a27f841a75b4cac64065
│ └── styles.scssc
├── classes.js
├── .gitignore
├── .gitattributes
├── index.html
├── README.md
├── js
└── logic.js
└── css
├── styles.css.map
├── normalize.css
└── styles.css
/scss/utils/_index.scss:
--------------------------------------------------------------------------------
1 | @import "variables";
2 |
--------------------------------------------------------------------------------
/scss/base/_index.scss:
--------------------------------------------------------------------------------
1 | @import "normalize", "base";
2 |
--------------------------------------------------------------------------------
/scss/styles.scss:
--------------------------------------------------------------------------------
1 | @import "utils/index", "base/index", "components/index";
2 |
--------------------------------------------------------------------------------
/scss/components/_typography.scss:
--------------------------------------------------------------------------------
1 | /* Title */
2 | .header {
3 | color: #000;
4 | }
5 |
--------------------------------------------------------------------------------
/scss/components/_scoreboard.scss:
--------------------------------------------------------------------------------
1 | /* Scoreboard */
2 | .tries img{
3 | width:35px;
4 | }
5 |
--------------------------------------------------------------------------------
/images/liveHeart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/images/liveHeart.png
--------------------------------------------------------------------------------
/images/lostHeart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/images/lostHeart.png
--------------------------------------------------------------------------------
/scss/components/_index.scss:
--------------------------------------------------------------------------------
1 | @import "typography", "animations", "overlay", "keyboard", "letters", "scoreboard", "mediaqueries";
2 |
--------------------------------------------------------------------------------
/.sass-cache/cfeb1da58a2fd2e10e4fdf12730ff73b3d2d2c38/_base.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/cfeb1da58a2fd2e10e4fdf12730ff73b3d2d2c38/_base.scssc
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_letters.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_letters.scssc
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_overlay.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_overlay.scssc
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_animations.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_animations.scssc
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_keyboard.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_keyboard.scssc
--------------------------------------------------------------------------------
/.sass-cache/7cc8784d265d4ab9c9777508c4d28cbbcf96d57a/_variables.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/7cc8784d265d4ab9c9777508c4d28cbbcf96d57a/_variables.scssc
--------------------------------------------------------------------------------
/.sass-cache/cfeb1da58a2fd2e10e4fdf12730ff73b3d2d2c38/_normalize.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/cfeb1da58a2fd2e10e4fdf12730ff73b3d2d2c38/_normalize.scssc
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_mediaqueries.scssc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HubSpotContentOffers/game_show_app_v1/HEAD/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_mediaqueries.scssc
--------------------------------------------------------------------------------
/classes.js:
--------------------------------------------------------------------------------
1 | //overlay
2 | -title
3 | -button
4 | -text
5 |
6 | //keyboard
7 | -keyrows = 3
8 | -buttons = 7,9,10
9 | -letter
10 |
11 | //score
12 | -score = var
13 | -Wins = var
14 | -losses = var
15 |
16 | //phrase
17 | -words
18 | -letters
19 | -text
20 |
21 | //gameInstance
22 | -state
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows thumbnail cache files
2 | Thumbs.db
3 | ehthumbs.db
4 | ehthumbs_vista.db
5 |
6 | # Folder config file
7 | Desktop.ini
8 |
9 | # Recycle Bin used on file shares
10 | $RECYCLE.BIN/
11 |
12 | # Windows Installer files
13 | *.cab
14 | *.msi
15 | *.msm
16 | *.msp
17 |
18 | # Windows shortcuts
19 | *.lnk
20 |
21 | # =========================
22 | # Operating System Files
23 | # =========================
24 |
--------------------------------------------------------------------------------
/scss/utils/_variables.scss:
--------------------------------------------------------------------------------
1 | ///Import fonts
2 | @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,700&Roboto:300');
3 |
4 |
5 |
6 | $color-won: #78CF82;
7 | $color-lost: #D94545;
8 | $color-start: #292a2b;
9 | $color-neutral: #445069;
10 | $color-neutral-light: #D2D2D2;
11 | $color-keys: #37474F;
12 | $color-keys-light: #E5E5E5;
13 | $font-size-large: 60px;
14 | $font-size-medium: 25px;
15 | $transition: all 1s ease-in-out;
16 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/scss/components/_mediaqueries.scss:
--------------------------------------------------------------------------------
1 | @media screen and (min-width: 768px) {
2 | button{
3 | min-width: 40px;
4 | min-height: 40px;
5 | margin: 3px;
6 | }
7 | .letter{
8 | height: 40px;
9 | width: 40px;
10 | margin-right: 2px;
11 | }
12 | .tries img{
13 | width:50px;
14 | }
15 | }
16 | @media screen and (min-width: 1024px) {
17 | button{
18 | min-width: 50px;
19 | min-height: 50px;
20 | margin: 3px;
21 | }
22 | .letter{
23 | height: 50px;
24 | width: 50px;
25 | }
26 | .tries img{
27 | width:70px;
28 | }
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/scss/components/_letters.scss:
--------------------------------------------------------------------------------
1 | /* Phrase */
2 |
3 | .letter {
4 | font-size: $font-size-medium;
5 | height: 30px;
6 | width: 30px;
7 | /* padding: 10px 1px 0 1px; */
8 | margin-right: 1px;
9 | margin-bottom: 10px;
10 | color: transparent;
11 | background: $color-neutral-light;
12 | opacity: 0;
13 | border-radius: 5px;
14 | -webkit-transition: $transition;
15 | -o-transition: $transition;
16 | transition: $transition;
17 | border: 1px solid black;
18 | box-shadow: 5px 5px 5px black;
19 | }
20 |
21 | .space {
22 | width: 15px;
23 | }
24 | .show {
25 | color: #000;
26 | background-color: #76CE82;
27 | transform: rotateY(360deg);
28 | }
29 |
--------------------------------------------------------------------------------
/.sass-cache/7cc8784d265d4ab9c9777508c4d28cbbcf96d57a/_index.scssc:
--------------------------------------------------------------------------------
1 | 3.5.6
2 | 821fe63194b908bdb3eeef9d46c5f04c3e536201
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::ImportNode
:@imported_filenameI"variables:ET;[ :@filename0:
@options{ :@template0:
4 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;
i:@offseti:
@end_poso;;
i;i:
5 | @fileI"ZC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1/scss/utils/_index.scss; T:@importero: Sass::Importers::Filesystem:
6 | @rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@real_rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@same_name_warningso:Set:
7 | @hash} F:@imported_file0;
8 | 0;@
9 | ;I"@import "variables";
10 | ; T;
i;o; ;o;;
i;i;o;;
i;i;@;@:@has_childrenT
--------------------------------------------------------------------------------
/scss/components/_overlay.scss:
--------------------------------------------------------------------------------
1 | /* Overlay */
2 |
3 | #overlay {
4 | display: flex;
5 | flex-direction: column;
6 | position: fixed;
7 | color: #FFFFFF;
8 | justify-content: center;
9 | top: 0;
10 | bottom: 0;
11 | left: 0;
12 | right: 0;
13 | border-radius: 5px;
14 | z-index: 10000;
15 | }
16 |
17 | .title {
18 | color: #000;
19 | }
20 |
21 | .start {
22 | background: linear-gradient(to bottom, #f4f5f6 0%, #8b8b8b 50%, #000000 100%);
23 | }
24 |
25 | .start a {
26 | color: $color-start;
27 | }
28 |
29 | .won {
30 | background: linear-gradient(to bottom, #f4f5f6 0%, #c4f1ce 50%, #18722b 100%);
31 | }
32 |
33 | .won a {
34 | color: $color-start;
35 | }
36 |
37 | .lost {
38 | background: linear-gradient(to bottom, #f4f5f6 0%, #e59393 50%, #4c0101 100%);
39 | }
40 |
41 | .lost a {
42 | color: $color-lost;
43 | }
44 |
--------------------------------------------------------------------------------
/scss/components/_keyboard.scss:
--------------------------------------------------------------------------------
1 | /* Keyboard */
2 |
3 | .keyrow {
4 | display: flex;
5 | justify-content: center;
6 | }
7 |
8 | button{
9 | border: 1px solid black;
10 | color: $color-keys;
11 | font-size: $font-size-medium;
12 | background-color: $color-keys-light;
13 | border-radius: 5px;
14 | min-width: 30px;
15 | min-height: 30px;
16 | margin: 2px;
17 | box-shadow: 0px 5px 5px black;
18 | &.wrong {
19 | box-shadow: inset 0px 2px 2px black;
20 | background-color: $color-lost;
21 | transition: box-shadow ease-in-out 1s both;
22 | }
23 | &.correct{
24 | box-shadow: inset 0px 2px 2px black;
25 | background-color: $color-won;
26 | transition: box-shadow ease-in-out 1s both;
27 | }
28 | }
29 | .startBtn {
30 | padding: 8px;
31 | margin: 50px auto;
32 | background: #FFFFFF;
33 | border-radius: 5px;
34 | font-size: $font-size-medium;
35 | }
36 |
--------------------------------------------------------------------------------
/.sass-cache/cfeb1da58a2fd2e10e4fdf12730ff73b3d2d2c38/_index.scssc:
--------------------------------------------------------------------------------
1 | 3.5.6
2 | 4297c7ef7c5e4f7a13748e92bd79fa0c83279808
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::ImportNode
:@imported_filenameI"normalize:ET;[ :@filename0:
@options{ :@template0:
4 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;
i:@offseti:
@end_poso;;
i;i:
5 | @fileI"YC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1/scss/base/_index.scss; T:@importero: Sass::Importers::Filesystem:
6 | @rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@real_rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@same_name_warningso:Set:
7 | @hash} F:@imported_file0o;
;I" base; T;[ ;
8 | 0;@
9 | ;0;
i;o; ;o;;
i;i;o;;
i;i!;@;@;0;
10 | 0;@
11 | ;I""@import "normalize", "base";
12 | ; T;
i;o; ;o;;
i;i;o;;
i;i;@;@:@has_childrenT
--------------------------------------------------------------------------------
/.sass-cache/19699f31bd945a150ab1a27f841a75b4cac64065/styles.scssc:
--------------------------------------------------------------------------------
1 | 3.5.6
2 | f6741b28c4825ce2515176cd0f0785a791e4c1a8
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::ImportNode
:@imported_filenameI"utils/index:ET;[ :@filename0:
@options{ :@template0:
4 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;
i:@offseti:
@end_poso;;
i;i:
5 | @fileI"TC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1/scss/styles.scss; T:@importero: Sass::Importers::Filesystem:
6 | @rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@real_rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@same_name_warningso:Set:
7 | @hash} F:@imported_file0o;
;I"base/index; T;[ ;
8 | 0;@
9 | ;0;
i;o; ;o;;
i;i;o;;
i;i);@;@;0o;
;I"components/index; T;[ ;
10 | 0;@
11 | ;0;
i;o; ;o;;
i;i+;o;;
i;i=;@;@;0;
12 | 0;@
13 | ;I">@import "utils/index", "base/index", "components/index";
14 | ; T;
i;o; ;o;;
i;i;o;;
i;i;@;@:@has_childrenT
--------------------------------------------------------------------------------
/scss/base/_base.scss:
--------------------------------------------------------------------------------
1 | /* main */
2 | * {
3 | box-sizing: border-box;
4 | user-select: none;
5 | transition: $transition;
6 | }
7 |
8 | body {
9 | background: linear-gradient(to bottom, #f4f5f6 0%, #8b8b8b 50%, #000000 100%);
10 | justify-content: space-between;
11 | flex-direction: column;
12 | display: flex;
13 | height: 100vh;
14 | margin:0px !important;
15 | overflow: hidden;
16 | }
17 |
18 | li, ol, ul {
19 | padding: 0;
20 | display: inline-block;
21 | }
22 |
23 | h2 {
24 | margin: 0;
25 | text-transform: uppercase;
26 | font-family: 'Open Sans', sans-serif;
27 | font-size: $font-size-large;
28 |
29 | }
30 | h3{
31 | margin: 10px;
32 | text-transform: uppercase;
33 | font-family: 'Open Sans', sans-serif;
34 | font-size: $font-size-medium;
35 | display:inline;
36 | }
37 |
38 | button {
39 |
40 | }
41 |
42 | .main-container {
43 | display: flex;
44 | flex-direction: column;
45 | justify-content: space-around;
46 | height: 100%;
47 | max-height: 900px;
48 | text-align: center;
49 | }
50 |
51 | .section {
52 | width: 100%;
53 | padding: 10px;
54 | }
55 |
--------------------------------------------------------------------------------
/scss/components/_animations.scss:
--------------------------------------------------------------------------------
1 | .animate-out {
2 | animation: roll-out-right 1s ease-in-out 1s 1 both;
3 | }
4 | .animate-in {
5 | animation: roll-in-left 1s ease-in-out 1s 1 both;
6 | }
7 | .slide-in-left {
8 | animation: slide-in-left 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
9 | }
10 | .slide-out-right {
11 | animation: slide-out-right 0.5s cubic-bezier(0.550, 0.085, 0.680, 0.530) both;
12 | }
13 |
14 | @keyframes roll-in-left {
15 | 0% {
16 | transform: translateX(-100vw) rotate(-540deg);
17 | opacity: 0;
18 | }
19 | 100% {
20 | transform: translateX(0) rotate(0deg);
21 | opacity: 1;
22 | }
23 | }
24 |
25 | @keyframes roll-out-right {
26 | 0% {
27 | transform: translateX(0px) rotate(0deg);
28 | opacity: 1;
29 | }
30 | 100% {
31 | transform: translateX(100vw) rotate(540deg);
32 | opacity: 0;
33 | }
34 | }
35 |
36 | @keyframes slide-in-left {
37 | 0% {
38 | transform: translateX(-100vw);
39 | opacity: 0;
40 | }
41 | 100% {
42 | transform: translateX(0);
43 | opacity: 1;
44 | }
45 | }
46 | @keyframes slide-out-right {
47 | 0% {
48 | transform: translateX(0);
49 | opacity: 1;
50 | }
51 | 100% {
52 | transform: translateX(100vw);
53 | opacity: 0;
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_index.scssc:
--------------------------------------------------------------------------------
1 | 3.5.6
2 | dae47d7fe332b18346a39f33582760c903669542
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::ImportNode
:@imported_filenameI"typography:ET;[ :@filename0:
@options{ :@template0:
4 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;
i:@offseti:
@end_poso;;
i;i:
5 | @fileI" scss/components/_index.scss:
encoding"IBM437:@importero: Sass::Importers::Filesystem:
6 | @rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@real_rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@same_name_warningso:Set:
7 | @hash} F:@imported_file0o;
;I"animations; T;[ ;
8 | 0;@
9 | ;0;
i;o; ;o;;
i;i;o;;
i;i(;@;@;0o;
;I"overlay; T;[ ;
10 | 0;@
11 | ;0;
i;o; ;o;;
i;i*;o;;
i;i3;@;@;0o;
;I"
keyboard; T;[ ;
12 | 0;@
13 | ;0;
i;o; ;o;;
i;i5;o;;
i;i?;@;@;0o;
;I"letters; T;[ ;
14 | 0;@
15 | ;0;
i;o; ;o;;
i;iA;o;;
i;iJ;@;@;0o;
;I"scoreboard; T;[ ;
16 | 0;@
17 | ;0;
i;o; ;o;;
i;iL;o;;
i;iX;@;@;0o;
;I"mediaqueries; T;[ ;
18 | 0;@
19 | ;0;
i;o; ;o;;
i;iZ;o;;
i;ih;@;@;0;
20 | 0;@
21 | ;I"i@import "typography", "animations", "overlay", "keyboard", "letters", "scoreboard", "mediaqueries";
22 | ; T;
i;o; ;o;;
i;i;o;;
i;i;@;@:@has_childrenT
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_typography.scssc:
--------------------------------------------------------------------------------
1 | 3.5.6
2 | 07d918b8c868487d7ec40abedf7f7d696056c871
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::CommentNode:@value[I"/* Title */:ET:
4 | @type:normal;[ :@filename0:
@options{ :
5 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i:@offseti:
@end_poso;;i;i:
6 | @fileI"%scss/components/_typography.scss:
encoding"IBM437:@importero: Sass::Importers::Filesystem:
7 | @rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@real_rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@same_name_warningso:Set:
8 | @hash} Fo:Sass::Tree::RuleNode:
9 | @rule[I".header; T:@parsed_ruleso:"Sass::Selector::CommaSequence:
@members[o:Sass::Selector::Sequence;"[o:#Sass::Selector::SimpleSequence;"[o:Sass::Selector::Class:
10 | @nameI"header; T;i;0:
@subject0:
@sourceso;;} F;o; ;o;;i;i;o;;i;i
;0;0;i;0;i;i;0:@selector_source_rangeo; ;o;;i;i;o;;i;i;@;@:
11 | @tabsi ;[o:Sass::Tree::PropNode;&[I"
12 | color; T;[o: Sass::Script::Tree::Literal;o: Sass::Script::Value::String ;I" #000; T;
@;
13 | :identifier:"@deprecated_interp_equivalent0;i;o; ;o;;i;i;o;;i;i;@;@;*i :@prop_syntax:new;[ ;0;
@;i;o; ;o;;i;i;o;;i;i;@;@:@name_source_rangeo; ;@6;o;;i;i
;@;@:@value_source_rangeo; ;o;;i;i;@7;@;@;0;
@;i;o; ;@';o;;i;i;@;@:@has_childrenT;0;
@:@templateI",/* Title */
14 | .header {
15 | color: #000;
16 | }
17 | ; T;i;o; ;o;;i;i;o;;i;i;@;@;4T
--------------------------------------------------------------------------------
/.sass-cache/07db57c0bfd9960f6e07c8bd16c1c156cb01c810/_scoreboard.scssc:
--------------------------------------------------------------------------------
1 | 3.5.6
2 | 807560cae33f9470c23e426f58aa657b65a179a7
3 | o:Sass::Tree::RootNode:@children[o:Sass::Tree::CommentNode:@value[I"/* Scoreboard */:ET:
4 | @type:normal;[ :@filename0:
@options{ :
5 | @linei:@source_rangeo:Sass::Source::Range :@start_poso:Sass::Source::Position;i:@offseti:
@end_poso;;i;i:
6 | @fileI"dC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1/scss/components/_scoreboard.scss; T:@importero: Sass::Importers::Filesystem:
7 | @rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@real_rootI"CC:/xampp/htdocs/GitHub/Treehouse/FEWDProjects/game_show_app_v1; T:@same_name_warningso:Set:
8 | @hash} Fo:Sass::Tree::RuleNode:
9 | @rule[I".tries img; T:@parsed_ruleso:"Sass::Selector::CommaSequence:
@members[o:Sass::Selector::Sequence;![o:#Sass::Selector::SimpleSequence;![o:Sass::Selector::Class:
10 | @nameI"
11 | tries; T;i;0:
@subject0:
@sourceso;;} F;o; ;o;;i;i;o;;i;i;0;0;i;0o;#;![o:Sass::Selector::Element ;%I"img; T:@namespace0;i;0;&0;'o;;} F;o; ;o;;i;i
;o;;i;i;0;0;i;0;i;i;0:@selector_source_rangeo; ;o;;i;i;o;;i;i;@;@:
12 | @tabsi ;[o:Sass::Tree::PropNode;%[I"
13 | width; T;[o: Sass::Script::Tree::Literal;o: Sass::Script::Value::String ;I" 35px; T;
@;
14 | :identifier:"@deprecated_interp_equivalent0;i;o; ;o;;i;i;o;;i;i;@;@;+i :@prop_syntax:new;[ ;0;
@;i;o; ;o;;i;i;o;;i;i;@;@:@name_source_rangeo; ;@>;o;;i;i
;@;@:@value_source_rangeo; ;o;;i;i;@?;@;@;0;
@;i;o; ;@/;o;;i;i;@;@:@has_childrenT;0;
@:@templateI"2/* Scoreboard */
15 | .tries img{
16 | width:35px;
17 | }
18 | ; T;i;o; ;o;;i;i;o;;i;i;@;@;5T
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Wheel of Success!
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
Wins:0
Losses:0
20 |
21 |
22 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Information regarding this project repository
2 |
3 | ## Goals
4 | The goal of this project is to display a solid understanding of how to interact with the DOM and manipulate DOM objects via javascript. This project provided only a desktop mockup, leaving the design and development of the layout for screen sizes relevant to mobile and tablet devices on the student.
5 |
6 | ## Languages
7 | 1. HTML5
8 | 2. CSS3
9 | 3. SASS
10 | 4. Client side Javascript
11 |
12 | ## Technologies and Techniques
13 | 1. Chrome Dev Tools
14 | 2. Editors
15 | 3. Terminal
16 | 4. git and github
17 | 5. Mobile First Responsive Design
18 | 6. Fluid width Responsive Design
19 | 7. DOM manipulation
20 |
21 | ## Techdegree Project Description
22 | In this project, you'll create a browser version of “Wheel of Success”, a word guessing game where players will click letters from an onscreen keyboard to try to guess a random phrase.
23 |
24 | Using Javascript, you’ll create an array of phrases and write functions to choose a random phrase from that array, split the phrase into letters, and put those letters onto the game board.
25 |
26 | Each time the player guesses a letter, you’ll need to compare the letter the player has chosen with the random phrase. If the letter is in the phrase, you’ll update the game board with the chosen letters.
27 |
28 | A player can keep choosing letters until they make five incorrect guesses. If the letter they chose isn’t in the phrase, you’ll remove one of the player’s 5 guesses.
29 |
30 | If the player completes the phrase before they run out of guesses, a winning screen will display. If the player guesses incorrectly 5 times, a losing screen will display.
31 |
32 | A player can guess a letter only once. After they’ve guessed a letter, your programming will need to disable that letter.
33 |
34 | **NOTE:** _The Front End Web Development Techdegree is meant to train you in HTML, CSS and JavaScript, and let you practice and show your mastery of these fundamental building blocks of the web. Because of that, please avoid using frameworks like Bootstrap, Foundation, Skeleton, and so on for this project. Even though you may end up using frameworks like these professionally, you still need to know and be able to implement designs with your own knowledge of HTML, CSS and JavaScript._
35 |
36 | _In addition, please avoid submitting any projects that rely on a server-side technology like PHP or Ruby on Rails._
37 |
--------------------------------------------------------------------------------
/js/logic.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('DOMContentLoaded', () => {
2 |
3 | // Global variables
4 | const startGame = document.querySelector('.startBtn')
5 | const overlay = document.getElementById('overlay')
6 | const phrase = document.getElementById('phrase')
7 | const qwerty = document.getElementById('qwerty')
8 | const buttons = document.querySelectorAll('#qwerty button')
9 |
10 | // Create phrases array
11 | const phrases = ['as you wish', 'whats knitten kitten', 'danger will robinson',
12 | 'single serving friends', 'si vis pacem para bellum']
13 |
14 | // Tracking variables
15 | const displayScore = document.querySelectorAll('#banner #score')
16 | const tries = document.querySelectorAll('#scoreboard li img')
17 | let letterFound = false
18 | let letters
19 | let losses = 0
20 | let wins = 0
21 | let missed = 0
22 | let win = null
23 | addPhraseToDisplay= () => { // Pass in the splitPhrase
24 | let random = Math.floor(Math.random() * phrases.length);// Dynamic random based on the number of phrases in the array
25 | let splitPhrase = phrases[random].split('');// Split and return phrase array
26 | let word = 0;
27 |
28 | for (let i = 0; i < splitPhrase.length; i++) {// Loop through letters in phrase
29 | li = phrase.children[word].appendChild(document.createElement('LI'));
30 |
31 | (splitPhrase[i] != ' ') ? (li.appendChild(document.createTextNode(splitPhrase[i])), li.classList.add('letter'))// Style the li
32 | :(splitPhrase[i] == ' ')? (li.classList.add('space'), phrase.appendChild(document.createElement('UL')), word++)
33 | :null;// Count words
34 | }
35 | letters = document.querySelectorAll('.letter');// Update global variable for new letters
36 | rollOut(letters.length, 'animate-in');// Call for animation
37 | }
38 |
39 | checkLetter = (playerLetter) => {// Check player letter against phrase letter
40 | letterFound = false;
41 | for (let i = 0; i < letters.length; i++) {// Loop through phrase li.letters
42 | if(letters[i].innerHTML === playerLetter) { letterFound = true; letters[i].classList.add('show'); }// Is letter in phrase
43 | }
44 | if (letterFound == false) { tries[missed].src = "images/lostHeart.png"; missed++; console.log(i)}// Test if player letter is in phrase
45 | return letterFound;// return boolean for use in button call
46 | }
47 |
48 | checkWinState = () => {// Check for win or loss
49 | let found = document.querySelectorAll('.show');// Select shown letters
50 | win = (found.length === letters.length) ? "won" : (missed === 5) ? "lost" : win = null;// if niether do nothing
51 | (win == 'won') ? (setMessage(win), wins++, displayScore[0].innerHTML = `${win}: `+wins, rollOut(letters.length, 'animate-out'))// update message for win/loss screen
52 | : (win == 'lost') ? (setMessage(win), losses++, displayScore[1].innerHTML = `${win}: `+losses, rollOut(letters.length, 'animate-out'))
53 | : win = null;
54 | }
55 |
56 | setMessage = (wonLost) => { // Pass in wonLost value
57 | let message = document.querySelector('#overlay h2'); // Select headline element
58 | setTimeout(function() {
59 | message.innerHTML = `You ${wonLost}, give it another go?`;// Change headline
60 | overlay.className = `${wonLost} slide-in-left`;// Add lose class
61 | // Send win state to reset
62 | }, 2000);
63 | }
64 |
65 | rollOut = (i,direction) => {// Handle animations with delay (hoping to replace this with a sass function instead)
66 | setTimeout(() => {// set .10s timeout between each execution of a loop
67 | (i < 0) ? null // if thruthy do nothing
68 | :(i--, document.querySelectorAll(`.animate-in`) && direction === 'animate-out') ?// if falsey decrement and run conditional
69 | letters[i].className = letters[i].className.replace(/(?:^|\s)animate-in(?!\S)/g , ' animate-out')// if truthy swap classes
70 | : letters[i].classList.add(direction);// if falsey simply add the class
71 | if(i > 0) rollOut(i,direction);// If `i` is greater than `0` call rollOut() again passing in current values
72 | }, 100);
73 | }
74 |
75 | clearBoard = () =>{// Clear phrase and reset board
76 | let li = document.querySelectorAll('#phrase li');// Select phrase display letters
77 | let ul = document.querySelectorAll('#phrase ul');
78 | missed = 0;// Reset misssed variable
79 | loopCap = (li.length >= buttons.length) ? (loopCap = li.length) : (loopCap = buttons.length);// Set max loop
80 |
81 | for (let i = 0; i < loopCap; i++) {// Reset board
82 | (i >= 0 && tries[i]) ? tries[i].src = "images/liveHeart.png" : null;
83 | (i >= 0 && buttons[i]) ? (buttons[i].className ="", buttons[i].disabled = false) : null;
84 | (i >= 0 && li[i]) ? li[i].remove() : null;
85 | (i > 0 && ul[i]) ? ul[i].remove() : null;
86 | }
87 | overlay.className = "start slide-out-right";
88 | }
89 |
90 | qwerty.addEventListener('click', (e) => {// Use event delegation listen for button, then compare with phrase letters
91 |
92 | if (e.target.type === "submit" && win === null ) {
93 | let clickedBtn = e.target;
94 | clickedBtn.disabled = true;// Disable the button
95 | clickedBtn.className = checkLetter(clickedBtn.innerHTML) ? "correct" : "wrong";
96 | checkWinState();// Call checkWinState function
97 | }
98 | });
99 |
100 | startGame.addEventListener('click', () => {// Start game with addEventListener() on start game button
101 | clearBoard();
102 | addPhraseToDisplay();// Call AddPhraseToDisplay() function pass value of splitPhrase from getRandomPhrase()
103 | });
104 | document.addEventListener('keyup', (e) => {
105 | const buttons = document.querySelectorAll('#qwerty button');
106 |
107 | if(e.key === "Enter" && !document.querySelector('.letter')){
108 | clearBoard();
109 | addPhraseToDisplay();// Call AddPhraseToDisplay() function pass value of splitPhrase from getRandomPhrase()
110 | }
111 | buttons.forEach(button => {
112 | if(e.key === button.innerHTML && win === null){
113 | let clickedBtn = e.target;
114 | clickedBtn.disabled = true;// Disable the button
115 | clickedBtn.className = checkLetter(button.innerHTML) ? "correct" : "wrong";
116 | checkWinState();// Call checkWinState function
117 | }
118 | });
119 | });
120 | });
121 |
--------------------------------------------------------------------------------
/css/styles.css.map:
--------------------------------------------------------------------------------
1 | {
2 | "version": 3,
3 | "mappings": "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",
4 | "sources": ["../scss/utils/_variables.scss","../scss/base/_normalize.scss","../scss/base/_base.scss","../scss/components/_typography.scss","../scss/components/_animations.scss","../scss/components/_overlay.scss","../scss/components/_keyboard.scss","../scss/components/_letters.scss","../scss/components/_scoreboard.scss","../scss/components/_mediaqueries.scss"],
5 | "names": [],
6 | "file": "styles.css"
7 | }
--------------------------------------------------------------------------------
/css/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
2 |
3 | /* Document
4 | ========================================================================== */
5 |
6 | /**
7 | * 1. Correct the line height in all browsers.
8 | * 2. Prevent adjustments of font size after orientation changes in
9 | * IE on Windows Phone and in iOS.
10 | */
11 |
12 | html {
13 | line-height: 1.15; /* 1 */
14 | -ms-text-size-adjust: 100%; /* 2 */
15 | -webkit-text-size-adjust: 100%; /* 2 */
16 | }
17 |
18 | /* Sections
19 | ========================================================================== */
20 |
21 | /**
22 | * Remove the margin in all browsers (opinionated).
23 | */
24 |
25 | body {
26 | margin: 0;
27 | }
28 |
29 | /**
30 | * Add the correct display in IE 9-.
31 | */
32 |
33 | article,
34 | aside,
35 | footer,
36 | header,
37 | nav,
38 | section {
39 | display: block;
40 | }
41 |
42 | /**
43 | * Correct the font size and margin on `h1` elements within `section` and
44 | * `article` contexts in Chrome, Firefox, and Safari.
45 | */
46 |
47 | h1 {
48 | font-size: 2em;
49 | margin: 0.67em 0;
50 | }
51 |
52 | /* Grouping content
53 | ========================================================================== */
54 |
55 | /**
56 | * Add the correct display in IE 9-.
57 | * 1. Add the correct display in IE.
58 | */
59 |
60 | figcaption,
61 | figure,
62 | main { /* 1 */
63 | display: block;
64 | }
65 |
66 | /**
67 | * Add the correct margin in IE 8.
68 | */
69 |
70 | figure {
71 | margin: 1em 40px;
72 | }
73 |
74 | /**
75 | * 1. Add the correct box sizing in Firefox.
76 | * 2. Show the overflow in Edge and IE.
77 | */
78 |
79 | hr {
80 | box-sizing: content-box; /* 1 */
81 | height: 0; /* 1 */
82 | overflow: visible; /* 2 */
83 | }
84 |
85 | /**
86 | * 1. Correct the inheritance and scaling of font size in all browsers.
87 | * 2. Correct the odd `em` font sizing in all browsers.
88 | */
89 |
90 | pre {
91 | font-family: monospace, monospace; /* 1 */
92 | font-size: 1em; /* 2 */
93 | }
94 |
95 | /* Text-level semantics
96 | ========================================================================== */
97 |
98 | /**
99 | * 1. Remove the gray background on active links in IE 10.
100 | * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
101 | */
102 |
103 | a {
104 | background-color: transparent; /* 1 */
105 | -webkit-text-decoration-skip: objects; /* 2 */
106 | }
107 |
108 | /**
109 | * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
110 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
111 | */
112 |
113 | abbr[title] {
114 | border-bottom: none; /* 1 */
115 | text-decoration: underline; /* 2 */
116 | text-decoration: underline dotted; /* 2 */
117 | }
118 |
119 | /**
120 | * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
121 | */
122 |
123 | b,
124 | strong {
125 | font-weight: inherit;
126 | }
127 |
128 | /**
129 | * Add the correct font weight in Chrome, Edge, and Safari.
130 | */
131 |
132 | b,
133 | strong {
134 | font-weight: bolder;
135 | }
136 |
137 | /**
138 | * 1. Correct the inheritance and scaling of font size in all browsers.
139 | * 2. Correct the odd `em` font sizing in all browsers.
140 | */
141 |
142 | code,
143 | kbd,
144 | samp {
145 | font-family: monospace, monospace; /* 1 */
146 | font-size: 1em; /* 2 */
147 | }
148 |
149 | /**
150 | * Add the correct font style in Android 4.3-.
151 | */
152 |
153 | dfn {
154 | font-style: italic;
155 | }
156 |
157 | /**
158 | * Add the correct background and color in IE 9-.
159 | */
160 |
161 | mark {
162 | background-color: #ff0;
163 | color: #000;
164 | }
165 |
166 | /**
167 | * Add the correct font size in all browsers.
168 | */
169 |
170 | small {
171 | font-size: 80%;
172 | }
173 |
174 | /**
175 | * Prevent `sub` and `sup` elements from affecting the line height in
176 | * all browsers.
177 | */
178 |
179 | sub,
180 | sup {
181 | font-size: 75%;
182 | line-height: 0;
183 | position: relative;
184 | vertical-align: baseline;
185 | }
186 |
187 | sub {
188 | bottom: -0.25em;
189 | }
190 |
191 | sup {
192 | top: -0.5em;
193 | }
194 |
195 | /* Embedded content
196 | ========================================================================== */
197 |
198 | /**
199 | * Add the correct display in IE 9-.
200 | */
201 |
202 | audio,
203 | video {
204 | display: inline-block;
205 | }
206 |
207 | /**
208 | * Add the correct display in iOS 4-7.
209 | */
210 |
211 | audio:not([controls]) {
212 | display: none;
213 | height: 0;
214 | }
215 |
216 | /**
217 | * Remove the border on images inside links in IE 10-.
218 | */
219 |
220 | img {
221 | border-style: none;
222 | }
223 |
224 | /**
225 | * Hide the overflow in IE.
226 | */
227 |
228 | svg:not(:root) {
229 | overflow: hidden;
230 | }
231 |
232 | /* Forms
233 | ========================================================================== */
234 |
235 | /**
236 | * 1. Change the font styles in all browsers (opinionated).
237 | * 2. Remove the margin in Firefox and Safari.
238 | */
239 |
240 | button,
241 | input,
242 | optgroup,
243 | select,
244 | textarea {
245 | font-family: sans-serif; /* 1 */
246 | font-size: 100%; /* 1 */
247 | line-height: 1.15; /* 1 */
248 | margin: 0; /* 2 */
249 | }
250 |
251 | /**
252 | * Show the overflow in IE.
253 | * 1. Show the overflow in Edge.
254 | */
255 |
256 | button,
257 | input { /* 1 */
258 | overflow: visible;
259 | }
260 |
261 | /**
262 | * Remove the inheritance of text transform in Edge, Firefox, and IE.
263 | * 1. Remove the inheritance of text transform in Firefox.
264 | */
265 |
266 | button,
267 | select { /* 1 */
268 | text-transform: none;
269 | }
270 |
271 | /**
272 | * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
273 | * controls in Android 4.
274 | * 2. Correct the inability to style clickable types in iOS and Safari.
275 | */
276 |
277 | button,
278 | html [type="button"], /* 1 */
279 | [type="reset"],
280 | [type="submit"] {
281 | -webkit-appearance: button; /* 2 */
282 | }
283 |
284 | /**
285 | * Remove the inner border and padding in Firefox.
286 | */
287 |
288 | button::-moz-focus-inner,
289 | [type="button"]::-moz-focus-inner,
290 | [type="reset"]::-moz-focus-inner,
291 | [type="submit"]::-moz-focus-inner {
292 | border-style: none;
293 | padding: 0;
294 | }
295 |
296 | /**
297 | * Restore the focus styles unset by the previous rule.
298 | */
299 |
300 | button:-moz-focusring,
301 | [type="button"]:-moz-focusring,
302 | [type="reset"]:-moz-focusring,
303 | [type="submit"]:-moz-focusring {
304 | outline: 1px dotted ButtonText;
305 | }
306 |
307 | /**
308 | * Correct the padding in Firefox.
309 | */
310 |
311 | fieldset {
312 | padding: 0.35em 0.75em 0.625em;
313 | }
314 |
315 | /**
316 | * 1. Correct the text wrapping in Edge and IE.
317 | * 2. Correct the color inheritance from `fieldset` elements in IE.
318 | * 3. Remove the padding so developers are not caught out when they zero out
319 | * `fieldset` elements in all browsers.
320 | */
321 |
322 | legend {
323 | box-sizing: border-box; /* 1 */
324 | color: inherit; /* 2 */
325 | display: table; /* 1 */
326 | max-width: 100%; /* 1 */
327 | padding: 0; /* 3 */
328 | white-space: normal; /* 1 */
329 | }
330 |
331 | /**
332 | * 1. Add the correct display in IE 9-.
333 | * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
334 | */
335 |
336 | progress {
337 | display: inline-block; /* 1 */
338 | vertical-align: baseline; /* 2 */
339 | }
340 |
341 | /**
342 | * Remove the default vertical scrollbar in IE.
343 | */
344 |
345 | textarea {
346 | overflow: auto;
347 | }
348 |
349 | /**
350 | * 1. Add the correct box sizing in IE 10-.
351 | * 2. Remove the padding in IE 10-.
352 | */
353 |
354 | [type="checkbox"],
355 | [type="radio"] {
356 | box-sizing: border-box; /* 1 */
357 | padding: 0; /* 2 */
358 | }
359 |
360 | /**
361 | * Correct the cursor style of increment and decrement buttons in Chrome.
362 | */
363 |
364 | [type="number"]::-webkit-inner-spin-button,
365 | [type="number"]::-webkit-outer-spin-button {
366 | height: auto;
367 | }
368 |
369 | /**
370 | * 1. Correct the odd appearance in Chrome and Safari.
371 | * 2. Correct the outline style in Safari.
372 | */
373 |
374 | [type="search"] {
375 | -webkit-appearance: textfield; /* 1 */
376 | outline-offset: -2px; /* 2 */
377 | }
378 |
379 | /**
380 | * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
381 | */
382 |
383 | [type="search"]::-webkit-search-cancel-button,
384 | [type="search"]::-webkit-search-decoration {
385 | -webkit-appearance: none;
386 | }
387 |
388 | /**
389 | * 1. Correct the inability to style clickable types in iOS and Safari.
390 | * 2. Change font properties to `inherit` in Safari.
391 | */
392 |
393 | ::-webkit-file-upload-button {
394 | -webkit-appearance: button; /* 1 */
395 | font: inherit; /* 2 */
396 | }
397 |
398 | /* Interactive
399 | ========================================================================== */
400 |
401 | /*
402 | * Add the correct display in IE 9-.
403 | * 1. Add the correct display in Edge, IE, and Firefox.
404 | */
405 |
406 | details, /* 1 */
407 | menu {
408 | display: block;
409 | }
410 |
411 | /*
412 | * Add the correct display in all browsers.
413 | */
414 |
415 | summary {
416 | display: list-item;
417 | }
418 |
419 | /* Scripting
420 | ========================================================================== */
421 |
422 | /**
423 | * Add the correct display in IE 9-.
424 | */
425 |
426 | canvas {
427 | display: inline-block;
428 | }
429 |
430 | /**
431 | * Add the correct display in IE.
432 | */
433 |
434 | template {
435 | display: none;
436 | }
437 |
438 | /* Hidden
439 | ========================================================================== */
440 |
441 | /**
442 | * Add the correct display in IE 10-.
443 | */
444 |
445 | [hidden] {
446 | display: none;
447 | }
448 |
--------------------------------------------------------------------------------
/scss/base/_normalize.scss:
--------------------------------------------------------------------------------
1 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
2 |
3 | /* Document
4 | ========================================================================== */
5 |
6 | /**
7 | * 1. Correct the line height in all browsers.
8 | * 2. Prevent adjustments of font size after orientation changes in
9 | * IE on Windows Phone and in iOS.
10 | */
11 |
12 | html {
13 | line-height: 1.15; /* 1 */
14 | -ms-text-size-adjust: 100%; /* 2 */
15 | -webkit-text-size-adjust: 100%; /* 2 */
16 | }
17 |
18 | /* Sections
19 | ========================================================================== */
20 |
21 | /**
22 | * Remove the margin in all browsers (opinionated).
23 | */
24 |
25 | body {
26 | margin: 0;
27 | }
28 |
29 | /**
30 | * Add the correct display in IE 9-.
31 | */
32 |
33 | article,
34 | aside,
35 | footer,
36 | header,
37 | nav,
38 | section {
39 | display: block;
40 | }
41 |
42 | /**
43 | * Correct the font size and margin on `h1` elements within `section` and
44 | * `article` contexts in Chrome, Firefox, and Safari.
45 | */
46 |
47 | h1 {
48 | font-size: 2em;
49 | margin: 0.67em 0;
50 | }
51 |
52 | /* Grouping content
53 | ========================================================================== */
54 |
55 | /**
56 | * Add the correct display in IE 9-.
57 | * 1. Add the correct display in IE.
58 | */
59 |
60 | figcaption,
61 | figure,
62 | main { /* 1 */
63 | display: block;
64 | }
65 |
66 | /**
67 | * Add the correct margin in IE 8.
68 | */
69 |
70 | figure {
71 | margin: 1em 40px;
72 | }
73 |
74 | /**
75 | * 1. Add the correct box sizing in Firefox.
76 | * 2. Show the overflow in Edge and IE.
77 | */
78 |
79 | hr {
80 | box-sizing: content-box; /* 1 */
81 | height: 0; /* 1 */
82 | overflow: visible; /* 2 */
83 | }
84 |
85 | /**
86 | * 1. Correct the inheritance and scaling of font size in all browsers.
87 | * 2. Correct the odd `em` font sizing in all browsers.
88 | */
89 |
90 | pre {
91 | font-family: monospace, monospace; /* 1 */
92 | font-size: 1em; /* 2 */
93 | }
94 |
95 | /* Text-level semantics
96 | ========================================================================== */
97 |
98 | /**
99 | * 1. Remove the gray background on active links in IE 10.
100 | * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
101 | */
102 |
103 | a {
104 | background-color: transparent; /* 1 */
105 | -webkit-text-decoration-skip: objects; /* 2 */
106 | }
107 |
108 | /**
109 | * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
110 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
111 | */
112 |
113 | abbr[title] {
114 | border-bottom: none; /* 1 */
115 | text-decoration: underline; /* 2 */
116 | text-decoration: underline dotted; /* 2 */
117 | }
118 |
119 | /**
120 | * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
121 | */
122 |
123 | b,
124 | strong {
125 | font-weight: inherit;
126 | }
127 |
128 | /**
129 | * Add the correct font weight in Chrome, Edge, and Safari.
130 | */
131 |
132 | b,
133 | strong {
134 | font-weight: bolder;
135 | }
136 |
137 | /**
138 | * 1. Correct the inheritance and scaling of font size in all browsers.
139 | * 2. Correct the odd `em` font sizing in all browsers.
140 | */
141 |
142 | code,
143 | kbd,
144 | samp {
145 | font-family: monospace, monospace; /* 1 */
146 | font-size: 1em; /* 2 */
147 | }
148 |
149 | /**
150 | * Add the correct font style in Android 4.3-.
151 | */
152 |
153 | dfn {
154 | font-style: italic;
155 | }
156 |
157 | /**
158 | * Add the correct background and color in IE 9-.
159 | */
160 |
161 | mark {
162 | background-color: #ff0;
163 | color: #000;
164 | }
165 |
166 | /**
167 | * Add the correct font size in all browsers.
168 | */
169 |
170 | small {
171 | font-size: 80%;
172 | }
173 |
174 | /**
175 | * Prevent `sub` and `sup` elements from affecting the line height in
176 | * all browsers.
177 | */
178 |
179 | sub,
180 | sup {
181 | font-size: 75%;
182 | line-height: 0;
183 | position: relative;
184 | vertical-align: baseline;
185 | }
186 |
187 | sub {
188 | bottom: -0.25em;
189 | }
190 |
191 | sup {
192 | top: -0.5em;
193 | }
194 |
195 | /* Embedded content
196 | ========================================================================== */
197 |
198 | /**
199 | * Add the correct display in IE 9-.
200 | */
201 |
202 | audio,
203 | video {
204 | display: inline-block;
205 | }
206 |
207 | /**
208 | * Add the correct display in iOS 4-7.
209 | */
210 |
211 | audio:not([controls]) {
212 | display: none;
213 | height: 0;
214 | }
215 |
216 | /**
217 | * Remove the border on images inside links in IE 10-.
218 | */
219 |
220 | img {
221 | border-style: none;
222 | }
223 |
224 | /**
225 | * Hide the overflow in IE.
226 | */
227 |
228 | svg:not(:root) {
229 | overflow: hidden;
230 | }
231 |
232 | /* Forms
233 | ========================================================================== */
234 |
235 | /**
236 | * 1. Change the font styles in all browsers (opinionated).
237 | * 2. Remove the margin in Firefox and Safari.
238 | */
239 |
240 | button,
241 | input,
242 | optgroup,
243 | select,
244 | textarea {
245 | font-family: sans-serif; /* 1 */
246 | font-size: 100%; /* 1 */
247 | line-height: 1.15; /* 1 */
248 | margin: 0; /* 2 */
249 | }
250 |
251 | /**
252 | * Show the overflow in IE.
253 | * 1. Show the overflow in Edge.
254 | */
255 |
256 | button,
257 | input { /* 1 */
258 | overflow: visible;
259 | }
260 |
261 | /**
262 | * Remove the inheritance of text transform in Edge, Firefox, and IE.
263 | * 1. Remove the inheritance of text transform in Firefox.
264 | */
265 |
266 | button,
267 | select { /* 1 */
268 | text-transform: none;
269 | }
270 |
271 | /**
272 | * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
273 | * controls in Android 4.
274 | * 2. Correct the inability to style clickable types in iOS and Safari.
275 | */
276 |
277 | button,
278 | html [type="button"], /* 1 */
279 | [type="reset"],
280 | [type="submit"] {
281 | -webkit-appearance: button; /* 2 */
282 | }
283 |
284 | /**
285 | * Remove the inner border and padding in Firefox.
286 | */
287 |
288 | button::-moz-focus-inner,
289 | [type="button"]::-moz-focus-inner,
290 | [type="reset"]::-moz-focus-inner,
291 | [type="submit"]::-moz-focus-inner {
292 | border-style: none;
293 | padding: 0;
294 | }
295 |
296 | /**
297 | * Restore the focus styles unset by the previous rule.
298 | */
299 |
300 | button:-moz-focusring,
301 | [type="button"]:-moz-focusring,
302 | [type="reset"]:-moz-focusring,
303 | [type="submit"]:-moz-focusring {
304 | outline: 1px dotted ButtonText;
305 | }
306 |
307 | /**
308 | * Correct the padding in Firefox.
309 | */
310 |
311 | fieldset {
312 | padding: 0.35em 0.75em 0.625em;
313 | }
314 |
315 | /**
316 | * 1. Correct the text wrapping in Edge and IE.
317 | * 2. Correct the color inheritance from `fieldset` elements in IE.
318 | * 3. Remove the padding so developers are not caught out when they zero out
319 | * `fieldset` elements in all browsers.
320 | */
321 |
322 | legend {
323 | box-sizing: border-box; /* 1 */
324 | color: inherit; /* 2 */
325 | display: table; /* 1 */
326 | max-width: 100%; /* 1 */
327 | padding: 0; /* 3 */
328 | white-space: normal; /* 1 */
329 | }
330 |
331 | /**
332 | * 1. Add the correct display in IE 9-.
333 | * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
334 | */
335 |
336 | progress {
337 | display: inline-block; /* 1 */
338 | vertical-align: baseline; /* 2 */
339 | }
340 |
341 | /**
342 | * Remove the default vertical scrollbar in IE.
343 | */
344 |
345 | textarea {
346 | overflow: auto;
347 | }
348 |
349 | /**
350 | * 1. Add the correct box sizing in IE 10-.
351 | * 2. Remove the padding in IE 10-.
352 | */
353 |
354 | [type="checkbox"],
355 | [type="radio"] {
356 | box-sizing: border-box; /* 1 */
357 | padding: 0; /* 2 */
358 | }
359 |
360 | /**
361 | * Correct the cursor style of increment and decrement buttons in Chrome.
362 | */
363 |
364 | [type="number"]::-webkit-inner-spin-button,
365 | [type="number"]::-webkit-outer-spin-button {
366 | height: auto;
367 | }
368 |
369 | /**
370 | * 1. Correct the odd appearance in Chrome and Safari.
371 | * 2. Correct the outline style in Safari.
372 | */
373 |
374 | [type="search"] {
375 | -webkit-appearance: textfield; /* 1 */
376 | outline-offset: -2px; /* 2 */
377 | }
378 |
379 | /**
380 | * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
381 | */
382 |
383 | [type="search"]::-webkit-search-cancel-button,
384 | [type="search"]::-webkit-search-decoration {
385 | -webkit-appearance: none;
386 | }
387 |
388 | /**
389 | * 1. Correct the inability to style clickable types in iOS and Safari.
390 | * 2. Change font properties to `inherit` in Safari.
391 | */
392 |
393 | ::-webkit-file-upload-button {
394 | -webkit-appearance: button; /* 1 */
395 | font: inherit; /* 2 */
396 | }
397 |
398 | /* Interactive
399 | ========================================================================== */
400 |
401 | /*
402 | * Add the correct display in IE 9-.
403 | * 1. Add the correct display in Edge, IE, and Firefox.
404 | */
405 |
406 | details, /* 1 */
407 | menu {
408 | display: block;
409 | }
410 |
411 | /*
412 | * Add the correct display in all browsers.
413 | */
414 |
415 | summary {
416 | display: list-item;
417 | }
418 |
419 | /* Scripting
420 | ========================================================================== */
421 |
422 | /**
423 | * Add the correct display in IE 9-.
424 | */
425 |
426 | canvas {
427 | display: inline-block;
428 | }
429 |
430 | /**
431 | * Add the correct display in IE.
432 | */
433 |
434 | template {
435 | display: none;
436 | }
437 |
438 | /* Hidden
439 | ========================================================================== */
440 |
441 | /**
442 | * Add the correct display in IE 10-.
443 | */
444 |
445 | [hidden] {
446 | display: none;
447 | }
--------------------------------------------------------------------------------
/css/styles.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700&Roboto:300");
2 | /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */
3 | /* Document
4 | ========================================================================== */
5 | /**
6 | * 1. Correct the line height in all browsers.
7 | * 2. Prevent adjustments of font size after orientation changes in
8 | * IE on Windows Phone and in iOS.
9 | */
10 | html {
11 | line-height: 1.15;
12 | /* 1 */
13 | -ms-text-size-adjust: 100%;
14 | /* 2 */
15 | -webkit-text-size-adjust: 100%;
16 | /* 2 */ }
17 |
18 | /* Sections
19 | ========================================================================== */
20 | /**
21 | * Remove the margin in all browsers (opinionated).
22 | */
23 | body {
24 | margin: 0; }
25 |
26 | /**
27 | * Add the correct display in IE 9-.
28 | */
29 | article,
30 | aside,
31 | footer,
32 | header,
33 | nav,
34 | section {
35 | display: block; }
36 |
37 | /**
38 | * Correct the font size and margin on `h1` elements within `section` and
39 | * `article` contexts in Chrome, Firefox, and Safari.
40 | */
41 | h1 {
42 | font-size: 2em;
43 | margin: 0.67em 0; }
44 |
45 | /* Grouping content
46 | ========================================================================== */
47 | /**
48 | * Add the correct display in IE 9-.
49 | * 1. Add the correct display in IE.
50 | */
51 | figcaption,
52 | figure,
53 | main {
54 | /* 1 */
55 | display: block; }
56 |
57 | /**
58 | * Add the correct margin in IE 8.
59 | */
60 | figure {
61 | margin: 1em 40px; }
62 |
63 | /**
64 | * 1. Add the correct box sizing in Firefox.
65 | * 2. Show the overflow in Edge and IE.
66 | */
67 | hr {
68 | box-sizing: content-box;
69 | /* 1 */
70 | height: 0;
71 | /* 1 */
72 | overflow: visible;
73 | /* 2 */ }
74 |
75 | /**
76 | * 1. Correct the inheritance and scaling of font size in all browsers.
77 | * 2. Correct the odd `em` font sizing in all browsers.
78 | */
79 | pre {
80 | font-family: monospace, monospace;
81 | /* 1 */
82 | font-size: 1em;
83 | /* 2 */ }
84 |
85 | /* Text-level semantics
86 | ========================================================================== */
87 | /**
88 | * 1. Remove the gray background on active links in IE 10.
89 | * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
90 | */
91 | a {
92 | background-color: transparent;
93 | /* 1 */
94 | -webkit-text-decoration-skip: objects;
95 | /* 2 */ }
96 |
97 | /**
98 | * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
99 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
100 | */
101 | abbr[title] {
102 | border-bottom: none;
103 | /* 1 */
104 | text-decoration: underline;
105 | /* 2 */
106 | text-decoration: underline dotted;
107 | /* 2 */ }
108 |
109 | /**
110 | * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
111 | */
112 | b,
113 | strong {
114 | font-weight: inherit; }
115 |
116 | /**
117 | * Add the correct font weight in Chrome, Edge, and Safari.
118 | */
119 | b,
120 | strong {
121 | font-weight: bolder; }
122 |
123 | /**
124 | * 1. Correct the inheritance and scaling of font size in all browsers.
125 | * 2. Correct the odd `em` font sizing in all browsers.
126 | */
127 | code,
128 | kbd,
129 | samp {
130 | font-family: monospace, monospace;
131 | /* 1 */
132 | font-size: 1em;
133 | /* 2 */ }
134 |
135 | /**
136 | * Add the correct font style in Android 4.3-.
137 | */
138 | dfn {
139 | font-style: italic; }
140 |
141 | /**
142 | * Add the correct background and color in IE 9-.
143 | */
144 | mark {
145 | background-color: #ff0;
146 | color: #000; }
147 |
148 | /**
149 | * Add the correct font size in all browsers.
150 | */
151 | small {
152 | font-size: 80%; }
153 |
154 | /**
155 | * Prevent `sub` and `sup` elements from affecting the line height in
156 | * all browsers.
157 | */
158 | sub,
159 | sup {
160 | font-size: 75%;
161 | line-height: 0;
162 | position: relative;
163 | vertical-align: baseline; }
164 |
165 | sub {
166 | bottom: -0.25em; }
167 |
168 | sup {
169 | top: -0.5em; }
170 |
171 | /* Embedded content
172 | ========================================================================== */
173 | /**
174 | * Add the correct display in IE 9-.
175 | */
176 | audio,
177 | video {
178 | display: inline-block; }
179 |
180 | /**
181 | * Add the correct display in iOS 4-7.
182 | */
183 | audio:not([controls]) {
184 | display: none;
185 | height: 0; }
186 |
187 | /**
188 | * Remove the border on images inside links in IE 10-.
189 | */
190 | img {
191 | border-style: none; }
192 |
193 | /**
194 | * Hide the overflow in IE.
195 | */
196 | svg:not(:root) {
197 | overflow: hidden; }
198 |
199 | /* Forms
200 | ========================================================================== */
201 | /**
202 | * 1. Change the font styles in all browsers (opinionated).
203 | * 2. Remove the margin in Firefox and Safari.
204 | */
205 | button,
206 | input,
207 | optgroup,
208 | select,
209 | textarea {
210 | font-family: sans-serif;
211 | /* 1 */
212 | font-size: 100%;
213 | /* 1 */
214 | line-height: 1.15;
215 | /* 1 */
216 | margin: 0;
217 | /* 2 */ }
218 |
219 | /**
220 | * Show the overflow in IE.
221 | * 1. Show the overflow in Edge.
222 | */
223 | button,
224 | input {
225 | /* 1 */
226 | overflow: visible; }
227 |
228 | /**
229 | * Remove the inheritance of text transform in Edge, Firefox, and IE.
230 | * 1. Remove the inheritance of text transform in Firefox.
231 | */
232 | button,
233 | select {
234 | /* 1 */
235 | text-transform: none; }
236 |
237 | /**
238 | * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
239 | * controls in Android 4.
240 | * 2. Correct the inability to style clickable types in iOS and Safari.
241 | */
242 | button,
243 | html [type="button"],
244 | [type="reset"],
245 | [type="submit"] {
246 | -webkit-appearance: button;
247 | /* 2 */ }
248 |
249 | /**
250 | * Remove the inner border and padding in Firefox.
251 | */
252 | button::-moz-focus-inner,
253 | [type="button"]::-moz-focus-inner,
254 | [type="reset"]::-moz-focus-inner,
255 | [type="submit"]::-moz-focus-inner {
256 | border-style: none;
257 | padding: 0; }
258 |
259 | /**
260 | * Restore the focus styles unset by the previous rule.
261 | */
262 | button:-moz-focusring,
263 | [type="button"]:-moz-focusring,
264 | [type="reset"]:-moz-focusring,
265 | [type="submit"]:-moz-focusring {
266 | outline: 1px dotted ButtonText; }
267 |
268 | /**
269 | * Correct the padding in Firefox.
270 | */
271 | fieldset {
272 | padding: 0.35em 0.75em 0.625em; }
273 |
274 | /**
275 | * 1. Correct the text wrapping in Edge and IE.
276 | * 2. Correct the color inheritance from `fieldset` elements in IE.
277 | * 3. Remove the padding so developers are not caught out when they zero out
278 | * `fieldset` elements in all browsers.
279 | */
280 | legend {
281 | box-sizing: border-box;
282 | /* 1 */
283 | color: inherit;
284 | /* 2 */
285 | display: table;
286 | /* 1 */
287 | max-width: 100%;
288 | /* 1 */
289 | padding: 0;
290 | /* 3 */
291 | white-space: normal;
292 | /* 1 */ }
293 |
294 | /**
295 | * 1. Add the correct display in IE 9-.
296 | * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
297 | */
298 | progress {
299 | display: inline-block;
300 | /* 1 */
301 | vertical-align: baseline;
302 | /* 2 */ }
303 |
304 | /**
305 | * Remove the default vertical scrollbar in IE.
306 | */
307 | textarea {
308 | overflow: auto; }
309 |
310 | /**
311 | * 1. Add the correct box sizing in IE 10-.
312 | * 2. Remove the padding in IE 10-.
313 | */
314 | [type="checkbox"],
315 | [type="radio"] {
316 | box-sizing: border-box;
317 | /* 1 */
318 | padding: 0;
319 | /* 2 */ }
320 |
321 | /**
322 | * Correct the cursor style of increment and decrement buttons in Chrome.
323 | */
324 | [type="number"]::-webkit-inner-spin-button,
325 | [type="number"]::-webkit-outer-spin-button {
326 | height: auto; }
327 |
328 | /**
329 | * 1. Correct the odd appearance in Chrome and Safari.
330 | * 2. Correct the outline style in Safari.
331 | */
332 | [type="search"] {
333 | -webkit-appearance: textfield;
334 | /* 1 */
335 | outline-offset: -2px;
336 | /* 2 */ }
337 |
338 | /**
339 | * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
340 | */
341 | [type="search"]::-webkit-search-cancel-button,
342 | [type="search"]::-webkit-search-decoration {
343 | -webkit-appearance: none; }
344 |
345 | /**
346 | * 1. Correct the inability to style clickable types in iOS and Safari.
347 | * 2. Change font properties to `inherit` in Safari.
348 | */
349 | ::-webkit-file-upload-button {
350 | -webkit-appearance: button;
351 | /* 1 */
352 | font: inherit;
353 | /* 2 */ }
354 |
355 | /* Interactive
356 | ========================================================================== */
357 | /*
358 | * Add the correct display in IE 9-.
359 | * 1. Add the correct display in Edge, IE, and Firefox.
360 | */
361 | details,
362 | menu {
363 | display: block; }
364 |
365 | /*
366 | * Add the correct display in all browsers.
367 | */
368 | summary {
369 | display: list-item; }
370 |
371 | /* Scripting
372 | ========================================================================== */
373 | /**
374 | * Add the correct display in IE 9-.
375 | */
376 | canvas {
377 | display: inline-block; }
378 |
379 | /**
380 | * Add the correct display in IE.
381 | */
382 | template {
383 | display: none; }
384 |
385 | /* Hidden
386 | ========================================================================== */
387 | /**
388 | * Add the correct display in IE 10-.
389 | */
390 | [hidden] {
391 | display: none; }
392 |
393 | /* main */
394 | * {
395 | box-sizing: border-box;
396 | user-select: none;
397 | transition: all 1s ease-in-out; }
398 |
399 | body {
400 | background: linear-gradient(to bottom, #f4f5f6 0%, #8b8b8b 50%, #000000 100%);
401 | justify-content: space-between;
402 | flex-direction: column;
403 | display: flex;
404 | height: 100vh;
405 | margin: 0px !important;
406 | overflow: hidden; }
407 |
408 | li, ol, ul {
409 | padding: 0;
410 | display: inline-block; }
411 |
412 | h2 {
413 | margin: 0;
414 | text-transform: uppercase;
415 | font-family: 'Open Sans', sans-serif;
416 | font-size: 60px; }
417 |
418 | h3 {
419 | margin: 10px;
420 | text-transform: uppercase;
421 | font-family: 'Open Sans', sans-serif;
422 | font-size: 25px;
423 | display: inline; }
424 |
425 | .main-container {
426 | display: flex;
427 | flex-direction: column;
428 | justify-content: space-around;
429 | height: 100%;
430 | max-height: 900px;
431 | text-align: center; }
432 |
433 | .section {
434 | width: 100%;
435 | padding: 10px; }
436 |
437 | /* Title */
438 | .header {
439 | color: #000; }
440 |
441 | .animate-out {
442 | animation: roll-out-right 1s ease-in-out 1s 1 both; }
443 |
444 | .animate-in {
445 | animation: roll-in-left 1s ease-in-out 1s 1 both; }
446 |
447 | .slide-in-left {
448 | animation: slide-in-left 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both; }
449 |
450 | .slide-out-right {
451 | animation: slide-out-right 0.5s cubic-bezier(0.55, 0.085, 0.68, 0.53) both; }
452 |
453 | @keyframes roll-in-left {
454 | 0% {
455 | transform: translateX(-100vw) rotate(-540deg);
456 | opacity: 0; }
457 | 100% {
458 | transform: translateX(0) rotate(0deg);
459 | opacity: 1; } }
460 | @keyframes roll-out-right {
461 | 0% {
462 | transform: translateX(0px) rotate(0deg);
463 | opacity: 1; }
464 | 100% {
465 | transform: translateX(100vw) rotate(540deg);
466 | opacity: 0; } }
467 | @keyframes slide-in-left {
468 | 0% {
469 | transform: translateX(-100vw);
470 | opacity: 0; }
471 | 100% {
472 | transform: translateX(0);
473 | opacity: 1; } }
474 | @keyframes slide-out-right {
475 | 0% {
476 | transform: translateX(0);
477 | opacity: 1; }
478 | 100% {
479 | transform: translateX(100vw);
480 | opacity: 0; } }
481 | /* Overlay */
482 | #overlay {
483 | display: flex;
484 | flex-direction: column;
485 | position: fixed;
486 | color: #FFFFFF;
487 | justify-content: center;
488 | top: 0;
489 | bottom: 0;
490 | left: 0;
491 | right: 0;
492 | border-radius: 5px;
493 | z-index: 10000; }
494 |
495 | .title {
496 | color: #000; }
497 |
498 | .start {
499 | background: linear-gradient(to bottom, #f4f5f6 0%, #8b8b8b 50%, #000000 100%); }
500 |
501 | .start a {
502 | color: #292a2b; }
503 |
504 | .won {
505 | background: linear-gradient(to bottom, #f4f5f6 0%, #c4f1ce 50%, #18722b 100%); }
506 |
507 | .won a {
508 | color: #292a2b; }
509 |
510 | .lost {
511 | background: linear-gradient(to bottom, #f4f5f6 0%, #e59393 50%, #4c0101 100%); }
512 |
513 | .lost a {
514 | color: #D94545; }
515 |
516 | /* Keyboard */
517 | .keyrow {
518 | display: flex;
519 | justify-content: center; }
520 |
521 | button {
522 | border: 1px solid black;
523 | color: #37474F;
524 | font-size: 25px;
525 | background-color: #E5E5E5;
526 | border-radius: 5px;
527 | min-width: 30px;
528 | min-height: 30px;
529 | margin: 2px;
530 | box-shadow: 0px 5px 5px black; }
531 | button.wrong {
532 | box-shadow: inset 0px 2px 2px black;
533 | background-color: #D94545;
534 | transition: box-shadow ease-in-out 1s both; }
535 | button.correct {
536 | box-shadow: inset 0px 2px 2px black;
537 | background-color: #78CF82;
538 | transition: box-shadow ease-in-out 1s both; }
539 |
540 | .startBtn {
541 | padding: 8px;
542 | margin: 50px auto;
543 | background: #FFFFFF;
544 | border-radius: 5px;
545 | font-size: 25px; }
546 |
547 | /* Phrase */
548 | .letter {
549 | font-size: 25px;
550 | height: 30px;
551 | width: 30px;
552 | /* padding: 10px 1px 0 1px; */
553 | margin-right: 1px;
554 | margin-bottom: 10px;
555 | color: transparent;
556 | background: #D2D2D2;
557 | opacity: 0;
558 | border-radius: 5px;
559 | -webkit-transition: all 1s ease-in-out;
560 | -o-transition: all 1s ease-in-out;
561 | transition: all 1s ease-in-out;
562 | border: 1px solid black;
563 | box-shadow: 5px 5px 5px black; }
564 |
565 | .space {
566 | width: 15px; }
567 |
568 | .show {
569 | color: #000;
570 | background-color: #76CE82;
571 | transform: rotateY(360deg); }
572 |
573 | /* Scoreboard */
574 | .tries img {
575 | width: 35px; }
576 |
577 | @media screen and (min-width: 768px) {
578 | button {
579 | min-width: 40px;
580 | min-height: 40px;
581 | margin: 3px; }
582 |
583 | .letter {
584 | height: 40px;
585 | width: 40px;
586 | margin-right: 2px; }
587 |
588 | .tries img {
589 | width: 50px; } }
590 | @media screen and (min-width: 1024px) {
591 | button {
592 | min-width: 50px;
593 | min-height: 50px;
594 | margin: 3px; }
595 |
596 | .letter {
597 | height: 50px;
598 | width: 50px; }
599 |
600 | .tries img {
601 | width: 70px; } }
602 |
603 | /*# sourceMappingURL=styles.css.map */
604 |
--------------------------------------------------------------------------------