This commit is contained in:
Forrest 2026-07-29 16:22:00 -04:00
parent fc22d11df1
commit 27a8a62475
32 changed files with 354 additions and 335 deletions

View file

@ -22,7 +22,7 @@ class SettingsScreen extends ConsumerWidget {
),
body: SafeArea(
child: ListView(
padding: const EdgeInsets.all(RatuneSpacing.lg),
padding: const EdgeInsets.all(TimbreSpacing.lg),
children: [
HairlinePanel(
title: 'Streaming',
@ -32,7 +32,7 @@ class SettingsScreen extends ConsumerWidget {
children: [
const _Caption(
'Quality used when playing tracks that are not downloaded.'),
const SizedBox(height: RatuneSpacing.md),
const SizedBox(height: TimbreSpacing.md),
_ChoiceChips<int>(
label: 'Max bitrate',
values: AppSettings.bitrateChoices,
@ -43,7 +43,7 @@ class SettingsScreen extends ConsumerWidget {
],
),
),
const SizedBox(height: RatuneSpacing.xl),
const SizedBox(height: TimbreSpacing.xl),
HairlinePanel(
title: 'Downloads',
active: true,
@ -53,7 +53,7 @@ class SettingsScreen extends ConsumerWidget {
const _Caption(
'Quality used when saving tracks for offline playback. '
'"Original" keeps the source file (best quality, largest).'),
const SizedBox(height: RatuneSpacing.md),
const SizedBox(height: TimbreSpacing.md),
_ChoiceChips<int>(
label: 'Max bitrate',
values: AppSettings.bitrateChoices,
@ -61,7 +61,7 @@ class SettingsScreen extends ConsumerWidget {
labelFor: AppSettings.bitrateLabel,
onSelect: controller.setDownloadMaxBitRate,
),
const SizedBox(height: RatuneSpacing.lg),
const SizedBox(height: TimbreSpacing.lg),
_ChoiceChips<String?>(
label: 'Format',
values: AppSettings.formatChoices,
@ -85,7 +85,7 @@ class _Caption extends StatelessWidget {
@override
Widget build(BuildContext context) => Text(
text,
style: const TextStyle(color: RatuneColors.dimmed, fontSize: 12),
style: const TextStyle(color: TimbreColors.dimmed, fontSize: 12),
);
}
@ -112,11 +112,11 @@ class _ChoiceChips<T> extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(label, style: const TextStyle(color: RatuneColors.foreground)),
const SizedBox(height: RatuneSpacing.sm),
Text(label, style: const TextStyle(color: TimbreColors.foreground)),
const SizedBox(height: TimbreSpacing.sm),
Wrap(
spacing: RatuneSpacing.sm,
runSpacing: RatuneSpacing.sm,
spacing: TimbreSpacing.sm,
runSpacing: TimbreSpacing.sm,
children: [
for (final v in values)
_Chip(
@ -150,21 +150,21 @@ class _Chip extends StatelessWidget {
return InkWell(
onTap: onTap,
child: Container(
constraints: const BoxConstraints(minHeight: RatuneSpacing.minTouchTarget),
constraints: const BoxConstraints(minHeight: TimbreSpacing.minTouchTarget),
padding: const EdgeInsets.symmetric(
horizontal: RatuneSpacing.lg,
vertical: RatuneSpacing.md,
horizontal: TimbreSpacing.lg,
vertical: TimbreSpacing.md,
),
decoration: BoxDecoration(
border: Border.all(
color: active ? accent : RatuneColors.border,
color: active ? accent : TimbreColors.border,
),
color: active ? accent.withValues(alpha: 0.12) : RatuneColors.surface,
color: active ? accent.withValues(alpha: 0.12) : TimbreColors.surface,
),
child: Text(
text,
style: TextStyle(
color: active ? accent : RatuneColors.foreground,
color: active ? accent : TimbreColors.foreground,
fontWeight: active ? FontWeight.w700 : FontWeight.w400,
),
),