Stylish Carousel
A horizontally scrolling carousel that centers a focal item and shows smaller sibling items on both sides (multi-browse layout).
This is the Finish-layer wrapper around the Material 3 HorizontalMultiBrowseCarousel under the ExperimentalMaterial3Api opt-in, so callers can use the carousel without importing the experimental androidx.compose.material3.carousel API. The wrapper remembers its own CarouselState from itemCount and forwards all sizing parameters unchanged; the default fling behavior advances at most one item per fling (CarouselDefaults.singleAdvanceFlingBehavior). Item appearance is fully owned by the caller through content; for the Stylish look, clip each item with CarouselItemScope.maskClip using RoundedCornerShape with StylishTheme.dimensions.connectedCornerRadius.
Parameters
A lambda returning the number of carousel items. Used to construct the default state via rememberCarouselState; ignored when a custom state is supplied.
The preferred width of the focal item, in dp.
The CarouselState controlling scroll position and the current item. Defaults to rememberCarouselState with itemCount.
Modifier applied to the carousel root.
The gap between adjacent items. Defaults to 0 dp (matching the M3 default).
The fling behavior after a swipe gesture. Defaults to CarouselDefaults.singleAdvanceFlingBehavior, which snaps to the next item.
Whether the user can scroll the carousel. Defaults to true.
The minimum width a small (non-focal) item may shrink to. Defaults to CarouselDefaults.MinSmallItemSize (40 dp).
The maximum width a small (non-focal) item may grow to. Defaults to CarouselDefaults.MaxSmallItemSize (56 dp).
Padding around the whole content, applied after clipping. Defaults to no padding.
A composable that renders the carousel item at the given index. Receives CarouselItemScope for size-aware helpers such as CarouselItemScope.maskClip.