CronTimer’s schedule-option radio list (CronExpressionEditor) appeared more compressed than Compute’s equivalent operation-option list (EditCompute). The inner Column of CronTimer schedule options used SPACING_SMALL = 8dp, while Compute’s OptionRadioButton rows carry explicit vertical = PADDING_VERTICAL_CHIP = 2dp padding with a PADDING_EXTRA_SMALL = 4dp column gap — the padding makes each row appear taller and more breathable even though the raw gap between rows is the same 8dp. Without per-row padding in CronTimer, its options look cramped relative to Compute’s visually airy list.
CronExpressionEditor.kt: Changed verticalArrangement of the inner radio-option Column from Arrangement.spacedBy(CommonLayout.SPACING_SMALL) (8dp) to Arrangement.spacedBy(CommonLayout.SPACING_MEDIUM) (12dp).The 4dp increase offsets the absence of per-row vertical padding, giving the schedule option list a visual density that matches the Compute screen’s radio list.
Row(RadioButton + Text) with no per-row padding modifier, the column arrangement must be at least SPACING_MEDIUM (12dp) to achieve breathing room equivalent to a padded OptionRadioButton-style row at SPACING_SMALL (8dp).OptionRadioButton composable in EditCompute.kt is the canonical reference for a spacious radio list: fillMaxWidth() + selectable() + padding(vertical = PADDING_VERTICAL_CHIP) rows inside a PADDING_EXTRA_SMALL-spaced Column. Prefer that pattern for new radio-option lists so spacing tokens can be unified without compensating at the column level.