Implement multi-screen app UI flow and navigation
This commit is contained in:
@@ -20,7 +20,7 @@ class AppConfig {
|
||||
|
||||
/// Enables fake backend implementation for local/offline development.
|
||||
static bool get useFakeBackend =>
|
||||
const bool.fromEnvironment('USE_FAKE_BACKEND', defaultValue: false);
|
||||
const bool.fromEnvironment('USE_FAKE_BACKEND', defaultValue: true);
|
||||
|
||||
/// Runtime override for backend URL (e.g. local settings screen).
|
||||
static void overrideBackendBaseUrl(String? baseUrl) {
|
||||
|
||||
@@ -4,31 +4,55 @@ import 'package:flutter/material.dart';
|
||||
class AppTheme {
|
||||
AppTheme._();
|
||||
|
||||
static const Color background = Color(0xFFEDF0F2);
|
||||
static const Color background = Color(0xFFF3F6F8);
|
||||
static const Color surface = Color(0xFFFFFFFF);
|
||||
static const Color primary = Color(0xFF253840);
|
||||
static const Color accent = Color(0xFF00B6F0);
|
||||
static const Color primary = Color(0xFF1E3541);
|
||||
static const Color accent = Color(0xFF1AB6C8);
|
||||
static const Color textPrimary = Color(0xFF18303A);
|
||||
static const Color textSecondary = Color(0xFF58707A);
|
||||
|
||||
/// Builds the Material [ThemeData].
|
||||
static ThemeData light() {
|
||||
final ColorScheme colorScheme = ColorScheme.fromSeed(
|
||||
seedColor: primary,
|
||||
primary: primary,
|
||||
secondary: accent,
|
||||
surface: surface,
|
||||
brightness: Brightness.light,
|
||||
final ColorScheme colorScheme = ColorScheme.fromSeed(seedColor: primary);
|
||||
final TextTheme textTheme = ThemeData.light().textTheme.apply(
|
||||
fontFamily: 'WorkSans',
|
||||
bodyColor: textPrimary,
|
||||
displayColor: textPrimary,
|
||||
);
|
||||
|
||||
return ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: colorScheme,
|
||||
colorScheme: colorScheme.copyWith(
|
||||
primary: primary,
|
||||
secondary: accent,
|
||||
surface: surface,
|
||||
),
|
||||
scaffoldBackgroundColor: background,
|
||||
textTheme: textTheme.copyWith(
|
||||
headlineMedium: textTheme.headlineMedium?.copyWith(
|
||||
fontWeight: FontWeight.w700,
|
||||
letterSpacing: 0.1,
|
||||
),
|
||||
titleLarge: textTheme.titleLarge?.copyWith(
|
||||
fontWeight: FontWeight.w700,
|
||||
letterSpacing: 0.1,
|
||||
),
|
||||
titleMedium: textTheme.titleMedium?.copyWith(
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
),
|
||||
appBarTheme: const AppBarTheme(
|
||||
centerTitle: false,
|
||||
backgroundColor: surface,
|
||||
foregroundColor: primary,
|
||||
backgroundColor: Colors.transparent,
|
||||
foregroundColor: textPrimary,
|
||||
elevation: 0,
|
||||
),
|
||||
cardTheme: CardThemeData(
|
||||
color: surface,
|
||||
elevation: 0,
|
||||
margin: EdgeInsets.zero,
|
||||
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(24)),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user