소스 검색

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 주 전
부모
커밋
87271c6514
2개의 변경된 파일29개의 추가작업 그리고 17개의 파일을 삭제
  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)