From eed52135e7d6ffbbbd64070cf567bcf08653c7d5 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Wed, 14 Jan 2026 18:15:31 +0800 Subject: feat: Enhance UI components and add visual effects - Updated Sidebar component styles for improved aesthetics and usability. - Refactored VersionsView component with a new layout and enhanced version filtering. - Improved DownloadMonitor and GameConsole components for better performance and visual consistency. - Added new settings for GPU acceleration and visual effects in settings store. - Introduced ParticleBackground component with customizable effects (Constellation and Saturn). - Implemented ConstellationEffect and SaturnEffect classes for dynamic background animations. --- ui/src/components/BottomBar.svelte | 79 ++++---- ui/src/components/HomeView.svelte | 57 ++++-- ui/src/components/ModLoaderSelector.svelte | 214 ++++++++++----------- ui/src/components/ParticleBackground.svelte | 57 ++++++ ui/src/components/SettingsView.svelte | 282 ++++++++++++++++++++-------- ui/src/components/Sidebar.svelte | 76 ++++---- ui/src/components/VersionsView.svelte | 184 +++++++++--------- 7 files changed, 571 insertions(+), 378 deletions(-) create mode 100644 ui/src/components/ParticleBackground.svelte (limited to 'ui/src/components') diff --git a/ui/src/components/BottomBar.svelte b/ui/src/components/BottomBar.svelte index dcad9e8..dd218f3 100644 --- a/ui/src/components/BottomBar.svelte +++ b/ui/src/components/BottomBar.svelte @@ -5,18 +5,19 @@
-
+ +
authState.openLoginModal()} role="button" tabindex="0" onkeydown={(e) => e.key === "Enter" && authState.openLoginModal()} >
{#if authState.currentAccount} {:else} - ? + ? {/if}
-
- {authState.currentAccount ? authState.currentAccount.username : "Click to Login"} +
+ {authState.currentAccount ? authState.currentAccount.username : "Login"}
-
+
- {authState.currentAccount ? "Ready" : "Guest"} + {authState.currentAccount ? "Ready to play" : "Guest Mode"}
+ +
+
-
+ +
Selected Version - +
+ +
+
diff --git a/ui/src/components/HomeView.svelte b/ui/src/components/HomeView.svelte index e876c14..036c03a 100644 --- a/ui/src/components/HomeView.svelte +++ b/ui/src/components/HomeView.svelte @@ -1,26 +1,47 @@ - -
-
+
+ + +
+
-
-

+ +
- MINECRAFT -

-
- JAVA EDITION - Release 1.20.4 + MINECRAFT + + +
+
+ Java Edition +
+
+ Latest Release 1.21 +
+
+
+ + +
+ +
+ Ready to play. Select version below or hit Launch. +
diff --git a/ui/src/components/ModLoaderSelector.svelte b/ui/src/components/ModLoaderSelector.svelte index 06eb6ae..4a59916 100644 --- a/ui/src/components/ModLoaderSelector.svelte +++ b/ui/src/components/ModLoaderSelector.svelte @@ -112,134 +112,134 @@ } -
-

Mod Loader

+
+
+

Select Mod Loader

+
- -
+ +
- {#if selectedLoader === "vanilla"} -

- Launch the selected Minecraft version without any mod loaders. -

- {:else if !selectedGameVersion} -

- Select a Minecraft version first to see available {selectedLoader} versions. -

- {:else if isLoading} -
- - - - - Loading {selectedLoader} versions... -
- {:else if error} -

{error}

- {:else if selectedLoader === "fabric"} -
-
- - -
- -
- {:else if selectedLoader === "forge"} -
- {#if forgeVersions.length === 0} -

- No Forge versions available for Minecraft {selectedGameVersion} -

- {:else} + +
+ {#if selectedLoader === "vanilla"} +
+ No mod loader selected.
Pure vanilla experience. +
+ + {:else if !selectedGameVersion} +
+ ⚠️ Please select a base Minecraft version first. +
+ + {:else if isLoading} +
+
+ Loading {selectedLoader} versions... +
+ + {:else if error} +
+ {error} +
+ + {:else if selectedLoader === "fabric"} +
- - + +
+ +
+
+ - {/if} -
- {/if} +
+ + {:else if selectedLoader === "forge"} +
+ {#if forgeVersions.length === 0} +
+ No Forge versions available for {selectedGameVersion} +
+ {:else} +
+ +
+ +
+
+
+ + + {/if} +
+ {/if} +
diff --git a/ui/src/components/ParticleBackground.svelte b/ui/src/components/ParticleBackground.svelte new file mode 100644 index 0000000..080f1f2 --- /dev/null +++ b/ui/src/components/ParticleBackground.svelte @@ -0,0 +1,57 @@ + + + diff --git a/ui/src/components/SettingsView.svelte b/ui/src/components/SettingsView.svelte index 801970b..4c92220 100644 --- a/ui/src/components/SettingsView.svelte +++ b/ui/src/components/SettingsView.svelte @@ -1,150 +1,274 @@ -
-

Settings

+
+
+

Settings

+
+ +
-
- -
- -
- - + +
+

+ Appearance +

+ +
+
+ + +
+ +
+ {#if settingsState.settings.custom_background_path} + Background Preview + {:else} +
+
Default Gradient
+ {/if} +
+ + +
+ + + {#if settingsState.settings.custom_background_path} + + {/if} +
+
+

+ Select an image from your computer to replace the default gradient background. + Supported formats: PNG, JPG, WEBP, GIF. +

+
+ + +
+
+
+

Visual Effects

+

Enable particle effects and animated gradients. (Default: On)

+
+ +
+ + {#if settingsState.settings.enable_visual_effects} +
+
+

Theme Effect

+

Select the active visual theme.

+
+ +
+ {/if} + +
+
+

GPU Acceleration

+

Enable GPU acceleration for the interface. (Default: Off, Requires Restart)

+
+ +
+
+
+ + +
+

+ Java Environment +

+
+
+ +
+ + +
+
{#if settingsState.javaInstallations.length > 0}
-

Detected Java Installations:

+

Detected Installations

{#each settingsState.javaInstallations as java} {/each}
{/if} - -

- The command or path to the Java Runtime Environment. Click "Auto Detect" to find installed Java versions. -

+
-
-

Memory Allocation (RAM)

- +
+

+ Memory Allocation (RAM) +

- +
- +
-
-

Game Window Size

+
+

+ Game Window Size +

- +
- +
-
-

Download Settings

-
- - -

- Number of concurrent download threads (1-128). Higher values increase download speed but use more bandwidth and system resources. Default: 32 -

-
+
+

+ Network +

+
+ + +

Higher values usually mean faster downloads but use more CPU/Network.

+
-
+
diff --git a/ui/src/components/Sidebar.svelte b/ui/src/components/Sidebar.svelte index a4f4e35..7976f6a 100644 --- a/ui/src/components/Sidebar.svelte +++ b/ui/src/components/Sidebar.svelte @@ -3,64 +3,56 @@ diff --git a/ui/src/components/VersionsView.svelte b/ui/src/components/VersionsView.svelte index 1ea4878..00ac281 100644 --- a/ui/src/components/VersionsView.svelte +++ b/ui/src/components/VersionsView.svelte @@ -73,15 +73,15 @@ function getVersionBadge(type: string) { switch (type) { case "release": - return { text: "Release", class: "bg-green-600" }; + return { text: "Release", class: "bg-emerald-500/20 text-emerald-300 border-emerald-500/30" }; case "snapshot": - return { text: "Snapshot", class: "bg-yellow-600" }; + return { text: "Snapshot", class: "bg-amber-500/20 text-amber-300 border-amber-500/30" }; case "fabric": - return { text: "Fabric", class: "bg-blue-600" }; + return { text: "Fabric", class: "bg-indigo-500/20 text-indigo-300 border-indigo-500/30" }; case "forge": - return { text: "Forge", class: "bg-orange-600" }; + return { text: "Forge", class: "bg-orange-500/20 text-orange-300 border-orange-500/30" }; default: - return { text: type, class: "bg-zinc-600" }; + return { text: type, class: "bg-zinc-500/20 text-zinc-300 border-zinc-500/30" }; } } @@ -114,101 +114,92 @@ }); -
-

Versions

+
+
+

Version Manager

+
Select a version to play or modify
+
-
+
-
- +
+
- +
+ 🔍 + +
- -
- - - - + +
+ {#each ['all', 'release', 'snapshot', 'modded'] as filter} + + {/each}
- -
+ +
{#if gameState.versions.length === 0} -
Loading versions...
+
+ Fetching manifest... +
{:else if filteredVersions().length === 0} -
- {#if normalizedQuery.length > 0} - No versions found matching "{searchQuery}" - {:else} - No versions in this category - {/if} +
+ 👻 + No matching versions found
{:else} {#each filteredVersions() as version} {@const badge = getVersionBadge(version.type)} + {@const isSelected = gameState.selectedVersion === version.id} {/each} @@ -217,32 +208,29 @@
-
- - {#if gameState.selectedVersion} -
-

Selected

-

- {gameState.selectedVersion} -

-
- {/if} - - - - - -
-

💡 Tip

-

- Select a vanilla Minecraft version, then use the Mod Loader panel to - install Fabric or Forge. Installed modded versions will appear in the - list with colored badges. -

+
+ +
+
+ +

Current Selection

+ {#if gameState.selectedVersion} +

+ {gameState.selectedVersion} +

+ {:else} +

None selected

+ {/if}
+ + +
+ +
+
-- cgit v1.2.3-70-g09d2