import 'package:flutter/material.dart';

class TColors {
  // Monochrome Notion-like theme colors
  static const Color primary = Color(0xFF2F2F2F); // Notion dark text
  static const Color secondary = Color(0xFFF5F5F5); // Notion light bg
  static const Color accent = Color(0xFFFAFAFA);

  // Text colors
  static const Color textPrimary = Color(0xFF2F2F2F);
  static const Color textSecondary = Color(0xFF6B6B6B);
  static const Color textWhite = Colors.white;

  // Background colors
  static const Color light = Color(0xFFF7F7F5); // Notion off-white
  static const Color dark = Color(0xFF18191A); // Notion dark mode bg
  static const Color primaryBackground = Color(0xFFF7F7F5);

  // Background Container colors
  static const Color lightContainer = Color(0xFFFFFFFF);
  static const Color darkContainer = Color(0xFF232425);

  // Button colors
  static const Color buttonPrimary = Color(0xFF2F2F2F);
  static const Color buttonSecondary = Color(0xFFF5F5F5);
  static const Color buttonDisabled = Color(0xFFB0B0B0);

  // Border colors
  static const Color borderPrimary = Color(0xFFE5E5E5);
  static const Color borderSecondary = Color(0xFFE5E5E5);

  // Error and validation colors
  static const Color error = Color(0xFFEF4444);
  static const Color success = Color(0xFF38B2AC);
  static const Color warning = Color(0xFFF59E0B);
  static const Color info = Color(0xFF2563EB); // Information state color
  static const Color disabled = Color(0xFFB0B0B0); // Disabled state color
  static const Color active = Color(0xFF2F2F2F); // Active state color
  static const Color inactive = Color(0xFF6B6B6B); // Inactive state color

  // Neutral Shades
  static const Color black = Color(0xFF232323);
  static const Color darkerGrey = Color(0xFF4F4F4F);
  static const Color darkGrey = Color(0xFF939393);
  static const Color grey = Color(0xFFE0E0E0);
  static const Color softGrey = Color(0xFFF4F4F4);
  static const Color lightGrey = Color(0xFFF9F9F9);
  static const Color white = Color(0xFFFFFFFF);

  // Card colors
  static const Color cardPrimary = Color(0xFF232425); // Dark card bg
  static const Color cardSecondary = Color(0xFFFFFFFF); // Light card bg
  static const Color cardForeground = Color(0xFF2F2F2F); // Card text color
  static const Color cardMuted = Color(0xFF343536); // Muted card text
  static const Color cardMutedForeground = Color(
    0xFFB0B0B0,
  ); // Muted text color
  static const Color cardAccent = Color(0xFF343536); // Card accent color
  static const Color cardDestructive = Color(
    0xFFEF4444,
  ); // Card destructive action
  static const Color cardSuccess = Color(0xFF38B2AC); // Card success action
  static const Color cardWarning = Color(0xFFF59E0B); // Card warning action
  static const Color cardInformation = Color(
    0xFF2563EB,
  ); // Card information action

  // Card colors (theme-aware)
  static const Color cardLight = Color(0xFFFFFFFF); // Light mode card bg
  static const Color cardDark = Color(0xFF232425); // Dark mode card bg
  static const Color cardBorderLight = Color(
    0xFFE5E5E5,
  ); // Light mode card border
  static const Color cardBorderDark = Color(
    0xFF343536,
  ); // Dark mode card border
  static const Color cardForegroundLight = Color(
    0xFF2F2F2F,
  ); // Light mode card text
  static const Color cardForegroundDark = Color(
    0xFFFFFFFF,
  ); // Dark mode card text

 


  // Additional colors
  static const Color transparent = Colors.transparent;

  // Theme color maps for reference (monochrome)
  static const Map<String, Color> darkThemeColors = {
    'background': Color(0xFF18191A),
    'foreground': Colors.white,
    'card': Color(0xFF232425),
    'cardForeground': Colors.white,
    'primary': Color(0xFF2F2F2F),
    'secondary': Color(0xFF232425),
    'muted': Color(0xFF343536),
    'mutedForeground': Color(0xFFB0B0B0),
    'accent': Color(0xFF343536),
    'destructive': Color(0xFFEF4444),
    'border': Color(0xFF343536),
    'input': Color(0xFF343536),
  };

  static const Map<String, Color> lightThemeColors = {
    'background': Color(0xFFF7F7F5),
    'foreground': Color(0xFF2F2F2F),
    'card': Color(0xFFFFFFFF),
    'cardForeground': Color(0xFF2F2F2F),
    'primary': Color(0xFF2F2F2F),
    'secondary': Color(0xFFF5F5F5),
    'muted': Color(0xFFF1F1F1),
    'mutedForeground': Color(0xFFB0B0B0),
    'accent': Color(0xFFFAFAFA),
    'destructive': Color(0xFFEF4444),
    'border': Color(0xFFE5E5E5),
    'input': Color(0xFFE5E5E5),
  };
}
