Skip to content

Commit 2032a4b

Browse files
committed
v0.0.1 released – Code Gamemode is now available.
- Modo de juego "Code" habilitado pero en modo experimental (Experimental sobre todo en el aspecto visual) - Despliegue de distintos lenguajes al presionar el modo de juego code. - Fix bugs - Cambios en la estructura del proyecto - Footer con el creador y su versión actual - Botón reset para cada modo de juego con posibilidad de usar "Ctrl + R" para accionarlo - Posibilidad eliminada de reiniciar y poder encontrar la misma frase/fragmento de código
1 parent 54cd5ac commit 2032a4b

File tree

15 files changed

+790
-154
lines changed

15 files changed

+790
-154
lines changed

package-lock.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"axios": "^1.11.0",
1717
"canvas-confetti": "^1.9.3",
1818
"gh-pages": "^6.3.0",
19+
"prismjs": "^1.30.0",
1920
"react": "^19.1.0",
2021
"react-confetti": "^6.4.0",
2122
"react-dom": "^19.1.0",

src/App.css

Lines changed: 236 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* Elementos de estructura generales */
22

3-
html, body {
3+
html,
4+
body {
45
height: 100%;
56
overflow: hidden;
67
margin: 0;
@@ -14,6 +15,10 @@ header {
1415
padding: 10px 20px;
1516
}
1617

18+
* {
19+
user-select: none;
20+
}
21+
1722
/* Resto de elementos */
1823

1924
/* Header */
@@ -32,19 +37,18 @@ header {
3237
}
3338

3439
.optionNav {
35-
3640
display: flex;
3741
align-items: center;
3842
}
3943

4044
a {
4145
text-decoration: none;
42-
color: inherit
46+
color: inherit;
4347
}
4448

4549
a:hover {
4650
text-decoration: none;
47-
color: inherit
51+
color: inherit;
4852
}
4953

5054
a#logo {
@@ -68,29 +72,121 @@ div.icon img {
6872
flex-direction: column;
6973
align-items: center;
7074
justify-content: center;
71-
height: calc(100vh - 80px);
75+
height: calc(92vh - 80px);
7276
padding: 20px;
7377
box-sizing: border-box;
7478
}
7579

80+
/* OptionsGame */
81+
82+
.optionsGame {
83+
position: fixed;
84+
top: calc(50% - 180px);
85+
left: 50%;
86+
transform: translateX(-50%);
87+
display: flex;
88+
justify-content: center;
89+
align-items: center;
90+
gap: 20px;
91+
}
92+
93+
.optionsGame .group {
94+
display: flex;
95+
}
96+
97+
.optionsGame .group span {
98+
border: 1px solid black;
99+
background-color: rgb(73, 70, 70);
100+
padding: 5px 10px;
101+
}
102+
103+
.optionsGame .group span.mode {
104+
cursor: pointer;
105+
}
106+
107+
.optionsGame .group span.mode:first-child {
108+
border-radius: 10px 1px 1px 10px;
109+
}
110+
111+
.optionsGame .group span.mode:last-child {
112+
border-left: 0px;
113+
border-radius: 1px 10px 10px 1px;
114+
}
115+
116+
span.timerDisplayed {
117+
cursor: pointer;
118+
border-radius: 0px !important;
119+
pointer-events: none;
120+
}
121+
122+
.optionsGame .group.timersExpanded span.timerDisplayed {
123+
pointer-events: auto;
124+
}
125+
126+
.timerDisplayed:last-child {
127+
border-radius: 1px 10px 10px 1px !important;
128+
}
129+
130+
.group.timersExpanded span + span.timerDisplayed {
131+
border-left: none;
132+
}
133+
134+
.enable {
135+
background-color: #007acc !important;
136+
}
137+
138+
.timerToggleExpanded {
139+
border-radius: 10px 0px 0px 10px;
140+
}
141+
142+
.optionsGame .group span.timerDisplayed {
143+
opacity: 0;
144+
width: 0;
145+
overflow: hidden;
146+
transition: width 0.4s ease, opacity 0.4s ease, transform 0.4s ease;
147+
display: inline-flex;
148+
align-items: center;
149+
justify-content: center;
150+
border: 1px solid black;
151+
background-color: rgb(73, 70, 70);
152+
padding: 5px 10px;
153+
border-radius: 0;
154+
margin-left: -1px;
155+
padding: 0;
156+
box-sizing: border-box;
157+
transform: translateX(-20px);
158+
}
159+
160+
.optionsGame .group.timersExpanded span.timerDisplayed {
161+
width: 40px;
162+
opacity: 1;
163+
margin-left: 0;
164+
border-radius: 0 10px 10px 0;
165+
transform: translateX(0);
166+
}
167+
168+
.optionsGame .group span.timerToggle {
169+
border: 1px solid black;
170+
background-color: rgb(73, 70, 70);
171+
border-radius: 10px;
172+
cursor: pointer;
173+
align-items: center;
174+
justify-content: center;
175+
}
176+
177+
/* Game */
178+
76179
.game {
77-
flex: 1;
78180
position: fixed;
79-
font-family: "monospace";
80-
font-size: "2rem";
181+
font-family: monospace;
182+
font-size: 2rem;
81183
top: 50%;
82184
left: 50%;
83185
transform: translate(-50%, -50%);
84186
white-space: pre;
85-
justify-content: center;
86-
align-items: center;
87-
height: calc(100vh - 80px);
88187
width: 60%;
89-
height: 20%;
90-
font-family: monospace;
91-
font-size: 2rem;
92-
93-
align-content: center;
188+
height: auto;
189+
justify-content: center;
94190
display: flex;
95191
flex-wrap: wrap;
96192
}
@@ -106,7 +202,7 @@ div.icon img {
106202
padding: 12px 24px;
107203
font-size: 1rem;
108204
font-weight: bold;
109-
background-color: #007ACC;
205+
background-color: #007acc;
110206
color: white;
111207
border: none;
112208
border-radius: 8px;
@@ -115,7 +211,7 @@ div.icon img {
115211
transition: background-color 0.3s ease, transform 0.2s ease;
116212
position: relative;
117213
overflow: hidden;
118-
margin-top: 2rem;
214+
margin-top: 13vh;
119215
}
120216

121217
.resetButton .icon {
@@ -135,11 +231,130 @@ div.icon img {
135231
transform: rotate(360deg);
136232
}
137233

234+
.resetButton.codebtn {
235+
margin-top: 10px !important;
236+
}
237+
238+
/* Code game mode */
239+
240+
::-webkit-scrollbar {
241+
display: none;
242+
}
243+
244+
.gameCodeContainer {
245+
display: flex;
246+
justify-content: center;
247+
padding-top: 100px;
248+
padding-bottom: 0px;
249+
width: 100%;
250+
box-sizing: border-box;
251+
overflow-x: hidden;
252+
max-height: 50vh;
253+
overflow-y: auto;
254+
}
255+
256+
.gameCodeContainer pre {
257+
font-family: monospace;
258+
white-space: pre;
259+
max-width: 80%;
260+
min-width: 30vh;
261+
min-height: 300px;
262+
overflow-x: auto;
263+
padding: 20px;
264+
color: white;
265+
border-radius: 10px;
266+
}
267+
268+
.group span + span.mode {
269+
border-left: none;
270+
}
271+
272+
.gameCodeContainer pre code {
273+
font-size: 1.1rem;
274+
}
275+
276+
.tab-flecha-written {
277+
color: orange;
278+
font-weight: bold;
279+
}
280+
281+
.tab-flecha {
282+
color: gray;
283+
font-weight: bold;
284+
}
285+
286+
/* Footer */
287+
288+
footer {
289+
display: flex;
290+
align-items: center;
291+
justify-content: center;
292+
position: relative;
293+
height: 60px;
294+
padding: 0 20px;
295+
}
296+
297+
.githubCreator {
298+
position: absolute;
299+
left: 10px;
300+
display: flex;
301+
align-items: center;
302+
}
303+
304+
.githubCreator a {
305+
display: flex;
306+
align-items: center;
307+
gap: 6px;
308+
}
309+
310+
.madeWith {
311+
display: flex;
312+
align-items: center;
313+
justify-content: right;
314+
flex: 1;
315+
text-align: right;
316+
}
317+
318+
.madeWith a {
319+
display: flex;
320+
align-items: center;
321+
gap: 6px;
322+
}
323+
324+
/* Cursor mode code */
325+
326+
.cursor {
327+
position: relative;
328+
color: #007acc;
329+
font-weight: bold;
330+
}
331+
332+
.cursor::after {
333+
content: "";
334+
position: absolute;
335+
left: 0;
336+
bottom: 0;
337+
width: 2px;
338+
height: 1em;
339+
background-color: #007acc;
340+
animation: blink 1s steps(2, start) infinite;
341+
}
342+
343+
@keyframes blink {
344+
0%,
345+
100% {
346+
opacity: 1;
347+
}
348+
50% {
349+
opacity: 0;
350+
}
351+
}
352+
138353
/* Cambios situacionales */
139354

140-
/* max-width 600px */
355+
/* max-width 850px */
141356

142-
@media (max-width: 600px) {
357+
@media (max-width: 840px) {
143358
.game {
144359
width: 90%;
145360
font-size: 1.5rem;
@@ -149,4 +364,4 @@ div.icon img {
149364
font-size: 0.9rem;
150365
padding: 10px 20px;
151366
}
152-
}
367+
}

0 commit comments

Comments
 (0)