All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Modules! You can now pick and choose only the APIs that you want to use instead of being forced to add the entire API in your codebase. To try this out, modals such as dialogs, sheets and tooltips are available. More primitives will be modularized in the future if there is demand.
- Added the following new modules:
composeunstyled-bottom-sheet,composeunstyled-build-modifier,composeunstyled-dialog,composeunstyled-dropdown-menu,composeunstyled-escape-handler,composeunstyled-modal,composeunstyled-modal-bottom-sheet,composeunstyled-scroll-area,composeunstyled-tooltip - Compose Unstyled now uses Compose Multiplatform
1.10.3.
Warning
Modals on non-Android targets (Dialog and Modal Bottom Sheet) now have a built-in animation that is part of Compose Multiplatform 1.10.3. The option to remove this animation is added in 1.11.x but it is not yet stable. Because of this, the animation will be removed in a future version of Unstyled. If this is a blocker for you, you can continue using the pre 2.0 version of the library until then.
- All deprecated APIs are now removed. If you have breaking changes moving to this version,
downgrade to the latest 1.x.x version and use
ReplaceWith()to smoothly migrate to the latest APIs. - Removed any
com.composables.corereference. ComposeUnstyledFlagsis removed.
- Decoupled theming from primitives. Primitives used to be themable using
LocalContentColorandLocalTextStyle. This was problematic as you could not easily style your primitives using a different theming API (such as Material Compose). Because of this, any kind of theming is removed, and the users are responsible for choosing the theming API of their choice.
- Scrollbars now support dynamic sizing (#78)
- BottomSheet's content are now constraint to the content visible height. No need to hardcode a size if your content is scrollable (#134)
- ModalBottomSheet's state no longer relies on a Sheet to be present.
- Fix dialog freeze when initially visible without a scrim. (Fixes #128)
- Fix stepped slider snapping behavior. (Fixes #81)
- Fix modals not inheriting
LocalLayoutDirectionfrom their parent. (Fixes #192) - Prevent unnecessary theme recompositions when theme values do not change.
- Add new
ScrollAreacomponent in thecom.composeunstyledpackage. Old packages will be removed in 2.0.
- All component primitives are now prefixed with
Unstyled-. - Library minSDK is now 23.
- Bump compileSDK to 36.
- Add new
demo-system-ui-stylingmodule that showcases how to style System UI in modals.
- Fix state TextField visual transformation mapping (Fixes #207)
- Apply visualTransformation when TextField is non-editable (Fixes #206)
- Add textDecoration parameter to UnstyledTextField (Fixes #205)
- Add textDecoration parameter to UnstyledText (Fixes #205)
- Automatically focus dialog panel content on displayed (Fixes #204)
- Fix iOS DropdownMenu enter animations (Fixes #159)
- Fix Modals updating System UI appearance (Fixes #198)
- ScrollAreaState now exposes a new
isScrollInProgressproperty
- Scrollbars Thumb HideWhileIdle hides while scrolling #114
- Add onTextLayout parameter to Text (#185)
- Begin of prefixing all components with
Unstyled-prefix, so it's simpler to differenciate with other design systems components.
- Dialog's enter animations now work correctly on iOS.
- Add
autoSizeparameter to Text (#183)
- Fix a bug where ScrollArea would trigger overscroll effect to the wrong axis
- Remove TextField placeholder on any character entered including space
- Change token names of PlatformTheme so that they do not override user's
- Fix inverted colors for RadioGroup
- Fix a Slider bug where Thumb would immediately jump while dragged
- Deprecate ScrollArea with overscroll effect parameter
Allow customization of Platform Themes (b2c2a26d)
- Tint TextField's contents according to LocalContentColor (1b3fb2bd)
- Fix a crash when updating BottomSheet's detents (7961afd1)
- Fix bug where Modifier.onFocusChanged wouldn't work with TextField (e3f0bd6c)
- Introduce Platform Themes. Platform Themes provide a native look and feel depending on the platform you are running on, such as platform fonts, text sizes, emojis on Web, touch indications, and interactive sizing for controls.
- Add option to animate
ColoredIndication's color changes - Add getter to MutableThemeProperties
- Updated demos to use Platform Theme instead of hardcoded styles
- Ensure modal is added before monitoring its state ( fixes #151)