Explorar el Código

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 hace 3 semanas
padre
commit
87271c6514
Se han modificado 2 ficheros con 29 adiciones y 17 borrados
  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 {
     static var premiumBackground: NSColor {
         isDark
         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)
             : 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 {
     static var premiumForeground: NSColor {
         isDark
         isDark
             ? NSColor(red: 0.72, green: 0.58, blue: 1.0, alpha: 1)
             ? NSColor(red: 0.72, green: 0.58, blue: 1.0, alpha: 1)
@@ -138,27 +142,35 @@ enum AppTheme {
     }
     }
 
 
     static var premiumCardBorder: NSColor {
     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 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 {
     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 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 }
     static var premiumButtonBackground: NSColor { purple }

+ 5 - 5
smart_printer/UIComponents.swift

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