import 'package:flutter/material.dart';
import 'package:get/get.dart';

class AppColor {
  // --- Core Brand Colors ---

  /// **Primary Color:** The brand's signature blue.
  static const Color primaryColor = Color(0xFF1DA1F2);

  /// **Text/Write Color:** Dynamic based on theme.
  static Color get writeColor =>
      Get.isDarkMode ? Colors.white : const Color(0xFF1A1A1A);

  /// **Secondary Color:** Main background color, dynamic based on theme.
  static Color get secondaryColor =>
      Get.isDarkMode ? const Color(0xFF121212) : Colors.white;

  /// **Surface Color:** For cards and elevated elements.
  static Color get surfaceColor =>
      Get.isDarkMode ? const Color(0xFF1E1E1E) : Colors.white;

  /// **Card Color:** Specifically for card backgrounds.
  static Color get cardColor =>
      Get.isDarkMode ? const Color(0xFF1E1E1E) : Colors.white;

  /// **Border Color:** Subtle borders for both modes.
  static Color get borderColor =>
      Get.isDarkMode ? Colors.white10 : Colors.black12;

  /// **Accent Color:** Greyish accent.
  static const Color accentColor = Color.fromARGB(255, 148, 140, 141);

  // --- Neutral & Status Colors ---

  /// **Grey Color:** Dynamic based on theme.
  static Color get grayColor =>
      Get.isDarkMode ? Colors.grey[400]! : const Color(0xFF8E8E93);

  /// **Red Color (Error):** Clear red for alerts.
  static const Color redColor = Color(0xFFD32F2F);

  /// **Green Color (Success):** Positive green.
  static const Color greenColor = Color(0xFF388E3C);

  /// **Blue Color (Info):** Info text or success green variant.
  static const Color blueColor = Color(0xFF1DA1F2);

  /// **Yellow Color (Warning):** Warm yellow.
  static const Color yellowColor = Color(0xFFFFA000);

  // --- Tier & Social Colors ---

  static const Color gold = Color(0xFFFFD700);
  static const Color bronze = Color(0xFFCD7F32);
  static const Color goldenBronze = Color(0xFFB87333);
  static const Color twitterColor = Color(0xFF1DA1F2);

  // --- Utility Colors ---

  static Color get greyColor => grayColor;

  static Color get cyanBlue => const Color(0xFF1DA1F2);
  static Color get cyanAccent => const Color(0xFF1DA1F2).withOpacity(0.12);
  static Color get deepPurpleAccent => const Color(0xFFCE1126).withOpacity(0.1);

  // --- Theme Helpers ---
  static Brightness get brightness => Get.isDarkMode ? Brightness.dark : Brightness.light;
}

