Update: 2026-08-08 16:55:39
This commit is contained in:
@@ -1,44 +1,59 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'colors.dart';
|
||||
|
||||
/// كان هذا نظام ألوان **ثانياً منافساً** لـ [AppColor]: نيفي `#0A0E21` وأزرق
|
||||
/// `#3D5AFE` بدل نيفي العلامة `#1A2340` والـ Periwinkle `#8C9CF8`. النتيجة أن
|
||||
/// صفحات المحفظة والأرباح والتحديات كانت تبدو من تطبيق آخر.
|
||||
///
|
||||
/// أُبقي الصنف باسمه حتى لا تتكسّر عشرات مواضع الاستدعاء، لكنه صار **واجهة
|
||||
/// رقيقة فوق ألوان العلامة**. الجديد يُكتب بـ `SiroUi` / `Theme.of(context)`.
|
||||
class FinanceDesignSystem {
|
||||
// --- Colors ---
|
||||
static Color get primaryDark => Get.isDarkMode ? const Color(0xFFE0E0E0) : const Color(0xFF0A0E21);
|
||||
static Color get accentBlue => const Color(0xFF3D5AFE);
|
||||
static Color get successGreen => const Color(0xFF00C853);
|
||||
static Color get dangerRed => const Color(0xFFD50000);
|
||||
static Color get backgroundColor => Get.isDarkMode ? const Color(0xFF0A0E21) : const Color(0xFFF6F8FA);
|
||||
static Color get cardColor => Get.isDarkMode ? const Color(0xFF1E1E2E) : const Color(0xFFFFFFFF);
|
||||
static Color get textSecondary => Get.isDarkMode ? Colors.white70 : const Color(0xFF757575);
|
||||
static Color get textMuted => Get.isDarkMode ? Colors.white38 : const Color(0xFFBDBDBD);
|
||||
static Color get borderColor => Get.isDarkMode ? Colors.white10 : Colors.grey.withOpacity(0.1);
|
||||
static Color get primaryDark =>
|
||||
Get.isDarkMode ? const Color(0xFFF1F5F9) : AppColor.primaryColor;
|
||||
static Color get accentBlue =>
|
||||
Get.isDarkMode ? AppColor.secondaryColorStatic : AppColor.primaryColor;
|
||||
static Color get successGreen => AppColor.greenColor;
|
||||
static Color get dangerRed => AppColor.redColor;
|
||||
static Color get backgroundColor =>
|
||||
Get.isDarkMode ? const Color(0xFF0F1424) : const Color(0xFFF6F8FA);
|
||||
static Color get cardColor =>
|
||||
Get.isDarkMode ? const Color(0xFF171D33) : const Color(0xFFFFFFFF);
|
||||
static Color get textSecondary =>
|
||||
Get.isDarkMode ? const Color(0xFF94A3B8) : const Color(0xFF64748B);
|
||||
static Color get textMuted =>
|
||||
Get.isDarkMode ? const Color(0xFF64748B) : const Color(0xFF94A3B8);
|
||||
static Color get borderColor =>
|
||||
Get.isDarkMode ? const Color(0xFF262E4A) : const Color(0xFFE6EAF0);
|
||||
|
||||
// --- Shadows ---
|
||||
static BoxShadow get softShadow => BoxShadow(
|
||||
color: Colors.black.withOpacity(Get.isDarkMode ? 0.3 : 0.05),
|
||||
blurRadius: 10,
|
||||
offset: const Offset(0, 4),
|
||||
);
|
||||
color: Colors.black.withValues(alpha: Get.isDarkMode ? 0.35 : 0.05),
|
||||
blurRadius: 18,
|
||||
offset: const Offset(0, 6),
|
||||
);
|
||||
|
||||
// --- Gradients ---
|
||||
/// تدرّج العلامة: نيفي ← Periwinkle. يُستعمل في بطاقات الرصيد والرؤوس.
|
||||
static LinearGradient get balanceGradient => LinearGradient(
|
||||
colors: Get.isDarkMode
|
||||
? [const Color(0xFF1E1E2E), const Color(0xFF2A2A3E)]
|
||||
: [const Color(0xFF0A0E21), const Color(0xFF1A237E)],
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
);
|
||||
colors: Get.isDarkMode
|
||||
? [const Color(0xFF1E2745), const Color(0xFF2E3A63)]
|
||||
: [AppColor.primaryColor, const Color(0xFF3A4674)],
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
);
|
||||
|
||||
static const LinearGradient dangerGradient = LinearGradient(
|
||||
colors: [Color(0xFFD50000), Color(0xFFFF5252)],
|
||||
colors: [AppColor.redColor, Color(0xFFF87171)],
|
||||
begin: Alignment.topLeft,
|
||||
end: Alignment.bottomRight,
|
||||
);
|
||||
|
||||
// --- Radius ---
|
||||
static const double mainRadius = 16.0;
|
||||
static const double cardRadius = 20.0;
|
||||
static const double buttonRadius = 12.0;
|
||||
static const double cardRadius = 18.0;
|
||||
static const double buttonRadius = 14.0;
|
||||
|
||||
// --- Spacing ---
|
||||
static const double horizontalPadding = 16.0;
|
||||
@@ -46,19 +61,19 @@ class FinanceDesignSystem {
|
||||
|
||||
// --- Text Styles ---
|
||||
static TextStyle get balanceStyle => const TextStyle(
|
||||
fontSize: 32,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white,
|
||||
);
|
||||
fontSize: 32,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white,
|
||||
);
|
||||
|
||||
static TextStyle get headingStyle => TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: primaryDark,
|
||||
);
|
||||
fontSize: 17,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: primaryDark,
|
||||
);
|
||||
|
||||
static TextStyle get subHeadingStyle => TextStyle(
|
||||
fontSize: 14,
|
||||
color: textSecondary,
|
||||
);
|
||||
fontSize: 13,
|
||||
color: textSecondary,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user