# **Update to 1.21.11**
> DynamicHUD has been updated to minecraft version 1.21.11 with the release of `4.0.0`
This version comes with many important patches and improvements.
## **Major Highlights for Users:**
1. **Neighbouring Widget Snap**: An option has been added for users to use `smart snapping` which enables widgets to snap around each other smoothly and also displays useful screen and widget axis alignment guidelines while dragging.
2. **Color Picker**: The color picker has been added back after being removed in previous versions.
3. **Enhanced Animations**: Much more of the DynamicHUD UI comes with smoother and interactive animations.
4. **Performance Optimisations**: This version is set to give a better and seamless experience with widgets.
5. **More options**: We have added more options in the YACL configuration screen to help with more customisability.
6. **Separated Widget Scaling**: Now users will be able to scale each widget separately by simply hovering over the widget and pressing `CTRL + MOUSE-SCROLL`. This will allow you to change the size of any scalable widget as per your convenience. This is in addition to the Global Widget Scale in YACL configurations.
7. **No jittering**: All jitters are removed.
8. **Search Bar**: A search bar has been added to the top of the context menu for some of the ContextMenu skins.
9. **GraphWidget Improvements**: GraphWidget has been heavily improved to display clearer graph lines and points, better auto-range, sampling time, less intrusive label and more customisability for `Pro` and `Enhanced` setting complexities.
10. **Skins**: All skins will now feel faster.
## **Major Changes for Developers:**
> The update to 1.21.11 also brings new changes to how things are rendered, so all rendering methods have been changed [appropriately](https://fabricmc.net/2025/12/05/12111.html).
> ### DynamicHUD now uses `official mojang mappings` instead of `Yarn` mappings.
1. **[Feat.] Graph Control**: Added new methods to let you change the timeline points (how long ago values should be displayed) and customize sampling rates. The graph will automatically rebuild its data array on the fly without losing previous values.
2. **[Feat.] Scaling related**: Since widgets now contain localised scaling, you will need to use the widgetBox for current (modified) width and height after providing your raw dimensions.
3. **[New] Cycle Option**: Both `EnumOption` and `ListOption` are replaced by a single `CycleOption`. Hence all your skins need to be updated too.
4. **[New] LayoutEngine**: ContextMenu now uses a layout engine for options. A default VerticalFlow layout strategy is provided which is used by Classic, Modern and Minecraft Skins. This layout engine can be used to modify the `padding`, `spacing` and `minimum width` of options.
5. **[New] Search**: The following function can now be used to obtain search results from a query string through all options and option groups using `FuzzyScore` matching: `com.tanishisherewith.dynamichud.utils.Util.getSearchResults(String query, int minimumScore, List<Option<?>> options)`
6. **[New] MouseColorQuery**: MouseColorQuery is a class that can be used to query color at a given mouse position at the end of the client tick. Used by the ColorPicker.
7. **[Fix.] ScrollHandler logic rewritten**: To prevent jittering.
8. **[Removed] AnimationProperty<>**: AnimationProperty was replaced by a consumer in `ValueAnimation`.
9. **[New] SquishAnimator**: Used for a simple button squish effect in ModernSkin.
10. **[Fix] Skin.charTyped(...)**: This function call was missing in contextmenu and has been added.
11. **[Feat.] Animation Overhaul**: Now all appropriate animation is being handled by `ValueAnimation` or such instead of hardcoding a linear lerp. For eg. ContextMenu now also use localised scaling.
12. **[Feat.] ModernSkin OptionGroup animation**: OptionGroups in ModernSkin now have opening animation handled by static class `GroupAnimData`.
And much more in-depth changes which will be updated soon in our [Wiki](https://tanishisherewith.gitbook.io/dynamic-hud).
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }