@testgorilla/tgo-typing-test 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/.eslintrc.json +46 -0
  2. package/jest.config.ts +21 -0
  3. package/ng-package.json +15 -0
  4. package/package.json +7 -22
  5. package/project.json +36 -0
  6. package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.html +30 -0
  7. package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.spec.ts +250 -0
  8. package/src/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.ts +47 -0
  9. package/src/lib/components/tgo-typing-test/tgo-typing-test.component.html +72 -0
  10. package/src/lib/components/tgo-typing-test/tgo-typing-test.component.spec.ts +699 -0
  11. package/src/lib/components/tgo-typing-test/tgo-typing-test.component.ts +287 -0
  12. package/src/lib/helpers/config.ts +28 -0
  13. package/src/lib/helpers/constants/default-config.ts +103 -0
  14. package/src/lib/helpers/controllers/input-controller.ts +710 -0
  15. package/src/lib/helpers/controllers/quotes-controller.ts +183 -0
  16. package/src/lib/helpers/observables/banner-event.ts +18 -0
  17. package/src/lib/helpers/observables/config-event.ts +31 -0
  18. package/src/lib/helpers/observables/timer-event.ts +18 -0
  19. package/src/lib/helpers/states/active-page.ts +9 -0
  20. package/src/lib/helpers/states/composition.ts +29 -0
  21. package/src/lib/helpers/states/page-transition.ts +9 -0
  22. package/src/lib/helpers/states/slow-timer.ts +16 -0
  23. package/src/lib/helpers/states/test-active.ts +9 -0
  24. package/src/lib/helpers/states/time.ts +13 -0
  25. package/src/lib/helpers/test/caps-warning.ts +50 -0
  26. package/src/lib/helpers/test/caret.ts +92 -0
  27. package/src/lib/helpers/test/custom-text.ts +73 -0
  28. package/src/lib/helpers/test/english-punctuation.ts +38 -0
  29. package/src/lib/helpers/test/focus.ts +39 -0
  30. package/src/lib/helpers/test/manual-restart-tracker.ts +13 -0
  31. package/src/lib/helpers/test/out-of-focus.ts +19 -0
  32. package/src/lib/helpers/test/replay.ts +265 -0
  33. package/src/lib/helpers/test/test-input.ts +320 -0
  34. package/src/lib/helpers/test/test-logic.ts +1039 -0
  35. package/src/lib/helpers/test/test-state.ts +17 -0
  36. package/src/lib/helpers/test/test-stats.ts +442 -0
  37. package/src/lib/helpers/test/test-timer.ts +209 -0
  38. package/src/lib/helpers/test/test-ui.ts +370 -0
  39. package/src/lib/helpers/test/test-words.ts +72 -0
  40. package/src/lib/helpers/test/timer-progress.ts +16 -0
  41. package/src/lib/helpers/test/tts.ts +42 -0
  42. package/src/lib/helpers/test/weak-spot.ts +74 -0
  43. package/src/lib/helpers/test/wordset.ts +109 -0
  44. package/src/lib/styles/animations.scss +101 -0
  45. package/src/lib/styles/caret.scss +108 -0
  46. package/src/lib/styles/core.scss +498 -0
  47. package/src/lib/styles/index.scss +19 -0
  48. package/src/lib/styles/inputs.scss +290 -0
  49. package/src/lib/styles/popups.scss +1311 -0
  50. package/src/lib/styles/test.scss +1008 -0
  51. package/src/lib/styles/z_media-queries.scss +848 -0
  52. package/src/lib/types/types.d.ts +731 -0
  53. package/src/lib/utils/misc.ts +776 -0
  54. package/src/test-setup.ts +20 -0
  55. package/tsconfig.json +16 -0
  56. package/tsconfig.lib.json +14 -0
  57. package/tsconfig.lib.prod.json +9 -0
  58. package/tsconfig.spec.json +11 -0
  59. package/esm2022/index.mjs +0 -3
  60. package/esm2022/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.mjs +0 -45
  61. package/esm2022/lib/components/tgo-typing-test/tgo-typing-test.component.mjs +0 -299
  62. package/esm2022/lib/helpers/config.mjs +0 -24
  63. package/esm2022/lib/helpers/constants/default-config.mjs +0 -103
  64. package/esm2022/lib/helpers/controllers/input-controller.mjs +0 -586
  65. package/esm2022/lib/helpers/controllers/quotes-controller.mjs +0 -118
  66. package/esm2022/lib/helpers/observables/config-event.mjs +0 -16
  67. package/esm2022/lib/helpers/observables/timer-event.mjs +0 -16
  68. package/esm2022/lib/helpers/states/active-page.mjs +0 -8
  69. package/esm2022/lib/helpers/states/composition.mjs +0 -20
  70. package/esm2022/lib/helpers/states/page-transition.mjs +0 -8
  71. package/esm2022/lib/helpers/states/slow-timer.mjs +0 -15
  72. package/esm2022/lib/helpers/states/test-active.mjs +0 -8
  73. package/esm2022/lib/helpers/states/time.mjs +0 -11
  74. package/esm2022/lib/helpers/test/caps-warning.mjs +0 -50
  75. package/esm2022/lib/helpers/test/caret.mjs +0 -80
  76. package/esm2022/lib/helpers/test/custom-text.mjs +0 -59
  77. package/esm2022/lib/helpers/test/english-punctuation.mjs +0 -29
  78. package/esm2022/lib/helpers/test/focus.mjs +0 -35
  79. package/esm2022/lib/helpers/test/manual-restart-tracker.mjs +0 -11
  80. package/esm2022/lib/helpers/test/out-of-focus.mjs +0 -14
  81. package/esm2022/lib/helpers/test/replay.mjs +0 -217
  82. package/esm2022/lib/helpers/test/test-input.mjs +0 -264
  83. package/esm2022/lib/helpers/test/test-logic.mjs +0 -927
  84. package/esm2022/lib/helpers/test/test-state.mjs +0 -13
  85. package/esm2022/lib/helpers/test/test-stats.mjs +0 -342
  86. package/esm2022/lib/helpers/test/test-timer.mjs +0 -207
  87. package/esm2022/lib/helpers/test/test-ui.mjs +0 -341
  88. package/esm2022/lib/helpers/test/test-words.mjs +0 -69
  89. package/esm2022/lib/helpers/test/timer-progress.mjs +0 -15
  90. package/esm2022/lib/helpers/test/weak-spot.mjs +0 -65
  91. package/esm2022/lib/helpers/test/wordset.mjs +0 -100
  92. package/esm2022/lib/utils/misc.mjs +0 -673
  93. package/esm2022/testgorilla-tgo-typing-test.mjs +0 -5
  94. package/fesm2022/testgorilla-tgo-typing-test.mjs +0 -4707
  95. package/fesm2022/testgorilla-tgo-typing-test.mjs.map +0 -1
  96. package/lib/components/tgo-typing-replay-input/tgo-typing-replay-input.component.d.ts +0 -14
  97. package/lib/components/tgo-typing-test/tgo-typing-test.component.d.ts +0 -54
  98. package/lib/helpers/config.d.ts +0 -98
  99. package/lib/helpers/constants/default-config.d.ts +0 -3
  100. package/lib/helpers/controllers/input-controller.d.ts +0 -16
  101. package/lib/helpers/controllers/quotes-controller.d.ts +0 -20
  102. package/lib/helpers/observables/config-event.d.ts +0 -5
  103. package/lib/helpers/observables/timer-event.d.ts +0 -4
  104. package/lib/helpers/states/active-page.d.ts +0 -2
  105. package/lib/helpers/states/composition.d.ts +0 -10
  106. package/lib/helpers/states/page-transition.d.ts +0 -2
  107. package/lib/helpers/states/slow-timer.d.ts +0 -3
  108. package/lib/helpers/states/test-active.d.ts +0 -2
  109. package/lib/helpers/states/time.d.ts +0 -3
  110. package/lib/helpers/test/caps-warning.d.ts +0 -5
  111. package/lib/helpers/test/caret.d.ts +0 -11
  112. package/lib/helpers/test/custom-text.d.ts +0 -16
  113. package/lib/helpers/test/english-punctuation.d.ts +0 -3
  114. package/lib/helpers/test/focus.d.ts +0 -7
  115. package/lib/helpers/test/manual-restart-tracker.d.ts +0 -3
  116. package/lib/helpers/test/out-of-focus.d.ts +0 -4
  117. package/lib/helpers/test/replay.d.ts +0 -20
  118. package/lib/helpers/test/test-input.d.ts +0 -86
  119. package/lib/helpers/test/test-logic.d.ts +0 -25
  120. package/lib/helpers/test/test-state.d.ts +0 -7
  121. package/lib/helpers/test/test-stats.d.ts +0 -92
  122. package/lib/helpers/test/test-timer.d.ts +0 -6
  123. package/lib/helpers/test/test-ui.d.ts +0 -27
  124. package/lib/helpers/test/test-words.d.ts +0 -23
  125. package/lib/helpers/test/timer-progress.d.ts +0 -3
  126. package/lib/helpers/test/weak-spot.d.ts +0 -3
  127. package/lib/helpers/test/wordset.d.ts +0 -7
  128. package/lib/utils/misc.d.ts +0 -81
  129. /package/{assets → src/assets}/typing-test-languages/english.json +0 -0
  130. /package/{assets → src/assets}/typing-test-languages/english_punctuation.json +0 -0
  131. /package/{assets → src/assets}/typing-test-languages/quotes/english_version_1.json +0 -0
  132. /package/{assets → src/assets}/typing-test-languages/quotes/english_version_2.json +0 -0
  133. /package/{assets → src/assets}/typing-test-languages/quotes/filtered_sources.json +0 -0
  134. /package/{index.d.ts → src/index.ts} +0 -0
@@ -0,0 +1,848 @@
1
+ @media only screen and (max-width: 1330px) {
2
+ .ad.ad-v {
3
+ display: none;
4
+ }
5
+ #app {
6
+ grid-template-columns: auto;
7
+ }
8
+ }
9
+
10
+ @media only screen and (max-width: 1250px) {
11
+ #leaderboardsWrapper #leaderboards {
12
+ .mainTitle {
13
+ font-size: 2rem;
14
+ }
15
+ .title {
16
+ font-size: 1rem;
17
+ }
18
+ .leaderboardsTop {
19
+ grid-template-columns: auto 1fr max-content;
20
+ .buttonGroup {
21
+ grid-auto-flow: row;
22
+ gap: 0.5rem;
23
+ }
24
+ }
25
+ .tables table {
26
+ .avatarNameBadge .badge .text {
27
+ display: none;
28
+ }
29
+ tr td:first-child {
30
+ padding-left: 0.25rem;
31
+ }
32
+ tr td:last-child {
33
+ padding-right: 0.25rem;
34
+ }
35
+ td {
36
+ padding: 0.25rem 0.5rem;
37
+ }
38
+ }
39
+ }
40
+ #quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper {
41
+ grid-template-columns: 1fr 1fr max-content;
42
+ }
43
+ }
44
+
45
+ @media only screen and (max-width: 1050px) {
46
+ .profile .pbsWords,
47
+ .profile .pbsTime {
48
+ font-size: 0.8rem;
49
+ }
50
+ .profile .details.bioAndKey {
51
+ .bioAndKeyboard .value {
52
+ font-size: 0.75rem;
53
+ }
54
+ }
55
+ .pageSettings .section.fullWidth .buttons {
56
+ grid-template-columns: 1fr 1fr 1fr;
57
+ }
58
+ #quoteSearchPopupWrapper #quoteSearchPopup #quoteSearchControlsWrapper {
59
+ grid-template-columns: 1fr;
60
+ }
61
+ #result .morestats {
62
+ gap: 1rem;
63
+ grid-template-rows: 1fr 1fr;
64
+ }
65
+ #supportMe {
66
+ width: 90vw !important;
67
+ .buttons {
68
+ .button {
69
+ .icon {
70
+ font-size: 3rem !important;
71
+ line-height: 3rem !important;
72
+ }
73
+ }
74
+ }
75
+ }
76
+ #customTextPopup {
77
+ width: 80vw !important;
78
+
79
+ .wordfilter.button {
80
+ width: 50% !important;
81
+ }
82
+ }
83
+ }
84
+
85
+ @media only screen and (max-width: 1000px) {
86
+ #quoteRatePopup {
87
+ width: 90vw !important;
88
+ }
89
+ #bottom {
90
+ .leftright {
91
+ .left {
92
+ gap: 0.25rem 1rem;
93
+ display: grid;
94
+ grid-template-rows: 1fr 1fr;
95
+ grid-auto-flow: row;
96
+ grid-template-columns: auto auto auto auto;
97
+ }
98
+ .right {
99
+ display: grid;
100
+ grid-template-rows: 1fr 1fr;
101
+ gap: 0.25rem 1rem;
102
+ }
103
+ }
104
+ }
105
+ #leaderboardsWrapper #leaderboards {
106
+ .tables table {
107
+ tr td:nth-child(5) {
108
+ display: none;
109
+ }
110
+ }
111
+ }
112
+ }
113
+
114
+ @media only screen and (max-width: 900px) {
115
+ .ad.ad-h {
116
+ display: none;
117
+ }
118
+ .ad.ad-h-s {
119
+ display: grid;
120
+ }
121
+ .profile .pbsWords,
122
+ .profile .pbsTime {
123
+ font-size: 1rem;
124
+ }
125
+ .profile {
126
+ grid-template-columns: 1fr;
127
+ grid-template-rows: auto auto auto;
128
+ grid-template-areas:
129
+ "info"
130
+ "pbsTime"
131
+ "pbsWords";
132
+ .details.soc {
133
+ grid-template-columns: 1.25fr auto 1fr auto auto;
134
+ .typingStats {
135
+ grid-template-columns: 1fr;
136
+ }
137
+ }
138
+ .details.bioAndKey {
139
+ grid-template-columns: 1.25fr auto auto auto 1fr;
140
+ .typingStats {
141
+ grid-template-columns: 1fr;
142
+ }
143
+ }
144
+ .details.both {
145
+ grid-template-columns: 1.25fr auto 1.25fr auto;
146
+ grid-template-areas:
147
+ "avAndName sep2 bioAndKey bioAndKey"
148
+ "typingStats typingStats typingStats socials";
149
+ .sep1,
150
+ .sep3 {
151
+ display: none;
152
+ }
153
+ .typingStats {
154
+ grid-template-columns: 1fr 1fr 1fr;
155
+ width: 100%;
156
+ }
157
+ .socials {
158
+ justify-content: start;
159
+ .title {
160
+ display: block;
161
+ }
162
+ .value {
163
+ grid-auto-flow: column;
164
+ }
165
+ }
166
+ }
167
+ .details.none {
168
+ grid-template-columns: 1fr auto 1fr;
169
+ .typingStats {
170
+ grid-template-columns: 1fr;
171
+ }
172
+ }
173
+ }
174
+ #leaderboards {
175
+ .mainTitle {
176
+ font-size: 1.5rem !important;
177
+ }
178
+ }
179
+ #bannerCenter .banner .container {
180
+ grid-template-columns: 1fr auto;
181
+ .image {
182
+ display: none;
183
+ }
184
+ .lefticon,
185
+ .righticon {
186
+ display: none;
187
+ }
188
+ .text {
189
+ margin-left: 1.5rem;
190
+ text-align: left;
191
+ justify-self: start;
192
+ }
193
+ }
194
+ .merchBanner {
195
+ img {
196
+ display: none;
197
+ }
198
+ .text {
199
+ padding: 0.25rem 0;
200
+ }
201
+ }
202
+ .pageSettings {
203
+ .section.autoSwitchThemeInputs {
204
+ grid-template-columns: 1fr 3fr;
205
+ }
206
+ }
207
+ .pageAccount {
208
+ .group.personalBestTables {
209
+ .tables {
210
+ grid-template-columns: 1fr;
211
+ }
212
+ }
213
+ .group.history {
214
+ table {
215
+ thead,
216
+ tbody {
217
+ td:nth-child(1),
218
+ td:nth-child(8),
219
+ td:nth-child(9) {
220
+ display: none;
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+
228
+ @media only screen and (max-width: 800px) {
229
+ .pageSettings .settingsGroup.quickNav .links {
230
+ grid-auto-flow: unset;
231
+ grid-template-columns: 1fr 1fr 1fr;
232
+ justify-items: center;
233
+ }
234
+ #centerContent {
235
+ #top {
236
+ grid-template-areas:
237
+ "logo config"
238
+ "menu config";
239
+ grid-template-columns: auto auto;
240
+ .logo {
241
+ margin-bottom: 0;
242
+ }
243
+ }
244
+
245
+ #menu {
246
+ gap: 0.5rem;
247
+ font-size: 0.8rem;
248
+ line-height: 0.8rem;
249
+ margin-top: -0.5rem;
250
+
251
+ .textButton {
252
+ padding: 0.25rem;
253
+ }
254
+ }
255
+ }
256
+
257
+ #contactPopupWrapper #contactPopup .buttons {
258
+ grid-template-columns: 1fr;
259
+ }
260
+
261
+ .pageAbout .section {
262
+ .contributors,
263
+ .supporters {
264
+ grid-template-columns: 1fr 1fr 1fr;
265
+ }
266
+ .contactButtons,
267
+ .supportButtons {
268
+ grid-template-columns: 1fr 1fr;
269
+ }
270
+ }
271
+
272
+ .pageSettings .section.customBackgroundFilter {
273
+ .groups {
274
+ grid-template-columns: 1fr;
275
+ }
276
+ .saveContainer {
277
+ grid-column: -1/-2;
278
+ }
279
+ }
280
+
281
+ .pageSettings {
282
+ .section.themes .tabContent.customTheme {
283
+ }
284
+ }
285
+
286
+ #commandLine,
287
+ #commandLineInput {
288
+ width: 600px !important;
289
+ }
290
+ #leaderboardsWrapper {
291
+ #leaderboards {
292
+ .leaderboardsTop {
293
+ flex-direction: column;
294
+ align-items: baseline;
295
+ grid-template-areas:
296
+ "title title"
297
+ "subtitle subtitle"
298
+ "yesterday yesterday"
299
+ "buttons buttons";
300
+ grid-template-columns: 1fr;
301
+ .buttons {
302
+ margin-top: 0.5rem;
303
+ }
304
+ .buttonGroup {
305
+ grid-auto-flow: column;
306
+ }
307
+ .showYesterdayButton {
308
+ margin-left: 0;
309
+ }
310
+ }
311
+ .tables {
312
+ grid-template-columns: unset;
313
+ table {
314
+ .avatarNameBadge .badge .text {
315
+ display: block;
316
+ }
317
+ tr td:last-child {
318
+ width: 30%;
319
+ }
320
+ }
321
+ }
322
+ .tables .rightTableWrapper,
323
+ .tables .leftTableWrapper {
324
+ height: calc(50vh - 10rem);
325
+ }
326
+ }
327
+ }
328
+ }
329
+
330
+ @media only screen and (max-width: 700px) {
331
+ .pageAccount .presetFilterButtons .buttons {
332
+ grid-template-columns: 1fr;
333
+ }
334
+ .pageAccount {
335
+ .triplegroup {
336
+ grid-template-columns: 1fr 1fr;
337
+ .emptygroup {
338
+ display: none;
339
+ }
340
+ }
341
+ .group.chart .below {
342
+ grid-template-columns: 1fr;
343
+ gap: 0.5rem;
344
+ }
345
+ .group.topFilters .buttonsAndTitle .buttons {
346
+ display: grid;
347
+ justify-content: unset;
348
+ }
349
+ .group.history {
350
+ table {
351
+ thead,
352
+ tbody {
353
+ td:nth-child(6) {
354
+ display: none;
355
+ }
356
+ }
357
+ }
358
+ }
359
+ }
360
+ .badge::after,
361
+ .badge::before {
362
+ display: none;
363
+ }
364
+ }
365
+
366
+ @media only screen and (max-width: 650px) {
367
+ .profile {
368
+ grid-template-columns: 1fr;
369
+ grid-template-rows: auto auto auto;
370
+ grid-template-areas:
371
+ "info"
372
+ "pbsTime"
373
+ "pbsWords";
374
+ .details.none {
375
+ grid-template-areas:
376
+ "avAndName"
377
+ "typingStats";
378
+ grid-template-columns: 1fr;
379
+ .separator {
380
+ display: none;
381
+ }
382
+ .typingStats {
383
+ grid-template-columns: 1fr 1fr 1fr;
384
+ }
385
+ }
386
+ .details.bioAndKey {
387
+ grid-template-areas:
388
+ "avAndName bioAndKey"
389
+ "typingStats typingStats";
390
+ grid-template-columns: 1fr 1fr;
391
+ .separator {
392
+ display: none;
393
+ }
394
+ .typingStats {
395
+ grid-template-columns: 1fr 1fr 1fr;
396
+ }
397
+ }
398
+ .details.soc {
399
+ grid-template-areas:
400
+ "avAndName"
401
+ "typingStats"
402
+ "socials";
403
+ grid-template-columns: 1fr;
404
+ .separator {
405
+ display: none;
406
+ }
407
+ .typingStats {
408
+ grid-template-columns: 1fr 1fr 1fr;
409
+ }
410
+ .socials {
411
+ justify-content: start;
412
+ .title {
413
+ display: block;
414
+ }
415
+ .value {
416
+ grid-auto-flow: column;
417
+ }
418
+ }
419
+ }
420
+ .details.both {
421
+ grid-template-areas:
422
+ "avAndName bioAndKey"
423
+ "typingStats typingStats"
424
+ "socials socials";
425
+ grid-template-columns: 1fr 1fr;
426
+ .separator {
427
+ display: none;
428
+ }
429
+ .typingStats {
430
+ grid-template-columns: 1fr 1fr 1fr;
431
+ }
432
+ .socials {
433
+ justify-content: start;
434
+ .title {
435
+ display: block;
436
+ }
437
+ .value {
438
+ grid-auto-flow: column;
439
+ }
440
+ }
441
+ }
442
+ }
443
+ #quoteRatePopup {
444
+ .ratingStats {
445
+ grid-template-columns: 1fr 1fr !important;
446
+ }
447
+ .quote {
448
+ grid-template-areas:
449
+ "text text text"
450
+ "source source source"
451
+ "id length length" !important;
452
+ }
453
+ }
454
+ .pageSettings .section {
455
+ grid-template-columns: 1fr;
456
+ grid-template-areas:
457
+ "title"
458
+ "text"
459
+ "buttons";
460
+
461
+ & > .text {
462
+ margin-bottom: 1rem;
463
+ }
464
+ }
465
+
466
+ #result {
467
+ .buttons {
468
+ grid-template-rows: 1fr 1fr 1fr;
469
+ #nextTestButton {
470
+ grid-column: 1/5;
471
+ width: 100%;
472
+ text-align: center;
473
+ }
474
+ }
475
+ }
476
+
477
+ #supportMe {
478
+ width: 80vw !important;
479
+ .buttons {
480
+ grid-template-columns: none !important;
481
+ .button {
482
+ grid-template-columns: auto 1fr;
483
+ align-items: center;
484
+ .icon {
485
+ font-size: 2rem !important;
486
+ line-height: 2rem !important;
487
+ margin-left: 2rem;
488
+ }
489
+ }
490
+ }
491
+ }
492
+
493
+ .pageSettings .section.fullWidth .buttons {
494
+ grid-template-columns: 1fr 1fr;
495
+ }
496
+ }
497
+
498
+ @media only screen and (max-width: 600px) {
499
+ .pageAbout .section .supporters,
500
+ .pageAbout .section .contributors {
501
+ grid-template-columns: 1fr 1fr;
502
+ }
503
+ #top .logo .bottom {
504
+ margin-top: 0;
505
+ }
506
+ .pageLogin {
507
+ display: grid;
508
+ gap: 5rem;
509
+ grid-auto-flow: unset;
510
+ }
511
+ #middle {
512
+ #result {
513
+ grid-template-areas:
514
+ "stats stats"
515
+ "chart chart"
516
+ "morestats morestats";
517
+ .stats {
518
+ grid-template-areas: "wpm acc";
519
+ gap: 2rem;
520
+ }
521
+ .stats.morestats {
522
+ grid-template-rows: 1fr 1fr 1fr;
523
+ gap: 1rem;
524
+ }
525
+ }
526
+ }
527
+ #leaderboardsWrapper #leaderboards .leaderboardsTop .buttonGroup {
528
+ grid-auto-flow: row;
529
+ }
530
+ #commandLine,
531
+ #commandLineInput {
532
+ width: 500px !important;
533
+ }
534
+ #customTextPopupWrapper {
535
+ #customTextPopup {
536
+ .wordfilter.button {
537
+ width: 100% !important;
538
+ justify-self: auto;
539
+ }
540
+
541
+ .inputs {
542
+ display: flex !important;
543
+ flex-direction: column;
544
+ justify-content: flex-start;
545
+ }
546
+ }
547
+ }
548
+
549
+ .pageAccount {
550
+ .group.history {
551
+ table {
552
+ thead,
553
+ tbody {
554
+ td:nth-child(7),
555
+ td:nth-child(5) {
556
+ display: none;
557
+ }
558
+ }
559
+ }
560
+ }
561
+ }
562
+ }
563
+
564
+ @media only screen and (max-width: 550px) {
565
+ .profile .pbsWords,
566
+ .profile .pbsTime {
567
+ font-size: 0.9rem;
568
+ }
569
+ .profile {
570
+ .pbsWords,
571
+ .pbsTime {
572
+ grid-template-columns: 1fr 1fr;
573
+ }
574
+ .details.none .typingStats {
575
+ grid-template-columns: 1fr;
576
+ }
577
+ .details.bioAndKey {
578
+ grid-template-areas:
579
+ "avAndName"
580
+ "bioAndKey"
581
+ "typingStats";
582
+ grid-template-columns: 1fr;
583
+ .typingStats {
584
+ grid-template-columns: 1fr;
585
+ }
586
+ }
587
+ .details.both {
588
+ grid-template-areas:
589
+ "avAndName"
590
+ "bioAndKey"
591
+ "typingStats"
592
+ "socials";
593
+ grid-template-columns: 1fr;
594
+ .typingStats {
595
+ grid-template-columns: 1fr;
596
+ }
597
+ }
598
+ }
599
+ #cookiePopupWrapper {
600
+ #cookiePopup,
601
+ .extensionMessage {
602
+ right: 1rem;
603
+ bottom: 1rem;
604
+ width: calc(100vw - 2rem);
605
+ }
606
+ }
607
+
608
+ #contactPopupWrapper #contactPopup .buttons .button .text {
609
+ font-size: 1rem;
610
+ }
611
+ #contactPopupWrapper #contactPopup .buttons .button .icon {
612
+ font-size: 1.5rem;
613
+ line-height: 1.5rem;
614
+ }
615
+ #contactPopupWrapper #contactPopup {
616
+ padding: 1rem;
617
+ }
618
+ .pageAbout .section .supporters,
619
+ .pageAbout .section .contributors {
620
+ grid-template-columns: 1fr;
621
+ }
622
+
623
+ #simplePopupWrapper #simplePopup {
624
+ width: 90vw;
625
+ }
626
+
627
+ #quoteReportPopup {
628
+ width: calc(100% - 2rem);
629
+ margin-left: 1rem;
630
+ max-width: 800px;
631
+ padding: 1rem;
632
+ }
633
+
634
+ .pageSettings {
635
+ .settingsGroup.quickNav {
636
+ display: none;
637
+ }
638
+ .section.fullWidth .buttons {
639
+ grid-template-columns: 1fr;
640
+ }
641
+ .section .buttons {
642
+ grid-auto-flow: row;
643
+ }
644
+ .section.customBackgroundFilter .groups .group {
645
+ grid-template-columns: auto 1fr;
646
+ .title {
647
+ grid-column: 1/3;
648
+ }
649
+ }
650
+ }
651
+
652
+ .pageAbout .section {
653
+ .contactButtons,
654
+ .supportButtons {
655
+ grid-template-columns: 1fr;
656
+ }
657
+ }
658
+
659
+ .pageAccount {
660
+ .triplegroup {
661
+ grid-template-columns: 1fr;
662
+ }
663
+ .group.history {
664
+ table {
665
+ thead,
666
+ tbody {
667
+ td:nth-child(3) {
668
+ display: none;
669
+ }
670
+ }
671
+ }
672
+ }
673
+ }
674
+
675
+ #top {
676
+ align-items: self-end;
677
+ .logo {
678
+ .icon {
679
+ width: 1.5rem !important;
680
+ }
681
+ .text {
682
+ font-size: 1.5rem !important;
683
+ margin-bottom: 0.3rem !important;
684
+ }
685
+ .bottom {
686
+ font-size: 1.75rem;
687
+ line-height: 1.75rem;
688
+ margin-top: 0;
689
+ }
690
+ .top {
691
+ display: none;
692
+ }
693
+ }
694
+ #menu {
695
+ .textButton {
696
+ padding: 0;
697
+ }
698
+ }
699
+ }
700
+ #bottom {
701
+ .leftright {
702
+ .left {
703
+ gap: 0.25rem 1rem;
704
+ display: grid;
705
+ grid-template-rows: 1fr 1fr 1fr;
706
+ grid-template-columns: auto auto auto;
707
+ grid-auto-flow: row;
708
+ }
709
+ .right {
710
+ display: grid;
711
+ grid-template-rows: 1fr 1fr 1fr;
712
+ gap: 0.25rem 1rem;
713
+ }
714
+ }
715
+ }
716
+ #centerContent {
717
+ #top {
718
+ grid-template-columns: 1fr auto;
719
+ .desktopConfig {
720
+ display: none;
721
+ }
722
+ .mobileConfig {
723
+ display: block;
724
+ }
725
+ }
726
+ padding: 1rem;
727
+ }
728
+ #middle {
729
+ #result {
730
+ .stats {
731
+ grid-template-areas:
732
+ "wpm"
733
+ "acc";
734
+ gap: 1rem;
735
+ }
736
+ }
737
+ }
738
+ #result {
739
+ .buttons {
740
+ grid-template-rows: 1fr 1fr 1fr 1fr;
741
+ #nextTestButton {
742
+ grid-column: 1/3;
743
+ width: 100%;
744
+ text-align: center;
745
+ }
746
+ }
747
+ }
748
+ #commandLine,
749
+ #commandLineInput {
750
+ width: 400px !important;
751
+ }
752
+ #leaderboardsWrapper #leaderboards {
753
+ width: 85vw;
754
+ .tables .rightTableWrapper,
755
+ .tables .leftTableWrapper {
756
+ height: calc(50vh - 10rem);
757
+ }
758
+ .tables {
759
+ grid-template-columns: unset;
760
+ table {
761
+ .avatarNameBadge .badge .text {
762
+ display: block;
763
+ }
764
+ tr td:nth-child(4) {
765
+ display: none;
766
+ }
767
+ }
768
+ }
769
+ }
770
+ }
771
+
772
+ @media only screen and (max-width: 400px) {
773
+ #top .config {
774
+ grid-gap: 0.25rem;
775
+ .group .buttons {
776
+ font-size: 0.65rem;
777
+ line-height: 0.65rem;
778
+ }
779
+ }
780
+
781
+ #bottom {
782
+ font-size: 0.65rem;
783
+ .leftright {
784
+ grid-template-columns: 1fr 1fr;
785
+ .left {
786
+ grid-template-rows: 1fr 1fr 1fr 1fr;
787
+ grid-template-columns: 1fr 1fr;
788
+ grid-auto-flow: row;
789
+ }
790
+ .right {
791
+ grid-template-rows: 1fr 1fr 1fr 1fr;
792
+ gap: 0.25rem 1rem;
793
+ }
794
+ }
795
+ }
796
+
797
+ #commandLine,
798
+ #commandLineInput {
799
+ width: 300px !important;
800
+ }
801
+ #leaderboardsWrapper #leaderboards {
802
+ .tables .titleAndTable .titleAndButtons {
803
+ grid-template-columns: unset;
804
+ }
805
+ .tables table {
806
+ tr td:first-child {
807
+ padding-left: 0.25rem;
808
+ }
809
+ tr td:last-child {
810
+ padding-right: 0.25rem;
811
+ }
812
+ td {
813
+ padding: 0.25rem;
814
+ }
815
+ }
816
+ .tables .rightTableWrapper,
817
+ .tables .leftTableWrapper {
818
+ height: calc(50vh - 9rem);
819
+ }
820
+ }
821
+ }
822
+
823
+ @media only screen and (max-width: 350px) {
824
+ .ad.ad-h-s {
825
+ display: none;
826
+ }
827
+ .pageLogin .side input {
828
+ width: 90vw;
829
+ }
830
+ .page404 {
831
+ .content {
832
+ width: 100%;
833
+ .image {
834
+ width: 100%;
835
+ }
836
+ .big {
837
+ font-size: 7rem;
838
+ line-height: 7rem;
839
+ }
840
+ }
841
+ }
842
+ }
843
+
844
+ @media (hover: none) and (pointer: coarse) {
845
+ #commandLineMobileButton {
846
+ display: block !important;
847
+ }
848
+ }