import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'pluriwave_motion.dart'; import 'pluriwave_tokens.dart'; abstract final class PluriWaveTheme { static ThemeData dark() { const tokens = PluriWaveTokens.dark; final colorScheme = const ColorScheme.dark().copyWith( primary: tokens.electricMagenta, secondary: tokens.warmCoral, surface: const Color(0xFF130B22), surfaceContainerLow: const Color(0xFF1A112C), onSurface: const Color(0xFFF4EEFF), onPrimary: Colors.white, ); return ThemeData( useMaterial3: true, colorScheme: colorScheme, scaffoldBackgroundColor: tokens.deepViolet, textTheme: GoogleFonts.interTextTheme(ThemeData.dark().textTheme), extensions: const >[ tokens, PluriWaveMotion.dark, ], cardTheme: CardThemeData( elevation: 0, color: colorScheme.surfaceContainerLow, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(tokens.radiusMd), ), ), ); } } extension PluriWaveThemeContextX on BuildContext { PluriWaveTokens get pluriTokens => Theme.of(this).extension() ?? PluriWaveTokens.dark; PluriWaveMotion get pluriMotion => Theme.of(this).extension() ?? PluriWaveMotion.dark; }