Update Saqel Platform: 2026-08-31 01:52:23

This commit is contained in:
Hamza-Ayed
2026-08-31 01:52:24 +03:00
parent 4e29915383
commit ccf5f13a09
419 changed files with 19777 additions and 41 deletions
@@ -0,0 +1,36 @@
import 'package:flutter/material.dart';
/// Apple Luxury Palette & Brand Tokens for Saqel Platform
class AppColors {
AppColors._();
// Dark OLED Palette
static const Color darkBackground = Color(0xFF06090F);
static const Color darkSurface = Color(0xFF0D111A);
static const Color darkCard = Color(0xFF131A26);
static const Color darkCardBorder = Color(0x1FFFFFFF);
// Light Palette
static const Color lightBackground = Color(0xFFF8FAFC);
static const Color lightSurface = Color(0xFFFFFFFF);
static const Color lightCard = Color(0xFFF1F5F9);
static const Color lightCardBorder = Color(0x0F000000);
// Accent Colors
static const Color appleBlue = Color(0xFF0071E3);
static const Color saqelCyan = Color(0xFF00F5D4);
static const Color guardianAmber = Color(0xFFF59E0B);
static const Color teacherEmerald = Color(0xFF10B981);
static const Color adminViolet = Color(0xFF8B5CF6);
static const Color whatsappGreen = Color(0xFF25D366);
static const Color errorRed = Color(0xFFEF4444);
// Text Colors
static const Color textPrimaryDark = Color(0xFFF8FAFC);
static const Color textSecondaryDark = Color(0xFF94A3B8);
static const Color textMutedDark = Color(0xFF64748B);
static const Color textPrimaryLight = Color(0xFF0F172A);
static const Color textSecondaryLight = Color(0xFF475569);
static const Color textMutedLight = Color(0xFF94A3B8);
}
@@ -0,0 +1,119 @@
import 'package:flutter/material.dart';
import 'app_colors.dart';
/// Apple Official San Francisco & SF Arabic Typography Standards
class AppTypography {
AppTypography._();
static const String primaryFont = '-apple-system';
static const List<String> fallbackFonts = [
'SF Pro Display',
'SF Pro Text',
'SF Arabic',
'Geeza Pro',
'Cairo',
'system-ui',
];
static const TextStyle displayLarge = TextStyle(
fontFamily: primaryFont,
fontFamilyFallback: fallbackFonts,
fontSize: 28,
fontWeight: FontWeight.w800,
letterSpacing: -0.5,
);
static const TextStyle headlineMedium = TextStyle(
fontFamily: primaryFont,
fontFamilyFallback: fallbackFonts,
fontSize: 20,
fontWeight: FontWeight.w700,
letterSpacing: -0.3,
);
static const TextStyle titleMedium = TextStyle(
fontFamily: primaryFont,
fontFamilyFallback: fallbackFonts,
fontSize: 15,
fontWeight: FontWeight.w600,
letterSpacing: -0.2,
);
static const TextStyle bodyMedium = TextStyle(
fontFamily: primaryFont,
fontFamilyFallback: fallbackFonts,
fontSize: 13.5,
fontWeight: FontWeight.w400,
height: 1.5,
);
static const TextStyle labelSmall = TextStyle(
fontFamily: primaryFont,
fontFamilyFallback: fallbackFonts,
fontSize: 11,
fontWeight: FontWeight.w600,
);
}
/// Official Apple Dark & Light Theme Factory
class AppTheme {
AppTheme._();
static ThemeData get darkTheme {
return ThemeData(
brightness: Brightness.dark,
scaffoldBackgroundColor: AppColors.darkBackground,
fontFamily: AppTypography.primaryFont,
fontFamilyFallback: AppTypography.fallbackFonts,
colorScheme: const ColorScheme.dark(
primary: AppColors.appleBlue,
secondary: AppColors.saqelCyan,
surface: AppColors.darkSurface,
error: AppColors.errorRed,
),
cardTheme: CardThemeData(
color: AppColors.darkCard,
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
side: const BorderSide(color: AppColors.darkCardBorder),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: AppColors.appleBlue,
foregroundColor: Colors.white,
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(14),
),
padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 15),
textStyle: AppTypography.titleMedium.copyWith(color: Colors.white),
),
),
);
}
static ThemeData get lightTheme {
return ThemeData(
brightness: Brightness.light,
scaffoldBackgroundColor: AppColors.lightBackground,
fontFamily: AppTypography.primaryFont,
fontFamilyFallback: AppTypography.fallbackFonts,
colorScheme: const ColorScheme.light(
primary: AppColors.appleBlue,
secondary: AppColors.saqelCyan,
surface: AppColors.lightSurface,
error: AppColors.errorRed,
),
cardTheme: CardThemeData(
color: AppColors.lightCard,
elevation: 0,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(20),
side: const BorderSide(color: AppColors.lightCardBorder),
),
),
);
}
}