diff --git a/app/src/main/index.ts b/app/src/main/index.ts index 2a8f8508..10a56621 100644 --- a/app/src/main/index.ts +++ b/app/src/main/index.ts @@ -526,7 +526,7 @@ async function createProcessManagerWindow(): Promise { processManagerWindow = null; }); await processManagerWindow.loadFile(path.join(__dirname, "..", "renderer", "index.html"), { - query: { overlay: "process-manager", theme: "developer" }, + query: { overlay: "process-manager", theme: "dark" }, }); return processManagerWindow; } @@ -608,7 +608,7 @@ async function createWindow(migrating = false) { }, }); - const query: Record = uiOnly ? { theme: "developer" } : {}; + const query: Record = uiOnly ? { theme: "dark" } : {}; if (process.env.METALSHARP_DEV_LIBRARY === "1") query["skip-to"] = "library"; mainWindow.loadFile(path.join(__dirname, "..", "renderer", "index.html"), { query, diff --git a/app/src/renderer/App.vue b/app/src/renderer/App.vue index eca78f2d..41de8385 100644 --- a/app/src/renderer/App.vue +++ b/app/src/renderer/App.vue @@ -582,26 +582,7 @@ onMounted(async () => { flex-direction: column; background: var(--bg-deep); } -:root[data-theme="developer"] .content { - background: - linear-gradient(118deg, rgba(185, 255, 77, 0.02), transparent 36%, rgba(0, 245, 255, 0.024) 72%, transparent), - radial-gradient(circle at 24% 16%, rgba(255, 46, 247, 0.11), transparent 34%), - radial-gradient(circle at 84% 10%, rgba(0, 245, 255, 0.09), transparent 30%), var(--bg-deep); -} .content.content-glass-header { background: transparent; } -:root[data-theme="developer"] .update-banner { - background: - linear-gradient(90deg, rgba(185, 255, 77, 0.16), rgba(0, 245, 255, 0.1), rgba(255, 46, 247, 0.14)), - rgba(9, 7, 15, 0.84); - border-bottom-color: rgba(185, 255, 77, 0.28); - color: var(--text-primary); -} -:root[data-theme="developer"] .update-banner-btn { - border-radius: 999px; - border-color: rgba(185, 255, 77, 0.42); - background: rgba(9, 7, 15, 0.62); - color: var(--accent); -} diff --git a/app/src/renderer/assets/banana-slices.png b/app/src/renderer/assets/banana-slices.png new file mode 100644 index 00000000..dcccb58d Binary files /dev/null and b/app/src/renderer/assets/banana-slices.png differ diff --git a/app/src/renderer/assets/beach-sand.png b/app/src/renderer/assets/beach-sand.png new file mode 100644 index 00000000..68077769 Binary files /dev/null and b/app/src/renderer/assets/beach-sand.png differ diff --git a/app/src/renderer/assets/lava-cracks.png b/app/src/renderer/assets/lava-cracks.png new file mode 100644 index 00000000..5c63495d Binary files /dev/null and b/app/src/renderer/assets/lava-cracks.png differ diff --git a/app/src/renderer/components/GameCard.vue b/app/src/renderer/components/GameCard.vue index 665a050a..72734538 100644 --- a/app/src/renderer/components/GameCard.vue +++ b/app/src/renderer/components/GameCard.vue @@ -1173,39 +1173,18 @@ function formatBytes(bytes: number): string { 0 0 24px color-mix(in srgb, var(--accent) 16%, transparent), 0 16px 36px color-mix(in srgb, var(--bg-deep) 34%, transparent); } -:global(:root[data-theme="developer"] .game-card) { - border-color: rgba(0, 245, 255, 0.22); - border-radius: 20px; - box-shadow: - inset 0 0 0 1px rgba(255, 255, 255, 0.04), - 0 0 0 1px rgba(185, 255, 77, 0.14), - 0 0 34px rgba(255, 46, 247, 0.14), - 0 22px 56px rgba(0, 0, 0, 0.36); -} .game-card.installed { box-shadow: 0 0 0 1px color-mix(in srgb, var(--card-installed-glow-color) 35%, transparent), 0 0 40px color-mix(in srgb, var(--card-installed-glow-color) 48%, transparent), 0 18px 40px color-mix(in srgb, var(--bg-deep) 36%, transparent); } -:global(:root[data-theme="developer"] .game-card.installed) { - border-color: rgba(185, 255, 77, 0.34); - box-shadow: - inset 0 0 0 1px rgba(255, 255, 255, 0.04), - 0 0 0 1px rgba(185, 255, 77, 0.24), - 0 0 42px rgba(185, 255, 77, 0.2), - 0 24px 58px rgba(0, 0, 0, 0.38); -} .game-card.uninstalled { box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent), 0 0 24px color-mix(in srgb, var(--accent) 14%, transparent), 0 14px 34px color-mix(in srgb, var(--bg-deep) 30%, transparent); } -:global(:root[data-theme="developer"] .game-card.uninstalled) { - opacity: 0.92; - filter: saturate(0.9); -} .game-card:hover { border-color: var(--border-strong); box-shadow: @@ -1214,15 +1193,6 @@ function formatBytes(bytes: number): string { 0 22px 48px color-mix(in srgb, var(--bg-deep) 42%, transparent); transform: translateY(-1px); } -:global(:root[data-theme="developer"] .game-card:hover) { - border-color: rgba(185, 255, 77, 0.58); - box-shadow: - inset 0 0 0 1px rgba(0, 245, 255, 0.14), - 0 0 0 1px rgba(185, 255, 77, 0.28), - 0 0 46px rgba(0, 245, 255, 0.2), - 0 26px 64px rgba(0, 0, 0, 0.44); - transform: translateY(-3px); -} .game-card.running { border-color: var(--success); box-shadow: @@ -1230,15 +1200,6 @@ function formatBytes(bytes: number): string { 0 0 38px color-mix(in srgb, var(--success) 30%, transparent), 0 22px 48px color-mix(in srgb, var(--bg-deep) 42%, transparent); } -:global(:root[data-theme="developer"] .game-card.running) { - border-color: var(--success); - box-shadow: - 0 0 0 1px rgba(112, 255, 140, 0.38), - 0 0 46px rgba(112, 255, 140, 0.24), - 0 0 80px rgba(0, 245, 255, 0.1), - 0 26px 64px rgba(0, 0, 0, 0.42); -} - .game-card-banner { width: 100%; aspect-ratio: 16 / 6.25; @@ -1251,11 +1212,6 @@ function formatBytes(bytes: number): string { overflow: hidden; position: relative; } -:global(:root[data-theme="developer"] .game-card-banner) { - border-radius: 18px 18px 0 0; - background: linear-gradient(135deg, rgba(185, 255, 77, 0.15), rgba(255, 46, 247, 0.13)), var(--bg-surface); - box-shadow: inset 0 0 0 1px rgba(0, 245, 255, 0.18); -} .game-card-cover { width: 100%; height: 100%; @@ -1271,15 +1227,6 @@ function formatBytes(bytes: number): string { radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 48%), var(--bg-surface); } -:global(:root[data-theme="developer"] .game-card-cover) { - filter: saturate(1.18) contrast(1.03); -} -:global(:root[data-theme="developer"] .game-card-cover.fallback) { - background: - radial-gradient(circle at 26% 32%, rgba(255, 46, 247, 0.24), transparent 36%), - radial-gradient(circle at 76% 64%, rgba(0, 245, 255, 0.2), transparent 40%), - linear-gradient(135deg, rgba(185, 255, 77, 0.13), rgba(9, 7, 15, 0.92)); -} .game-card:hover .game-card-cover { transform: scale(1.015); filter: saturate(1.04); @@ -1312,9 +1259,6 @@ function formatBytes(bytes: number): string { color: var(--game-card-text, var(--text-primary)); padding: 14px; } -:global(:root[data-theme="developer"] .game-card-body) { - padding: 14px; -} .game-card-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto); @@ -1330,10 +1274,6 @@ function formatBytes(bytes: number): string { overflow: hidden; text-overflow: ellipsis; } -:global(:root[data-theme="developer"] .game-card-title) { - color: #f8ffe7; - font-family: var(--font-mono); -} .game-card-meta { display: flex; align-items: center; @@ -1360,13 +1300,6 @@ function formatBytes(bytes: number): string { font-size: 11px; font-weight: 700; } -:global(:root[data-theme="developer"] .route-chip), -:global(:root[data-theme="developer"] .tool-chip), -:global(:root[data-theme="developer"] .launch-mode-select), -:global(:root[data-theme="developer"] .icon-button), -:global(:root[data-theme="developer"] .danger-link) { - border-radius: 999px; -} .bottle-chip { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); @@ -1541,12 +1474,6 @@ function formatBytes(bytes: number): string { } @media (max-width: 760px) { - :global(:root[data-theme="developer"] .game-card-banner) { - min-height: 102px; - } - :global(:root[data-theme="developer"] .game-card-body) { - padding: 12px; - } .primary-action-row, .secondary-action-grid { gap: 8px; diff --git a/app/src/renderer/components/ProcessManagerOverlay.vue b/app/src/renderer/components/ProcessManagerOverlay.vue index 67628b32..bfd53652 100644 --- a/app/src/renderer/components/ProcessManagerOverlay.vue +++ b/app/src/renderer/components/ProcessManagerOverlay.vue @@ -150,7 +150,6 @@ function onKey(e: KeyboardEvent): void { } onMounted(() => { - document.documentElement.dataset.theme = "developer"; document.body.classList.add("process-manager-overlay-body"); window.addEventListener("keydown", onKey); void refresh(); diff --git a/app/src/renderer/components/Sidebar.vue b/app/src/renderer/components/Sidebar.vue index b968443b..c0d130a5 100644 --- a/app/src/renderer/components/Sidebar.vue +++ b/app/src/renderer/components/Sidebar.vue @@ -1,14 +1,17 @@