This commit is contained in:
2026-03-30 23:05:53 -05:00
parent ac9d9c42e8
commit 73dfdf9a85
16 changed files with 1947 additions and 1173 deletions

View File

@@ -35,8 +35,10 @@ body {
color: var(--text-primary);
display: flex;
flex-direction: column;
height: 100vh;
overflow: hidden;
height: auto !important;
min-height: 100vh;
overflow-y: auto !important;
}
/*
@@ -51,7 +53,7 @@ DESKTOP STYLES (REWORKED & CONSOLIDATED)
flex-direction: row;
flex-grow: 1;
height: 100vh;
overflow: hidden;
overflow-x: hidden;
}
.desktop-main {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<link rel="stylesheet" href="Resources/styles.css">
<style>
/* =========================================
1. VARIABLES & RESET (From Reference)
@@ -46,14 +46,17 @@
html {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow-y: auto !important;
}
body {
background-color: var(--background-primary);
color: var(--text-primary);
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-family: 'Inter', sans-serif;
line-height: 1.6;
overflow-x: hidden;
/* Change overflow-x: hidden to allow vertical scrolling */
overflow-x: hidden;
overflow-y: auto !important;
min-height: 100vh;
}
@@ -68,7 +71,8 @@
========================================= */
.app-container {
width: 100%;
min-height: 100vh;
/* Ensure it doesn't trap height */
min-height: 100vh;
display: flex;
flex-direction: column;
}
@@ -78,7 +82,9 @@
max-width: 1200px;
margin: 0 auto;
width: 100%;
flex-grow: 1;
/* Remove flex-grow if it's causing layout issues,
or ensure it allows expansion */
display: block;
}
.section-title {
@@ -381,7 +387,7 @@
.horizontal-scroll-container {
display: flex;
overflow-x: auto;
overflow-y: hidden;
overflow-y: auto !important;
padding: 10px 0 25px 0;
-webkit-overflow-scrolling: touch;
gap: 15px;

View File

@@ -1235,7 +1235,7 @@
async function loadData() {
try {
const detRes = await fetch(`https://api.jikan.moe/v4/anime/${currentMalId}/full`);
const detRes = await fetch(`/proxy?url=https://api.jikan.moe/v4/anime/${currentMalId}/full`);
animeDetails = (await detRes.json()).data;
renderDetails(animeDetails);
@@ -1253,7 +1253,7 @@
const heroSection = document.querySelector(".series-hero-section");
heroSection.style.backgroundImage = `url('${anime.images.jpg.large_image_url}')`;
fetch(`${serverUrl}/anime/${currentMalId}/banner`)
fetch(`/anime/${currentMalId}/banner`)
.then((r) => {
if (!r.ok) throw new Error("Banner fetch failed");
return r.blob();
@@ -1592,7 +1592,7 @@
}
div.innerHTML = `
<div class="episode-thumbnail">
<img src="${ep.attributes.thumbnail?.original || "https://placehold.co/320x180"}" loading="lazy">
<img src="${'/proxy-image?url=' + ep.attributes.thumbnail?.original || "https://placehold.co/320x180"}" loading="lazy">
</div>
<div class="episode-info">
<div class="episode-title">${ep.attributes.canonicalTitle || "Episode " + num}</div>
@@ -1642,7 +1642,7 @@
}
async function fetchRecs() {
const res = await fetch(`https://api.jikan.moe/v4/anime/${currentMalId}/recommendations`);
const res = await fetch(`/proxy?url=https://api.jikan.moe/v4/anime/${currentMalId}/recommendations`);
const data = (await res.json()).data;
const grid = document.getElementById("recommendations-grid");
if (!data) return;
@@ -1659,7 +1659,7 @@
}
async function fetchRelated() {
const res = await fetch(`https://api.jikan.moe/v4/anime/${currentMalId}/relations`);
const res = await fetch(`/proxy?url=https://api.jikan.moe/v4/anime/${currentMalId}/relations`);
const data = (await res.json()).data;
const container = document.getElementById("related-container");
if (data) {
@@ -1674,7 +1674,7 @@
</div>
<div class="tile-title">${item.name}</div>
`;
fetch(`https://api.jikan.moe/v4/${item.type}/${item.mal_id}`).then((r) => r.json()).then((d) => {
fetch(`/proxy?url=https://api.jikan.moe/v4/${item.type}/${item.mal_id}`).then((r) => r.json()).then((d) => {
if (d.data?.images?.jpg?.image_url) a.querySelector("img").src = d.data.images.jpg.image_url;
});
container.appendChild(a);