Redesign, ig

This commit is contained in:
Gemdation 2025-06-10 19:31:43 -05:00
parent 51c2ecc585
commit 34482572cf
36 changed files with 356 additions and 45 deletions

22
404.html Normal file
View File

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<style>@font-face {font-family: 'Shop'; src: url('/meta/shop.ttf') format('truetype'); font-weight: normal; font-style: normal;}</style>
<title>404 Not Found - DSiMart</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="/meta/main.css">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
</head>
<body>
<img src="/media/branding-bag-no-bg.png" loading="lazy" width="150px" height="150px">
<h1 style="color:red">404 Page Not Found</h1>
<a href="/" class="btn">Home page</a> <button onclick="history.back(1);">Previous page</button>
<footer><p>The WiiMart Team is not affiliated with Nintendo or any related parties. To contact, please send an email to <a href="mailto:support@wiimart.org"><b>support@wiimart.org</b></a>.</p></footer>
</body>
</html>

View File

@ -4,22 +4,15 @@
This is the source code of DSiMart's soon-to-be website. It contains NDS files, branding, and project information.
## Folders and build script
## Folders and sources
* `/media` Media files used throughout the site (pictures, branding, sound effects)
* `/meta` Files used for the website (CSS, JS, images, music)
* `/nds` NDS files (shop)
* `.gitlab-ci.yml` Build script for the website
* `404.html` 404 page
* `favicon.ico` Favicon
## Content pages
* `404.html` 404 page
* `branding.html` Branding for DSiMart
* `credits.html` Credits for DSiMart
* `CNAME` Domain text file
* `errors.html` Error Code Checker
* `favicon.ico` Favicon
* `index.html` Main page
* `install.html` Installation guide
* `support.html` Support/FAQ page
*The WiiMart Team is not affiliated with Nintendo or any related parties. To contact, please send an email to support@wiimart.org*

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -1,44 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>DSiMart</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {background-color:#E911D1;color:white;font-family: sans-serif; margin: 0;height: 100vh;display: flex;justify-content: center;align-items: center;}
img.btn {outline: solid 1px white}
td img {border-radius: 5px}
</style>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>DSiMart: private beta DSi Shop revival!</title>
<meta content="DSiMart: private beta DSi Shop revival!" property="og:title">
<meta content="DSiMart is an upcoming private beta DSi Shop revival. Like WiiMart, it is an open-source revival for the defunct DSi Shop service." property="og:description">
<meta content="https://dsimart.org/media/branding-bag.png" property="og:image">
<meta content="https://dsimart.org" property="og:url">
<meta content="#E911D1" data-react-helmet="true" name="theme-color">
<meta name="keywords" content="DSiMart, DSi Shop, homebrew">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="meta/main.css">
<script src="meta/gallery.js" defer></script>
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<table style="text-align:center">
<tr>
<td><img src="media/icon-aura-aura.gif" alt="Aura-Aura Climber"></td>
<td><img src="media/icon-brain-age.gif" alt="Brain Age"></td>
<td><img src="media/icon-dr-mario.gif" alt="Dr. Mario"></td>
<td><img src="media/icon-birds-and-beans.gif" alt="Birds and Beans"></td>
<td><img src="media/icon-paper-airplane-chase.gif" alt="Paper Airplane Chase"></td>
<td><img src="media/icon-dsi-web.gif" alt="DSi Browser"></td>
</tr>
<tr>
<td colspan="6"><img src="media/branding-wordmark.png" width="400px"></td>
</tr>
<tr>
<td><img src="media/icon-electroplankton.gif" alt="Electroplankton"></td>
<td><img src="media/icon-mario-calculator.gif" alt="Mario Calculator"></td>
<td><img src="media/icon-uno.gif" alt="UNO"></td>
<td><img src="media/icon-game-and-watch-ball.gif" alt="Game & Watch Ball"></td>
<td><img src="media/icon-space-invaders.gif" alt="Space Invaders Extreme Z"></td>
<td><img src="media/icon-flipnote.gif" alt="Flipnote Studio"></td>
</tr>
<tr>
<td colspan="6"><p style="color:#FF94F3;font-style: italic;">maybe one day...</p></td>
</tr>
<tr>
<td colspan="6"><a href="https://wiimart.org"><img src="media/branding-button-wiimart.png" class="btn"></a> <img src="media/branding-button.png" class="btn"></td>
</tr>
</table>
<h1>DSiMart</h1>
<div id="about">
<p><b>DSiMart</b> is an upcoming private beta DSi Shop revival. Like <b>WiiMart</b>, it is
an open-source revival for the defunct DSi Shop service.</p>
</div>
<div>
<h2>Screenshots</h2>
<div class="gallery">
<img src="media/example-1.png" class="slide">
<img src="media/example-2.png" class="slide">
<img src="media/example-3.png" class="slide">
<img src="media/example-4.png" class="slide">
</div>
<p>These were taken during testing.</p>
</div>
<div>
<h2>Frequently Asked Questions</h2>
<h3>When will it be released?</h3>
<p>We do not have an ETA on the project.</p>
<h3>What will it have?</h3>
<p>DSiWare alongside custom-made software. Custom software will be added if it is small enough. (16 MB)</p>
<h3>Will it be on 3DS?</h3>
<p>Due to difficulties with the 293003 code, DSiMart will not be released on Nintendo 3DS.</p>
</div>
<div>
<h2>Branding</h2>
<img src="media/branding-bag.png" width="200px">
<p><a href="media/branding-bag.svg" class="btn" download>Download SVG</a></p>
<img src="media/branding-wordmark.png" width="200px">
<p><a href="media/branding-wordmark.svg" class="btn" download>Download SVG</a></p>
</div>
<p style="margin-bottom: 0px"><img src="media/branding-button.png" class="wb"> <a href="https://wiimart.org/"><img src="media/branding-button-wiimart.png" class="wb"></a></p>
<footer><p>The WiiMart Team is not affiliated with Nintendo or any related parties. To contact, please send an email to <a href="mailto:support@wiimart.org"><b>support@wiimart.org</b></a>.</p></footer>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
media/branding-bag.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

17
media/branding-bag.svg Normal file
View File

@ -0,0 +1,17 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1500 1500" width="1500" height="1500">
<title>dsimart-bag</title>
<defs>
<image width="1500" height="1500" id="img1" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABdwAAAXcAQMAAAAC+94nAAAAAXNSR0IB2cksfwAAAANQTFRF6RHRo0QXpwAABZtJREFUeJztzkENADAIALHh3/RE8GhIrgo677DRgY3ySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa+UV8or5ZXySnmlvFJeKa98ogcF3T/hVqIAAAAASUVORK5CYII="/>
</defs>
<style>
.s0 { fill: #ffffff;stroke: #e911d1;stroke-miterlimit:100;stroke-width: 22 }
.s1 { fill: #e911d1 }
.s2 { fill: #ffffff }
</style>
<use id="Layer 1" href="#img1" x="0" y="0"/>
<path id="Shape 5" fill-rule="evenodd" class="s0" d="m473 461.5c0-161.6 124-292.5 277-292.5 153 0 277 130.9 277 292.5v234c0 161.6-124 292.5-277 292.5-153 0-277-130.9-277-292.5zm277-175.5c-91.8 0-166.2 78.6-166.2 175.5v234c0 96.9 74.4 175.5 166.2 175.5 91.8 0 166.2-78.6 166.2-175.5v-234c0-96.9-74.4-175.5-166.2-175.5z"/>
<path id="Shape 1" fill-rule="evenodd" class="s0" d="m288 502h924c27.6 0 50 22.4 50 50v609c0 27.6-22.4 50-50 50h-924c-27.6 0-50-22.4-50-50v-609c0-27.6 22.4-50 50-50z"/>
<path id="★" class="s1" aria-label="★" d="m676.5 884.5l-118.2-86.2h146.3l45.4-138.9 45.7 138.9h146l-118.2 86.2 45.4 138.7-118.9-85.9-118.7 85.9z"/>
<path id="Shape 7" fill-rule="evenodd" class="s2" d="m1016 491v22h-89v-22z"/>
<path id="Shape 6" fill-rule="evenodd" class="s2" d="m573 486v32h-89v-32z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,7 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 740 112" width="740" height="112">
<title>DSi★MART </title>
<style>
.s0 { fill: #ffffff }
</style>
<path id="DSi★MART" class="s0" aria-label="DSi★MART" d="m0.1 2.5h42.8q6.9 0 13.6 1.1 22.3 3.8 29.4 23.9 3.7 10.8 3.7 23.2 0 12.8-3.3 24.8-4.5 16.4-15.8 25.6-9.7 7.9-28.7 7.9h-41.7zm41.9 25.3h-15.1v58.6h12.8q7.2 0.1 10.8-1.8 4.2-2.1 7.5-8 4.6-8.4 4.8-21.5 0.2-27.4-20.8-27.3zm52.8 72.5v-25.5l2.3 1.6q3.6 2.4 7.4 4.4 4.8 2.7 9.9 4.3 6.1 2.1 12.2 2.1 5.4 0 8.9-2.2 4.9-2.8 4.7-7.6 0.2-4.7-4.6-6.5-3.9-1.4-11.9-3.6-14.2-3.9-21.9-9.7-10.5-7.7-10.5-23.3 0-7.3 2.6-13.3 3.1-7.6 9.9-12.5 10.8-8.3 27.6-8.4 16.6 0.1 27.8 7.4l3.6 2.6v26.8l-5.5-3.1q-11.5-6-24.4-6.1-14.9 0.1-14.8 7.8-0.1 3.5 8.3 6.5l12 3.7q15.4 4.7 20.6 9.6 8 7.7 8.1 21.5 0 10.6-5.5 19.1-5.6 8.8-15.3 12.5-8 3.1-17.1 3-7.3 0.1-14.4-1.8-8.9-2.1-16.1-6.7zm76.7 8.7v-77.6h24.8v77.6zm0-87.6v-20.3h24.9v20.3zm65 48.9l-33.6-24.5h41.6l12.9-39.5 12.9 39.5h41.5l-33.6 24.5 12.9 39.4-33.7-24.4-33.7 24.4zm119.2-24.4v63.1h-28.6v-106.5h43.8l15.4 73.4 15.4-73.4h43.8v106.5h-28.5v-63.1l-15.8 63.1h-29.8zm94.8 63.1l32-106.5h44.5l32 106.5h-31.4l-6.3-21.3h-34.5l-6.2 21.3zm53.6-83.6l-10.8 34.5h21.3zm116.8 37.7l33 45.9h-36.4l-24.4-40.2v40.2h-29.1v-107.1h49.7q12.6 0.2 19.2 2.6 10.2 3.9 13.8 13.6 2.3 6.2 2.5 13.4-0.1 11.8-6.1 20.2-6.7 9.4-18.1 11 0 0-4.1 0.4zm-0.9-26.1q0-4.9-3.6-7-2.9-1.7-8.4-1.7h-14.9v18.4h13.7q7 0 9.4-1.7 3.8-2.7 3.8-8zm36.4-6.9v-27.6h83.5v27.6h-27.2v78.9h-29.1v-78.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
media/example-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 KiB

BIN
media/example-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

BIN
media/example-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

BIN
media/example-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 375 KiB

BIN
meta/NEW_en.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
meta/arrow-left-hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
meta/arrow-left-pressed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
meta/arrow-left.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
meta/arrow-right-hover.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
meta/arrow-right.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
meta/background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
meta/em-warning.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
meta/favicon-fishie.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
meta/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

63
meta/gallery.js Normal file
View File

@ -0,0 +1,63 @@
const galleries = document.querySelectorAll('.gallery');
galleries.forEach(gallery => {
const images = gallery.querySelectorAll('img');
let currentIndex = 0;
const leftArrow = document.createElement('img');
leftArrow.src = 'meta/arrow-left.png';
leftArrow.classList.add('arrow', 'left');
gallery.appendChild(leftArrow);
const rightArrow = document.createElement('img');
rightArrow.src = 'meta/arrow-right.png';
rightArrow.classList.add('arrow', 'right');
gallery.appendChild(rightArrow);
function showImage(index) {
images.forEach((img, i) => {
img.style.display = (i === index) ? 'block' : 'none';
});
}
function handleArrowClick(isLeftArrow) {
currentIndex = isLeftArrow
? (currentIndex === 0 ? images.length - 1 : currentIndex - 1)
: (currentIndex === images.length - 1 ? 0 : currentIndex + 1);
showImage(currentIndex);
if (isLeftArrow) {
leftArrow.src = 'meta/arrow-left-pressed.png';
rightArrow.src = 'meta/arrow-right.png';
setTimeout(() => {
leftArrow.src = 'meta/arrow-left.png';
}, 200);
} else {
rightArrow.src = 'meta/arrow-right-pressed.png';
leftArrow.src = 'meta/arrow-left.png';
setTimeout(() => {
rightArrow.src = 'meta/arrow-right.png';
}, 200);
}
}
leftArrow.addEventListener('click', () => handleArrowClick(true));
rightArrow.addEventListener('click', () => handleArrowClick(false));
leftArrow.addEventListener('mouseover', () => {
leftArrow.src = 'meta/arrow-left-hover.png';
});
leftArrow.addEventListener('mouseout', () => {
leftArrow.src = 'meta/arrow-left.png';
});
rightArrow.addEventListener('mouseover', () => {
rightArrow.src = 'meta/arrow-right-hover.png';
});
rightArrow.addEventListener('mouseout', () => {
rightArrow.src = 'meta/arrow-right.png';
});
showImage(currentIndex);
});

BIN
meta/ico-bsky.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
meta/ico-git.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
meta/ico-twitch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
meta/ico-twt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
meta/ico-web.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
meta/ico-yt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

14
meta/issue.js Normal file
View File

@ -0,0 +1,14 @@
document.querySelectorAll('.issue-button').forEach(button => {
button.addEventListener('click', function() {
const parentDiv = this.parentElement; // Get the parent div with class "issue"
const hiddenElements = parentDiv.querySelectorAll('.issue-detail'); // Select hidden elements within this div
// Hide the button
this.style.display = 'none';
// Show the hidden elements
hiddenElements.forEach(element => {
element.style.display = 'block';
});
});
});

80
meta/main.css Normal file
View File

@ -0,0 +1,80 @@
@font-face {font-family: 'Shop'; src: url('shop.ttf') format('truetype'); font-weight: normal; font-style: normal;}
/*Main things*/
body {scroll-behavior:smooth;text-align: center;font-family: sans-serif;font-family:'Shop',sans-serif; overflow-x:hidden;transition:.1s ease-in-out;}
div {line-height:23.3px; background-color: white;border-radius: 5px;border-color: #ED0972;box-shadow: 0 0 10px #2525255d; box-sizing: border-box;border-width: 2px;border-style: solid; width: 35%; text-align: center;margin: 0 auto;padding: 5px;margin-top: 8px; overflow: auto;}
div.clear {border:none;background: none;box-shadow: none;}
nav {margin-bottom: 20px;line-height: 30px;}
a.btn {background-color: #E6FFF2;border-radius: 10px;padding: 4px;color:black;text-decoration: none;filter: drop-shadow(1px 1px 1px black);font-weight: 100;display:inline}
a.btn:hover {background-color: #C7FDFF;}
a.btn:active {filter: none;}
span.active {background-color: #c7c7c7;border-radius: 10px;padding: 4px;font-weight: 100;display:inline;cursor:auto;user-select:none}
button {margin-bottom: 6px;font-family:'Shop',sans-serif;padding: 5px;outline: 1px solid #ED0972;border-radius: 3px;filter: drop-shadow(1px 1px 3.4px #bbbbbb);border:none}
button:hover {box-shadow: inset 0 0 0 3px #ED0972;cursor:pointer}
footer {color:grey}
footer a {color:grey}
/* Text stuff */
h1, h2 {color:#ED0972;}
h1 {font-size: 30px;}
h1 a {text-decoration:none}
hr {border-color:grey}
a {color:#ED0972; font-weight: bold;}
::selection{color: #323232;background: #ED0972;}
::-moz-selection{color: #323232;background:#ED0972;}
body.dir {text-align: left;}
body.dir a {color:black;text-decoration: none;font-weight: normal;}
body.dir a:hover {color:#ED0972}
table {border: 1px solid white; border-collapse: collapse;}
th, td {border: 1px solid;}
button.ico {width:20px; height:20px;}
img.ico {vertical-align: middle; width:25px; height:25px;}
img.wb {outline: solid 1px black}
.blue {color:#1164E9;}
mark {color:white;background:#ED0972;font-weight:bold;}
mark.new {background-color: gold;color:orangered;border-radius: 10px; padding-right:5px; padding-left:5px;font-weight:bold;}
/* Gallery */
div.gallery {position: relative; overflow: hidden;width:100%;}
img.slide {width:100%; min-height:200px; min-width:100%;}
img.arrow {min-height:68px; position: absolute; top: 50%; transform: translateY(-50%); cursor: pointer; width: 60px; height: auto;}
img.left {left: 10px; animation: hoverAnimation 0.5s infinite alternate;}
img.right {right: 10px; animation: rightHoverAnimation 0.5s infinite alternate;}
/* Music */
div#bgmplayer {z-index: 1000;transition:.3s ease-in-out; opacity:30%; position:fixed; bottom:3px; border:2px solid #ED0972; left:3px; float:left; width:160px; height:40px; overflow:hidden;}
div#bgmplayer:hover {opacity: 50%; transition:.3s ease-in-out; height:100px; width:200px; overflow:auto;scrollbar-width: none;}
div#bgmplayer h2 {height:20px; margin-top:-9px; line-height:40px}
div#bgmplayer p {line-height:20px;color:#9A9A9A;margin-top:-10px;font-style:italic;font-size:10px;}
/* Auto-resizer, do not change pls*/
@media (max-width: 768px) {div {width: 95%} }
/* Dark theme via system preference */
@media (prefers-color-scheme: dark)
{
body {background-color: black; color: #e0e0e0;}
div {background-color: #1e1e1e; border-color: #ED0972; box-shadow: 0 0 10px #000000CC;}
a.btn {background-color: #587566;color:white}
a.btn:hover {background-color: #7da2a3;}
span.active {background-color: #313131}
button {background-color: #3b3b3b; color: #e0e0e0;filter: drop-shadow(1px 1px 3.4px #747474)}
button:active {box-shadow: none;}
footer, footer a {color: #9A9A9A;}
h1, h2, a {color: #ED0972;}
::selection {color: #e0e0e0; background: #ED0972;}
::-moz-selection {color: #e0e0e0; background: #ED0972;}
mark {color:black;background:#ED0972;font-weight:bold;}
img.wb {outline: solid 1px white}
.blue {color:#5898ff;}
#errorCode {background-color: black;border: 2px solid grey;color:white;}
body.dir a {color:white}
mark {color:white}
}

98
meta/music.js Normal file
View File

@ -0,0 +1,98 @@
// Wii Shop BGM Player, suggested by @legamer66 (https://discord.com/channels/1346485785284575335/1346485786039681056/1351527080546009259)
function hideConsoleControls() {
const userAgent = navigator.userAgent.toLowerCase();
const isConsoleBrowser =
userAgent.includes('wii') ||
userAgent.includes('nintendo ds') ||
userAgent.includes('nintendo 3ds') ||
userAgent.includes('nintendo');
// they can't play music so rip
if (isConsoleBrowser) {const bgmPlayerDiv = document.getElementById('bgmplayer');
if (bgmPlayerDiv) {bgmPlayerDiv.style.display = 'none';} }
}
var shoploop = new Audio("/meta/shop.wav");
shoploop.loop = true;
shoploop.volume = 0; // prevent clipping
function loadafterwednesdaycheck() {
hideConsoleControls();
var savedTime = localStorage.getItem("bgmlooppoint");
if (savedTime) {
shoploop.currentTime = parseFloat(savedTime);
}
if (localStorage.getItem("shopmusic") === "playing") {
playBGMonload();
} else {
pauseBGM();
}
}
window.onbeforeunload = function() {
localStorage.setItem("bgmlooppoint", shoploop.currentTime);
};
function playBGM() {
shoploop.volume = 0.8;
localStorage.setItem("shopmusic", "playing");
shoploop.play();
document.getElementById("shopbgm").innerHTML = "Pause";
document.getElementById("shopbgmselector").href = "javascript:pauseBGM();";
}
function pauseBGM() {
localStorage.setItem("shopmusic", "paused");
shoploop.pause();
document.getElementById("shopbgm").innerHTML = "Play";
document.getElementById("shopbgmselector").href = "javascript:playBGM();";
}
function playBGMonload() {
// this version has it fade in for smoother experince between pages uwu (i could of used set interval, but memory issues?)
fadeinbgm();
localStorage.setItem("shopmusic", "playing");
shoploop.play();
document.getElementById("shopbgm").innerHTML = "Pause";
document.getElementById("shopbgmselector").href = "javascript:pauseBGM();";
}
function fadeinbgm() {
shoploop.volume="0.0";
setTimeout(fade2,10);
}
function fade2() {
shoploop.volume="0.1";
setTimeout(fade3,10);
}
function fade3() {
shoploop.volume="0.2";
setTimeout(fade4,10);
}
function fade4() {
shoploop.volume="0.3";
setTimeout(fade5,10);
}
function fade5() {
shoploop.volume="0.4";
setTimeout(fade6,10);
}
function fade6() {
shoploop.volume="0.5";
setTimeout(fade7,10);
}
function fade7() {
shoploop.volume="0.6";
setTimeout(fade8,10);
}
function fade8() {
shoploop.volume="0.7";
setTimeout(fade9,10);
}
function fade9() {
shoploop.volume="0.8";
}

BIN
meta/shop.ttf Normal file

Binary file not shown.

BIN
meta/shop.wav Normal file

Binary file not shown.