Package-level declarations

Types

Link copied to clipboard
data class ScreenLayoutInfo(val isLandscape: Boolean, val sizeClass: SizeClass, val horizontalMargin: Dp, val isWebLayout: Boolean = false)

Information a ScreenScaffold exposes to its slots.

Link copied to clipboard

Coarse screen size, from the shorter side of the available space.

Link copied to clipboard
data class Spacing(val xs: Dp = 4.dp, val s: Dp = 8.dp, val m: Dp = 12.dp, val l: Dp = 16.dp, val xl: Dp = 24.dp)

Vertical spacing scale: 4 / 8 / 12 / 16 / 24 dp by default.

Link copied to clipboard
data class TabotaboDimensions(val spacing: Spacing = Spacing(), val cardCorner: Dp = 12.dp, val outlineWidth: Dp = 1.5.dp, val highlightOutlineWidth: Dp = 2.dp, val glowRadius: Dp = 16.dp, val portraitMarginFraction: Float = 0.08f, val landscapeMarginFraction: Float = 0.14f)

Dimension tokens.

Properties

Link copied to clipboard

Current layout info inside a ScreenScaffold; a compact portrait default outside one.

Functions

Link copied to clipboard
fun <T> CardList(items: List<T>, modifier: Modifier = Modifier, key: (T) -> Any? = null, minCellWidth: Dp = 280.dp, itemContent: @Composable (T) -> Unit)

Card list that adapts to the enclosing ScreenScaffold (via LocalScreenLayoutInfo):

Link copied to clipboard
fun ScreenHeader(modifier: Modifier = Modifier, onBack: () -> Unit? = null, backContentDescription: String? = null, subtitle: String? = null, subtitleMinLines: Int = 1, animateTitle: Boolean = true, actions: @Composable RowScope.() -> Unit = {}, title: EmphasisTextScope.() -> Unit)

Header: an optional bare back arrow beside the title, the emphasis title, a muted subtitle directly under it, and optional trailing icon actions. subtitleMinLines reserves space so the header never shifts.

Link copied to clipboard
fun ScreenScaffold(header: @Composable () -> Unit, modifier: Modifier = Modifier, actions: @Composable ColumnScope.() -> Unit? = null, webLayout: Boolean = false, webMaxWidth: Dp = 1080.dp, content: @Composable BoxScope.() -> Unit)

Screen skeleton driven by its own constraints, with no platform window APIs.