Add Neon/Synthwave style and 4 paywall themes

- Add 4 distinct paywall themes (Celestial, Garden, Neon, Minimal) with
  preview/switcher in debug settings
- Add Neon voting layout with synthwave equalizer bar design
- Upgrade Neon entry style with grid background, cyan/magenta gradients,
  scanline effects, and mini equalizer visualization
- Add PaywallPreviewSettingsView for testing different paywall styles
- Use consistent synthwave color palette (cyan #00FFD0, magenta #FF00CC)

🤖 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-26 23:05:45 -06:00
parent f45f52ccbf
commit 53eb953b77
9 changed files with 2144 additions and 117 deletions

View File

@@ -14,6 +14,7 @@ enum VotingLayoutStyle: Int, CaseIterable {
case stacked = 3 // Full-width vertical list
case aura = 4 // Atmospheric glowing orbs with flowing layout
case orbit = 5 // Celestial orbit with center core
case neon = 6 // Synthwave arcade equalizer with glowing segments
var displayName: String {
switch self {
@@ -23,6 +24,32 @@ enum VotingLayoutStyle: Int, CaseIterable {
case .stacked: return "Stacked"
case .aura: return "Aura"
case .orbit: return "Orbit"
case .neon: return "Neon"
}
}
}
enum PaywallStyle: Int, CaseIterable {
case celestial = 0 // Celestial Self-Discovery - aurora, floating orbs
case garden = 1 // Garden Growth - organic, blooming nature
case neon = 2 // Neon Pulse - synthwave, energetic
case minimal = 3 // Minimal Zen - clean, sophisticated
var displayName: String {
switch self {
case .celestial: return "Celestial"
case .garden: return "Garden"
case .neon: return "Neon"
case .minimal: return "Minimal"
}
}
var description: String {
switch self {
case .celestial: return "Aurora lights & floating emotion orbs"
case .garden: return "Blooming flowers & organic growth"
case .neon: return "Synthwave energy & glowing pulses"
case .minimal: return "Clean typography & subtle elegance"
}
}
}
@@ -105,6 +132,7 @@ class UserDefaultsStore {
case privacyLockEnabled
case healthKitEnabled
case healthKitSyncEnabled
case paywallStyle
case contentViewCurrentSelectedHeaderViewBackDays
case contentViewHeaderTag