Bladeren bron

Align sidebar premium card with app dark mode colors.

Use standard card, text, and elevated surface tokens so the Pro subscription card matches the rest of the UI instead of a separate purple tint.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 3 weken geleden
bovenliggende
commit
87271c6514
2 gewijzigde bestanden met toevoegingen van 29 en 17 verwijderingen
  1. 24 12
      smart_printer/AppTheme.swift
  2. 5 5
      smart_printer/UIComponents.swift

+ 24 - 12
smart_printer/AppTheme.swift

@@ -127,10 +127,14 @@ enum AppTheme {
 
     static var premiumBackground: NSColor {
         isDark
-            ? NSColor(red: 0.28, green: 0.22, blue: 0.42, alpha: 1)
+            ? NSColor(red: 0.24, green: 0.20, blue: 0.36, alpha: 1)
             : NSColor(red: 0.95, green: 0.93, blue: 1.0, alpha: 1)
     }
 
+    static var premiumCardBackground: NSColor {
+        isDark ? cardBackground : NSColor(red: 0.95, green: 0.93, blue: 1.0, alpha: 1)
+    }
+
     static var premiumForeground: NSColor {
         isDark
             ? NSColor(red: 0.72, green: 0.58, blue: 1.0, alpha: 1)
@@ -138,27 +142,35 @@ enum AppTheme {
     }
 
     static var premiumCardBorder: NSColor {
-        isDark
-            ? NSColor(red: 0.55, green: 0.36, blue: 0.96, alpha: 0.28)
-            : NSColor(red: 0.88, green: 0.82, blue: 0.98, alpha: 1)
+        isDark ? paywallBorder : NSColor(red: 0.88, green: 0.82, blue: 0.98, alpha: 1)
+    }
+
+    static var premiumCardTitle: NSColor { textPrimary }
+
+    static var premiumCardSubtitle: NSColor {
+        isDark ? textSecondary : NSColor(red: 0.44, green: 0.38, blue: 0.58, alpha: 1)
     }
 
     static let premiumCrown = NSColor(red: 0.95, green: 0.75, blue: 0.20, alpha: 1)
 
-    static var premiumActionBackground: NSColor { cardBackground }
+    static var premiumActionBackground: NSColor {
+        isDark ? elevatedBackground : cardBackground
+    }
 
     static var premiumActionHoverBackground: NSColor {
-        isDark
-            ? NSColor(red: 0.22, green: 0.20, blue: 0.30, alpha: 1)
-            : NSColor(red: 0.98, green: 0.96, blue: 1.0, alpha: 1)
+        isDark ? paywallTrustIconBackground : NSColor(red: 0.98, green: 0.96, blue: 1.0, alpha: 1)
     }
 
     static var premiumActionBorder: NSColor { paywallBorder }
 
-    static var premiumActionBorderHover: NSColor {
-        isDark
-            ? NSColor(red: 0.55, green: 0.36, blue: 0.96, alpha: 0.45)
-            : NSColor(red: 0.78, green: 0.68, blue: 0.96, alpha: 1)
+    static var premiumActionBorderHover: NSColor { paywallBorder }
+
+    static var premiumActionForeground: NSColor {
+        isDark ? textPrimary : premiumForeground
+    }
+
+    static var premiumActionForegroundHover: NSColor {
+        isDark ? premiumForeground : NSColor(red: 0.48, green: 0.28, blue: 0.90, alpha: 1)
     }
 
     static var premiumButtonBackground: NSColor { purple }

+ 5 - 5
smart_printer/UIComponents.swift

@@ -282,11 +282,11 @@ final class SidebarPremiumCardView: NSView, AppearanceRefreshable {
     }
 
     func refreshAppearance() {
-        cardContainer.layer?.backgroundColor = AppTheme.premiumBackground.cgColor
+        cardContainer.layer?.backgroundColor = AppTheme.premiumCardBackground.cgColor
         cardContainer.layer?.borderColor = AppTheme.premiumCardBorder.cgColor
         crownIcon.contentTintColor = AppTheme.premiumCrown
-        titleLabel.refreshThemeLabelColor()
-        descriptionLabel.refreshThemeLabelColor()
+        titleLabel.textColor = AppTheme.premiumCardTitle
+        descriptionLabel.textColor = AppTheme.premiumCardSubtitle
         actionButton.refreshAppearance()
     }
 
@@ -424,11 +424,11 @@ private final class PremiumCardActionButton: NSControl, AppearanceRefreshable {
             layer?.backgroundColor = (isHovered ? AppTheme.premiumActionHoverBackground : AppTheme.premiumActionBackground).cgColor
             layer?.borderColor = (isHovered ? AppTheme.premiumActionBorderHover : AppTheme.premiumActionBorder).cgColor
             layer?.borderWidth = 1
-            let foreground = isHovered ? AppTheme.premiumForeground : AppTheme.textPrimary
+            let foreground = isHovered ? AppTheme.premiumActionForegroundHover : AppTheme.premiumActionForeground
             titleLabel.textColor = foreground
             arrowView.contentTintColor = foreground
             layer?.shadowColor = NSColor.black.cgColor
-            layer?.shadowOpacity = isHovered ? 0.08 : 0.03
+            layer?.shadowOpacity = isHovered ? 0.12 : 0.06
         }
 
         layer?.shadowOffset = NSSize(width: 0, height: isHovered ? -2 : -1)