fix(ui): harden settings focus and semantics
This commit is contained in:
@@ -6,21 +6,19 @@ import 'expressive_button_group.dart';
|
||||
|
||||
/// Standard settings-option title style.
|
||||
///
|
||||
/// Matches Flutter's dense ListTile title size so custom controls and
|
||||
/// ordinary settings rows keep the same hierarchy. TV retains the larger
|
||||
/// body style used for D-pad readability at distance.
|
||||
/// Mobile uses Flutter's compact ListTile title size. Desktop and TV retain
|
||||
/// the larger body style used for pointer and D-pad readability.
|
||||
TextStyle? settingsOptionTitleStyle(BuildContext context) {
|
||||
final style = Theme.of(context).textTheme.bodyLarge;
|
||||
return PlatformDetector.isTV() ? style : style?.copyWith(fontSize: 13);
|
||||
return PlatformDetector.isMobile(context) ? style?.copyWith(fontSize: 13) : style;
|
||||
}
|
||||
|
||||
/// Standard settings-row density, paired with [settingsOptionTitleStyle]:
|
||||
/// compact rows everywhere except TV, where full-height rows keep D-pad
|
||||
/// readability.
|
||||
bool settingsRowDense() => !PlatformDetector.isTV();
|
||||
/// compact on mobile and full-height on desktop and TV.
|
||||
bool settingsRowDense(BuildContext context) => PlatformDetector.isMobile(context);
|
||||
|
||||
VisualDensity settingsRowVisualDensity() =>
|
||||
settingsRowDense() ? const VisualDensity(vertical: -3) : VisualDensity.standard;
|
||||
VisualDensity settingsRowVisualDensity(BuildContext context) =>
|
||||
settingsRowDense(context) ? const VisualDensity(vertical: -3) : VisualDensity.standard;
|
||||
|
||||
class SettingsSectionHeader extends StatelessWidget {
|
||||
final String title;
|
||||
|
||||
Reference in New Issue
Block a user