fix(components): take the section header's metrics from Calendula's

The header was invented here rather than converged from the app that
already had one. Calendula's SectionHeader is labelLarge at top 16 /
bottom 4, and separates one group from the next with the caller's own 8dp
spacer — a hub's first header follows the About card, not another group,
so the gap cannot live on the header. Matched exactly, so the two apps'
settings hubs are the same page.
This commit is contained in:
makiolaj committed 2026-09-09 15:33:53 +02:00
1 parent 1af24841ae
commit 97b4d24724
2 files changed
+13 -14

No files matched your search

+5 -5
View File
@@ -13,11 +13,11 @@ are no binary releases; "version" tracks the shared `version` in the root build
### Added
- **`components`** — `GroupedSectionHeader`, the label above a run of
`GroupedRow`s. Starts on `GroupedListInset` and owns the gap to the group
above, so a page writes header-then-rows and nothing else; `primary`, after
the Android-15 settings pattern the row system already follows. Wanted by
Agendula's settings hub, which had grown a flat run of a dozen rows with
nothing separating how the app behaves from what it is.
`GroupedRow`s: small, `primary`, inset to `GroupedListInset` so it shares the
cards' left margin. Converged from Calendula's settings hub, where the recipe
was written as a private `SectionHeader`, and now Agendula's, which had grown
a flat run of a dozen rows with nothing separating how the app behaves from
what it is.
- **`components`** — `GroupedRow` takes a `contentColor`, the pair to the
existing `container`: a row given a tint now names the `on*` role that goes
@@ -58,24 +58,23 @@ val GroupedListInset = 16.dp
* rather than merely spaced apart — a settings hub that separates how the app
* behaves from what it is.
*
* Starts on [GroupedListInset], the same edge as the cards it names, and owns
* the space that separates its group from the one above, so a caller writes
* header-then-rows and nothing else. Coloured `primary` after the Android-15
* settings pattern this row system already follows: the headers are what makes
* the grouping readable at a glance, and `onSurfaceVariant` sinks them into the
* summaries.
* Small, `primary`, and inset to [GroupedListInset] so it shares the left
* margin of the cards it names. Converged from Calendula's settings hub, where
* the recipe was written; a caller separates one group from the next with its
* own 8dp spacer, since a hub's first header follows the About card rather than
* another group.
*/
@Composable
fun GroupedSectionHeader(text: String, modifier: Modifier = Modifier) {
Text(
text = text,
style = MaterialTheme.typography.titleSmall,
style = MaterialTheme.typography.labelLarge,
color = MaterialTheme.colorScheme.primary,
modifier = modifier.padding(
start = GroupedListInset,
end = GroupedListInset,
top = 24.dp,
bottom = 8.dp,
top = 16.dp,
bottom = 4.dp,
),
)
}