mirror of
https://github.com/kuhyx/testsAndMisc-archive.git
synced 2026-07-04 13:23:01 +02:00
Two-package monorepo: - horatio_core: pure Dart package (parser, SRS, planner) - horatio_app: Flutter UI (Bloc/Cubit, GoRouter, TTS) Features: - Script import (txt, docx, pdf) with drag-and-drop - Four script format parsers (colon, bracketed, parenthetical, screenplay) - SM-2 spaced repetition for line memorization - Rehearsal mode with TTS and line comparison - 5 bundled public domain scripts Quality: - 83 core tests + 160 app tests, both 100% branch coverage - Strict analysis (130+ lint rules, fatal-infos) - Dead code detection script (dead_code.sh) - run.sh pipeline: analyze, test, dead-code, run, web - Pre-commit hook for horatio test coverage
99 lines
2.8 KiB
Dart
99 lines
2.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
/// Theatrical-themed app theme for Horatio.
|
|
abstract final class AppTheme {
|
|
// -- Palette --
|
|
static const Color _burgundy = Color(0xFF8B1A3A);
|
|
static const Color _gold = Color(0xFFD4A843);
|
|
static const Color _cream = Color(0xFFFFF8E7);
|
|
static const Color _charcoal = Color(0xFF2C2C2C);
|
|
static const Color _darkBg = Color(0xFF1A1A2E);
|
|
static const Color _darkSurface = Color(0xFF16213E);
|
|
|
|
/// Light theme — warm, welcoming stage light aesthetic.
|
|
static final ThemeData light = ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.light,
|
|
colorSchemeSeed: _burgundy,
|
|
scaffoldBackgroundColor: _cream,
|
|
appBarTheme: const AppBarTheme(
|
|
backgroundColor: _burgundy,
|
|
foregroundColor: _cream,
|
|
elevation: 2,
|
|
centerTitle: true,
|
|
),
|
|
floatingActionButtonTheme: const FloatingActionButtonThemeData(
|
|
backgroundColor: _gold,
|
|
foregroundColor: _charcoal,
|
|
),
|
|
cardTheme: CardThemeData(
|
|
elevation: 2,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
),
|
|
inputDecorationTheme: InputDecorationTheme(
|
|
border: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(8),
|
|
),
|
|
focusedBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(8),
|
|
borderSide: const BorderSide(color: _burgundy, width: 2),
|
|
),
|
|
),
|
|
textTheme: const TextTheme(
|
|
headlineLarge: TextStyle(
|
|
fontWeight: FontWeight.bold,
|
|
color: _charcoal,
|
|
),
|
|
titleMedium: TextStyle(
|
|
fontWeight: FontWeight.w600,
|
|
color: _charcoal,
|
|
),
|
|
),
|
|
);
|
|
|
|
/// Dark theme — backstage / dramatic feel.
|
|
static final ThemeData dark = ThemeData(
|
|
useMaterial3: true,
|
|
brightness: Brightness.dark,
|
|
colorSchemeSeed: _burgundy,
|
|
scaffoldBackgroundColor: _darkBg,
|
|
appBarTheme: const AppBarTheme(
|
|
backgroundColor: _darkSurface,
|
|
foregroundColor: _gold,
|
|
elevation: 0,
|
|
centerTitle: true,
|
|
),
|
|
floatingActionButtonTheme: const FloatingActionButtonThemeData(
|
|
backgroundColor: _gold,
|
|
foregroundColor: _charcoal,
|
|
),
|
|
cardTheme: CardThemeData(
|
|
elevation: 4,
|
|
color: _darkSurface,
|
|
shape: RoundedRectangleBorder(
|
|
borderRadius: BorderRadius.circular(12),
|
|
),
|
|
),
|
|
inputDecorationTheme: InputDecorationTheme(
|
|
border: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(8),
|
|
),
|
|
focusedBorder: OutlineInputBorder(
|
|
borderRadius: BorderRadius.circular(8),
|
|
borderSide: const BorderSide(color: _gold, width: 2),
|
|
),
|
|
),
|
|
textTheme: const TextTheme(
|
|
headlineLarge: TextStyle(
|
|
fontWeight: FontWeight.bold,
|
|
color: _gold,
|
|
),
|
|
titleMedium: TextStyle(
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
);
|
|
}
|