Files
Siro/siro_driver/lib/constant/finance_design_system.dart
T

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,
);
}