Svg Icons and UI Customization#974
Merged
Merged
Conversation
…rs can specify their own colors for Bram-Hub#426.
…dir so that it uses the LEGUP folder
…o the current color theme file
…ences in the future.
…also made custom color theme file work
…dits the current FlatLaf color scheme to add any colors that are in the color theme txt file.
…Also hid color theme file option if custom color theme is not selected.
# Conflicts: # src/main/java/edu/rpi/legup/ui/ProofEditorPanel.java # src/main/java/edu/rpi/legup/ui/PuzzleEditorPanel.java
Merge Pull Request Bram-Hub#897
Added a new SVGNamedColors class which provides a method to lookup the Color value of any named SVG color.
Added support for the A, a, T, t, S, and s path operators. Used math from the SVG specs for making Arc2D objects that match the arc command.
Added arcs instead of quadratic bezier curves on corners and grew the folds to fill a gap
Make more classes for svg implementation to more closely match the DOM model of the base SVG.
Moving away from unnecessary custom SVG implementation and instead using dedicated library.
Make SVGIcon class that uses Batik to load and draw SVG files. Also provides IconColorManager class to dynamically change color palettes for these icons.
This reverts commit 0f86c51.
Remove rarely-used MaterialLaf files and start using exclusively FlatPropertiesLaf, which allows for the definition of UI colors in .properties files, meaning colors, fonts, and other values can be pulled from the LAF with UIManager.get___() at any time for easy and unified color theming and other styling.
Took the colors and fonts and border widths associated with the rendering of every puzzle and moved it into the .properties file which will be accessible via UIManager and the LAF.
Made a new function in ElementView for drawing the border around an element and had it be called last for drawing. Then went to every puzzle and moved border rendering into this function. Also added graphics create and dispose calls in all functions that set a stroke, color, font, ect.
The svg feature requires dynamic styling from the LAF to display rule icons in accordance with the stling of the board.
Switched from Apache Batik to FlatLAF's own FlatSVGIcon, which provides its own functionality for theme-dependent SVG colors. Also switched several UI elements to use style classes for styling so that they will not be reset when the LAF is switched.
Made the status message in DynamicView display over the zoomer in a legible manner, whereas before it was hard-to-read text with no background laid over the zoomer UI elements.
Pulled all toolbar icon images into a dedicated toolbar directory and replaced all of the proof editor's toolbar2 icons with new SVG icons.
Added the rest of the toolbar SVG icons.
Creating SvgIcon keys so Puzzle can have transparency and making new visual elements in ProofEditor and PuzzleEditor look more similar.
jadeandtea
approved these changes
Apr 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Pulls all styling for the UI into
LookAndFeelproperties which are accessed viaUIManagerand are synchronized across the UI and across LAF changes. This allows for colorblind support across the whole UI with just a few properties and custom color theming by users with their own.propertiesfiles. These properties are also applied to the new SVG icons which look significantly nicer and have a unified look across all the new toolbar icons, in addition to having red/green colorblind support.Closes #467
Closes #460
Type of change
How Has This Been Tested?
These changes have been tested on my Windows 11 machine and are successful with all existing color themes.
Checklist: