From 3e5e6b74478f5dd54776fbe1ad6012ba62fbdf1a Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Sat, 7 Feb 2026 10:58:42 -0600 Subject: [PATCH] feature updates Signed-off-by: Matt Bruce --- .../Bedrock/Views/Settings/SelectableRow.swift | 1 + .../Views/Settings/SelectionIndicator.swift | 1 + .../Views/Settings/SettingsNavigationRow.swift | 15 +++++++-------- .../Views/Settings/SettingsSegmentedPicker.swift | 1 + .../Bedrock/Views/Settings/SettingsSlider.swift | 5 ++++- .../Bedrock/Views/Settings/SettingsToggle.swift | 4 +++- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Sources/Bedrock/Views/Settings/SelectableRow.swift b/Sources/Bedrock/Views/Settings/SelectableRow.swift index e1ecd17..bfdee61 100644 --- a/Sources/Bedrock/Views/Settings/SelectableRow.swift +++ b/Sources/Bedrock/Views/Settings/SelectableRow.swift @@ -94,6 +94,7 @@ public struct SelectableRow: View { ) } .buttonStyle(.plain) + .sensoryFeedback(.selection, trigger: isSelected) } } diff --git a/Sources/Bedrock/Views/Settings/SelectionIndicator.swift b/Sources/Bedrock/Views/Settings/SelectionIndicator.swift index e2a84d4..b73eec7 100644 --- a/Sources/Bedrock/Views/Settings/SelectionIndicator.swift +++ b/Sources/Bedrock/Views/Settings/SelectionIndicator.swift @@ -36,6 +36,7 @@ public struct SelectionIndicator: View { public var body: some View { if isSelected { SymbolIcon("checkmark.circle.fill", size: .row, color: accentColor) + .symbolEffect(.bounce, value: isSelected) } else { Circle() .strokeBorder(Color.white.opacity(Design.Opacity.light), lineWidth: Design.LineWidth.medium) diff --git a/Sources/Bedrock/Views/Settings/SettingsNavigationRow.swift b/Sources/Bedrock/Views/Settings/SettingsNavigationRow.swift index a88fa7c..9e4452c 100644 --- a/Sources/Bedrock/Views/Settings/SettingsNavigationRow.swift +++ b/Sources/Bedrock/Views/Settings/SettingsNavigationRow.swift @@ -66,19 +66,18 @@ public struct SettingsNavigationRow: View { destination } label: { HStack { - VStack(alignment: .leading, spacing: Design.Spacing.xxSmall) { - Text(title).styled(.subheadingEmphasis) - - if let subtitle { - Text(subtitle).styled(.caption, emphasis: .secondary) - } - } + Text(title).styled(.subheadingEmphasis) Spacer() + if let subtitle { + Text(subtitle).styled(.subheading, emphasis: .secondary) + } + SymbolIcon.chevron(color: .secondary) } - .padding(Design.Spacing.medium) + .padding(.vertical, Design.Spacing.medium) + .padding(.horizontal, Design.Spacing.medium) .background(backgroundColor, in: RoundedRectangle(cornerRadius: Design.CornerRadius.medium)) } .buttonStyle(.plain) diff --git a/Sources/Bedrock/Views/Settings/SettingsSegmentedPicker.swift b/Sources/Bedrock/Views/Settings/SettingsSegmentedPicker.swift index a185594..866d860 100644 --- a/Sources/Bedrock/Views/Settings/SettingsSegmentedPicker.swift +++ b/Sources/Bedrock/Views/Settings/SettingsSegmentedPicker.swift @@ -109,6 +109,7 @@ public struct SettingsSegmentedPicker: View { .buttonStyle(.plain) } } + .sensoryFeedback(.selection, trigger: selection) } .padding(.vertical, Design.Spacing.xSmall) } diff --git a/Sources/Bedrock/Views/Settings/SettingsSlider.swift b/Sources/Bedrock/Views/Settings/SettingsSlider.swift index 6c4da49..9c85833 100644 --- a/Sources/Bedrock/Views/Settings/SettingsSlider.swift +++ b/Sources/Bedrock/Views/Settings/SettingsSlider.swift @@ -118,6 +118,8 @@ public struct SettingsSlider: View where Text(format(value)) .styled(.subheadingEmphasis, emphasis: .secondary) .fontDesign(.rounded) + .contentTransition(.numericText()) + .animation(.snappy(duration: 0.2), value: value) } Text(subtitle).styled(.caption, emphasis: .secondary) @@ -139,7 +141,8 @@ public struct SettingsSlider: View where } } } - .padding(.vertical, Design.Spacing.xSmall) + .padding(.vertical, Design.Spacing.medium) + .padding(.horizontal, Design.Spacing.medium) } } diff --git a/Sources/Bedrock/Views/Settings/SettingsToggle.swift b/Sources/Bedrock/Views/Settings/SettingsToggle.swift index 7b534b4..4a8166a 100644 --- a/Sources/Bedrock/Views/Settings/SettingsToggle.swift +++ b/Sources/Bedrock/Views/Settings/SettingsToggle.swift @@ -90,7 +90,9 @@ public struct SettingsToggle: View { } } .tint(accentColor) - .padding(.vertical, Design.Spacing.xSmall) + .padding(.vertical, Design.Spacing.medium) + .padding(.horizontal, Design.Spacing.medium) + .sensoryFeedback(.impact(flexibility: .soft), trigger: isOn) } }