From a2e219d03b1e64a926e3a6e5ae7921a7b931c4f6 Mon Sep 17 00:00:00 2001 From: cogwheel0 <172976095+cogwheel0@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:29:58 +0530 Subject: [PATCH] refactor(theme): update theme colors and remove unused app_theme references for improved consistency --- .../chat/widgets/modern_chat_input.dart | 38 ++- lib/shared/theme/app_theme.dart | 4 +- lib/shared/theme/theme_extensions.dart | 290 +----------------- 3 files changed, 24 insertions(+), 308 deletions(-) diff --git a/lib/features/chat/widgets/modern_chat_input.dart b/lib/features/chat/widgets/modern_chat_input.dart index 7a01073..755c488 100644 --- a/lib/features/chat/widgets/modern_chat_input.dart +++ b/lib/features/chat/widgets/modern_chat_input.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; import '../../../shared/theme/theme_extensions.dart'; +// app_theme not required here; using theme extension tokens import '../../../shared/widgets/sheet_handle.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; @@ -63,7 +64,7 @@ class _MicButton extends StatelessWidget { ) : context.conduitTheme.cardBackground; final Color iconColor = isRecording - ? context.conduitTheme.textPrimary + ? context.conduitTheme.buttonPrimaryText : context.conduitTheme.textPrimary.withValues(alpha: Alpha.strong); return Tooltip( @@ -875,12 +876,10 @@ class _ModernChatInputState extends ConsumerState borderRadius: BorderRadius.circular(AppBorderRadius.xl), side: BorderSide( color: isActive - ? context.conduitTheme.textPrimary.withValues( - alpha: Alpha.buttonHover + Alpha.subtle, - ) + ? context.conduitTheme.buttonPrimary : showBackground - ? context.conduitTheme.cardBorder - : Colors.transparent, + ? context.conduitTheme.cardBorder + : Colors.transparent, width: BorderWidth.regular, ), ), @@ -897,12 +896,10 @@ class _ModernChatInputState extends ConsumerState height: TouchTarget.comfortable, decoration: BoxDecoration( color: isActive - ? context.conduitTheme.textPrimary.withValues( - alpha: Alpha.buttonHover, - ) + ? context.conduitTheme.buttonPrimary : showBackground - ? context.conduitTheme.cardBackground - : Colors.transparent, + ? context.conduitTheme.cardBackground + : Colors.transparent, borderRadius: BorderRadius.circular(AppBorderRadius.xl), boxShadow: (isActive || showBackground) ? ConduitShadows.button @@ -913,13 +910,11 @@ class _ModernChatInputState extends ConsumerState size: iconSize ?? IconSize.medium, color: widget.enabled ? (isActive - ? context.conduitTheme.textPrimary - : context.conduitTheme.textPrimary.withValues( - alpha: Alpha.strong, - )) - : context.conduitTheme.textPrimary.withValues( - alpha: Alpha.disabled, - ), + ? context.conduitTheme.buttonPrimaryText + : context.conduitTheme.textPrimary + .withValues(alpha: Alpha.strong)) + : context.conduitTheme.textPrimary + .withValues(alpha: Alpha.disabled), ), ), ), @@ -957,8 +952,11 @@ class _ModernChatInputState extends ConsumerState alignment: Alignment.center, padding: const EdgeInsets.symmetric(horizontal: Spacing.md), decoration: BoxDecoration( - // Align with unified tools modal: keep subtle card background even when active - color: context.conduitTheme.cardBackground, + // Subtle primary tint when active for clearer affordance + color: isActive + ? context.conduitTheme.buttonPrimary + .withValues(alpha: Alpha.buttonHover + 0.04) + : context.conduitTheme.cardBackground, borderRadius: BorderRadius.circular(AppBorderRadius.xl), // No elevation to match modal chips boxShadow: ConduitShadows.button, diff --git a/lib/shared/theme/app_theme.dart b/lib/shared/theme/app_theme.dart index 7fd7acd..195a395 100644 --- a/lib/shared/theme/app_theme.dart +++ b/lib/shared/theme/app_theme.dart @@ -66,7 +66,7 @@ class AppTheme { centerTitle: true, elevation: Elevation.none, backgroundColor: Colors.transparent, - foregroundColor: neutral800, + foregroundColor: neutral900, ), bottomSheetTheme: BottomSheetThemeData( backgroundColor: neutral50, @@ -132,7 +132,7 @@ class AppTheme { ), // Use platform default system font text theme textTheme: ThemeData.light().textTheme, - extensions: const [ConduitThemeExtension.auroraLight], + extensions: const [ConduitThemeExtension.light], ); // Base Dark Theme diff --git a/lib/shared/theme/theme_extensions.dart b/lib/shared/theme/theme_extensions.dart index e44cd47..2a3c5d6 100644 --- a/lib/shared/theme/theme_extensions.dart +++ b/lib/shared/theme/theme_extensions.dart @@ -515,7 +515,7 @@ class ConduitThemeExtension extends ThemeExtension { inputBorder: AppTheme.neutral600, inputBorderFocused: AppTheme.brandPrimary, inputText: AppTheme.neutral50, - inputPlaceholder: AppTheme.neutral400, + inputPlaceholder: AppTheme.neutral300, inputError: AppTheme.error, // Card and surface colors - Enhanced depth and hierarchy @@ -545,10 +545,10 @@ class ConduitThemeExtension extends ThemeExtension { infoBackground: Color(0xFF0C4A6E), // Navigation and UI element colors - Enhanced contrast - dividerColor: Color(0xFF1A1D1C), + dividerColor: AppTheme.neutral600, navigationBackground: Color(0xFF0A0D0C), navigationSelected: AppTheme.brandPrimary, - navigationUnselected: AppTheme.neutral400, + navigationUnselected: AppTheme.neutral300, navigationSelectedBackground: AppTheme.brandPrimary, // Loading and animation colors - Enhanced visibility @@ -670,7 +670,7 @@ class ConduitThemeExtension extends ThemeExtension { infoBackground: Color(0xFFE8F4FD), // Navigation and UI element colors - Enhanced contrast - dividerColor: Color(0xFFE7E7E7), + dividerColor: AppTheme.neutral100, navigationBackground: AppTheme.neutral50, navigationSelected: AppTheme.brandPrimary, navigationUnselected: AppTheme.neutral600, @@ -752,291 +752,9 @@ class ConduitThemeExtension extends ThemeExtension { ), ); - // Aurora palette: original, cool cyan-teal with midnight accents - static const ConduitThemeExtension auroraDark = ConduitThemeExtension( - // Chat-specific colors - chatBubbleUser: Color(0xFF0EA5A5), - chatBubbleAssistant: Color(0xFF111827), - chatBubbleUserText: AppTheme.neutral50, - chatBubbleAssistantText: AppTheme.neutral50, - chatBubbleUserBorder: Color(0xFF0EA5A5), - chatBubbleAssistantBorder: Color(0xFF1F2937), - // Input and form colors - inputBackground: AppTheme.neutral700, - inputBorder: AppTheme.neutral600, - inputBorderFocused: Color(0xFF06B6D4), - inputText: AppTheme.neutral50, - inputPlaceholder: AppTheme.neutral400, - inputError: AppTheme.error, - // Card and surface colors - cardBackground: Color(0xFF0B1220), - cardBorder: Color(0xFF1F2A37), - cardShadow: AppTheme.neutral900, - surfaceBackground: Color(0xFF0A0F1A), - surfaceContainer: Color(0xFF0F172A), - surfaceContainerHighest: Color(0xFF111827), - // Interactive element colors - buttonPrimary: Color(0xFF06B6D4), - buttonPrimaryText: AppTheme.neutral50, - buttonSecondary: Color(0xFF1E293B), - buttonSecondaryText: AppTheme.neutral50, - buttonDisabled: AppTheme.neutral600, - buttonDisabledText: AppTheme.neutral400, - // Status and feedback colors - success: Color(0xFF22C55E), - successBackground: Color(0xFF14532D), - error: Color(0xFFEF4444), - errorBackground: Color(0xFF7F1D1D), - warning: Color(0xFFF59E0B), - warningBackground: Color(0xFF7C2D12), - info: Color(0xFF38BDF8), - infoBackground: Color(0xFF0C4A6E), - // Navigation and UI element colors - dividerColor: Color(0xFF334155), - navigationBackground: Color(0xFF0B1220), - navigationSelected: Color(0xFF06B6D4), - navigationUnselected: AppTheme.neutral400, - navigationSelectedBackground: Color(0xFF06B6D4), - // Loading and animation colors - shimmerBase: Color(0xFF0F172A), - shimmerHighlight: Color(0xFF1F2937), - loadingIndicator: Color(0xFF06B6D4), - // Text colors - textPrimary: AppTheme.neutral50, - textSecondary: Color(0xFFE5E7EB), - textTertiary: AppTheme.neutral400, - textInverse: AppTheme.neutral900, - textDisabled: AppTheme.neutral600, - // Icon colors - iconPrimary: AppTheme.neutral50, - iconSecondary: Color(0xFF94A3B8), - iconDisabled: AppTheme.neutral600, - iconInverse: AppTheme.neutral900, - // Typography styles (reuse base sizes with aurora accent implied by colors) - headingLarge: null, - headingMedium: null, - headingSmall: null, - bodyLarge: null, - bodyMedium: null, - bodySmall: null, - caption: null, - label: null, - code: null, - ); - static const ConduitThemeExtension auroraLight = ConduitThemeExtension( - // Chat-specific colors - chatBubbleUser: Color(0xFF0EA5A5), - chatBubbleAssistant: Color(0xFFF8FAFC), - chatBubbleUserText: AppTheme.neutral50, - chatBubbleAssistantText: Color(0xFF0F172A), - chatBubbleUserBorder: Color(0xFF0EA5A5), - chatBubbleAssistantBorder: Color(0xFFE2E8F0), - // Input and form colors - inputBackground: AppTheme.neutral50, - inputBorder: Color(0xFFE2E8F0), - inputBorderFocused: Color(0xFF06B6D4), - inputText: Color(0xFF0F172A), - inputPlaceholder: AppTheme.neutral500, - inputError: AppTheme.error, - // Card and surface colors - cardBackground: AppTheme.neutral50, - cardBorder: Color(0xFFE2E8F0), - cardShadow: Color(0xFFF1F5F9), - surfaceBackground: AppTheme.neutral50, - surfaceContainer: Color(0xFFF8FAFC), - surfaceContainerHighest: Color(0xFFF1F5F9), - // Interactive element colors - buttonPrimary: Color(0xFF06B6D4), - buttonPrimaryText: AppTheme.neutral50, - buttonSecondary: Color(0xFFE2E8F0), - buttonSecondaryText: Color(0xFF0F172A), - buttonDisabled: AppTheme.neutral300, - buttonDisabledText: AppTheme.neutral500, - // Status and feedback colors - success: Color(0xFF16A34A), - successBackground: Color(0xFFEFFBF3), - error: Color(0xFFDC2626), - errorBackground: Color(0xFFFDECEC), - warning: Color(0xFFD97706), - warningBackground: Color(0xFFFEF6E7), - info: Color(0xFF0284C7), - infoBackground: Color(0xFFE8F4FD), - // Navigation and UI element colors - dividerColor: Color(0xFFE2E8F0), - navigationBackground: AppTheme.neutral50, - navigationSelected: Color(0xFF06B6D4), - navigationUnselected: AppTheme.neutral600, - navigationSelectedBackground: Color(0xFF06B6D4), - // Loading and animation colors - shimmerBase: Color(0xFFF1F5F9), - shimmerHighlight: AppTheme.neutral50, - loadingIndicator: Color(0xFF06B6D4), - // Text colors - textPrimary: Color(0xFF0F172A), - textSecondary: Color(0xFF334155), - textTertiary: AppTheme.neutral500, - textInverse: AppTheme.neutral50, - textDisabled: AppTheme.neutral400, - // Icon colors - iconPrimary: Color(0xFF0F172A), - iconSecondary: Color(0xFF64748B), - iconDisabled: AppTheme.neutral400, - iconInverse: AppTheme.neutral50, - // Typography styles (inherit from base) - headingLarge: null, - headingMedium: null, - headingSmall: null, - bodyLarge: null, - bodyMedium: null, - bodySmall: null, - caption: null, - label: null, - code: null, - ); - // Serenity palette: soft sage greens with gentle neutrals - static const ConduitThemeExtension serenityDark = ConduitThemeExtension( - // Chat-specific colors - chatBubbleUser: Color(0xFF4F9D88), - chatBubbleAssistant: Color(0xFF0A100E), - chatBubbleUserText: Color(0xFFD7E3DE), - chatBubbleAssistantText: Color(0xFFD7E3DE), - chatBubbleUserBorder: Color(0xFF15201B), - chatBubbleAssistantBorder: Color(0xFF121A16), - // Input and form colors - inputBackground: Color(0xFF0A100E), - inputBorder: Color(0xFF15201B), - inputBorderFocused: Color(0xFF4F9D88), - inputText: Color(0xFFD7E3DE), - inputPlaceholder: Color(0xFF7C8A84), - inputError: AppTheme.error, - // Card and surface colors - cardBackground: Color(0xFF0A100E), - cardBorder: Color(0xFF121A16), - cardShadow: AppTheme.neutral900, - surfaceBackground: Color(0xFF080D0B), - surfaceContainer: Color(0xFF0A100E), - surfaceContainerHighest: Color(0xFF0D1411), - // Interactive element colors - buttonPrimary: Color(0xFF4F9D88), - buttonPrimaryText: Color(0xFFD7E3DE), - buttonSecondary: Color(0xFF101613), - buttonSecondaryText: Color(0xFFD7E3DE), - buttonDisabled: AppTheme.neutral600, - buttonDisabledText: AppTheme.neutral400, - // Status and feedback colors - success: Color(0xFF22C55E), - successBackground: Color(0xFF14532D), - error: Color(0xFFEF4444), - errorBackground: Color(0xFF7F1D1D), - warning: Color(0xFFF59E0B), - warningBackground: Color(0xFF7C2D12), - info: Color(0xFF38BDF8), - infoBackground: Color(0xFF0C4A6E), - // Navigation and UI element colors - dividerColor: Color(0xFF15201B), - navigationBackground: Color(0xFF080D0B), - navigationSelected: Color(0xFF4F9D88), - navigationUnselected: AppTheme.neutral400, - navigationSelectedBackground: Color(0xFF4F9D88), - // Loading and animation colors - shimmerBase: Color(0xFF0A100E), - shimmerHighlight: Color(0xFF121A16), - loadingIndicator: Color(0xFF4F9D88), - // Text colors - textPrimary: Color(0xFFD7E3DE), - textSecondary: Color(0xFFA8B6AF), - textTertiary: AppTheme.neutral400, - textInverse: AppTheme.neutral900, - textDisabled: AppTheme.neutral600, - // Icon colors - iconPrimary: Color(0xFFD7E3DE), - iconSecondary: Color(0xFFA3B3AD), - iconDisabled: AppTheme.neutral600, - iconInverse: AppTheme.neutral900, - // Typography styles (inherit from base) - headingLarge: null, - headingMedium: null, - headingSmall: null, - bodyLarge: null, - bodyMedium: null, - bodySmall: null, - caption: null, - label: null, - code: null, - ); - static const ConduitThemeExtension serenityLight = ConduitThemeExtension( - // Chat-specific colors - chatBubbleUser: Color(0xFF5FAE97), - chatBubbleAssistant: Color(0xFFF7FAF8), - chatBubbleUserText: AppTheme.neutral50, - chatBubbleAssistantText: Color(0xFF0F1A14), - chatBubbleUserBorder: Color(0xFF5FAE97), - chatBubbleAssistantBorder: Color(0xFFD5E3DB), - // Input and form colors - inputBackground: Color(0xFFF7FAF8), - inputBorder: Color(0xFFD5E3DB), - inputBorderFocused: Color(0xFF4F9D88), - inputText: Color(0xFF0F1A14), - inputPlaceholder: AppTheme.neutral500, - inputError: AppTheme.error, - // Card and surface colors - cardBackground: Color(0xFFFAFBF9), - cardBorder: Color(0xFFD9E2DB), - cardShadow: Color(0xFFEEF2EE), - surfaceBackground: Color(0xFFF7FAF8), - surfaceContainer: Color(0xFFEFF4F1), - surfaceContainerHighest: Color(0xFFE6EEEA), - // Interactive element colors - buttonPrimary: Color(0xFF4F9D88), - buttonPrimaryText: AppTheme.neutral50, - buttonSecondary: Color(0xFFEEF2EE), - buttonSecondaryText: Color(0xFF1A241E), - buttonDisabled: AppTheme.neutral300, - buttonDisabledText: AppTheme.neutral500, - // Status and feedback colors - success: Color(0xFF16A34A), - successBackground: Color(0xFFEFFBF3), - error: Color(0xFFDC2626), - errorBackground: Color(0xFFFDECEC), - warning: Color(0xFFD97706), - warningBackground: Color(0xFFFEF6E7), - info: Color(0xFF0284C7), - infoBackground: Color(0xFFE8F4FD), - // Navigation and UI element colors - dividerColor: Color(0xFFD9E2DB), - navigationBackground: Color(0xFFF7FAF8), - navigationSelected: Color(0xFF4F9D88), - navigationUnselected: AppTheme.neutral600, - navigationSelectedBackground: Color(0xFF4F9D88), - // Loading and animation colors - shimmerBase: Color(0xFFEFF4F1), - shimmerHighlight: AppTheme.neutral50, - loadingIndicator: Color(0xFF4F9D88), - // Text colors - textPrimary: Color(0xFF0F1A14), - textSecondary: Color(0xFF2D3A34), - textTertiary: AppTheme.neutral500, - textInverse: AppTheme.neutral50, - textDisabled: AppTheme.neutral400, - // Icon colors - iconPrimary: Color(0xFF0F1A14), - iconSecondary: Color(0xFF53665C), - iconDisabled: AppTheme.neutral400, - iconInverse: AppTheme.neutral50, - // Typography styles (inherit from base) - headingLarge: null, - headingMedium: null, - headingSmall: null, - bodyLarge: null, - bodyMedium: null, - bodySmall: null, - caption: null, - label: null, - code: null, - ); } /// Extension method to easily access Conduit theme from BuildContext