Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(theme): Completely rewrite the default theme #1442

Closed
wants to merge 36 commits into from

Conversation

NurMarvin
Copy link
Member

@NurMarvin NurMarvin commented Oct 20, 2023

This PR completely rewrites the default theme to make it easier to maintain.

Some notable changes are:

  • Vite instead of Rollup
  • React instead of Svelte
  • TypeScript instead of JavaScript
  • Single router-based project instead of multiple independent projects

At the moment the client is unable to render the built theme for some unknown reason, but I will fix this while finishing the rest of the theme. Some parts of the theme also still use TailwindCSS, but I will move everything to CSS Modules in due time.

Here's a quick video of the current progress:

chrome_EEm18vChaw.mp4

Fixes #1442

@NurMarvin NurMarvin added 🔥 enhancement New feature or request 🌑 nextgen labels Oct 20, 2023
This was referenced Oct 21, 2023
@Ell1ott
Copy link
Contributor

Ell1ott commented Nov 7, 2023

Those animations look 🔥

@superblaubeere27 superblaubeere27 added this to the 1.0.0 milestone Nov 10, 2023
# Conflicts:
#	src-theme/altmanager/public/index.html
#	src-theme/build.py
#	src-theme/package-lock.json
#	src-theme/package.json
1zun4 added a commit that referenced this pull request Nov 18, 2023
Replaced ultralight implementation with MCEF. It uses CEF and is able to render web pages for the UI. This improves performance and also makes it easier to provide a known feature set for web developers.

For communication between the UI and the client, we will use our Netty RestAPI and WebSocket protocol. This protocol allows us to listen for events on the WebSocket while tasks are being executed via the RestAPI.

Clean-up and sorted

The following commits will extend the functionality of the RestAPI/WS to match our theme implementation from #1442
@NurMarvin
Copy link
Member Author

thorium_MD4HUOCPzx.mp4

@NurMarvin
Copy link
Member Author

thorium_1SyCV3x3q5.mp4

@be4dev
Copy link
Contributor

be4dev commented Nov 18, 2023

thorium_1SyCV3x3q5.mp4

looks wonderful, but can this color at the bottom of the gui at 0:15 be fully dark? Would be really nice (since the whole clickgui is dark themed)

1zun4 added a commit that referenced this pull request Dec 18, 2023
Due to the fact that #1442 will still take some time to finish and I want to continue adding everything necessary to the RestAPI, I will try to integrate the old theme as before.

- title done
- altmanager missing
- proxymanager missing
- clickgui missing
- hud missing
- splashscreen missing
1zun4 added a commit that referenced this pull request Dec 26, 2023
This commit represents a major overhaul of our client's existing user interface and integration capabilities. The following list of enhancements have been implemented to improve usability, performance and maintainability:

MCEF integration and browser support:
- Successfully integrated browser support via the Minecraft Chromium Embedded Framework (MCEF).
- Switched default browser implementation from Ultralight to Java Chromium (JCEF) for improved performance and compatibility.
- Extended the framework to allow for future browser implementations, increasing the versatility of browser integration.

REST API and WebSocket enhancements:
- Implemented a Netty-based REST API and WebSocket (WS) server to facilitate server-client communication.
- Enhanced WebSocket functionality with the introduction of WebSocket events, allowing the client to listen to client events.
- Unified theme serving through the Netty Web Server, consolidating web-related functions under a single port and streamlining the theme management process.

Streamlined theme integration and hash router:
- Updated theme architecture to utilise Svelte and its Hash Router, improving routing efficiency and reducing page load times.
- Enabled REST/WS API support within the Svelte framework, paving the way for a more interactive and responsive user interface.

HTML screen optimisation:
- Optimised HTML screen integration for faster loading, improving the overall user experience by reducing wait times for screen transitions.

ClickGUI Enhancements:
- Added drop shadow and blur behind filter

These updates mark a significant step forward in our goal to provide the most beautiful and customisable client possible.

The following pull request #1442 will take advantage of this and completely overhaul the existing theme.
1zun4 and others added 10 commits December 29, 2023 06:37
# Conflicts:
#	src-theme/src/routes/title/Title.svelte
# Conflicts:
#	src-theme/bundle.cjs
# Conflicts:
#	src-theme/public/global.css
#	src-theme/src/App.svelte
#	src-theme/src/client/api.svelte
#	src-theme/src/client/ws.svelte
#	src-theme/src/routes.js
#	src-theme/src/routes/altmanager/AltManager.svelte
#	src-theme/src/routes/clickgui/ClickGui.svelte
#	src-theme/src/routes/container/Container.svelte
#	src-theme/src/routes/proxymanager/ProxyManager.svelte
#	src-theme/src/routes/splashscreen/Splashscreen.svelte
#	src-theme/src/routes/title/Title.svelte
#	src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/gui/MixinSplashOverlay.java
@1zun4 1zun4 modified the milestones: 0.1.0, 0.2.0 Jan 21, 2024
# Conflicts:
#	src-theme/public/client.svg
#	src-theme/src/App.svelte
#	src-theme/src/client/api.svelte
#	src-theme/src/routes/clickgui/ClickGui.svelte
#	src-theme/src/routes/clickgui/clickgui/Module.svelte
#	src-theme/src/routes/clickgui/clickgui/Panel.svelte
#	src-theme/src/routes/clickgui/clickgui/settings/RangeSetting.svelte
#	src-theme/src/routes/container/Container.svelte
#	src-theme/src/routes/title/Title.svelte
#	src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/client/MixinMinecraftClient.java
#	src/main/java/net/ccbluex/liquidbounce/injection/mixins/minecraft/entity/MixinClientPlayerEntity.java
# Conflicts:
#	build.gradle
#	src-theme/src/assets/background.png
#	src-theme/src/routes/altmanager/AltManager.svelte
#	src-theme/src/routes/proxymanager/ProxyManager.svelte
#	src-theme/src/routes/title/Title.svelte
@1zun4
Copy link
Member

1zun4 commented Feb 10, 2024

2024-02-10.09-25-59.mp4

@AWKohler
Copy link

Screenshot 2024-02-11 at 11 08 01 AM
the theme is not attaching when building the jar. The zipped theme file is missing from the jar, causing issues.

@1zun4 1zun4 removed this from the 0.2.0 milestone Mar 8, 2024
@SenkJu
Copy link
Contributor

SenkJu commented Mar 11, 2024

I think this pull request can now be closed?

@AWKohler
Copy link

I think this pull request can now be closed?

why? This looks so good

@superblaubeere27
Copy link
Contributor

I think this pull request can now be closed?

why? This looks so good

Yes it looks good and @NurMarvin put a lot of effort into it, but it was never finished.

Since we have another equal version of the UI we don't need this anymore

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants