@arcade-v/arcade_v 0.1.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.
- package/.gitlab-ci.yml +14 -0
- package/README.md +105 -0
- package/navigation/customization.js +218 -0
- package/navigation/games/apps.html +63 -0
- package/navigation/games/apps.json +125 -0
- package/navigation/games/games.html +57 -0
- package/navigation/games/games.js +177 -0
- package/navigation/games/games.json +3462 -0
- package/navigation/home.html +163 -0
- package/navigation/home.js +90 -0
- package/navigation/search.js +13 -0
- package/navigation/settings.html +91 -0
- package/navigation/style.css +317 -0
- package/package.json +10 -0
package/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# This file is a template, and might need editing before it works on your project.
|
|
2
|
+
# Full project: https://gitlab.com/pages/plain-html
|
|
3
|
+
|
|
4
|
+
image: busybox
|
|
5
|
+
|
|
6
|
+
pages:
|
|
7
|
+
stage: deploy
|
|
8
|
+
script:
|
|
9
|
+
- echo "The site will be deployed to $CI_PAGES_URL"
|
|
10
|
+
artifacts:
|
|
11
|
+
paths:
|
|
12
|
+
- public
|
|
13
|
+
rules:
|
|
14
|
+
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
package/README.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<a href="https://gitlab.com/arcade_v/arcade_v/" target="_blank">
|
|
3
|
+
<img src="https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/backgrounds/arcade_v_title.png"
|
|
4
|
+
alt="title"
|
|
5
|
+
</a>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
**Arcade V** is a web-based collection of classic and modern browser games, designed to be easily hosted and customizable.
|
|
9
|
+
|
|
10
|
+
## How to Use the Site
|
|
11
|
+
Click a couple of times, then enter the site’s entry code (**Z, M, G** by default) in order — not all at once — and the games should load.
|
|
12
|
+
|
|
13
|
+
## Hosting the site
|
|
14
|
+
|
|
15
|
+
1. Copy **any** of the HTML files from the `loadsite` folder.
|
|
16
|
+
- Each one has a different disguise but all should load the games once the entry code is entered.
|
|
17
|
+
2. Locate this function in the code:
|
|
18
|
+
|
|
19
|
+
```js
|
|
20
|
+
enableSecretLetterCode("Z", "M", "G");
|
|
21
|
+
3. You can replace the letters in the function to change the entry code.
|
|
22
|
+
4. Paste the code into any website builder with an HTML embed, such as:
|
|
23
|
+
- [Google Sites](https://sites.google.com)
|
|
24
|
+
- [Weebly](https://www.weebly.com/)
|
|
25
|
+
- [Tiiny.host](https://Tiiny.host)
|
|
26
|
+
|
|
27
|
+
## Demo Links
|
|
28
|
+
It is **heavily recommended** you host your own with the previously mentioned instructions
|
|
29
|
+
- [https://sites.google.com/view/fractions-are-cool/home](https://sites.google.com/view/fractions-are-cool/home)
|
|
30
|
+
- [https://sites.google.com/view/parts-of-a-cell/home](https://sites.google.com/view/parts-of-a-cell/home)
|
|
31
|
+
- [https://sites.google.com/view/multiplication-tables-27/home](https://sites.google.com/view/multiplication-tables-27/home)
|
|
32
|
+
- [https://sites.google.com/view/the-water-cycle-abc/the-water-cycle](https://sites.google.com/view/the-water-cycle-abc/the-water-cycle)
|
|
33
|
+
- [https://sites.google.com/view/negative-numbers/negative-numbers](https://sites.google.com/view/negative-numbers/negative-numbers)
|
|
34
|
+
- [https://sites.google.com/view/interactive-geometry-quiz/interactive-geometry-quiz](https://sites.google.com/view/interactive-geometry-quiz/interactive-geometry-quiz)
|
|
35
|
+
- [https://sites.google.com/view/chemical-reactions-2025/chemical-reactions](https://sites.google.com/view/chemical-reactions-2025/chemical-reactions)
|
|
36
|
+
|
|
37
|
+
## Credits
|
|
38
|
+
- [0014049](https://scratch.mit.edu/users/0014049/)
|
|
39
|
+
- [123CCODER](https://scratch.mit.edu/users/123CCODER/)
|
|
40
|
+
- [1dat_doodles](https://scratch.mit.edu/users/1dat_doodles/)
|
|
41
|
+
- [a456pur](https://github.com/a456pur)
|
|
42
|
+
- [Aaronhoffer](https://scratch.mit.edu/users/Aaronhoffer/)
|
|
43
|
+
- [Alphabetica](https://scratch.mit.edu/users/Alphabetica/)
|
|
44
|
+
- [nonygoose](https://penguinmod.com/profile?user=anonygoose)
|
|
45
|
+
- [ArnoHu](https://scratch.mit.edu/users/ArnoHu/)
|
|
46
|
+
- [Awesome-llama](https://scratch.mit.edu/users/Awesome-llama/)
|
|
47
|
+
- [Beagle_12](https://scratch.mit.edu/users/Beagle_12/)
|
|
48
|
+
- [Burnedpopcorn](https://github.com/burnedpopcorn)
|
|
49
|
+
- [c1tcher](https://github.com/waycrosspublicmedia)
|
|
50
|
+
- [Chipm0nk](https://scratch.mit.edu/users/Chipm0nk/)
|
|
51
|
+
- [ChuckSploder](https://scratch.mit.edu/users/ChuckSploder/)
|
|
52
|
+
- [cloter](https://scratch.mit.edu/users/cloter/)
|
|
53
|
+
- [Colinmacc](https://scratch.mit.edu/users/Colinmacc/)
|
|
54
|
+
- [Coltroc](https://scratch.mit.edu/users/Coltroc/)
|
|
55
|
+
- [Corbin](https://98cornbin.netlify.app/)
|
|
56
|
+
- [CrystalKeeper7](https://scratch.mit.edu/users/CrystalKeeper7/)
|
|
57
|
+
- [David_783576](https://scratch.mit.edu/users/David_783576/)
|
|
58
|
+
- [Demonic_Chicken](https://scratch.mit.edu/users/Demonic_Chicken/)
|
|
59
|
+
- [Dillyd](https://scratch.mit.edu/users/Dillyd/)
|
|
60
|
+
- [Dixiklo](https://scratch.mit.edu/users/Dixiklo/)
|
|
61
|
+
- [DomPizzie](https://github.com/DomPizzie)
|
|
62
|
+
- [Donsje_Partner](https://scratch.mit.edu/users/Donsje_Partner/)
|
|
63
|
+
- [Dragon Field](https://scratch.mit.edu/users/DragonField-/)
|
|
64
|
+
- [FieryChicken](https://scratch.mit.edu/users/FieryChicken/)
|
|
65
|
+
- [FreNZyFIRE](https://scratch.mit.edu/users/FreNZyFIRE/)
|
|
66
|
+
- [Fygar](https://scratch.mit.edu/users/Fygar/)
|
|
67
|
+
- [Genizy](https://github.com/genizy)
|
|
68
|
+
- [Ggenije](https://scratch.mit.edu/users/Ggenije/)
|
|
69
|
+
- [Gherwit](https://scratch.mit.edu/users/Gherwit/)
|
|
70
|
+
- [GonSanVi](https://scratch.mit.edu/users/GonSanVi/)
|
|
71
|
+
- [Griffpatch](https://scratch.mit.edu/users/Griffpatch/)
|
|
72
|
+
- [guiles](https://scratch.mit.edu/users/guiles/)
|
|
73
|
+
- [Hockeeypro18](https://scratch.mit.edu/users/Hockeeypro18/)
|
|
74
|
+
- [Irv77](https://github.com/irv77)
|
|
75
|
+
- [JloAu](https://scratch.mit.edu/users/JloAu/)
|
|
76
|
+
- [JYg3_](https://scratch.mit.edu/users/JYg3_/)
|
|
77
|
+
- [Kabez](https://scratch.mit.edu/users/Kabez/)
|
|
78
|
+
- [Katana_Gaming](https://scratch.mit.edu/users/Katana_Gaming/)
|
|
79
|
+
- [Kevin_eleven_1234](https://scratch.mit.edu/users/Kevin_eleven_1234/)
|
|
80
|
+
- [LogicEverybody](https://scratch.mit.edu/users/LogicEverybody/)
|
|
81
|
+
- [Man-o-valor](https://scratch.mit.edu/users/Man-o-valor/)
|
|
82
|
+
- [Mariokenta](https://scratch.mit.edu/users/Mariokenta/)
|
|
83
|
+
- [Multinia](https://scratch.mit.edu/users/Multinia/)
|
|
84
|
+
- [mvbit](https://penguinmod.com/profile?user=mvbit)
|
|
85
|
+
- [Njdavison](https://scratch.mit.edu/users/Njdavison/)
|
|
86
|
+
- [Pacmanfan1112](https://scratch.mit.edu/users/Pacmanfan1112/)
|
|
87
|
+
- [Platform_maker444](https://scratch.mit.edu/users/Platform_maker444/)
|
|
88
|
+
- [Polkmnq6](https://scratch.mit.edu/users/Polkmnq6/)
|
|
89
|
+
- [Pyroaura](https://scratch.mit.edu/users/Pyroaura/)
|
|
90
|
+
- [quadrupleslap](https://scratch.mit.edu/users/quadrupleslap/)
|
|
91
|
+
- [RADICALBLAST](https://scratch.mit.edu/users/RADICALBLAST/)
|
|
92
|
+
- [RokCoder](https://scratch.mit.edu/users/RokCoder/)
|
|
93
|
+
- [SlenTheOoof](https://scratch.mit.edu/users/SlenTheOoof/)
|
|
94
|
+
- [SolarCode](https://scratch.mit.edu/users/SolarCode/)
|
|
95
|
+
- [Super_Chicken_Llama](https://scratch.mit.edu/users/Super_Chicken_Llama/)
|
|
96
|
+
- [theChAOTiC](https://scratch.mit.edu/users/theChAOTiC/)
|
|
97
|
+
- [TheTrendyToad](https://scratch.mit.edu/users/TheTrendyToad/)
|
|
98
|
+
- [TimMcCool](https://scratch.mit.edu/users/TimMcCool/)
|
|
99
|
+
- [twoplayergames.org](https://twoplayergames.org)
|
|
100
|
+
- [UrkiMimi](https://penguinmod.com/profile?user=urkimimi)
|
|
101
|
+
- [VinCrafts](https://scratch.mit.edu/users/VinCrafts/)
|
|
102
|
+
- [Vino11](https://scratch.mit.edu/users/Vino11/)
|
|
103
|
+
- [Yoshihome](https://scratch.mit.edu/users/Yoshihome/)
|
|
104
|
+
- [YousefIbrahimismail](https://github.com/YousefIbrahimismail)
|
|
105
|
+
- [Zaire](https://scratch.mit.edu/users/-Zaire-/)
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
function changeFavicon(src) {
|
|
2
|
+
const oldLink = document.getElementById('dynamic-favicon');
|
|
3
|
+
if (oldLink && oldLink.parentNode === document.head) {
|
|
4
|
+
try {
|
|
5
|
+
document.head.removeChild(oldLink);
|
|
6
|
+
} catch (error) {
|
|
7
|
+
console.warn('Failed to remove old favicon:', error);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const link = document.createElement('link');
|
|
12
|
+
link.id = 'dynamic-favicon';
|
|
13
|
+
link.rel = 'icon';
|
|
14
|
+
link.href = src + '?v=' + new Date().getTime(); // prevent caching
|
|
15
|
+
document.head.appendChild(link);
|
|
16
|
+
|
|
17
|
+
localStorage.setItem('faviconSrc', src);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function changeTitle(title) {
|
|
21
|
+
document.title = title;
|
|
22
|
+
localStorage.setItem('pageTitle', title);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function cloakpage(title, src) {
|
|
26
|
+
changeTitle(title);
|
|
27
|
+
changeFavicon(src);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function changetheme(src) {
|
|
31
|
+
document.body.style.backgroundImage = `url('${src}')`;
|
|
32
|
+
const navbar = document.querySelector('.navbar');
|
|
33
|
+
if (navbar) {
|
|
34
|
+
navbar.style.backgroundImage = `url('${src}')`;
|
|
35
|
+
}
|
|
36
|
+
const dropdownContent = document.querySelector('.dropdown-content');
|
|
37
|
+
if (dropdownContent) {
|
|
38
|
+
dropdownContent.style.backgroundImage = `url('${src}')`;
|
|
39
|
+
}
|
|
40
|
+
localStorage.setItem('themeBg', src);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function changeFont(font) {
|
|
44
|
+
document.body.style.fontFamily = font;
|
|
45
|
+
localStorage.setItem('userFont', font);
|
|
46
|
+
document.querySelectorAll('select').forEach(select => {
|
|
47
|
+
select.style.fontFamily = font;
|
|
48
|
+
});
|
|
49
|
+
const searchBar = document.getElementById('searchBar');
|
|
50
|
+
if (searchBar) {
|
|
51
|
+
searchBar.style.fontFamily = font;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function changeTextColor(color) {
|
|
56
|
+
// Remove previous style block if it exists
|
|
57
|
+
const oldStyle = document.getElementById('normal-text-style');
|
|
58
|
+
if (oldStyle) oldStyle.remove();
|
|
59
|
+
|
|
60
|
+
// Create new style for normal text + pagination + paragraphs
|
|
61
|
+
const style = document.createElement('style');
|
|
62
|
+
style.id = 'normal-text-style';
|
|
63
|
+
style.innerHTML = `
|
|
64
|
+
body,
|
|
65
|
+
select,
|
|
66
|
+
li a:not(.active),
|
|
67
|
+
#searchBar:not(:focus),
|
|
68
|
+
.game-title,
|
|
69
|
+
p,
|
|
70
|
+
.pagination button {
|
|
71
|
+
color: ${color} !important;
|
|
72
|
+
}
|
|
73
|
+
`;
|
|
74
|
+
document.head.appendChild(style);
|
|
75
|
+
|
|
76
|
+
// Dynamically update outlines ONLY if they are not transparent or none
|
|
77
|
+
document.querySelectorAll('*').forEach(el => {
|
|
78
|
+
const computedStyle = window.getComputedStyle(el);
|
|
79
|
+
const outlineColor = computedStyle.outlineColor;
|
|
80
|
+
const outlineStyle = computedStyle.outlineStyle;
|
|
81
|
+
|
|
82
|
+
// Check if outline exists and is not transparent or "none"
|
|
83
|
+
if (
|
|
84
|
+
outlineStyle !== 'none' &&
|
|
85
|
+
outlineColor !== 'rgba(0, 0, 0, 0)' && // transparent
|
|
86
|
+
outlineColor !== 'transparent'
|
|
87
|
+
) {
|
|
88
|
+
el.style.outlineColor = color;
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// Save to localStorage for persistence
|
|
93
|
+
localStorage.setItem('textColor', color);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
function changeSelectedTextColor(color) {
|
|
99
|
+
// Remove previous dynamic style if any
|
|
100
|
+
const oldStyle = document.getElementById('selected-text-style');
|
|
101
|
+
if (oldStyle) oldStyle.remove();
|
|
102
|
+
|
|
103
|
+
const style = document.createElement('style');
|
|
104
|
+
style.id = 'selected-text-style';
|
|
105
|
+
style.innerHTML = `
|
|
106
|
+
::selection {
|
|
107
|
+
background: #333;
|
|
108
|
+
color: ${color};
|
|
109
|
+
}
|
|
110
|
+
`;
|
|
111
|
+
document.head.appendChild(style);
|
|
112
|
+
localStorage.setItem('selectedTextColor', color);
|
|
113
|
+
}
|
|
114
|
+
function changeFocusTextColor(color) {
|
|
115
|
+
const oldStyle = document.getElementById('focus-text-style');
|
|
116
|
+
if (oldStyle) oldStyle.remove();
|
|
117
|
+
|
|
118
|
+
const style = document.createElement('style');
|
|
119
|
+
style.id = 'focus-text-style';
|
|
120
|
+
style.innerHTML = `
|
|
121
|
+
input:focus,
|
|
122
|
+
select:focus,
|
|
123
|
+
textarea:focus {
|
|
124
|
+
color: ${color};
|
|
125
|
+
border-color: ${color};
|
|
126
|
+
}
|
|
127
|
+
`;
|
|
128
|
+
document.head.appendChild(style);
|
|
129
|
+
}
|
|
130
|
+
function changeActiveTextColor(color) {
|
|
131
|
+
// Remove old active text color style if any
|
|
132
|
+
const oldStyle = document.getElementById('active-text-style');
|
|
133
|
+
if (oldStyle) oldStyle.remove();
|
|
134
|
+
|
|
135
|
+
const style = document.createElement('style');
|
|
136
|
+
style.id = 'active-text-style';
|
|
137
|
+
style.innerHTML = `
|
|
138
|
+
li a.active {
|
|
139
|
+
color: ${color} !important;
|
|
140
|
+
}
|
|
141
|
+
`;
|
|
142
|
+
document.head.appendChild(style);
|
|
143
|
+
localStorage.setItem('activeTextColor', color);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function resetToDefault() {
|
|
147
|
+
// Clear localStorage
|
|
148
|
+
localStorage.removeItem('faviconSrc');
|
|
149
|
+
localStorage.removeItem('pageTitle');
|
|
150
|
+
localStorage.removeItem('themeBg');
|
|
151
|
+
localStorage.removeItem('userFont');
|
|
152
|
+
localStorage.removeItem('textColor');
|
|
153
|
+
localStorage.removeItem('selectedTextColor');
|
|
154
|
+
localStorage.removeItem('activeTextColor');
|
|
155
|
+
|
|
156
|
+
// Reset Favicon & Title
|
|
157
|
+
changeFavicon('https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/favicon/logo.png');
|
|
158
|
+
changeTitle('Arcade 4');
|
|
159
|
+
|
|
160
|
+
// Reset Theme
|
|
161
|
+
changetheme('https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/backgrounds/void_theme.png');
|
|
162
|
+
|
|
163
|
+
// Reset Font
|
|
164
|
+
changeFont('Pixelify Sans, sans-serif');
|
|
165
|
+
|
|
166
|
+
// Reset Normal Text Color
|
|
167
|
+
changeTextColor('#ffffff');
|
|
168
|
+
const picker1 = document.getElementById('textColorPicker1');
|
|
169
|
+
if (picker1) picker1.value = '#ffffff';
|
|
170
|
+
|
|
171
|
+
// Reset Selected/Focus/Active Text Color
|
|
172
|
+
changeSelectedTextColor('#7F00FF');
|
|
173
|
+
changeFocusTextColor('#7F00FF');
|
|
174
|
+
changeActiveTextColor('#7F00FF');
|
|
175
|
+
const picker2 = document.getElementById('textColorPicker2');
|
|
176
|
+
if (picker2) picker2.value = '#7F00FF';
|
|
177
|
+
|
|
178
|
+
// Reset dropdown selections
|
|
179
|
+
document.getElementById('cloakDropdown').selectedIndex = 0;
|
|
180
|
+
document.getElementById('backgroundDropdown').selectedIndex = 0;
|
|
181
|
+
document.getElementById('fontDropdown').selectedIndex = 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
// On page load
|
|
187
|
+
const stylesheet = document.createElement("link");
|
|
188
|
+
stylesheet.rel = "stylesheet";
|
|
189
|
+
stylesheet.type = "text/css";
|
|
190
|
+
stylesheet.href = "https://fonts.googleapis.com/css2?family=Pixelify+Sans&family=Comic+Neue&family=Courier+Prime&family=Press+Start+2P&family=VT323&family=Orbitron:wght@400;700&family=Roboto:wght@400;700&family=Open+Sans:wght@400;700&family=Patrick+Hand&family=Russo+One&display=swap";
|
|
191
|
+
document.head.appendChild(stylesheet);
|
|
192
|
+
const savedTheme = localStorage.getItem('themeBg');
|
|
193
|
+
if (savedTheme) changetheme(savedTheme);
|
|
194
|
+
|
|
195
|
+
const savedTitle = localStorage.getItem('pageTitle');
|
|
196
|
+
if (savedTitle) document.title = savedTitle;
|
|
197
|
+
|
|
198
|
+
const savedFavicon = localStorage.getItem('faviconSrc');
|
|
199
|
+
if (savedFavicon) changeFavicon(savedFavicon);
|
|
200
|
+
|
|
201
|
+
const savedFont = localStorage.getItem('userFont');
|
|
202
|
+
if (savedFont) changeFont(savedFont);
|
|
203
|
+
|
|
204
|
+
const savedColor = localStorage.getItem('textColor');
|
|
205
|
+
if (savedColor) {
|
|
206
|
+
changeTextColor(savedColor);
|
|
207
|
+
const picker1 = document.getElementById('textColorPicker1');
|
|
208
|
+
if (picker1) picker1.value = savedColor;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const selectedTextColor = localStorage.getItem('selectedTextColor');
|
|
212
|
+
if (selectedTextColor) {
|
|
213
|
+
changeSelectedTextColor(selectedTextColor);
|
|
214
|
+
changeFocusTextColor(selectedTextColor);
|
|
215
|
+
changeActiveTextColor(selectedTextColor);
|
|
216
|
+
const picker2 = document.getElementById('textColorPicker2');
|
|
217
|
+
if (picker2) picker2.value = selectedTextColor;
|
|
218
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
|
|
7
|
+
<!-- Google Fonts -->
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
11
|
+
<link href="https://fonts.googleapis.com/css?family=Pixelify+Sans" rel="stylesheet">
|
|
12
|
+
<link href="https://fonts.googleapis.com/css2?family=Pixelify+Sans&family=Comic+Neue&family=Courier+Prime&family=Press+Start+2P&family=VT323&family=Orbitron:wght@400;700&family=Roboto:wght@400;700&family=Open+Sans:wght@400;700&family=Patrick+Hand&family=Russo+One&display=swap" rel="stylesheet"/>
|
|
13
|
+
|
|
14
|
+
<style>
|
|
15
|
+
/* Hides the dropdown completely */
|
|
16
|
+
#categorySelect {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
</style>
|
|
20
|
+
</head>
|
|
21
|
+
|
|
22
|
+
<body data-json="https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4@f50fae4/navigation/games/apps.json">
|
|
23
|
+
|
|
24
|
+
<!-- Search -->
|
|
25
|
+
<div class="search-container">
|
|
26
|
+
<input type="text" id="searchBar" placeholder="Search games..." oninput="applyFilters()">
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<label style="margin-left: 15px;">
|
|
30
|
+
<input type="checkbox" id="showFavorites" onchange="applyFilters()"> Show Favorites Only
|
|
31
|
+
</label>
|
|
32
|
+
|
|
33
|
+
<!-- Category + Favorites Filter -->
|
|
34
|
+
<div class="category-container">
|
|
35
|
+
<select id="categorySelect" onchange="applyFilters()">
|
|
36
|
+
<option value="All">All</option>
|
|
37
|
+
<option value="Popular">Popular</option>
|
|
38
|
+
<option value="New">New</option>
|
|
39
|
+
<option value="2D">2D</option>
|
|
40
|
+
<option value="3D">3D</option>
|
|
41
|
+
<option value="Flash">Flash</option>
|
|
42
|
+
<option value="Idle">Idle</option>
|
|
43
|
+
<option value="Mobile">Mobile</option>
|
|
44
|
+
<option value="Multi Player">Multi Player</option>
|
|
45
|
+
<option value="One Button">One Button</option>
|
|
46
|
+
<option value="Platformer">Platformer</option>
|
|
47
|
+
<option value="Puzzle">Puzzle</option>
|
|
48
|
+
<option value="Retro">Retro</option>
|
|
49
|
+
<option value="Rhythm">Rhythm</option>
|
|
50
|
+
<option value="Shooter">Shooter</option>
|
|
51
|
+
<option value="Sports">Sports</option>
|
|
52
|
+
<option value="Tower Defence">Tower Defence</option>
|
|
53
|
+
</select>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<!-- Game Cards -->
|
|
57
|
+
<div id="gameButtons" class="game-buttons-container"></div>
|
|
58
|
+
|
|
59
|
+
<!-- Pagination Controls -->
|
|
60
|
+
<div class="pagination" id="paginationControls"></div>
|
|
61
|
+
|
|
62
|
+
</body>
|
|
63
|
+
</html>
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"title": "Request a Feature",
|
|
4
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/request.jpg",
|
|
5
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games@main/apps/request.html",
|
|
6
|
+
"category": [
|
|
7
|
+
"Uncategorized"
|
|
8
|
+
],
|
|
9
|
+
"mode": "A"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"title": "EmulatorJS",
|
|
13
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/emulatorjs.png",
|
|
14
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games@main/apps/EmulatorJS.html",
|
|
15
|
+
"category": [
|
|
16
|
+
"App"
|
|
17
|
+
],
|
|
18
|
+
"mode": "A"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"title": "Espresso",
|
|
22
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/espresso.svg",
|
|
23
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/espresso.html",
|
|
24
|
+
"category": [
|
|
25
|
+
"App"
|
|
26
|
+
],
|
|
27
|
+
"mode": "A"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"title": "Get More Math!",
|
|
31
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/get_more_math.png",
|
|
32
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/get_more_math.html",
|
|
33
|
+
"category": [
|
|
34
|
+
"App"
|
|
35
|
+
],
|
|
36
|
+
"mode": "A"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"title": "Ghostery Search",
|
|
40
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/ghosterysearch.svg",
|
|
41
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/ghosterysearch_2.html",
|
|
42
|
+
"category": [
|
|
43
|
+
"App"
|
|
44
|
+
],
|
|
45
|
+
"mode": "A"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"title": "Ruffle",
|
|
49
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/ruffle.avif",
|
|
50
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/ruffle.html",
|
|
51
|
+
"category": [
|
|
52
|
+
"App"
|
|
53
|
+
],
|
|
54
|
+
"mode": "A"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"title": "Scratch Loader GX",
|
|
58
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/scratchloadergx.svg",
|
|
59
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/scratchloadergx.html",
|
|
60
|
+
"category": [
|
|
61
|
+
"App"
|
|
62
|
+
],
|
|
63
|
+
"mode": "A"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"title": "Spotify",
|
|
67
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/spotify.png",
|
|
68
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-games@main/apps/spotify/index.html",
|
|
69
|
+
"category": [
|
|
70
|
+
"App"
|
|
71
|
+
],
|
|
72
|
+
"mode": "A",
|
|
73
|
+
"functions": [
|
|
74
|
+
{
|
|
75
|
+
"name": "handleGameClick",
|
|
76
|
+
"params": [
|
|
77
|
+
"https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-games@main/apps/spotify/index.html",
|
|
78
|
+
"B"
|
|
79
|
+
]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "appendScript",
|
|
83
|
+
"params": [
|
|
84
|
+
"https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-games@3d1f72d/apps/spotify/scripts.js"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"title": "Time Vortex",
|
|
91
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/time_vortex.png",
|
|
92
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/time_vortex.html",
|
|
93
|
+
"category": [
|
|
94
|
+
"App"
|
|
95
|
+
],
|
|
96
|
+
"mode": "A"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"title": "Wayground",
|
|
100
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/wayground.png",
|
|
101
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/wayground.html",
|
|
102
|
+
"category": [
|
|
103
|
+
"App"
|
|
104
|
+
],
|
|
105
|
+
"mode": "A"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"title": "Wikipedia",
|
|
109
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/Wikipedia.png",
|
|
110
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-Games/apps/wikipedia_2.html",
|
|
111
|
+
"category": [
|
|
112
|
+
"App"
|
|
113
|
+
],
|
|
114
|
+
"mode": "A"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"title": "YouTube",
|
|
118
|
+
"image": "https://gitlab.com/arcade_v/arcade_v_images/-/raw/main/apps/youtube.jpg",
|
|
119
|
+
"url": "https://cdn.jsdelivr.net/gh/FutureElliotto/Arcade-4-games/apps/youtube/index.html",
|
|
120
|
+
"category": [
|
|
121
|
+
"App"
|
|
122
|
+
],
|
|
123
|
+
"mode": "A"
|
|
124
|
+
}
|
|
125
|
+
]
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
|
|
7
|
+
<!-- Google Fonts -->
|
|
8
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
9
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
10
|
+
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
11
|
+
<link href="https://fonts.googleapis.com/css?family=Pixelify+Sans" rel="stylesheet">
|
|
12
|
+
<link href="https://fonts.googleapis.com/css2?family=Pixelify+Sans&family=Comic+Neue&family=Courier+Prime&family=Press+Start+2P&family=VT323&family=Orbitron:wght@400;700&family=Roboto:wght@400;700&family=Open+Sans:wght@400;700&family=Patrick+Hand&family=Russo+One&display=swap" rel="stylesheet"/>
|
|
13
|
+
</head>
|
|
14
|
+
<body>
|
|
15
|
+
|
|
16
|
+
<!-- Search -->
|
|
17
|
+
<div class="search-container">
|
|
18
|
+
<input type="text" id="searchBar" placeholder="Search games..." oninput="applyFilters()">
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
<!-- Category + Favorites Filter -->
|
|
22
|
+
<div class="category-container">
|
|
23
|
+
<select id="categorySelect" onchange="applyFilters()">
|
|
24
|
+
<option value="All">All</option>
|
|
25
|
+
<option value="Popular">Popular</option>
|
|
26
|
+
<option value="New">New</option>
|
|
27
|
+
<option value="2D">2D</option>
|
|
28
|
+
<option value="3D">3D</option>
|
|
29
|
+
<option value="Flash">Flash</option>
|
|
30
|
+
<option value="Horror">Horror</option>
|
|
31
|
+
<option value="Idle">Idle</option>
|
|
32
|
+
<option value="Mobile">Mobile</option>
|
|
33
|
+
<option value="Multi Player">Multi Player</option>
|
|
34
|
+
<option value="One Button">One Button</option>
|
|
35
|
+
<option value="Platformer">Platformer</option>
|
|
36
|
+
<option value="Puzzle">Puzzle</option>
|
|
37
|
+
<option value="Retro">Retro</option>
|
|
38
|
+
<option value="Rhythm">Rhythm</option>
|
|
39
|
+
<option value="RPG">RPG</option>
|
|
40
|
+
<option value="Shooter">Shooter</option>
|
|
41
|
+
<option value="Sports">Sports</option>
|
|
42
|
+
<option value="Tower Defence">Tower Defence</option>
|
|
43
|
+
</select>
|
|
44
|
+
|
|
45
|
+
<label style="margin-left: 15px;">
|
|
46
|
+
<input type="checkbox" id="showFavorites" onchange="applyFilters()"> Show Favorites Only
|
|
47
|
+
</label>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<!-- Game Cards -->
|
|
51
|
+
<div id="gameButtons" class="game-buttons-container"></div>
|
|
52
|
+
|
|
53
|
+
<!-- Pagination Controls -->
|
|
54
|
+
<div class="pagination" id="paginationControls"></div>
|
|
55
|
+
|
|
56
|
+
</body>
|
|
57
|
+
</html>
|