ConnectedButtonGrid

fun ConnectedButtonGrid(items: List<StylishConnectedButtonItem>, columns: Int, modifier: Modifier = Modifier, cornerRadius: Dp = StylishTheme.dimensions.connectedCornerRadius, spacing: Dp = StylishTheme.dimensions.connectedSpacing, button: ConnectedButtonItemContent)

A headless grid of connected buttons laid out in equal-width cells across a fixed number of columns (Structure layer).

Items are chunked into rows of columns buttons. Within each row every button receives equal weight and stretches to the tallest sibling. Outline edges are drawn on all four sides of every cell; corner radii are computed automatically from each item's absolute index so that only the four outer corners of the entire grid are rounded. When the final row has fewer items than columns, the remaining buttons stretch via equal weight to fill the full row width. The actual rendering is delegated to the button lambda, which receives the pre-computed connection geometry.

This component makes no visual or interactive decisions — no colors, elevation, or animation. It is the headless backbone that the Stylish Finish counterpart StylishConnectedButtonGrid consumes by supplying a styled button. Supply your own button to render a custom skin over the same connected geometry.

Parameters

items

The list of StylishConnectedButtonItem data objects describing each button.

columns

The number of equal-width columns in the grid. Must be greater than zero.

cornerRadius

The radius applied to the outer corners. Defaults to StylishTheme.dimensions.connectedCornerRadius (12 dp).

spacing

The gap between adjacent buttons both horizontally and vertically. Defaults to StylishTheme.dimensions.connectedSpacing (3 dp).

button

A composable lambda that renders a single button. Receives the item data, a modifier (including weight and fill-max-height), the connected Shape, the outline ConnectedEdges, and the outline ConnectedCorners.

See also