Bottom Sheet
With customizable detents, excellent soft-keyboard support, draw behind system bars, nested scrolling.
Fully renderless, fully accessible components, plus a flexible theming system for Compose UI. Build high quality apps and design systems for every platform, not just Android.
With customizable detents, excellent soft-keyboard support, draw behind system bars, nested scrolling.
With animations support, full-screen ready, optional scrim and easy integration with system bars.
With keyboard support, anchor control.
Scrollbar primitives for scroll state, lazy lists, and lazy grids.
With animation support and accessibility semantics.
With keyboard navigation support, orientation support.
Standard or optional label supported.
Toggable with accessibility semantics in place.
With keyboard and touch support, interval steps customization.
With arrow support, animations, change placement position.
With separate rendering of track and fill.
We wouldn't be able to move the Compose ecosystem forward if it wasn't for our generous sponsors.
Used by exceptional product teams to deliver spectacular user experiences.
Developers use Compose Unstyled when they need reliable primitives that stay out of their design system's way.
We just transition from M3 Modal Bottom Sheet to the Compose Unstyled one and it fixed multiple issues.
Ever since Compose Unstyled was pointed out to me, I use that one. Simpler API, and it actually works.
Finally! Sounds awesome and can't wait to try it.
To be super honest: You are doing gods work, Google's bottomsheet is attrocious for example when used in any capacity slightly outside of its intended usecase, great work, keep it up!
Using the Compose Unstyled bottom sheets everywhere in my app. They are easier to use than the official ones.
Thank you for making the only bottom sheet composable library that actually makes sense.
How is this not a first party api
I was finally able to migrate my app's bottom sheet to Compose Unstyled. The API is much simpler and cleaner.
This is a good opportunity to express my endless gratitude for your unstyled bottom sheet. It is the most convenient and well designed UI component API I've ever worked with.
Thumbs up from me for unstyled, I'm using it for an android app (no cmp sadly) without material components (except material-ripple). Initially added it for bottom sheets (way better than m3 in my experience) and have used more components since without issues
i try not to use md3 bottom sheets anymore because they always gimme issues. @Alex Styl’s bottom sheets are goat tho
I switched to compose unstyled and found it much better as the basis of the design system.
This is to Compose just like Radix is to React or Bits UI is to Svelte. It's a headless component (or rather, component blocks) library and theming layer, providing a lot of functionality that would be otherwise non-trivial to build from scratch (e.g. a functioning bottom sheet is harder than it sounds!), with implementations that are better than Material's. Every component is renderless; it provides all logic, state, and a11y handling, but the rendering is done by you, using the components params and Modifiers; that's why it's not really a component library; it provides the blocks, that you then use to build your own components, using your own theming system in any way you like.
After I got accustomed to compose unstyled already mentioned in the comments here, I think this is the way for me to get more in depth experience with KMP as a platform. Using libraries isn’t cheating ofc, but with deeper understanding it is so much easier to make calls, and this is what I am currently lacking
それでもMaterial3のModalBottomSheetは不具合が多すぎて使い物にならないので最近はCompose Unstyled ModalBottomSheetを使っています。こちらの方が自由度が高く品質もいい
A few of the teams and apps using Compose Unstyled primitives in production.
Use accessible, renderless primitives to ship your own design system across every Compose target.
Explore Compose Unstyled