Stage 1: project setup, Exercise Library, both Mode designs and the Mode switch
- Flutter Android app on CookIT's stack (provider, shared_preferences, gen-l10n) - tools/exercise-import turns free-exercise-db into 876 bundled Exercises with 1,746 WebP images (20 MB); stretching -> Stretching, rest -> Workout - ZenStyle tokens per Mode: calm rounded sage/teal with breath ripples vs. dark ember-to-red with floor-tape slashes; the theme morphs at each Mode's own pace - Remembered global Mode switch, Plans / Library / History tabs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
5dfa995d55
commit
1289fadb98
1822 files changed
+2819
No files matched your search
@@ -0,0 +1,36 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import 'design/app_theme.dart';
|
||||
import 'design/zen_style.dart';
|
||||
import 'home/home_view.dart';
|
||||
import 'localization/app_localizations.dart';
|
||||
import 'settings/settings_controller.dart';
|
||||
|
||||
class ZenXerciseApp extends StatelessWidget {
|
||||
const ZenXerciseApp({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final mode = context.watch<SettingsController>().mode;
|
||||
// The whole app morphs into the new Mode at that Mode's own pace.
|
||||
final style = ZenStyle.forMode(mode);
|
||||
return MaterialApp(
|
||||
theme: AppTheme.forMode(mode),
|
||||
themeAnimationDuration: style.motion,
|
||||
themeAnimationCurve: style.curve,
|
||||
restorationScopeId: 'app',
|
||||
localizationsDelegates: const [
|
||||
AppLocalizations.delegate,
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
GlobalCupertinoLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: AppLocalizations.supportedLocales,
|
||||
onGenerateTitle: (context) => AppLocalizations.of(context).appTitle,
|
||||
onGenerateRoute: (settings) =>
|
||||
MaterialPageRoute<Object?>(settings: settings, builder: (context) => const HomeView()),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user