adrielcafe / voyager

🛸 A pragmatic navigation library for Jetpack Compose
https://voyager.adriel.cafe
MIT License
2.55k stars 130 forks source link

Feature Request - Material 3 Support for BottomSheetNavigator #253

Open pitampoudel opened 10 months ago

pitampoudel commented 10 months ago

Hi Voyager Team,

I'm a user of Voyager in my Kotlin Multiplatform projects and love the simplicity it brings. However, I'd like to suggest adding Material 3 support to the BottomSheetNavigator for a consistent design language across my entire project. It would greatly enhance the user experience, and I'm happy to contribute in any way possible.

Thanks, Pitam Poudel

mealinux commented 4 months ago

@DevSrSouza any progress about this?

stefanoq21 commented 2 months ago

Hi everyone, I've created a library that might be useful for you! It provides bottom sheet navigation using Material 3. This means you can leverage bottom sheet navigation functionality without relying on Material. I'm planning to migrate the library to KMP soon, allowing you to use it or integrate it. Here's the link to the library, if you want to take a look: https://github.com/stefanoq21/BottomSheetNavigator3

stefanoq21 commented 2 months ago

Hi, here the KMP version of my library https://github.com/stefanoq21/BottomSheetNavigator3KMP. I published it on MavenCentral, hope this can help.

kaidotarma commented 2 months ago

Also waiting this, not just because of the visual improvements, but because of the functionality:

Implementation of M3 should help with both of these issues. :)

stefanoq21 commented 2 months ago

With my library you can configure all the parameters of the normal "ModalBottomSheet" from the "ModalBottomSheetLayout"

fun ModalBottomSheetLayout(
    bottomSheetNavigator: BottomSheetNavigator,
    modifier: Modifier = Modifier,
    sheetMaxWidth: Dp = BottomSheetDefaults.SheetMaxWidth,
    shape: Shape = BottomSheetDefaults.ExpandedShape,
    containerColor: Color = BottomSheetDefaults.ContainerColor,
    contentColor: Color = contentColorFor(containerColor),
    tonalElevation: Dp = BottomSheetDefaults.Elevation,
    scrimColor: Color = BottomSheetDefaults.ScrimColor,
    dragHandle: @Composable (() -> Unit)? = { BottomSheetDefaults.DragHandle() },
    content: @Composable () -> Unit,
)
bohemima commented 1 month ago

Also interested in a Voyager native implementation of Material3 bottomsheet