80 lines
3.1 KiB
Dart
80 lines
3.1 KiB
Dart
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(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.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(0xFF1E2745), const Color(0xFF2E3A63)]
|
|
: [AppColor.primaryColor, const Color(0xFF3A4674)],
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
);
|
|
|
|
static const LinearGradient dangerGradient = LinearGradient(
|
|
colors: [AppColor.redColor, Color(0xFFF87171)],
|
|
begin: Alignment.topLeft,
|
|
end: Alignment.bottomRight,
|
|
);
|
|
|
|
// --- Radius ---
|
|
static const double mainRadius = 16.0;
|
|
static const double cardRadius = 18.0;
|
|
static const double buttonRadius = 14.0;
|
|
|
|
// --- Spacing ---
|
|
static const double horizontalPadding = 16.0;
|
|
static const double verticalSectionPadding = 24.0;
|
|
|
|
// --- Text Styles ---
|
|
static TextStyle get balanceStyle => const TextStyle(
|
|
fontSize: 32,
|
|
fontWeight: FontWeight.bold,
|
|
color: Colors.white,
|
|
);
|
|
|
|
static TextStyle get headingStyle => TextStyle(
|
|
fontSize: 17,
|
|
fontWeight: FontWeight.bold,
|
|
color: primaryDark,
|
|
);
|
|
|
|
static TextStyle get subHeadingStyle => TextStyle(
|
|
fontSize: 13,
|
|
color: textSecondary,
|
|
);
|
|
}
|