Compare commits

9 Commits

Author SHA1 Message Date
sky
b6c7d612a4 bookmarklets page, apps, info/credits, other misc 2025-08-12 14:15:49 -04:00
sky
0c2d272068 music control 2025-07-10 04:55:35 -04:00
sky
ac323c1289 mostly finish custom music 2025-07-09 02:36:02 -04:00
sky
a698f941d8 finish up profiles, begin custom songs 2025-07-08 22:01:44 -04:00
sky
c8d3d0d50c themes + begin user pages 2025-07-08 00:25:44 -04:00
sky
aa4bb69786 add stars 2025-07-07 19:44:08 -04:00
sky
e11d48d181 fix new resources 2025-06-30 03:22:29 -04:00
sky
5d0a1b87df some fuckery to get dev branch working 2025-06-22 11:53:54 -04:00
sky
c34e53111c first dev commit 2025-06-22 11:51:44 -04:00
125 changed files with 1996 additions and 4950 deletions

1
.gitignore vendored Normal file → Executable file
View File

@ -0,0 +1 @@
resources/

4
.prettierrc Normal file
View File

@ -0,0 +1,4 @@
{
"tabWidth": 4,
"printWidth": 10000
}

33
404.html Normal file → Executable file
View File

@ -32,9 +32,16 @@
<!-- toastify -->
<script>
if(document.href.contains("eg1.8") || document.href.contains("eaglercraft")) {
document.href = "/semag/eg/"
}
document.addEventListener("DOMContentLoaded", () => {
})
$.getJSON("/data/games.json", (data) => {
for(let i = 0;i < data.length;i++) {
if(location.pathname.includes(data[i]["directory"])) {
location.href = "/semag/" + data[i]["directory"] + "/index.html"
}
}
})
</script>
</head>
<alerts>
@ -57,8 +64,28 @@
<p>Trying to access a page such as login, register, or a user page? Those are only available on official links.</p>
<p><a href="https://discord.gg/7jyufnwJNf">Join the Discord to find official links.</a></p>
<a href="/index.html"><button>Go home</button></a>
<button onclick="statsForNerds()">Stats for nerds</button>
<div id="sfn" style="display: none;" class="message">
Please report this to our <a href="https://discord.gg/7jyufnwJNf">Discord</a> or <a href="mailto:support@selenite.cc">email.</a> <br>
Requested URL: <span id="full">You need Javascript to show the Stats for nerds</span><br>
Referrer: <span id="ref">You need Javascript to show the Stats for nerds</span><br>
Title: <span id="title">You need Javascript to show the Stats for nerds</span><br>
Screen height: <span id="height">You need Javascript to show the Stats for nerds</span><br>
Screen width: <span id="width">You need Javascript to show the Stats for nerds</span><br>
Window height: <span id="winheight">You need Javascript to show the Stats for nerds</span><br>
Window width: <span id="winwidth">You need Javascript to show the Stats for nerds</span><br>
Cookies: <span id="cookie">You need Javascript to show the Stats for nerds</span><br>
User agent: <span id="ua">You need Javascript to show the Stats for nerds</span><br>
OS platform: <span id="plat">You need Javascript to show the Stats for nerds</span><br>
Online: <span id="online">You need Javascript to show the Stats for nerds</span>
<br />IP: <span id="ip">You need Javascript to show the Stats for nerds</span><br>
Error code: 404<br>
</div>
<script>
"innerText"in document.body||Object.defineProperty(HTMLElement.prototype,"innerText",{get:function(){return this.textContent},set:function(a){this.textContent=a}}),window.fetch||(window.fetch=function(a){return new Promise(function(b,c){var d=new XMLHttpRequest;d.open("GET",a),d.onload=function(){200===d.status?b(JSON.parse(d.responseText)):c(Error(d.statusText))},d.onerror=function(){c(Error("Network Error"))},d.send()})}),window.XMLHttpRequest||(window.XMLHttpRequest=function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(a){}throw new Error("This browser does not support XMLHttpRequest.")});function statsForNerds(){var a=document.getElementById("sfn");"none"===a.style.display?(a.style.display="block",console.log("[\u2139\uFE0F] Showing the stats for nerds!")):(a.style.display="none",console.log("[\u2139\uFE0F] Hiding the stats for nerds!"))}document.getElementById("full").innerText=window.location.href,document.getElementById("ref").innerHTML=document.referrer,document.getElementById("title").innerText=document.title,document.getElementById("height").innerHTML=screen.height+"px",document.getElementById("width").innerHTML=screen.width+"px",document.getElementById("winheight").innerHTML=window.innerHeight+"px",document.getElementById("winwidth").innerHTML=window.innerWidth+"px",document.getElementById("cookie").innerText=navigator.cookieEnabled,document.getElementById("ua").innerHTML=navigator.userAgent,document.getElementById("plat").innerHTML=navigator.platform,document.getElementById("online").innerHTML=navigator.onLine;var echolog={};fetch("//wtfismyip.com/json").then(function(a){return a.json()}).then(function(a){var b={ipAddress:a.YourFuckingIPAddress,hostname:a.YourFuckingHostname},c=document.getElementById("ip");c.innerText=b.ipAddress})["catch"](function(a){return console.error(a)});
</script>
</main>
<footer class="noscroll">

0
README.md Normal file → Executable file
View File

2
about.html Normal file → Executable file
View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html class="sl-theme-dark" lang="en">
<html lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->

0
ad.html Normal file → Executable file
View File

0
ads.txt Normal file → Executable file
View File

109
apps.html Normal file → Executable file
View File

@ -12,122 +12,35 @@
<script src="/js/apps.js"></script>
<script src="/js/search.js"></script>
<script src="/js/main.js"></script>
<script src="/js/widget.js"></script>
<script src="/js/themes.js"></script>
<script src="/js/cookie.js"></script>
<link rel="stylesheet" href="/style.css" />
<link rel="stylesheet" href="/css/main.css" />
<link rel="stylesheet" href="/css/pages.css" />
<link rel="stylesheet" href="/css/games.css" />
<!-- seo + other things -->
<title>Apps | Selenite</title>
<title>Projects | Selenite</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script>
<!-- toastify -->
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563"
crossorigin="anonymous"></script>
<script></script>
</head>
<alerts>
<div id="toast"></div>
<script>
$.getJSON("data/changelog.json", (data) => {
if (localStorage.getItem("selenite.version") != data.version) {
toast({ title: "New Update!", message: data.desc, time: data.timestamp });
localStorage.setItem("selenite.version", data.version);
}
});
function toast(message, type) {
const toast = document.getElementById("toast");
toast.innerHTML = `<div class=samerow><h1>${message.title} - ${timeAgo(new Date(message.time * 1000))}</h1></div><p>${message.message}</p>`;
toast.style.animation = "toastFade 6s";
}
function timeAgo(input) {
const date = input instanceof Date ? input : new Date(input);
const formatter = new Intl.RelativeTimeFormat("en");
const ranges = {
years: 3600 * 24 * 365,
months: 3600 * 24 * 30,
weeks: 3600 * 24 * 7,
days: 3600 * 24,
hours: 3600,
minutes: 60,
seconds: 1,
};
const secondsElapsed = (date.getTime() - Date.now()) / 1000;
for (let key in ranges) {
if (ranges[key] < Math.abs(secondsElapsed)) {
const delta = secondsElapsed / ranges[key];
return formatter.format(Math.round(delta), key);
}
}
}
</script>
</alerts>
<body>
<header>
<a href="/index.html">Home</a>
<a href="/bookmarklets.html">Bookmarklets</a>
<a href="/projects.html">Games</a>
<a href="/apps.html">Apps</a>
<a href="/settings.html">Settings</a>
<a id="blank" href="#">Open Blank</a>
<a href="/u/" class="usericon"><img src="/img/user.svg"></a>
</header>
<main>
<h3 id="popunder" style="display: none;">You may be redirected upon clicking on the screen. This is an ad. <a style="font-size: inherit;" href="ad.html">Learn more.</a></h3>
<input class="hiddenUpload" type="file" accept=".save" hidden />
<input type="text" class="searchbar" id="gamesearch" placeholder="Type here to search.." />
<div class="samerow">
<sl-tooltip content="Remember to download your save, so you don't lose your progress." trigger="manual" class="manual-tooltip">
<button onclick="downloadMainSave()">Download Save</button>
</sl-tooltip>
<button id="upload" onclick="uploadMainSave()">Upload Save</button>
<p id="starredHeader">starred apps</p>
<div id="starredgames">
</div>
<h2>Starred Apps</h2>
<p id="pinnedmessage">Star some apps for things to show up here!</p>
<div id="pinned"></div>
<h2>All Apps</h2>
<p id="allHeader">all apps</p>
<div id="games">
<a href="/suggest.html"
><div class="suggest">
<img src="img/addlink.svg" alt="Add Game logo" style="filter: invert(1) !important" />
<h1>Suggest a app!</h1>
</div></a
>
<p id="message">apps loading..</p>
<p id="message">apps not loading? click ctrl + shift + r</p>
<button id="message" onclick='$.getJSON("/data/apps.json", function (data) {loadGames(data)})'>Apps not loading? Click here.</button>
<p id="loadingMsg">games loading..</p>
<p id="noResults">nothing was found! try a new search query.</p>
</div>
<br />
</main>
<footer>
<a href="https://gitlab.com/skysthelimit.dev/selenite">Source</a>
<a href="https://discord.gg/7jyufnwJNf">Discord</a>
<a href="/suggest.html">Suggestions & Bugs</a>
<a href="/contact.html">Contact</a>
<a href="/support.html">Donate</a>
<a href="/about.html">About</a>
</footer>
<script>
document.addEventListener("DOMContentLoaded", function () {
const adContainers = document.querySelectorAll("[id=adcontainer]");
if (adContainers.length > 0) {
for (let i = 0; i < adContainers.length; i++) {
if (Math.random() < 0.5 && localStorage.getItem("selenite.adblock") != "true") {
adContainers[i].innerHTML = "";
}
}
}
});
</script>
</body>
</html>

View File

@ -1,74 +0,0 @@
<!DOCTYPE html>
<html class="sl-theme-dark" lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->
<!-- initialize externals -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<script src=" https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js "></script>
<!-- initialize my stuff -->
<script src="/js/all.min.js"></script>
<script src="/js/main.js"></script>
<script src="/js/widget.js"></script>
<script src="/js/themes.js"></script>
<link rel="stylesheet" href="/style.css" />
<!-- seo + other things -->
<title>Selenite</title>
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<!-- toastify -->
<script>
</script>
</head>
<alerts>
</alerts>
<body>
<header>
<a href="/index.html">Home</a>
<a href="/bookmarklets.html">Bookmarklets</a>
<a href="/projects.html">Games</a>
<a href="/apps.html">Apps</a>
<a href="/settings.html">Settings</a>
<a id="blank" href="#">Open Blank</a>
<a href="/u/" class="usericon"><img src="/img/user.svg"></a>
</header>
<main id="main">
<img src="img/backgrounds/sunset_theme.jpg" class="img-credits">
<a href="https://www.pixiv.net/en/users/10746425">邦乔彦</a>
<img src="img/backgrounds/mountains_theme.jpg" class="img-credits">
<a href="https://www.mattvince.com/">Matt Vince</a>
<img src="img/backgrounds/vaporwave_theme.jpg" class="img-credits">
<a href="https://www.rafaeldejongh.com/synthwave-neon-80s-background/">Rafaël De Jongh</a>
<img src="img/backgrounds/seraph_theme.png" class="img-credits">
<a href="https://github.com/a456pur/">a456pur</a>
</main>
<footer>
<a href="https://gitlab.com/skysthelimit.dev/selenite">Source</a>
<a href="https://discord.gg/7jyufnwJNf">Discord</a>
<a href="/suggest.html">Suggestions & Bugs</a>
<a href="/contact.html">Contact</a>
<a href="/support.html">Donate</a>
<a href="/about.html">About</a>
</footer>
</body>
</html>

0
blank.html Normal file → Executable file
View File

127
bookmarklets.html Normal file → Executable file

File diff suppressed because one or more lines are too long

0
contact.html Normal file → Executable file
View File

38
css/bookmarklets.css Normal file
View File

@ -0,0 +1,38 @@
.bookmarklet {
width: 90vw;
display: flex;
flex-direction: row;
justify-content: center;
flex-wrap: wrap;
height: 100%;
gap: 0px;
}
.bookmarkletdiv {
width: 25vw;
height: 15vh;
background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border-radius: 20px;
margin: 15px;
transition-duration: 0.25s;
backdrop-filter: blur(2px);
box-shadow: 0 0 10px var(--color-2);
}
.bookmarkletdiv a {
width: 90%;
}
.bookmarkletdiv:hover {
transform: scale(1.1);
filter:brightness(1.15);
}
#bookmarklets {
display: flex;
height: auto;
width: 90%;
flex-direction: row;
justify-content: center;
flex-wrap: wrap;
}

75
css/games.css Executable file
View File

@ -0,0 +1,75 @@
game {
width: 20vw;
height: 10vh;
background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%);
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
border-radius: 20px;
margin: 15px;
transition-duration: 0.25s;
backdrop-filter: blur(2px);
box-shadow: 0 0 10px var(--color-2);
}
game:hover {
transform: scale(1.1);
filter:brightness(1.15);
}
game img {
height: 80%;
border-radius: 15px;
aspect-ratio: 1 / 1;
margin: 10px;
justify-self: left;
margin-right: auto;
}
#holder h1 {
font-size: 14px;
margin: 15px;
width: 100%;
text-align: right;
height: 70%;
}
#holder {
width: 70%;
height: auto;
display: flex;
flex-direction: column;
align-items: flex-end;
}
#star {
width: 10%;
justify-self: right;
margin-left: auto;
margin-right: 15px;
transition-duration: 0.25s;
}
#star:hover {
transform: scale(1.1);
filter: drop-shadow(0 0 5px var(--color-1))
}
#games, #starredgames {
width: 90vw;
display: flex;
flex-direction: row;
justify-content: center;
flex-wrap: wrap;
height: 100%;
gap: 0px;
}
#noResults, #loadingMsg {
font-size: 24px;
color: var(--color-1);
}
#starredHeader, #allHeader {
font-size: 32px;
color: var(--color-1);
}
#noResults, #starredHeader, #allHeader {
display: none;
}
body {
justify-content: flex-start;
}

51
css/loader.css Normal file
View File

@ -0,0 +1,51 @@
#gamecontainer {
width: 90vw;
height: auto;
border-radius: 15px;
background-color: color-mix(in srgb, var(--color-2) 50%, #00000000 50%);
box-shadow: 0 0 10px var(--color-2);
backdrop-filter: blur(6px);
}
#gameFrame {
width: 99%;
height: 75vh;
margin: 0.5%;
margin-bottom: 0;
border-radius: 10px;
}
#infobox {
height: 8vh;
width: 100%;
margin: 1% 0;
display: flex;
justify-content: center;
align-items: center;
}
#infobox img {
height: 100%;
margin: 0.5%;
aspect-ratio: 1 / 1;
border-radius: 8px;
}
#infobox h2 {
margin-right: auto;
}
.button {
margin: 4px;
padding: 2px;
width: 7%;
transition-duration: 0.25s;
cursor: pointer;
}
.button:hover {
filter: brightness(1.1);
transform: scale(1.05);
}
.opposite {
width: 50%;
height: 100%;
display: flex;
justify-content: flex-end;
align-items: center;
margin: 12px;
}

107
css/main.css Executable file
View File

@ -0,0 +1,107 @@
@import url("/css/themes.css");
@import url('https://fonts.googleapis.com/css2?family=Mulish&display=swap');
:root {
--text-color: #fff;
--bg-1: #5a189a;
--bg-2: #10002b;
--color-1: #E0AAFF;
--color-2: #7B2CBF;
--color-3: #3C096C;
--color-4: #240046;
}
html,
body {
/* height: 100vh; */
width: 100vw;
color: var(--text-color);
background-color: black;
}
* {
padding: 0;
margin: 0;
border: none;
font-family: "Mulish", serif;
}
body {
animation: 1s ease-out loadIn;
user-select: none;
}
@keyframes loadIn {
from {opacity: 0;transform: translateY(-32px);}
to {opacity: 1;transform: translateY(0px);}
}
body {
display: flex;
filter: drop-shadow(0px 0px 4px #ffffff99);
}
.samerow {
display: flex;
justify-content: center;
gap: 0;
flex-wrap: wrap;
align-items: center;
justify-content: center;
}
.samerow img {
width: 80px;
aspect-ratio: 1 / 1;
padding: 5px;
margin: 10px;
user-select: none;
}
h1 {
font-size: 48px;
margin: 10px;
}
h2 {
font-size: 32px;
margin: 8px;
}
h3 {
font-size: 24px;
margin: 4px;
}
p {
font-size: 16px;
margin: 2px;
}
a {
color: var(--text-color);
}
img {
image-rendering: pixelated;
}
select,
::picker(select) {
appearance: base-select;
}
select {
padding: 8px;
background-color: color-mix(in srgb, var(--color-4) 30%, #00000000 70%);
transition-duration: 0.25s;
}
select:hover,
select:focus {
background: color-mix(in srgb, var(--color-3) 60%, #00000000 40%);
}
::picker(select) {
border: none;
border-radius: 8px;
}
option {
display: flex;
background: color-mix(in srgb, var(--color-3) 30%, var(--color-4) 60%);
padding: 2px;
transition: 0.25s;
color: var(--text-color)
}
option:hover {
background: color-mix(in srgb, var(--color-2) 40%, var(--color-4) 50%);
}
option:focus {
background: color-mix(in srgb, var(--color-2) 60%, var(--color-4) 40%);
}

168
css/pages.css Executable file
View File

@ -0,0 +1,168 @@
@property --gradient-x {
syntax: "<percentage>";
inherits: false;
initial-value: 100%;
}
@property --gradient-y {
syntax: "<percentage>";
inherits: false;
initial-value: 0%;
}
body {
background: rgb(16, 0, 43);
background: radial-gradient(
circle at var(--gradient-x) var(--gradient-y),
var(--bg-1) 0%,
var(--bg-2) 100%
);
background-size: 100vw 100vh;
background-repeat: no-repeat;
background-attachment: fixed;
transition: --gradient-x 30s ease-in-out,
--gradient-y 30s ease-in-out;
overflow-x: hidden;
}
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
width: 100vw;
min-height: 100vh;
position: relative;
}
#particles-js {
width: 100vw;
height: 100vh;
position: absolute;
z-index: -1000;
border: none;
overflow-y: hidden;
top: 0;
transition-duration: 0.05s;
transition-timing-function: ease-out;
}
button {
border-style: solid;
border-width: 2px;
padding: 12px;
margin: 8px;
text-align: center;
border-radius: 10px;
background-color: var(--color-2);
border-color: var(--color-3);
color: var(--text-color);
outline: none;
transition-duration: 0.25s;
font-size: 14px;
text-shadow: var(--color-1) 0 0 10px;
cursor:pointer;
}
button:hover {
filter: brightness(1.1);
transform: scale(1.05);
}
input[type=text], input[type=password] {
width: 70%;
border-style: solid;
border-width: 2px;
padding: 18px;
margin: 5px;
text-align: center;
border-radius: 10px;
background-color: var(--color-2);
border-color: var(--color-3);
color: var(--text-color);
outline: none;
transition-duration: 0.25s;
font-size: 20px;
text-shadow: var(--color-1) 0 0 10px;
}
input[type=text]:focus, input[type=password]:focus {
filter:brightness(1.25) !important;
}
input[type=text]:hover, input[type=password]:hover {
filter:brightness(1.1);
}
input[type=text]::placeholder, input[type=password]::placeholder {
color: color-mix(in srgb, var(--text-color) 20%, #00000000 80%);
text-shadow: color-mix(in srgb, var(--text-color) 40%, #00000000 60%) 0 0 10px;
}
*::-webkit-scrollbar {
height: 10px;
width: 8px;
}
*::-webkit-scrollbar-track {
border-radius: 5px;
background-color: var(--color-4);
}
*::-webkit-scrollbar-track:hover {
filter:brightness(1.1);
}
*::-webkit-scrollbar-track:active {
filter:brightness(1.25);
}
*::-webkit-scrollbar-thumb {
border-radius: 5px;
background-color: var(--color-2);
}
*::-webkit-scrollbar-thumb:hover {
filter:brightness(1.1);
}
*::-webkit-scrollbar-thumb:active {
filter:brightness(1.25);
}
.title {
color: var(--color-1);
text-shadow: var(--color-1) 0 0 24px;
}
.h-captcha {
margin: 8px;
}
#popup {
width: 50%;
height: 40%;
z-index: 99999999;
position: absolute;
position: absolute;
top: 50%;
left: 50vw;
transform: translate(-50%, -50%);
display: flex;
flex-direction: column;
background-color: color-mix(in srgb, var(--color-2) 70%, #00000000 30%);
border-radius: 10px;
justify-content: center;
align-items: center;
backdrop-filter: blur(2px);
box-shadow: 0 0 10px var(--color-2);
}
#popup input {
width: 90%;
height: 30%;
}
#popup input[type=file] {
height: auto;
text-align-last: center;
display: block;
margin: 30px;
}
#popup h1 {
font-size: 32px;
}
#popup #close {
position: absolute;
right: 10px;
top: 10px;
outline: none;
background-color: color-mix(in srgb, var(--color-4) 20%, #00000000 80%);;
}

123
css/profile.css Normal file
View File

@ -0,0 +1,123 @@
section {
width: 90%;
height: 240px;
margin: 24px;
background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 0 10px var(--color-2);
border-radius: 20px;
backdrop-filter: blur(6px);
}
.controls {
width: 48px !important;
margin: 8px !important;
cursor: pointer;
}
section img {
height: 90%;
aspect-ratio: 1 / 1;
margin: 32px;
border-radius: 16px;
}
.column {
flex-direction: column;
}
right {
margin-left: auto;
margin-right: 16px;
}
.badges img {
width: 32px;
border-radius: 2px;
margin: 8px;
}
p {
font-size: 24px;
letter-spacing: 0.5px;
line-height: 36px;
}
.profile-element {
margin-left: auto;
margin-right: auto;
max-width: 33.3%;
}
.profile-element h2 {
font-size: 32px;
}
.profile-element h2 {
font-size: 28px;
}
.profile-element h3 {
font-size: 20px;
}
#enter {
position: absolute;
width: 100vw;
height: 100vh;
background-color: color-mix(in srgb, #000000 60%, #00000000 40%);
backdrop-filter: blur(16px);
z-index: 9999999999;
cursor: pointer;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
transition-duration: 1s;
}
#search {
height: 36px !important;
}
.edit {
cursor: context-menu;
}
#blur {
position: absolute;
width: 100vw;
height: 100vh;
top: 0;
left: 0;
backdrop-filter: blur(16px);
z-index: 999;
display: none;
}
results {
display: flex;
width: 95%;
height: 120px;
overflow-y: scroll;
background-color: color-mix(in srgb, var(--color-3) 50%, #00000000 50%);
box-shadow: 0 0 10px var(--color-3);
bottom: 16px;
flex-direction: column;
border-radius: 8px;
}
result {
border-color: white;
border-width: 4px;
cursor: pointer;
padding: 4px;
margin: 2px;
width: auto;
text-align: left;
display: none;
flex-direction: column;
transition-duration: 0.25s;
}
result:hover {
background-color: #ffffff11;
}
result h2 {
font-size: 16px;
margin: 0px;
}
result p {
font-size: 12px;
margin: 0px;
line-height: 16px;
width: 80%;
}
.about {
width: 70%;
}

23
css/settings.css Normal file
View File

@ -0,0 +1,23 @@
section {
width: 30%;
height: 400px;
height: auto;
padding: 8px;
margin: 16px;
background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border-radius: 20px;
margin: 15px;
transition-duration: 0.25s;
backdrop-filter: blur(2px);
box-shadow: 0 0 10px var(--color-2);
}
sections {
width: 90vw;
display: flex;
justify-content: center;
align-items: center;
}

59
css/sidebar.css Executable file
View File

@ -0,0 +1,59 @@
body {
overflow: hidden;
}
sidebar {
background-color: linear-gradient(19deg,rgba(87, 199, 133, 1) 0%, rgba(237, 221, 83, 1) 100%);;
height: 100%;
width: 50px;
display: flex;
flex-direction: column;
align-items: center;
user-select: none;
}
.sidebar-item {
margin: 6px;
padding: 6px;
height: 26px;
width: 26px;
transition-duration: 0.5s;
transition-timing-function: ease-in-out;
}
iframe {
width: calc(100% - 50px - 10px);
height: calc(100vh - 20px);
margin: 10px;
margin-right: 0px;
border-radius: 8px;
}
.sidebar-divider {
height: 2px;
border-radius: 20px;
width: 80%;
background-color: #ffffff22;
/* auto is being stupid
100vh minus height of 1 object 7 times minus the margin and padding of 7 objects (multiplied twice bc margin and padding on top and bottom) */
margin-bottom: calc(100vh - 26px * 8 - ((6px + 6px) * 2) * 8);
}
.sidebar-item-descriptor {
position: fixed;
right: 25px;
opacity: 0;
transform: translateY(-32px);
text-align: left;
background-color: black;
border-radius: 10px;
padding: 8px;
color: white;
font-size: 12px;
user-select: none;
pointer-events: none;
transition: opacity 0.5s 0.2s, right 0.5s 0.2s;
font-family: "Mulish", serif;
}
.sidebar-item:hover .sidebar-item-descriptor {
opacity: 1;
right: 55px;
}

View File

@ -1,673 +0,0 @@
@import url("https://fonts.googleapis.com/css2?family=Prompt:wght@300&display=swap");
@keyframes loadInAnimation {
0% {
opacity: 0;
}
100% {
opacity: 100;
}
}
:root {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
--margin: 4rem;
}
.hiddenUpload {
display: none;
visibility: hidden;
}
* {
transition-duration: 0.5s;
outline: none;
border: none;
box-sizing: border-box;
align-content: center;
text-align: center;
font-family: "Prompt", sans-serif;
color: var(--textcolor);
}
body {
margin: 0;
padding: 0;
background: var(--bg);
color: var(--textcolor);
background-position: center;
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
}
header,
footer {
background-color: var(--uibg);
display: flex;
border-bottom: none;
font-weight:700;
padding: 0.7rem;
width: 100%;
z-index: 1;
justify-content: center;
text-align: center;
text-decoration: none;
}
#time {
font-weight:100;
}
header {
top: 0;
border-radius: 0 0 20px 20px;
position: fixed;
box-shadow: 0 5px 10px var(--uibg);
}
footer.noscroll {
position: fixed;
overflow: hidden;
}
footer {
bottom: 0;
border-radius: 20px 20px 0 0;
box-shadow: 0 -5px 10px var(--uibg);
}
footer a,
footer a:visited,
header a,
header a:visited {
margin-right: 1.5rem;
margin-left: 1.5rem;
text-decoration: none;
}
footer a:hover,
header a:hover {
text-shadow: 2px 2px 6px var(--textcolor);
}
@media only screen and (max-width: 768px) {
header,
footer {
flex-direction: column;
align-items: center;
}
header {
border-radius: 0;
}
footer {
border-radius: 0;
}
* {
--margin: 12rem;
}
}
main {
animation: 1.25s ease-in-out 0s 1 loadInAnimation;
align-items: center;
flex-direction: column;
display: flex;
min-height: calc(100vh - (2 * 0.7rem));
gap: 0;
flex-wrap: wrap;
margin: auto;
margin-top: var(--margin);
width: 90%;
height:auto;
}
main#main.noscroll {
justify-content: center;
}
h1,
h2,
h3,
p,
a,
label {
margin: 0;
padding: 0;
text-shadow: var(--shadow);
}
.samerow {
display: flex;
justify-content: center;
gap: 0;
flex-wrap: wrap;
align-items: center;
justify-content: center
}
h1 {
font-size: 60px;
}
h2 {
font-size: 40px;
}
h3 {
font-size: 20px;
}
p,
a {
font-size: 16px;
}
button,
input#websubmit.submit,
input[type="submit"] {
cursor: pointer;
background-color: var(--inputbg);
border-color: var(--inputborder);
border-width: 2px;
border-radius: 10px;
border-style: solid;
padding: 7px;
margin-left: 20px;
margin-right: 20px;
margin: 10px;
}
button:hover,
input#websubmit.submit:hover,
input[type="submit"]:hover {
filter: brightness(80%);
transform: scale(1.07);
}
img {
width: 100%;
aspect-ratio: auto;
user-select: none;
filter: drop-shadow(var(--shadow));
image-rendering: pixelated;
}
.img-container a {
width: 100%;
}
.img-container {
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
gap: 0;
flex-wrap: wrap;
width: 6%;
aspect-ratio: 1 / 1;
margin: 2%;
}
.game,
.suggest {
width: 15%;
border-radius: 20px;
display: inline-block;
background-color: var(--uibg);
margin: 15px;
cursor: pointer;
box-shadow: 0px 0px 5px 5px var(--uibg);
}
.game:hover,
.suggest:hover {
transform: scale(1.1);
filter: brightness(85%);
box-shadow: 0px 0px 5px 5px var(--uibg);
}
.game h1,
.suggest h1 {
font-size: 12px;
float: right;
margin-right: 10px;
margin-top: 3px;
margin-bottom: 3px;
}
.game img,
.suggest img {
width: 100%;
border-radius: 20px;
aspect-ratio: 1 / 1;
}
img.star {
float: left;
width: 10%;
margin-top: 3px;
margin-bottom: 3px;
margin-left: 10px;
}
#noscroll {
overflow-y: hidden;
justify-content: center;
}
#games,
#pinned {
width: 100%;
justify-content: center;
}
input[type="text"],
input[type="password"] {
width: 50%;
background-color: var(--inputbg);
box-sizing: border-box;
font-size: 20px;
padding: 0.8% 0.8%;
text-align: center;
border-radius: 5px;
outline: none;
margin: 10px;
border: 2px solid var(--inputborder);
border-radius: 5px;
transition: opacity 0.25s ease-in-out;
opacity: 100%;
}
input[type="text"]:hover,
input[type="password"]:hover {
opacity: 80%;
}
::placeholder {
color: var(--textcolor);
opacity: 0.4; /* Firefox */
}
.bookmarkletdiv {
width: 30%;
background-color: var(--uibg);
box-shadow: 0px 0px 5px 5px var(--uibg);
padding: 5px;
margin: 15px;
border-radius: 10px;
display: inline-block;
}
.bookmarkletdiv a {
font-size: 30px;
}
form {
width: 100%;
}
.samerow.themebtns {
width: 70%;
}
select {
border-radius: 5px;
background-color: var(--inputbg);
border-color: var(--inputborder);
border-width: 5px;
border-radius: 10px;
border-style: solid;
padding: 0.5% 0.5%;
margin: 0.25%;
}
thumb.png .img-credits {
height: 40vh;
width: auto;
box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.555);
}
label {
font-size: 20px;
padding-left: 5px;
}
.avatar {
margin: 5px;
}
#bgimg {
width: 30vw;
font-size: 16px;
}
.usericon {
width: 24px;
height: 24px;
align-self: right;
/* display: none; */
}
#toast {
position: fixed;
top: 0;
right: 0;
margin: 10px;
padding: 10px;
background-color: var(--inputbg);
border-radius: 10px;
border-width: 10px;
border-color: var(--inputborder);
border-style: solid;
z-index: 10000;
text-align: center;
opacity: 0;
transition-duration: 1s;
max-width: 30%;
}
#toast h1 {
font-size: 20px;
text-align: center;
}
#toast p {
font-size: 16px;
text-align: center;
}
#discord {
position: fixed;
bottom: 10px;
right: 10px;
width: 56px;
height: 56px;
z-index: 199975;
border-radius: 100%;
background-image: url("/img/discord.svg");
background-size: 60%;
background-position: center;
background-repeat: no-repeat;
border-width: 0;
}
div.profile.top {
width: 90%;
height: 20vh;
background-color: var(--uibg);
border-radius: 10px;
display: flex;
justify-content: left;
align-items: center;
box-shadow: 0px 0px 5px 5px var(--uibg);
}
div.profile.top.text {
position: relative;
display: flex;
flex-direction: column;
width: auto;
justify-self: center;
height: auto;
margin: 30px;
max-width: 40%;
}
div.profile.top.text.right {
margin-left: auto;
margin-right: 80px;
}
div.profile.top.text h1 {
font-size: 2vw;
}
div.profile.top.text h2 {
font-size: 1.25vw;
}
div.profile.top.text a {
font-size: 1.25vw;
}
img.pfp {
height: 80%;
object-fit: contain;
width: auto;
margin: 30px;
border-radius: 20px;
aspect-ratio: 1 / 1;
}
div.profile.top.text .about {
height: auto;
max-width: 100%;
}
#edit {
cursor: pointer;
position: relative;
height: 2vw;
margin-left: 5px;
width: auto;
}
#counter {
position: absolute;
bottom: 0;
right: 0;
}
#popup {
width: 50%;
height: 40%;
z-index: 99999999;
position: absolute;
position: absolute;
top: 50%;
left: 50vw;
transform: translate(-50%, -50%);
display: flex;
flex-direction: column;
background-color: var(--inputbg);
border-color: var(--inputborder);
border-width: 5px;
border-radius: 10px;
border-style: solid;
justify-content: center;
align-items: center;
box-shadow: 0px 0px 5px 5px var(--uibg);
}
#popup input {
width: 90%;
height: 30%;
}
#popup input[type=file] {
height: auto;
text-align-last: center;
display: block;
margin: 30px;
}
#popup h1 {
font-size: 32px;
}
#popup #close {
position: absolute;
right: 10px;
top: 10px;
}
img.badges {
position: relative;
height: 2vw;
margin-left: 5px;
width: auto;
}
p#counter {
bottom: 38%;
right: 7%;
}
.users {
text-decoration: none;
width: 30%;
height: 10vh;
background-color: var(--uibg);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 0px 5px 5px var(--uibg);
margin: 1.5%;
}
.users h1, .users p {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
justify-self: center;
height: auto;
max-width: 100%;
margin: auto;
}
.user_info {
width: 100%;
}
.users h1 {
font-size: 1vw;
}
.users p {
font-size: 0.75vw;
}
.users a {
font-size: 0.75vw;
text-decoration: underline;
}
.users p {
height: auto;
max-width: 100%;
}
#users {
width: 95%;
display: flex;
align-items: center;
flex-wrap: wrap;
flex-direction: row;
display: flex;
align-items: center;
justify-content: center;
}
.pages-btn {
margin: 10px;
}
#ai {
position: absolute;
right: 10px;
bottom: 10px;
}
div.profile.played {
margin: 40px;
width: 90%;
height: auto;
padding: 30px;
background-color: var(--uibg);
border-radius: 10px;
display: flex;
justify-content: left;
align-items: center;
box-shadow: 0px 0px 5px 5px var(--uibg);
justify-content: center;
flex-wrap: wrap;
}
#played-games {
width: 100%;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
div.played-game {
width: 13%;
height: auto;
margin: 2%;
padding: 0;
}
div.played-game img {
aspect-ratio: 1 / 1;
border-radius: 20px;
}
.friend-icon {
width: 5%;
position: absolute;
left: 2%;
}
#chat {
width: 90%;
background-color: var(--uibg);
height: calc(100vh - (var(--margin) * 2) - 60px - 24px - 12px - 30px - 80px);
}
#messages {
align-items: end;
flex-direction: column;
overflow-y: scroll;
overflow-x: hidden;
height: 88%;
display: flex;
}
message {
width: calc(100% - 20px);
padding: 20px;
margin: 10px;
background-color: var(--inputbg);
border-radius: 10px;
}
message h1 {
font-size: 40px;
}
message h2 {
font-size: 32px;
}
message.user {
background-color: var(--inputborder);
}
message.bot {
justify-self: right;
}
#chatbox {
width: calc(100% - 20px);
}
.messagebox {
width: 100%;
height: 12%;
}
.evensmaller {
font-size: 12px;
}
#gamecontainer {
width: 80vw;
height: calc(100vh - (var(--margin) * 2));
padding: 10px;
border-radius: 10px;
background-color: var(--uibg);
}
#gameFrame {
width: 100%;
height: 90%;
border-radius: 10px;
margin: 0;
padding: 0;
}
#infobox {
width: 100%;
height: 10%;
display: flex;
}
#infobox img {
height: 90%;
width: auto;
margin-right: 20px;
border-radius: 10px;
}
@keyframes toastFade {
0% {
opacity: 0;
}
15% {
opacity: 1;
}
85% {
opacity: 1;
}
100% {
opacity: 0;
}
}

328
css/themes.css Normal file → Executable file
View File

@ -1,295 +1,45 @@
:root {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
}
body {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
--text-color: #fff;
--bg-1: #5a189a;
--bg-2: #10002b;
--color-1: #E0AAFF;
--color-2: #7B2CBF;
--color-3: #3C096C;
--color-4: #240046;
}
body[theme=threekho] {
--inputbg: #28A018;
--inputborder: #0A8F00;
--uibg: #111111;
--textcolor: #fff;
--bg: #000000;
body[theme=blackandwhite] {
--text-color: #fff;
--bg-1: #504d53;
--bg-2: #090909;
--color-1: #bfbfbf;
--color-2: #8e8e8e;
--color-3: #5c5c5c;
--color-4: #000000;
}
body[theme=art] {
--inputbg: #0284d4;
--inputborder: #0284d4;
--uibg: #0e1213;
--textcolor: #fffff;
--bg: #1a2023;
body[theme=grass] {
--text-color: #ffffff;
--bg-1: #385041;
--bg-2: #1d3024;
--color-1: #a8e5a7;
--color-2: #559b7a;
--color-3: #3a5c3f;
--color-4: #242e22;
}
body[theme=dogcat] {
--inputbg: #537294;
--inputborder: #30719c;
--uibg: #2a7491;
--textcolor: #fff;
--bg: url("/img/backgrounds/dogcat.svg"), rgb(26, 127, 158);
/* https://wallpaperaccess.com/full/115544.jpg */
body[theme=evil] {
--text-color: #ffffff;
--bg-1: #ba2a2a;
--bg-2: #591414;
--color-1: #eb8181;
--color-2: #ae4141;
--color-3: #7b3838;
--color-4: #4f2626;
}
body[theme=custom] {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046;
--textcolor: #fff;
--bg: #10002b;
body[theme=sky] {
--text-color: #ffffff;
--bg-1: #6aacbe;
--bg-2: #3e87bb;
--color-1: #46ccd6;
--color-2: #337792;
--color-3: #38617b;
--color-4: #263b4f;
}
body[theme=mainnew] {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046bb;
--textcolor: #fff;
--bg: linear-gradient(0deg, rgba(36,0,70,1) 0%, rgba(60,9,108,1) 50%, rgba(36,0,70,1) 100%);
}
body[theme=main] {
--inputbg: #3c096c;
--inputborder: #5a189a;
--uibg: #240046bb;
--textcolor: #fff;
--bg: #10002b;
}
body[theme=light] {
--inputbg: #bbbbbb;
--inputborder: #e6e6e6;
--uibg: #b3b3b3;
--textcolor: #1a1a1a;
--bg: #c5c5c5;
}
body[theme=dark] {
--inputbg: #333333;
--inputborder: #444444;
--uibg: #242424;
--textcolor: #fff;
--bg: #0c0c0c;
}
body[theme=egamepass] {
--inputbg: #4f6ed1;
--inputborder: #5586e0;
--uibg: #185494;
--textcolor: #a7d3ff;
--bg: #16416f;
}
body[theme=cools1te] {
--inputbg: #a134dc;
--inputborder: #b153e3;
--uibg: #ab28cf;
--textcolor: #d3a4fa;
--bg: #8e14af;
}
body[theme=lattefalse] {
--inputbg: #9ca0b0;
/* overlay 0 */
--inputborder: #8c8fa1;
/* overlay 1 */
--uibg: #ccd0da;
/* surface 0 */
--textcolor: #4c4f69;
/* text */
--bg: #eff1f5;
/* base */
--shadow: 0px 0px 4px #ccd0da;
/* surface 0 */
}
body[theme=frappefalse] {
--inputbg: #737994;
/* overlay 0 */
--inputborder: #838ba7;
/* overlay 1 */
--uibg: #414559;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #303446;
/* base */
--shadow: 0px 0px 4px #414559;
/* surface 0 */
}
body[theme=macchiatofalse] {
--inputbg: #6e738d;
/* overlay 0 */
--inputborder: #8087a2;
/* overlay 1 */
--uibg: #363a4f;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #24273a;
/* base */
--shadow: 0px 0px 4px #363a4f;
/* surface 0 */
}
body[theme=mochafalse] {
--inputbg: #6c7086;
/* overlay 0 */
--inputborder: #7f849c;
/* overlay 1 */
--uibg: #313244;
/* surface 0 */
--textcolor: #cdd6f4;
/* text */
--bg: #1e1e2e;
/* base */
--shadow: 0px 0px 4px #313244;
/* surface 0 */
}
body[theme=sunsetfalse] {
--inputbg: #537294;
--inputborder: #30719c;
--uibg: #2a7491;
--textcolor: #fff;
--bg: rgb(59, 67, 78);
/* https://wallhaven.cc/w/jxl3qp */
--shadow: 0px 0px 2px #a5dcf5;
}
body[theme=mountainsfalse] {
--inputbg: #d37f7f;
--inputborder: #e28a8a;
--uibg: #d38493;
--textcolor: #fff;
--bg: #bf7483;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #bba29b;
}
body[theme=vaporwavefalse] {
--inputbg: #4b2d64;
--inputborder: #74568d;
--uibg: #51166d;
--textcolor: #fff;
--bg: #61437a;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #000000;
}
body[theme=seraphfalse] {
--inputbg: #000;
--inputborder: #fff;
--uibg: #000;
--textcolor: #fff;
--bg: #222222;
/* seraph */
--shadow: 0px 0px 4px #fff;
}
body[theme=nighttimefalse] {
--inputbg: #29374d;
--inputborder: #fff;
--uibg: #29374d;
--textcolor: #fff;
--bg: #323853;
/* https://wallhaven.cc/w/l882py */
--shadow: 0px 0px 4px #fff;
}
body[theme=latte] {
--inputbg: #9ca0b0;
/* overlay 0 */
--inputborder: #8c8fa1;
/* overlay 1 */
--uibg: #ccd0da;
/* surface 0 */
--textcolor: #4c4f69;
/* text */
--bg: #eff1f5;
/* base */
--shadow: 0px 0px 4px #ccd0da;
/* surface 0 */
}
body[theme=frappe] {
--inputbg: #737994;
/* overlay 0 */
--inputborder: #838ba7;
/* overlay 1 */
--uibg: #414559;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #303446;
/* base */
--shadow: 0px 0px 4px #414559;
/* surface 0 */
}
body[theme=macchiato] {
--inputbg: #6e738d;
/* overlay 0 */
--inputborder: #8087a2;
/* overlay 1 */
--uibg: #363a4f;
/* surface 0 */
--textcolor: #cad3f5;
/* text */
--bg: #24273a;
/* base */
--shadow: 0px 0px 4px #363a4f;
/* surface 0 */
}
body[theme=mocha] {
--inputbg: #6c7086;
/* overlay 0 */
--inputborder: #7f849c;
/* overlay 1 */
--uibg: #313244;
/* surface 0 */
--textcolor: #cdd6f4;
/* text */
--bg: #1e1e2e;
/* base */
--shadow: 0px 0px 4px #313244;
/* surface 0 */
}
body[theme=sunset] {
--inputbg: #537294;
--inputborder: #30719c;
--uibg: #2a7491;
--textcolor: #fff;
--bg: url("/img/backgrounds/sunset_theme.jpg"), rgb(59, 67, 78);
/* https://wallhaven.cc/w/jxl3qp */
--shadow: 0px 0px 2px #a5dcf5;
}
body[theme=mountains] {
--inputbg: #d37f7f;
--inputborder: #e28a8a;
--uibg: #d38493;
--textcolor: #fff;
--bg: url("/img/backgrounds/mountains_theme.jpg"), #bf7483;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #bba29b;
}
body[theme=vaporwave] {
--inputbg: #4b2d64;
--inputborder: #74568d;
--uibg: #51166d;
--textcolor: #fff;
--bg: url("/img/backgrounds/vaporwave_theme.jpg"), #61437a;
/* https://wallhaven.cc/w/l82kpr */
--shadow: 0px 0px 4px #000000;
}
body[theme=seraph] {
--inputbg: #000;
--inputborder: #fff;
--uibg: #000;
--textcolor: #fff;
--bg: url("/img/backgrounds/seraph_theme.png"), #1c1a1e;
/* seraph */
--shadow: 0px 0px 4px #fff;
}
body[theme=nighttime] {
--inputbg: #29374d;
--inputborder: #fff;
--uibg: #29374d;
--textcolor: #fff;
--bg: url("/img/backgrounds/nighttime_theme.png"), #28272a;
/* https://wallhaven.cc/w/l882py */
--shadow: 0px 0px 4px #fff;
}

49
css/users.css Normal file
View File

@ -0,0 +1,49 @@
#users {
display: flex;
height: auto;
width: 90%;
flex-direction: row;
justify-content: center;
flex-wrap: wrap;
}
.users {
width: 25vw;
height: 10vh;
background-color: color-mix(in srgb, var(--color-2) 40%, #00000000 60%);
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
border-radius: 20px;
margin: 15px;
transition-duration: 0.5s;
backdrop-filter: blur(2px);
box-shadow: 0 0 10px var(--color-2);
text-decoration: none;
text-align: right;
}
.users:hover {
transform: scale(1.05);
filter:brightness(1.15);
}
.users img {
height: 80%;
border-radius: 15px;
aspect-ratio: 1 / 1;
margin: 20px;
justify-self: left;
margin-right: auto;
}
.user_info {
width: 60%;
margin: 12px;
}
.user_info h1 {
font-size: 20px;
}
.user_info p {
font-size: 12px;
}
.pages-btn {
margin: 6px;
}

View File

@ -1,78 +0,0 @@
[
{
"name": "Ruffle",
"directory": "ruffle",
"image": "cover.png"
},
{
"name": "ZIP Unarchiver",
"directory": "zip",
"image": "cover.png"
},
{
"name": "GBA Emulator",
"directory": "gba",
"image": "cover.png"
},
{
"name": "EmulatorJS",
"directory": "emu",
"image": "cover.png"
},
{
"name": "Scratch 1",
"directory": "scratch1",
"image": "cover.png"
},
{
"name": "AyunWebEPK",
"directory": "ayun",
"image": "cover.png"
},
{
"name": "Scratch 2",
"directory": "scratch2",
"image": "cover.png"
},
{
"name": "SB2 to SWF",
"directory": "sb2toswf",
"image": "cover.svg"
},
{
"name": "MiniWiki",
"directory": "wiki",
"image": "cover.png"
},
{
"name": "Windows 11",
"directory": "11",
"image": "cover.png"
},
{
"name": "Javascript Deobfuscator",
"directory": "deobsfucator",
"image": "cover.svg"
},
{
"name": "Code Editor",
"directory": "code",
"image": "cover.svg"
},
{
"name": "Turbowarp",
"directory": "turbowarp",
"image": "cover.svg"
},
{
"name": "Calculator",
"image": "cover.svg",
"directory": "calc"
},
{
"name": "GodoBlocks",
"directory": "godo",
"image": "cover.png"
}
]

File diff suppressed because it is too large Load Diff

View File

@ -1,385 +1,3 @@
[
"pay attention during school",
"yall playing games while im making the website ur using",
"shout out to whoever spent 2 hours on snake",
"Did you know? You can make 800-1000 burgers from one cow.",
"selenite >>> 3kh0",
"Hello!",
"Did you know it takes an average of 20 minutes to rip a game?",
"Batteries not included",
"Does this even work?",
"Welcome to my rad website",
"Made with HTML!",
"Uses some css",
"Now with buggy games!",
"You get a cookie!",
"Remember your manners!",
"Dogs are cute",
"Ok, and I know your address now!",
"Beep boop! Are you a robot?",
"Did you know I have a Discord server?",
"How many sides does a circle have?",
"1 + 1 = 3",
"6 + 9 = 69",
"You can read btw",
"Made you look!",
"Never gonna give you up, Never gonna let you down...",
"Redbull gives you wings...",
"What is your highscore on Swerve?",
"Now with 2X more bugs!",
"12345 is not a good password",
"This took to long to make",
"69 hehe funny number",
"Ahhhhhhhhh",
"Awesome!",
"As seen on TV!",
"doot doot",
"100% Fresh!",
"LOL",
"Cold as ice!",
"Why are you looking at me?",
"Made in the US!",
"Made by Sky!",
"Sky can code",
"Click me :D",
"Reload the page NOW!",
"Downloading your passwords...",
"Running Selenite.exe",
"WARNING: You may lose braincells if you proceed!",
"Please go away. Thx",
"Made with Codeberg!",
"Made with a text editor!",
"Made with love",
"Made with H2O",
"This is a splash text!",
"100% Orgainic!",
"Now with Pac-Man!",
"Now with JavaScript!",
"Now with CSS",
"Do you bite your ice cream?",
"This was not ment to be seen. :o",
"Does anyone know how to stand up?",
"69420",
"Me too bro.",
"#Relatable",
"2 + 2 is 4 - 1 is 3 Quick mafs",
"Feels bad man.",
"Now with games that are unblocked?",
"Now with great games!",
"How do you play tic-tac-toe?",
"Fortnite is cringe",
"You got games on your phone?",
"I am not gonna say anything.",
"Now with Minecraft!",
"Your momma jokes are cringe",
"Now with a new splash!",
"You just dont get it do you?",
"Powered by hamsters!",
"*insert cool explosion*",
"Efficiency is key",
"New update???",
"We have answers!",
"aaaaaaaaaaaaaaaaaaa",
"Yooooooooooooooooooooo",
"Your ip is 69.420.69.420",
"he on x-games mode",
"Got to go fast!",
"GAS GAS GAS GOTTA STEP ON THE GAS!",
"Selenite would like to view your browser history",
"For legal reasons, that's a joke!",
"It has been 84 years...",
"Made by Gucci, selling for $69420",
"There is someone looking over your shoulder",
"Electric!",
"How many different ones are there?!?!",
"NERDDDDDDDDDDDDDDDDDD",
"My iPad passcode is 563543 btw",
"Get out of my room, I'm not going to let you in!",
"I'm not a robot!",
"I'm not a human!",
"Sponsered by RAID SHADOW LEGENDS!",
"Sponsored by Honey!",
"Lorem ipsum dolor sit amet, adipiscing consequat adipiscing sit amet. In tortor dolor, sollicitudin quis urna vitae, rutrum selecrelico dolor. Ut facilisis ornare lacus, ut dictum felis aliquam ut. Omnino interdum fit cum cura. Non est aequum, non solum, sed nec refert quis sit terra. Sed vestibulum a tellus non semper. Aliquam a neque euismod dolor dapibus aliquet ultricies ut nibh. Sed eget auctor ante. Aliquam dictum volutpat vestibulum. Putasti ovum paschale futurum. Nullo modo.",
"ive currently lost $4 on this website",
"join the discord NOW",
"have any of you played on the og padlet?",
"linux is so much better than windows",
"Did you know that oxygen is tasty?",
"Did you know that drinking water is dangerous?",
"🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸🇵🇸",
"chromebooks suck",
"Made 10% from actual code 90% skidded",
"And no wonder, for Piplup7575 himself hides as a normal programmer even though he is very super duper cool.",
"Eat like a king who is on a budget",
"goodbye to all the fallen comrades",
"Approved by the Iranian ministry of health",
"AGE RATING 4+",
"Bebzi or Koka Kola",
"moni",
"Made proudly by U.S.A patriots.",
"Piiiiiiiiiiiiiplup",
"Piplup so cool very cool",
"The 7576th piplup is really bad",
"The northernfish goes south",
"Piplup7575 is the cool",
"Piplup is cool",
"uwu",
"uWu",
"OwO",
"UwU",
"Chocolate hummus is a disgrace to the entire middle east.",
"3kh0 has fell, and now 3kh0 has sadly died.",
"Fun fact: Your chromebook is likely being monitored 24/7",
"contains 100% all-natural chicken",
"contains 100% all-natural pork",
"Activate Selenite, Go to settings to activate Selenite",
"This copy of Selenite is not genuine.",
"contains 100% all-natural beef",
"You may be a victim of software counterfeiting",
"contains 100% all-natural lamb",
"Woe to those who don't use this game site",
"Whopper, Whopper, Whopper, Whopper,Junior, double, triple Whopper,Flame-grilled taste with perfect toppers,I rule this day.Lettuce, mayo, pickle, ketchup,It's OK if I don't want that, Impossible or bacon Whopper,Any Whopper my way.You rule, you're seizing the day,At BK, have it your way.You rule!",
"Did you know we are open source?",
"goodbye 3kh0 :(",
"SUPR COL GAMS V2 IS AWESOME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
"Fun fact: Did you know that this site was originally a Padlet?",
"thank you to louis pasteur for inventing milk",
"you found the secret message",
"hi david",
"i ate that david",
"david that eat",
"hi from asleep",
"i know where you live",
"i",
"technoblade never dies",
"Selenite has shut down.",
"theres at least 2, maybe 3 games on this website",
"yall failing ur classes while im a straight A student in all honors",
"just maybe stole a bunch ideas from 3kh0",
"why is 1v1lol the most popular game",
"https://discord.gg/7jyufnwJNf",
"buy smth from the patreon so i dont have to be in debt anymore",
"https://skysthelimit.dev",
"https://github.com/selenite-cc",
"CURRENTURL",
"the square root of OGNUM1 is SQRTNUM1",
"ZG8geW91ciBzY2hvb2wgd29yaw",
"use the transfer tool to keep ur data from other websites",
"best way to bypass the filter is on my patreon! (i wrote this as a joke but its real now)",
"best proxy ever only on my patreon (i wrote this as a joke but its real now)",
"🥺👉👈",
"what website is this?",
"we love about:blank",
"make sure to back up ur saves incase we ever get blocked",
"join the discord to be cool",
"bigfoot is an L",
"check steam",
"selentine",
"geometry dash two point two",
"does anyone call twitter X unironically",
"why is there like a hundred solo.to pages that have selenite, literally just search \"site:solo.to selenite\"",
"rights to the trans people 🏳️‍⚧️ (trans rights)",
"happy new years everyone",
"merry christmas everyone",
"happy easter day everyone",
"happy halloween everyone",
"happy thanksgiving everyone",
"happy valentines day everyone",
"happy birthday to me",
"happy birthday to you",
"happy birthday to everyone",
"happy birthday to the website",
"dont look behind you",
"sky",
"penguinify",
"a456pur",
"selenite",
"3kh0",
"selenite is the best",
"selenite is the best website",
"selenite is the best website ever",
"selenite is the best website ever made",
"selenite is the best website ever made in the history of the world",
"selenite is the best website ever made in the history of the world and the universe",
"selenite is the best website ever made in the history of the world and the universe and the galaxy",
"selenite is the best website ever made in the history of the world and the universe and the galaxy and the solar system",
"selenite is the best website ever made in the history of the world and the universe and the galaxy and the solar system and the milky way",
"selenite is the best website ever made in the history of the world and the universe and the galaxy and the solar system and the milky way and the universe",
"Your network admin has logged this visit. You will be reported to the authorities.",
"share with your friends",
"i love piracy",
"i love piracy and you should too",
"ai is gonna take over the world",
"serap",
"slenetine",
"Behind you.",
"if you are seeing this message, please ping the owner of selenite in the discord server immediately.",
"sorry in advance for may 18th",
"selenite stole $100k from the pentagon to keep paying for hosting",
"this is your sign to get off games and get a good academic life",
"Josh",
"3kh0 has been kidnapped.",
"We skidded from everyone including ourselves.",
"congrats on who got a 53 by using this site",
"@everyone Please be reminded that you should not to try and get a girlfriend in the Selenite widgetbot chat.",
"ive spent 10 minutes writing 8 quotes gosh i need better things to do",
"selenite workers are immensely underpaid",
"how does one",
"Please add proxy im begging i need proxy",
"seraphite",
"if u self-hosted this then ur cool",
"laptops are better then iPads",
"Remember When The Platform Was Sliding Into The Fire Pit, And I Said 'Goodbye,' And You Were Like 'No Way!' And Then I Was All, 'We Pretended We Were Going To Murder You.' That Was Great.",
"How Are You Holding Up? Because Im A Potato.",
"As resilient as the pirate bay",
"We are resilient",
"We will never go away",
"4 Million gamers and counting",
"So many games to choose!",
"example.com",
"Dyknow eww",
"Securly no pls",
"i like bean",
"i like beans",
"i like lots of beans",
"i enjoy eating beans",
"i have a fondness for beans",
"i am a fan of beans",
"i find beans delicious",
"i can't resist a good bean dish",
"i think beans are underrated",
"i prefer beans over meat",
"i could eat beans every day",
"i believe beans are a healthy food",
"i always add beans to my salads",
"Desperado - Khantrast",
"Never Gonna Give You Up - Rick Astley",
"Bohemian Rhapsody - Queen",
"Hotel California - Eagles",
"Reeeeeeeee",
"Victor cant fly",
"if you want to install linux, first crack the skid, then restart and you should be set",
"sure just downgrade the about:blank page",
"...that's not how it works. if you want to unenroll the only way to do that is to uninstall the shim",
"sure just hack the crosh shell",
"yeah so you want to playstore bypass the servers, you don't want to remove the servers",
"yeah so you want to crack the proxy, you don't want to hack the goguardian",
"to disable filters, you need to hack the proxy",
"to downgrade, you need to rm -rf the shim",
"🥺👉👈",
"Fancy! ✨",
"˙ǝɯoɔlǝM",
"¡ollǝH",
"¿ʞɹoʍ uǝʌǝ sᴉɥʇ sǝop",
"ǝʇᴉsqǝʍ pɐɹ ʎɯ oʇ ǝɯoɔlǝM",
"¿¿sᴉǝɥʇ pɐǝɹ uɐɔ no⅄",
"Ḩ̴͈̗͉̜͓̣͈̙̉͑̅͋͆ë̷̱̒̿̔̕͠l̵̡̦̜̣̣̂p̴̧̢̜͓̀̒̊͗̃",
"W̷̧͈̭͉͎͙̜͉̒̈̀͆̊͑ͅe̴̢̨͕͖̩̘̱̘͎̜̞̮̖͌̿̒̽̅͆̅̂̄̉͊̾́̏͘͜͜l̶̡̤͉̟͉̞̝̻͈̐̃̓̇̑̏͗͌̒̒̿͒̚͝c̶̡̢̛͈͕̮̹̪̳̼͈͓̩̩̻͍̓̄̂͊̐̂͒̈́̊̇́̋͑̅͐͘͜ở̵͔̙͚̪͔̘̙̩̦͉̻̦̯́̂͐̉̔̀̊͂m̸̢̢̺̼͎͚͙̬̬͍̎̚e̸̜̩̫̯͙̲͍͍̯̓̔̎̍͂̓͐͌̍̃̈̾̕͘ ̶̞͔̲̦̀̽t̴̛̬͓̲̬̖̼̒͗̊͌͑̒̎̿̎̅̓̕͠͠o̵̡̨̙̬̦͍̠͕̭͚͛ͅ ̸̪̳̟̍̇̀̀͌̏̌̽͛͜3̸̧̹̝̼̺̹̞̯̠͓͛͋͌͆́͌͋̇͐͝͠k̷̟̙̙̹͚͗͛̀̽͊̇͑̒ḩ̴̩͍̗̙͓̱̠͕̺̖̘̹͉̋̒̎̽͑̈́͜ͅ0̴̱͍̬̩̩͇̥̯̯̬̙̽̈́̓̍̉͜͝!̸̠̗̠͉̪̮̻͈̰̄̚",
"All your base are belong to us",
"Error 404: Brain not found",
"Why settle for less when you can have the best?",
"Life's too short for bad design",
"Don't be a square, be a triangle",
"Think outside the box (except for this one)",
"Why be ordinary when you can be extraordinary?",
"Designing the future, one pixel at a time",
"Don't be afraid to try something new",
"The world is your canvas, make a masterpiece",
"Design is not just what it looks like and feels like. Design is how it works",
"Simplicity is the ultimate sophistication",
"Design is thinking made visible",
"The best things in life are design",
"Design is not just for decoration, it's function",
"Design is not just what it looks like, it's how it works",
"All your data belong to us.",
"Error 404: humor not found.",
"Welcome to the matrix.",
"We're not just a website, we're a lifestyle.",
"Mind blown? Us too.",
"Don't believe everything you see on the internet.",
"All hail the almighty algorithm.",
"We put the 'pro' in procrastination.",
"We're not just a website, we're a community.",
"We're the real deal, not a facsimile.",
"We're the missing piece to your internet puzzle.",
"You're not just visiting a website, you're experiencing the future.",
"We're the missing link, not the missing lynx.",
"We're not just a website, we're a revolution.",
"We're not just a website, we're a subculture.",
"We're not just a website, we're an obsession.",
"We're not just a website, we're a force to be reckoned with.",
"We're not just a website, we're a way of life.",
"We're not just a website, we're a cult.",
"We're the website you never knew you needed.",
"We're the website your mother warned you about.",
"We're the website your teachers told you to stay away from.",
"We're the website your friends are talking about.",
"We're the website you'll never forget.",
"We're the website that's taking over the world.",
"Think outside the box - unless it's a circle, then just think inside!",
"We're not just another website, we're a website with personality!",
"In a world of copycats, be a original.",
"We're not just a website, we're an experience.",
"We're not just a website, we're a movement.",
"We're not just a website, we're a game-changer.",
"We're not just a website, we're a trendsetter.",
"We're not just a website, we're a work of art.",
"We're not just a website, we're a masterpiece.",
"We're not just a website, we're a phenomenon.",
"We're not just a website, we're a sensation.",
"We're not just a website, we're a sensation of the internet.",
"We're not just a website, we're a revolution in the digital world.",
"We're not just a website, we're a revolution in the world of information",
"We're not just a website, we're a one-of-a-kind",
"We're not just a website, we're a one-stop-shop",
"We're not just a website, we're a one-stop-shop for all your needs",
"We're not just a website, we're a one-stop-shop for all your information needs",
"We're not just a website, we're a one-stop-shop for all your digital needs",
"We're not just a website, we're a one-stop-shop for all your online needs.",
"Unlock the power of knowledge with us.",
"Where the impossible becomes possible.",
"Experience the future of technology with us.",
"Where innovation meets creativity.",
"Empowering you to achieve your goals.",
"Join the revolution of digital transformation.",
"Leading the way in cutting-edge technology.",
"Transforming the way you interact with the world.",
"Unleashing the power of information at your fingertips.",
"Setting new standards in user experience.",
"Unlocking the full potential of the internet for you.",
"Discover endless possibilities with us.",
"Changing the game in online exploration.",
"Elevating your online experience to new heights.",
"Pushing the boundaries of what's possible online.",
"Unlocking the secrets of the digital world with us.",
"Unleashing the full potential of the internet for you.",
"Unlocking the power of data for you.",
"Where technology and human potential meet.",
"Where imagination becomes reality.",
"Where innovation meets accessibility.",
"Where creativity and technology merge.",
"Where ideas become solutions.",
"Where every click counts.",
"Where the future of the internet is now.",
"Why did the tomato turn red? Because it saw the salad dressing.",
"Why did the chicken cross the playground? To get to the other slide.",
"Why don't scientists trust atoms? Because they make up everything.",
"Why did the cookie go to the hospital? Because it was feeling crumbly.",
"Why did the computer go to the doctor? Because it had a virus.",
"Why did the cyclops stop teaching? Because he only had one pupil.",
"Why did the frog call his insurance company? He had a jump in his car.",
"Why did the boy tiptoe past the medicine cabinet? He didn't want to wake the sleeping pills.",
"Why did the cookie go to the seance? To talk to the dead dough.",
"Why did the clock go to the doctor? It had a broken tick-tock.",
"Why did the belt go to jail? For holding up the pants.",
"Why did the robot go to school? To learn how to unplug itself.",
"Life in the fast lane!",
"🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧",
"i forgor",
"i rember",
"me when i the me the when the the me the when i the when the me the the the when the",
"Under pressure!",
"Do your work!",
"the voices",
"imagine not spending 748,289,198 hours making this site"
"add quotes soon"
]

View File

@ -1,17 +0,0 @@
To Whom It may concern:
We hereby notify you on behalf of Microsoft Corporation, (“Microsoft Corporation”) that the following URL https://selenite.cc/semag/eaglercraft/index.html, https://selenite.cc/semag/1defense/index.html (the “URL”) which you are hosting contains content (the “Infringing Content”) which infringes the copyright, intellectual property rights, goodwill and reputation of Microsoft Corporation, including the following copyright (the “MINECRAFT Copyright”) owned by Microsoft Corporation, found on Microsoft Corporations website at https://www.minecraft.net/:
Copyright: MINECRAFT
The URLs Infringing Content constitutes an infringement of Microsoft Corporations intellectual property rights in the MINECRAFT Copyright. This damages the goodwill and reputation of Microsoft Corporation and causes consumer confusion as to whether the Infringing Content is authorized, endorsed, or sponsored by Microsoft Corporation when, in fact, it is not. Microsoft Corporation has an obligation to the public to police against any copyright infringing content which may cause marketplace confusion. Such actions by the URL dilute Microsoft Corporations MINECRAFT Copyright, harm its associated goodwill, and constitute, inter alia, a misappropriation and violation of the rights of Microsoft Corporation. This damage to its business entitles Microsoft Corporation to various forms of relief, including monetary compensation.
We represent under penalty of perjury that the information in this notice is true and correct, and that we are authorized to act on behalf of Microsoft Corporation as owner of the MINECRAFT Copyright. We have a good faith belief that this use of the Infringing Content in the URL is not authorized by Microsoft Corporation as the owner of the MINECRAFT Copyright or its agents, nor is such use permissible by law. Use of such Infringing Content in the URL is not defensible. We have notified the registrant and registrar of the URLs domain in writing of this matter.
Since you are hosting the URL containing the Infringing Content, we request that you immediately disable or suspend such URL without delay. We would appreciate your resolving this matter as soon as possible and confirming that you have done so within the next seven (7) days. Microsoft Corporation reserves the right to take whatever action it considers appropriate to protect its rights and nothing contained in this Notice is intended to constitute a waiver of any of Microsoft Corporations legal rights or remedies, all of which are hereby expressly reserved.
Please let us know if you need any additional information.
Sincerely,
[ REDACTED ]

0
favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 264 KiB

0
favicon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

86
home.html Executable file
View File

@ -0,0 +1,86 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->
<!-- initialize externals -->
<meta property="og:title" content="Selenite" />
<meta property="description" content="Selenite is the best unblocked games site. With over 400 games and an account system, no other websites come close to Selenite." />
<meta name="keywords" content="proxy, web proxy, unblock websites, unblock chromebook, free web proxy, proxy list, proxy sites, un block chromebook, online proxy, proxy server, proxysite, proxy youtube, bypass securly, bypass iboss, bypass lightspeed filter, chromebooks, unblock youtube, youtube proxy, unblocked youtube, youtube unblocked, unblock games, selenite, unblocked games, free games">
<meta content="/favicon.png" property="og:image" />
<meta content="#c77dff" data-react-helmet="true" name="theme-color" />
<meta name="googlebot" content="index, follow, snippet" />
<link rel="canonical" href="https://selenite.cc/" />
<meta property="og:description" content="Selenite is the best unblocked games site. With over 400 games and an account system, no other websites come close to Selenite." />
<meta property="og:title" content="Selenite">
<meta property="og:type" content="website">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Selenite",
"alternateName": "selenite.cc",
"url": "https://selenite.cc",
"logo": "https://selenite.cc/favicon.png",
"sameAs": [
"https://github.com/selenite-cc",
"https://youtube.com/@selenitecc",
"https://tiktok.com/@selenitecc",
"https://selenite.cc",
]
}
</script>
<!-- initialize my stuff -->
<script src="/js/all.js"></script>
<script src="/js/main.js"></script>
<!-- <script src="/js/widget.js"></script> -->
<script>
document.addEventListener("DOMContentLoaded", () => {
setBackground();
fetch("/data/quotes.json")
.then((response) => response.json())
.then((data) => {
const randomQuote = data[Math.floor(Math.random() * data.length)];
if (randomQuote.includes("OGNUM1") && randomQuote.includes("SQRTNUM1")) {
const ognum = Math.floor(Math.random() * 3000);
randomQuote = `the square root of ${ognum} is ${Math.sqrt(ognum)}`;
} else if (randomQuote.includes("CURRENTURL")) {
randomQuote = window.location.hostname;
}
document.getElementById("randomquote").innerHTML = randomQuote;
})
.catch((error) => console.error("Error loading quotes:", error));
});
</script>
<link rel="stylesheet" href="/css/main.css" />
<link rel="stylesheet" href="/css/pages.css" />
<link rel="manifest" href="/manifest.json" />
<!-- seo + other things -->
<title>Selenite</title>
<link rel="icon" href="/favicon.ico" />
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script>
</head>
<alerts> </alerts>
<body>
<h1 class="title">selenite.</h1>
<noscript>enable javascript if you want the games to actually load</noscript>
<p id="randomquote">better thank me for this unblocked website</p>
<div class="samerow">
<div class="img-container">
<a href="/users"><img src="img/user_index.svg" /></a>
</div>
<div class="img-container">
<a href="projects.html"><img src="img/games.svg" /></a>
</div>
<div class="img-container">
<a href="https://discord.gg/7jyufnwJNf"><img src="img/discord.svg" /></a>
</div>
</div>
</body>
</html>

0
img/addlink.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 368 B

After

Width:  |  Height:  |  Size: 368 B

1
img/apps.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M240-160q-33 0-56.5-23.5T160-240q0-33 23.5-56.5T240-320q33 0 56.5 23.5T320-240q0 33-23.5 56.5T240-160Zm240 0q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm240 0q-33 0-56.5-23.5T640-240q0-33 23.5-56.5T720-320q33 0 56.5 23.5T800-240q0 33-23.5 56.5T720-160ZM240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400ZM240-640q-33 0-56.5-23.5T160-720q0-33 23.5-56.5T240-800q33 0 56.5 23.5T320-720q0 33-23.5 56.5T240-640Zm240 0q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Zm240 0q-33 0-56.5-23.5T640-720q0-33 23.5-56.5T720-800q33 0 56.5 23.5T800-720q0 33-23.5 56.5T720-640Z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

0
img/backgrounds/compress images PLEASE Normal file → Executable file
View File

0
img/backgrounds/dogcat.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 131 KiB

After

Width:  |  Height:  |  Size: 131 KiB

0
img/backgrounds/mountains_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 333 KiB

After

Width:  |  Height:  |  Size: 333 KiB

0
img/backgrounds/nighttime_theme.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 317 KiB

After

Width:  |  Height:  |  Size: 317 KiB

0
img/backgrounds/seraph_theme.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 891 KiB

After

Width:  |  Height:  |  Size: 891 KiB

0
img/backgrounds/sunset_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

0
img/backgrounds/vaporwave_theme.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 255 KiB

After

Width:  |  Height:  |  Size: 255 KiB

0
img/badges/banana.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

0
img/badges/dev.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

0
img/badges/donate.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
img/badges/mod.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
img/badges/owner.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
img/badges/partner.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
img/badges/trans.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 383 B

1
img/bookmarklets.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240 200-120Zm80-122 200-86 200 86v-518H280v518Zm0-518h400-400Z"/></svg>

After

Width:  |  Height:  |  Size: 259 B

0
img/copy.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 340 B

After

Width:  |  Height:  |  Size: 340 B

0
img/discord.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
img/edit.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 329 B

0
img/friend.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

1
img/fullscreen.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"/></svg>

After

Width:  |  Height:  |  Size: 253 B

1
img/fullscreen_exit.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M240-120v-120H120v-80h200v200h-80Zm400 0v-200h200v80H720v120h-80ZM120-640v-80h120v-120h80v200H120Zm520 0v-200h80v120h120v80H640Z"/></svg>

After

Width:  |  Height:  |  Size: 253 B

View File

@ -1,3 +1 @@
<svg width="1080" height="1080" xmlns="http://www.w3.org/2000/svg">
<image href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAQAAABIkb+zAAACpUlEQVR42u2aO08UURiGT6MNuMslJoSOhp5rIpJg4i8gIYGFAhujFaWCcvkRxgaK5VISqPQXyIKthoJCQ8ImJLBbkKBRLsljh6Lu7veduZ3ie+o577zPZmfmzDnjnGEYhmEYhmEYhmEYIsgxxgolDrkgLi44pMQKY+SSLd9NkUuS5JIi3cmUb2KZa9LgmmWa4q7fwwFpckBPnPWHOCdtzhmKq/4AZ2TBGQNx1M9zRFYckY8uUCRLilHrD5M1w9EEtjMX2I5SvyulO3/9p0KXv8BM5vUBZvwFNhun3xwrp0yBDjooUBYdv+kvcJyAQJn2mzHtIoVj3/ptkj5qgcKtcxREY9r8BAYTEei8dY5O0ZhBP4HJYAQm/QSWgvkLLfkJbCQioL+IYcNPYC8RAf1tFPb8BKr1CjccHSdVn/qt9X/xVAWgVS8wEJSA/tWm1v0hI4GCXmBRlhxDYclFvagXWE9JQHZbXdcL7KYkIHuw7eoFKikJyKYWFW39Fun5UxKAFp1Af2oC0rlRv05gIjUB6dxoQiewkJqAdG60oBNYIzTWdAKl4ARKOoHT4ARONfXzwdUHFAu99AUp0CcXGA9SYFwuMB+kwLxcYDVIgVW5wE6QAjtygZMgBU6k9XNB1geE+/j0BivQKxMY9YhWL/7JFi7/YlQWPaUO1r9y+ylMyYKnlbELzhO1wrQs9qEq9LWLgFJB9vEBzVyJI1+5iCgUrmiWhkp3h+dcDIgVtuSRI6LAWRcTQoURTWTj2dBLFyMCBd1XE+T4XDfuhYuZBgqfuKcNbONjjbCfPHEJwPOa3+PteewPOMdd5vj+T9gH5RKT5owP/rOt9Y1Z7vhH3ucZ7/nKBRX2ecMjlzA85i37VPnBF97x9Peyl2EYhmEYhmEYhmEYf/ILpJ54reMDuewAAAAASUVORK5CYII=" height="1080" width="1080" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M189-160q-60 0-102.5-43T42-307q0-9 1-18t3-18l84-336q14-54 57-87.5t98-33.5h390q55 0 98 33.5t57 87.5l84 336q2 9 3.5 18.5T919-306q0 61-43.5 103.5T771-160q-42 0-78-22t-54-60l-28-58q-5-10-15-15t-21-5H385q-11 0-21 5t-15 15l-28 58q-18 38-54 60t-78 22Zm3-80q19 0 34.5-10t23.5-27l28-57q15-31 44-48.5t63-17.5h190q34 0 63 18t45 48l28 57q8 17 23.5 27t34.5 10q28 0 48-18.5t21-46.5q0 1-2-19l-84-335q-7-27-28-44t-49-17H285q-28 0-49.5 17T208-659l-84 335q-2 6-2 18 0 28 20.5 47t49.5 19Zm348-280q17 0 28.5-11.5T580-560q0-17-11.5-28.5T540-600q-17 0-28.5 11.5T500-560q0 17 11.5 28.5T540-520Zm80-80q17 0 28.5-11.5T660-640q0-17-11.5-28.5T620-680q-17 0-28.5 11.5T580-640q0 17 11.5 28.5T620-600Zm0 160q17 0 28.5-11.5T660-480q0-17-11.5-28.5T620-520q-17 0-28.5 11.5T580-480q0 17 11.5 28.5T620-440Zm80-80q17 0 28.5-11.5T740-560q0-17-11.5-28.5T700-600q-17 0-28.5 11.5T660-560q0 17 11.5 28.5T700-520Zm-360 60q13 0 21.5-8.5T370-490v-40h40q13 0 21.5-8.5T440-560q0-13-8.5-21.5T410-590h-40v-40q0-13-8.5-21.5T340-660q-13 0-21.5 8.5T310-630v40h-40q-13 0-21.5 8.5T240-560q0 13 8.5 21.5T270-530h40v40q0 13 8.5 21.5T340-460Zm140-20Z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

1
img/home.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M240-200h120v-240h240v240h120v-360L480-740 240-560v360Zm-80 80v-480l320-240 320 240v480H520v-240h-80v240H160Zm320-350Z"/></svg>

After

Width:  |  Height:  |  Size: 243 B

1
img/info.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M440-280h80v-240h-80v240Zm40-320q17 0 28.5-11.5T520-640q0-17-11.5-28.5T480-680q-17 0-28.5 11.5T440-640q0 17 11.5 28.5T480-600Zm0 520q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"/></svg>

After

Width:  |  Height:  |  Size: 535 B

1
img/muted.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M792-56 671-177q-25 16-53 27.5T560-131v-82q14-5 27.5-10t25.5-12L480-368v208L280-360H120v-240h128L56-792l56-56 736 736-56 56Zm-8-232-58-58q17-31 25.5-65t8.5-70q0-94-55-168T560-749v-82q124 28 202 125.5T840-481q0 53-14.5 102T784-288ZM650-422l-90-90v-130q47 22 73.5 66t26.5 96q0 15-2.5 29.5T650-422ZM480-592 376-696l104-104v208Zm-80 238v-94l-72-72H200v80h114l86 86Zm-36-130Z"/></svg>

After

Width:  |  Height:  |  Size: 495 B

1
img/open.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z"/></svg>

After

Width:  |  Height:  |  Size: 300 B

1
img/pause.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M520-200v-560h240v560H520Zm-320 0v-560h240v560H200Zm400-80h80v-400h-80v400Zm-320 0h80v-400h-80v400Zm0-400v400-400Zm320 0v400-400Z"/></svg>

After

Width:  |  Height:  |  Size: 254 B

0
img/pfps/3kh0.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

0
img/pfps/astra.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

0
img/pfps/awesome.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
img/pfps/ayo.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
img/pfps/buttsfart.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

0
img/pfps/caidn.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
img/pfps/compass.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

0
img/pfps/dire.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

0
img/pfps/legalise.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

0
img/pfps/lunar.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

0
img/pfps/math.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

0
img/pfps/night.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
img/pfps/ocular.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
img/pfps/shadow.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
img/pfps/sky.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

0
img/pfps/snor.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
img/pfps/ultra.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

0
img/pfps/wrnd.gif Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1023 KiB

After

Width:  |  Height:  |  Size: 1023 KiB

1
img/play.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M320-200v-560l440 280-440 280Zm80-280Zm0 134 210-134-210-134v268Z"/></svg>

After

Width:  |  Height:  |  Size: 190 B

1
img/reload.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z"/></svg>

After

Width:  |  Height:  |  Size: 333 B

0
img/selenite192.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

0
img/selenite512.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 222 KiB

After

Width:  |  Height:  |  Size: 222 KiB

1
img/settings.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z"/></svg>

After

Width:  |  Height:  |  Size: 772 B

0
img/star-fill.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 367 B

0
img/star.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 617 B

After

Width:  |  Height:  |  Size: 617 B

0
img/user.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 751 B

0
img/user_index.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 548 B

1
img/volume.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M560-131v-82q90-26 145-100t55-168q0-94-55-168T560-749v-82q124 28 202 125.5T840-481q0 127-78 224.5T560-131ZM120-360v-240h160l200-200v640L280-360H120Zm440 40v-322q47 22 73.5 66t26.5 96q0 51-26.5 94.5T560-320ZM400-606l-86 86H200v80h114l86 86v-252ZM300-480Z"/></svg>

After

Width:  |  Height:  |  Size: 378 B

110
index.html Normal file → Executable file
View File

@ -1,5 +1,5 @@
<!DOCTYPE html>
<html class="sl-theme-dark" lang="en">
<html lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->
@ -32,75 +32,63 @@
]
}
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<script src=" https://cdn.jsdelivr.net/npm/js-cookie@3.0.5/dist/js.cookie.min.js "></script>
<!-- initialize my stuff -->
<script src="/js/all.min.js"></script>
<script src="/js/main.js"></script>
<script src="/js/widget.js"></script>
<script>
document.addEventListener("DOMContentLoaded", () => {
fetch("/data/quotes.json")
.then((response) => response.json())
.then((data) => {
const randomQuote = data[Math.floor(Math.random() * data.length)];
<script src="/js/all.js"></script>
if (randomQuote.includes("OGNUM1") && randomQuote.includes("SQRTNUM1")) {
const ognum = Math.floor(Math.random() * 3000);
randomQuote = `the square root of ${ognum} is ${Math.sqrt(ognum)}`;
} else if (randomQuote.includes("CURRENTURL")) {
randomQuote = window.location.hostname;
}
document.getElementById("randomquote").innerHTML = randomQuote;
})
.catch((error) => console.error("Error loading quotes:", error));
});
</script>
<link rel="stylesheet" href="/style.css" />
<link rel="stylesheet" href="/css/main.css" />
<link rel="stylesheet" href="/css/sidebar.css" />
<link rel="manifest" href="/manifest.json" />
<!-- seo + other things -->
<title>Selenite</title>
<link rel="icon" href="/favicon.ico" />
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", ()=>{
document.getElementById("iframe").addEventListener("load", () => {
document.getElementById("iframe").contentWindow.addEventListener("beforeunload", () => {
alert("unloading! show loading bar")
})
});
document.querySelectorAll(".sidebar-item").forEach((item) => {
if(item.childNodes[0].target) {
item.childNodes[0].addEventListener("click", (e)=>{
console.log("created event listneer")
e.preventDefault();
document.getElementById("iframe").src = item.childNodes[0].target;
})
} else if(item.childNodes[0].id == "openblank") {
item.childNodes[0].addEventListener("click", (e)=>{
e.preventDefault();
win = window.open();
win.document.body.style.margin = "0";
win.document.body.style.height = "100vh";
html = `<style>*{margin:0;padding:0;border:none;height:100vh;width:100vw}</style><iframe src=${location.href}></iframe>`;
win.document.querySelector("html").innerHTML = html;
location.href = "https://google.com";
window.close();
})
}
})
})
</script>
</head>
<alerts> </alerts>
<body id="noscroll">
<header>
<a href="/index.html">Home</a>
<a href="/bookmarklets.html">Bookmarklets</a>
<a href="/projects.html" title="Games (Unblocked)">Games</a>
<a href="/apps.html">Apps</a>
<a href="/settings.html">Settings</a>
<a id="blank" href="#">Open Blank</a>
<a href="/u/" class="usericon"><img src="/img/user.svg" /></a>
</header>
<main id="main" class="noscroll">
<b style="font-weight: 1000px"><h1 class="chan">selenite.</h1></b>
<noscript>enable javascript if you want the games to actually load</noscript>
<p id="randomquote">better thank me for this unblocked website</p>
<div class="samerow">
<div class="img-container">
<a href="/users"><img src="img/user_index.svg" /></a>
</div>
<div class="img-container">
<a href="projects.html"><img src="img/games.svg" /></a>
</div>
<div class="img-container">
<a href="https://discord.gg/7jyufnwJNf"><img src="img/discord.svg" /></a>
</div>
</div>
</main>
<footer class="noscroll">
<a href="gitlab.com/skysthelimit.dev/selenite">Source</a>
<a href="https://discord.gg/7jyufnwJNf">Discord</a>
<a href="/suggest.html">Suggestions & Bugs</a>
<a href="/contact.html">Contact</a>
<a href="/support.html">Donate</a>
<a href="/about.html">About</a>
</footer>
<body>
<iframe id="iframe" src="home.html"></iframe>
<!-- to do
add colors -->
<sidebar>
<div class="sidebar-item"><a href="#" target="/home"><img src="/img/home.svg" /></a><div class="sidebar-item-descriptor">home</div></div> <!-- home -->
<div class="sidebar-item"><a href="#" target="/projects"><img src="/img/games.svg" /></a><div class="sidebar-item-descriptor">games</div></div> <!-- games -->
<div class="sidebar-item"><a href="#" target="/apps"><img src="/img/apps.svg" /></a><div class="sidebar-item-descriptor">apps</div></div> <!-- apps -->
<div class="sidebar-item"><a href="#" target="/bookmarklets"><img src="/img/bookmarklets.svg" /></a><div class="sidebar-item-descriptor">bookmarklets</div></div> <!-- reload -->
<div class="sidebar-item"><a href="#" id="openblank"><img src="/img/open.svg" /></a><div class="sidebar-item-descriptor">open blank</div></div> <!-- open blank -->
<div class="sidebar-divider"></div>
<div class="sidebar-item"><a href="#" target="/u/"><img src="/img/user.svg" /></a><div class="sidebar-item-descriptor">user profile</div></div> <!-- user -->
<div class="sidebar-item"><a href="#" target="/settings"><img src="/img/settings.svg" /></a><div class="sidebar-item-descriptor">settings</div></div> <!-- settings -->
<div class="sidebar-item"><a href="#" target="/info"><img src="/img/info.svg" /></a><div class="sidebar-item-descriptor">information</div></div> <!-- info -->
</sidebar>
</body>
</html>

View File

@ -1,55 +0,0 @@
const express = require('express');
const path = require('path');
const app = express();
const port = process.env.PORT || 3000;
app.use(express.static(__dirname));
app.get('/projects', (req, res) => {
res.sendFile(path.join(__dirname, 'projects.html'));
});
app.get('/bookmarklets', (req, res) => {
res.sendFile(path.join(__dirname, 'bookmarklets.html'));
});
app.get('/settings', (req, res) => {
res.sendFile(path.join(__dirname, 'settings.html'));
});
app.get('/support', (req, res) => {
res.sendFile(path.join(__dirname, 'support.html'));
});
app.get('/about', (req, res) => {
res.sendFile(path.join(__dirname, 'about.html'));
});
app.get('/transfer', (req, res) => {
res.sendFile(path.join(__dirname, 'transfer.html'));
});
app.get('/suggest', (req, res) => {
res.sendFile(path.join(__dirname, 'suggest.html'));
});
app.get('/contact', (req, res) => {
res.sendFile(path.join(__dirname, 'contact.html'));
});
app.get('/ad', (req, res) => {
res.sendFile(path.join(__dirname, 'ad.html'));
});
app.get('/blank', (req, res) => {
res.sendFile(path.join(__dirname, 'blank.html'));
});
app.get('/backgrounds', (req, res) => {
res.sendFile(path.join(__dirname, 'backgrounds.html'));
});
app.listen(port, () => {
console.log(`Selenite is running on port ${port}`);
});

77
info.html Normal file
View File

@ -0,0 +1,77 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- initialize theme vars
https://coolors.co/10002b-240046-3c096c-5a189a-7b2cbf-9d4edd-c77dff-e0aaff -->
<!-- initialize externals -->
<meta property="og:title" content="Selenite" />
<meta property="description" content="Selenite is the best unblocked games site. With over 400 games and an account system, no other websites come close to Selenite." />
<meta name="keywords" content="proxy, web proxy, unblock websites, unblock chromebook, free web proxy, proxy list, proxy sites, un block chromebook, online proxy, proxy server, proxysite, proxy youtube, bypass securly, bypass iboss, bypass lightspeed filter, chromebooks, unblock youtube, youtube proxy, unblocked youtube, youtube unblocked, unblock games, selenite, unblocked games, free games">
<meta content="/favicon.png" property="og:image" />
<meta content="#c77dff" data-react-helmet="true" name="theme-color" />
<meta name="googlebot" content="index, follow, snippet" />
<link rel="canonical" href="https://selenite.cc/" />
<meta property="og:description" content="Selenite is the best unblocked games site. With over 400 games and an account system, no other websites come close to Selenite." />
<meta property="og:title" content="Selenite">
<meta property="og:type" content="website">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Selenite",
"alternateName": "selenite.cc",
"url": "https://selenite.cc",
"logo": "https://selenite.cc/favicon.png",
"sameAs": [
"https://github.com/selenite-cc",
"https://youtube.com/@selenitecc",
"https://tiktok.com/@selenitecc",
"https://selenite.cc",
]
}
</script>
<!-- initialize my stuff -->
<script src="/js/all.js"></script>
<script src="/js/main.js"></script>
<!-- <script src="/js/widget.js"></script> -->
<script>
document.addEventListener("DOMContentLoaded", () => {
setBackground();
fetch("/data/quotes.json")
.then((response) => response.json())
.then((data) => {
const randomQuote = data[Math.floor(Math.random() * data.length)];
if (randomQuote.includes("OGNUM1") && randomQuote.includes("SQRTNUM1")) {
const ognum = Math.floor(Math.random() * 3000);
randomQuote = `the square root of ${ognum} is ${Math.sqrt(ognum)}`;
} else if (randomQuote.includes("CURRENTURL")) {
randomQuote = window.location.hostname;
}
document.getElementById("randomquote").innerHTML = randomQuote;
})
.catch((error) => console.error("Error loading quotes:", error));
});
</script>
<link rel="stylesheet" href="/css/main.css" />
<link rel="stylesheet" href="/css/pages.css" />
<link rel="manifest" href="/manifest.json" />
<!-- seo + other things -->
<title>Selenite</title>
<link rel="icon" href="/favicon.ico" />
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3415518411898563" crossorigin="anonymous"></script>
</head>
<alerts> </alerts>
<body>
<h1 class="title">information</h1>
<h2>credits</h2>
<p>whilst the majority of the work has been done by the creator, sky, selenite would not be possible without some key sources and people.</p>
<p><a href="https://github.com/a456pur/seraph">seraph</a> by <a href="https://a456pur.dev">a456pur</a></p>
<p><a href="https://gitlab.com/3kh0/3kh0-assets">3kh0 assets</a> by <a href="https://3kh0.com">3kh0</a></p>
</body>
</html>

0
js/all.js Normal file → Executable file
View File

0
js/all.min.js vendored Normal file → Executable file
View File

0
js/analytics.js Normal file → Executable file
View File

333
js/apps.js Normal file → Executable file
View File

@ -1,197 +1,142 @@
$.getJSON("/data/apps.json", function (data) {
if (document.readyState === "complete") {
loadGames(data);
} else {
let areGamesReady = setInterval(() => {
if (document.readyState === "complete") {
loadGames(data);
clearInterval(areGamesReady);
}
}, 50);
}
document.addEventListener("DOMContentLoaded", loadGames);
let elements = [];
async function loadGames() {
// taken from mdn
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
let data = await (await fetch("/resources/apps.json")).json();
let sorted = data.sort((a, b) => {
const n1 = a.name.toUpperCase();
const n2 = b.name.toUpperCase();
if (n1 < n2) {
return -1;
}
if (n1 > n2) {
return 1;
}
// shouldnt happen but just incase
return 0;
});
let gamesElement = document.getElementById("games");
let starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]');
sorted.forEach(element => {
isStarred = starredGames.indexOf(element.directory) != -1;
let newElement = document.createElement("game");
newElement.setAttribute("data-target", element.directory);
newElement.setAttribute("data-image", element.image);
let image = document.createElement("img");
image.src = `/resources/sppa/${element.directory}/${element.image}`
let holder = document.createElement("div");
holder.id = "holder";
let title = document.createElement("h1");
title.innerText = element.name;
let star = document.createElement("img");
star.id = "star";
star.classList = "star";
star.src = isStarred ? "/img/star-fill.svg" : "/img/star.svg";
newElement.appendChild(image);
holder.appendChild(title);
holder.appendChild(star);
newElement.appendChild(holder);
gamesElement.appendChild(newElement);
elements.push(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${encodeURIComponent(element.name)}&dir=${element.directory}&img=${element.image}`
});
star.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
starEvent(e);
});
});
document.getElementById("loadingMsg").style.display = "none";
document.getElementById("allHeader").style.display = "block";
starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]');
if(starredGames.length > 0) {
document.getElementById("starredHeader").style.display = "block";
starredGames.forEach((e) => {
let element = document.querySelector(`#games game[data-target='${e}']`);
let newElement = element.cloneNode(true);
document.getElementById("starredgames").appendChild(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}`
});
});
document.querySelectorAll("#starredgames #star").forEach((e) => {
e.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
starEvent(e);
})
})
}
}
document.addEventListener("DOMContentLoaded", ()=>{
document.getElementById("gamesearch").addEventListener("input", ()=>{
let input = document.getElementById("gamesearch").value.toUpperCase();
let total = 0;
if(elements.length > 0) {
elements.forEach((element) => {
let title = element.childNodes[1].childNodes[0].innerText.toUpperCase();
if(title.includes(input)) {
element.style.display = "flex";
} else {
element.style.display = "none";
total++;
}
})
}
document.getElementById("noResults").style.display = total >= elements.length ? "flex" : "none"
})
});
function loadGames(data) {
starredgames = getCookie("starred");
if (!starredgames) {
starredgames = [];
} else {
starredgames = JSON.parse(decodeURIComponent(getCookie("starred")));
}
$("#gamesearch").prop({
placeholder: "Click here to search through our " + data.length + " apps!",
});
data.sort(dynamicSort("name"));
gamelist = data;
for (let i = 0; i < data.length; i++) {
let $element = $("<a>")
.attr({
class: "game",
id: data[i].directory,
recommended: data[i].recommended,
href: "sppa/" + data[i].directory + "/index.html",
})
.data("recommended", data[i].recommended)
.append(
$("<img>").prop({
src: "sppa/" + data[i].directory + "/" + data[i].image,
alt: data[i].name + " logo",
})
)
.append($("<h1>").text(data[i].name))
.append(
$("<img>").prop({
src: "img/star.svg",
alt: "star",
class: "star",
})
);
if (starredgames.includes(data[i].directory)) {
$element.find("img.star").attr("id", "starred");
$element.find("img.star").attr("src", "img/star-fill.svg");
let $pinnedelement = $element.clone();
$("#pinned").append($pinnedelement);
if ($("#pinnedmessage")) {
$("#pinnedmessage").hide();
}
}
$("#games").append($element);
}
$("#games #message").remove();
if ((search = 1)) {
var txt = $("#gamesearch").val();
if (txt == "") {
$("#games .suggest").show();
} else {
$("#games .suggest").hide();
}
$("#games .game").hide();
$("#games .game").each(function () {
if ($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1 || $(this).attr("id").toUpperCase().indexOf(txt.toUpperCase()) != -1) {
$(this).show();
}
});
}
// starred games
let starred;
$(document).on("click", "img.star", function (event) {
});
$(document).on("click", ".game", function (event) {
if ($(event.target).is("img.star")) {
event.preventDefault();
event.stopPropagation();
if (!$(event.target).attr("id")) {
$(event.target).prop({ id: "starred" });
$(event.target).prop({ src: "img/star-fill.svg" });
starred = Cookies.get("starred");
if (starred) {
starred = JSON.parse(starred);
} else {
starred = [];
}
starred.push($(this).attr("id"));
Cookies.set("starred", JSON.stringify(starred));
$element = $(this).clone();
$("#pinned").append($element);
$("#pinnedmessage").hide();
temp = $("#pinned")[0].childNodes;
pinnedarray = [...temp];
pinnedarray.sort(dynamicSort("id"));
$("#pinned").empty();
for (let i = 0; i < pinnedarray.length; i++) {
pinnedarraynodes = pinnedarray[i].childNodes;
pinnedarraynodes = [...pinnedarraynodes];
let $element = $("<div>")
.prop({
class: "game",
id: pinnedarray[i].id,
})
.append(
$("<img>").prop({
src: pinnedarraynodes[0].src,
alt: pinnedarraynodes[0].alt,
class: "gameicon",
})
)
.append($("<h1>").text(pinnedarraynodes[1].innerHTML))
.append(
$("<img>").prop({
src: "img/star-fill.svg",
alt: "star",
class: "star",
id: "starred",
})
);
$("#pinned").append($element);
}
} else {
$(event.target).removeAttr("id");
$(event.target).attr("src", "img/star.svg");
$thisdiv = "#" + $(this).attr("id");
$thisdiv = $thisdiv.replace(".", "\\.");
starred = Cookies.get("starred");
starred = JSON.parse(starred);
ourindex = starred.indexOf($(this).attr("id"));
starred.splice(ourindex, 1);
Cookies.set("starred", JSON.stringify(starred));
$("#pinned " + $thisdiv).remove();
if ($("#pinned").is(":empty")) {
$("#pinnedmessage").show();
}
$($thisdiv + " #starred").attr("src", "img/star.svg");
$($thisdiv + " #starred").removeAttr("id");
}
}
});
$(document).on("click", "#game img .star", function (event) {
event.stopPropagation();
$(this).prop({ class: "material-symbols-outlined fill" });
});
}
function redirectGame(dir) {
window.location.href = window.location.origin + "/sppa/" + dir + "/index.html";
}
function dynamicSort(property) {
var sortOrder = 1;
if (property[0] === "-") {
sortOrder = -1;
property = property.substr(1);
}
return function (a, b) {
if (sortOrder == -1) {
return b[property].localeCompare(a[property]);
} else {
return a[property].localeCompare(b[property]);
}
};
}
function selectRandomGame() {
redirectGame(gamelist[Math.floor(Math.random() * gamelist.length - 1)].directory);
}
let viewrecommended = 0;
function recommendedGames() {
if (viewrecommended == 0) {
$("#games .game").hide();
$("#games .game").each(function () {
if ($(this).attr("recommended")) {
$(this).show();
}
});
$("#recommend").text("Click to view all apps again!");
viewrecommended = 1;
} else {
$("#games .game").hide();
$("#games .game").show();
viewrecommended = 0;
$("#recommend").text("Click to view recommended apps!");
}
function starEvent(e) {
let game = e.target.parentNode.parentNode.getAttribute("data-target");
starredGames = JSON.parse(localStorage.getItem("selenite.starred") || '[]');
if(starredGames.indexOf(game) == -1) {
starredGames.push(game);
starredGames.sort();
if(starredGames.length > 0) {
document.getElementById("starredHeader").style.display = "block";
} else {
document.getElementById("starredHeader").style.display = "none";
}
localStorage.setItem("selenite.starred", JSON.stringify(starredGames));
e.target.src = "/img/star-fill.svg";
starredgames.innerHTML = "";
starredGames.forEach((e) => {
let element = document.querySelector(`#games game[data-target='${e}']`);
let newElement = element.cloneNode(true);
document.getElementById("starredgames").appendChild(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}`
});
})
} else {
starredGames.splice(starredGames.indexOf(game), 1);
document.querySelectorAll(`game[data-target='${game}'] #star`).forEach((e) => {
e.src = "/img/star.svg";
})
if(starredGames.length > 0) {
document.getElementById("starredHeader").style.display = "block";
} else {
document.getElementById("starredHeader").style.display = "none";
}
localStorage.setItem("selenite.starred", JSON.stringify(starredGames));
starredgames.innerHTML = "";
starredGames.forEach((e) => {
let element = document.querySelector(`#games game[data-target='${e}']`);
let newElement = element.cloneNode(true);
document.getElementById("starredgames").appendChild(newElement);
newElement.addEventListener("click", ()=>{
location.href=`/loader.html?title=${newElement.childNodes[1].childNodes[0].innerText}&dir=${newElement.getAttribute("data-target")}&img=${newElement.getAttribute("data-image")}`
});
})
}
document.querySelectorAll("#starredgames #star").forEach((e) => {
e.addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
starEvent(e);
})
})
}

0
js/asteroids.js Normal file → Executable file
View File

0
js/bootstrap.css vendored Normal file → Executable file
View File

0
js/bootstrap.min.css vendored Normal file → Executable file
View File

0
js/cloaks.js Normal file → Executable file
View File

0
js/cookie.js Normal file → Executable file
View File

0
js/cookieConsent.css Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More