Package-level declarations

Types

Link copied to clipboard
class TabotaboButtonColors(val container: Color, val content: Color, val border: Color, val disabledContainer: Color, val disabledContent: Color, val disabledBorder: Color)

Colors of an outlined button in its enabled and disabled states.

Link copied to clipboard

Functions

Link copied to clipboard
fun ActionStack(modifier: Modifier = Modifier, maxWidth: Dp = Dp.Unspecified, alignment: Alignment.Horizontal = Alignment.CenterHorizontally, content: @Composable ColumnScope.() -> Unit)

Stacks buttons vertically, each full width within the stack, with the theme's medium spacing between them. maxWidth caps the width on wide / web layouts (skill: ~480dp).

Link copied to clipboard
fun IconAction(onClick: () -> Unit, contentDescription: String?, modifier: Modifier = Modifier, enabled: Boolean = true, tint: Color = TabotaboTheme.colors.primary, icon: @Composable () -> Unit)

Bare icon action (back arrow, info, settings gear): no card, tint via LocalContentColor, and a 48dp circular touch target.

Link copied to clipboard
fun PrimaryButton(text: String, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, leadingIcon: @Composable () -> Unit? = null, trailingIcon: @Composable () -> Unit? = null, colors: TabotaboButtonColors = TabotaboButtonDefaults.primaryColors())

Text convenience overload: a Bold single-line label that marquees instead of wrapping.

fun PrimaryButton(onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, colors: TabotaboButtonColors = TabotaboButtonDefaults.primaryColors(), shape: Shape = TabotaboButtonDefaults.Shape, borderWidth: Dp = TabotaboButtonDefaults.BorderWidth, contentPadding: PaddingValues = TabotaboButtonDefaults.ContentPadding, interactionSource: MutableInteractionSource? = null, content: @Composable RowScope.() -> Unit)

Outlined primary action. Content color flows through LocalContentColor, so icons are tinted automatically; the disabled state uses the theme's disabled color and ignores clicks.

Link copied to clipboard
fun SecondaryButton(text: String, onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, leadingIcon: @Composable () -> Unit? = null, trailingIcon: @Composable () -> Unit? = null, colors: TabotaboButtonColors = TabotaboButtonDefaults.secondaryColors())

Text convenience overload: a Bold single-line label that marquees instead of wrapping.

fun SecondaryButton(onClick: () -> Unit, modifier: Modifier = Modifier, enabled: Boolean = true, colors: TabotaboButtonColors = TabotaboButtonDefaults.secondaryColors(), shape: Shape = TabotaboButtonDefaults.Shape, borderWidth: Dp = TabotaboButtonDefaults.BorderWidth, contentPadding: PaddingValues = TabotaboButtonDefaults.ContentPadding, interactionSource: MutableInteractionSource? = null, content: @Composable RowScope.() -> Unit)

Outlined secondary action; see PrimaryButton for behaviour.