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:
@@ -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 {
|
||||
VStack(spacing: 8) {
|
||||
if let mood = entry.todaysMood {
|
||||
@@ -105,7 +105,7 @@ struct VotedStatsView: View {
|
||||
.accessibilityElement(children: .combine)
|
||||
.accessibilityLabel(String(localized: "Mood logged: \(mood.strValue)"))
|
||||
|
||||
Text("Logged!")
|
||||
Text(votingDateString)
|
||||
.font(.caption.weight(.semibold))
|
||||
.foregroundStyle(.secondary)
|
||||
|
||||
|
||||
@@ -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 {
|
||||
VStack(spacing: 0) {
|
||||
Text(hasSubscription ? promptText : "Tap to open app")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.primary)
|
||||
.multilineTextAlignment(.center)
|
||||
.lineLimit(1)
|
||||
.minimumScaleFactor(0.7)
|
||||
.padding(.bottom, 10)
|
||||
|
||||
VStack(spacing: 8) {
|
||||
// Top row: Great, Good, Average
|
||||
HStack(spacing: 12) {
|
||||
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
|
||||
HStack(spacing: 12) {
|
||||
ForEach([Mood.bad, .horrible], id: \.rawValue) { mood in
|
||||
moodButton(for: mood, size: 36)
|
||||
moodButton(for: mood, size: 40)
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding(.horizontal, 8)
|
||||
.padding(.vertical, 4)
|
||||
.padding(.vertical, 8)
|
||||
}
|
||||
|
||||
// MARK: - Medium Widget: Single row
|
||||
|
||||
@@ -54,8 +54,6 @@ struct CustomizeContentView: View {
|
||||
.foregroundColor(.secondary)
|
||||
}
|
||||
.padding(12)
|
||||
.background(colorScheme == .dark ? Color(.systemGray6) : .white)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 16))
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
}
|
||||
@@ -231,7 +229,7 @@ struct SettingsSection<Content: View>: View {
|
||||
.padding(16)
|
||||
.background(
|
||||
RoundedRectangle(cornerRadius: 16)
|
||||
.fill(colorScheme == .dark ? Color(.systemGray6) : .white)
|
||||
.fill(Color(.systemGray6))
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -339,7 +337,7 @@ struct ImagePackPickerCompact: View {
|
||||
RoundedRectangle(cornerRadius: 12)
|
||||
.fill(imagePack == images
|
||||
? Color.accentColor.opacity(0.08)
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6)))
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : .white))
|
||||
)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
@@ -387,7 +385,7 @@ struct VotingLayoutPickerCompact: View {
|
||||
RoundedRectangle(cornerRadius: 12)
|
||||
.fill(currentLayout == layout
|
||||
? Color.accentColor.opacity(0.1)
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6)))
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : .white))
|
||||
)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
@@ -607,7 +605,7 @@ struct PersonalityPackPickerCompact: View {
|
||||
RoundedRectangle(cornerRadius: 12)
|
||||
.fill(personalityPack == aPack
|
||||
? Color.accentColor.opacity(0.08)
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6)))
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : .white))
|
||||
)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
@@ -667,7 +665,7 @@ struct DayFilterPickerCompact: View {
|
||||
.frame(height: 40)
|
||||
.background(
|
||||
RoundedRectangle(cornerRadius: 10)
|
||||
.fill(isActive ? Color.accentColor : (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6)))
|
||||
.fill(isActive ? Color.accentColor : (colorScheme == .dark ? Color(.systemGray5) : .white))
|
||||
)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
@@ -725,10 +723,6 @@ struct SubscriptionBannerView: View {
|
||||
.background(Capsule().fill(Color.green.opacity(0.15)))
|
||||
}
|
||||
.padding(16)
|
||||
.background(
|
||||
RoundedRectangle(cornerRadius: 16)
|
||||
.fill(colorScheme == .dark ? Color(.systemGray6) : .white)
|
||||
)
|
||||
}
|
||||
|
||||
private var notSubscribedView: some View {
|
||||
@@ -821,7 +815,7 @@ struct DayViewStylePickerCompact: View {
|
||||
RoundedRectangle(cornerRadius: 12)
|
||||
.fill(dayViewStyle == style
|
||||
? Color.accentColor.opacity(0.1)
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : Color(.systemGray6)))
|
||||
: (colorScheme == .dark ? Color(.systemGray5) : .white))
|
||||
)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
|
||||
Reference in New Issue
Block a user