Fix small widget layout and settings light mode contrast

- Remove prompt text from small widget before voting
- Show date instead of "Logged!" after voting on small widget
- Fix light mode settings: section=gray, inner rows=white for contrast
- Remove redundant backgrounds from Browse Themes and subscription banner

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Trey t
2025-12-31 13:39:25 -06:00
parent e78e848951
commit 37fdb4db29
3 changed files with 13 additions and 28 deletions

View File

@@ -83,7 +83,7 @@ struct VotedStatsView: View {
} }
} }
// MARK: - Small: Centered mood with checkmark // MARK: - Small: Centered mood with checkmark and date
private var smallLayout: some View { private var smallLayout: some View {
VStack(spacing: 8) { VStack(spacing: 8) {
if let mood = entry.todaysMood { if let mood = entry.todaysMood {
@@ -105,7 +105,7 @@ struct VotedStatsView: View {
.accessibilityElement(children: .combine) .accessibilityElement(children: .combine)
.accessibilityLabel(String(localized: "Mood logged: \(mood.strValue)")) .accessibilityLabel(String(localized: "Mood logged: \(mood.strValue)"))
Text("Logged!") Text(votingDateString)
.font(.caption.weight(.semibold)) .font(.caption.weight(.semibold))
.foregroundStyle(.secondary) .foregroundStyle(.secondary)

View File

@@ -32,34 +32,25 @@ struct VotingView: View {
} }
} }
// MARK: - Small Widget: 3 over 2 grid // MARK: - Small Widget: 3 over 2 grid (no text - just mood buttons)
private var smallLayout: some View { private var smallLayout: some View {
VStack(spacing: 0) { VStack(spacing: 8) {
Text(hasSubscription ? promptText : "Tap to open app")
.font(.caption)
.foregroundStyle(.primary)
.multilineTextAlignment(.center)
.lineLimit(1)
.minimumScaleFactor(0.7)
.padding(.bottom, 10)
// Top row: Great, Good, Average // Top row: Great, Good, Average
HStack(spacing: 12) { HStack(spacing: 12) {
ForEach([Mood.great, .good, .average], id: \.rawValue) { mood in ForEach([Mood.great, .good, .average], id: \.rawValue) { mood in
moodButton(for: mood, size: 36) moodButton(for: mood, size: 40)
} }
} }
.padding(.bottom, 6)
// Bottom row: Bad, Horrible // Bottom row: Bad, Horrible
HStack(spacing: 12) { HStack(spacing: 12) {
ForEach([Mood.bad, .horrible], id: \.rawValue) { mood in ForEach([Mood.bad, .horrible], id: \.rawValue) { mood in
moodButton(for: mood, size: 36) moodButton(for: mood, size: 40)
} }
} }
} }
.padding(.horizontal, 8) .padding(.horizontal, 8)
.padding(.vertical, 4) .padding(.vertical, 8)
} }
// MARK: - Medium Widget: Single row // MARK: - Medium Widget: Single row

View File

@@ -54,8 +54,6 @@ struct CustomizeContentView: View {
.foregroundColor(.secondary) .foregroundColor(.secondary)
} }
.padding(12) .padding(12)
.background(colorScheme == .dark ? Color(.systemGray6) : .white)
.clipShape(RoundedRectangle(cornerRadius: 16))
} }
.buttonStyle(.plain) .buttonStyle(.plain)
} }
@@ -231,7 +229,7 @@ struct SettingsSection<Content: View>: View {
.padding(16) .padding(16)
.background( .background(
RoundedRectangle(cornerRadius: 16) RoundedRectangle(cornerRadius: 16)
.fill(colorScheme == .dark ? Color(.systemGray6) : .white) .fill(Color(.systemGray6))
) )
} }
} }
@@ -339,7 +337,7 @@ struct ImagePackPickerCompact: View {
RoundedRectangle(cornerRadius: 12) RoundedRectangle(cornerRadius: 12)
.fill(imagePack == images .fill(imagePack == images
? Color.accentColor.opacity(0.08) ? Color.accentColor.opacity(0.08)
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6))) : (colorScheme == .dark ? Color(.systemGray5) : .white))
) )
} }
.buttonStyle(.plain) .buttonStyle(.plain)
@@ -387,7 +385,7 @@ struct VotingLayoutPickerCompact: View {
RoundedRectangle(cornerRadius: 12) RoundedRectangle(cornerRadius: 12)
.fill(currentLayout == layout .fill(currentLayout == layout
? Color.accentColor.opacity(0.1) ? Color.accentColor.opacity(0.1)
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6))) : (colorScheme == .dark ? Color(.systemGray5) : .white))
) )
} }
.buttonStyle(.plain) .buttonStyle(.plain)
@@ -607,7 +605,7 @@ struct PersonalityPackPickerCompact: View {
RoundedRectangle(cornerRadius: 12) RoundedRectangle(cornerRadius: 12)
.fill(personalityPack == aPack .fill(personalityPack == aPack
? Color.accentColor.opacity(0.08) ? Color.accentColor.opacity(0.08)
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6))) : (colorScheme == .dark ? Color(.systemGray5) : .white))
) )
} }
.buttonStyle(.plain) .buttonStyle(.plain)
@@ -667,7 +665,7 @@ struct DayFilterPickerCompact: View {
.frame(height: 40) .frame(height: 40)
.background( .background(
RoundedRectangle(cornerRadius: 10) RoundedRectangle(cornerRadius: 10)
.fill(isActive ? Color.accentColor : (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6))) .fill(isActive ? Color.accentColor : (colorScheme == .dark ? Color(.systemGray5) : .white))
) )
} }
.buttonStyle(.plain) .buttonStyle(.plain)
@@ -725,10 +723,6 @@ struct SubscriptionBannerView: View {
.background(Capsule().fill(Color.green.opacity(0.15))) .background(Capsule().fill(Color.green.opacity(0.15)))
} }
.padding(16) .padding(16)
.background(
RoundedRectangle(cornerRadius: 16)
.fill(colorScheme == .dark ? Color(.systemGray6) : .white)
)
} }
private var notSubscribedView: some View { private var notSubscribedView: some View {
@@ -821,7 +815,7 @@ struct DayViewStylePickerCompact: View {
RoundedRectangle(cornerRadius: 12) RoundedRectangle(cornerRadius: 12)
.fill(dayViewStyle == style .fill(dayViewStyle == style
? Color.accentColor.opacity(0.1) ? Color.accentColor.opacity(0.1)
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6))) : (colorScheme == .dark ? Color(.systemGray5) : .white))
) )
} }
.buttonStyle(.plain) .buttonStyle(.plain)