import 'package:flutter/material.dart'; class MirrorTheme { MirrorTheme._(); static const _zinc50 = Color(0xFFFAFAFA); static const _zinc100 = Color(0xFFF4F4F5); static const _zinc200 = Color(0xFFE4E4E7); static const _zinc400 = Color(0xFFA1A1AA); static const _zinc500 = Color(0xFF71717A); static const _zinc700 = Color(0xFF3F3F46); static const _zinc800 = Color(0xFF27272A); static const _zinc900 = Color(0xFF18181B); static const _zinc950 = Color(0xFF09090B); static const _accent = Color(0xFF60A5FA); // blue-400 static const _accentDim = Color(0xFF1E3A5F); static const _success = Color(0xFF4ADE80); // green-400 static const _danger = Color(0xFFF87171); // red-400 static const _warning = Color(0xFFFBBF24); // amber-400 static const fontFamily = 'Inter'; static const fontMono = 'JetBrains Mono'; static ThemeData get dark => ThemeData( brightness: Brightness.dark, fontFamily: fontFamily, scaffoldBackgroundColor: _zinc950, colorScheme: const ColorScheme.dark( surface: _zinc900, primary: _accent, secondary: _zinc700, error: _danger, onSurface: _zinc100, onPrimary: _zinc950, ), cardTheme: const CardThemeData( color: _zinc900, elevation: 0, shape: RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(16)), ), ), textTheme: const TextTheme( displayLarge: TextStyle( fontSize: 96, fontWeight: FontWeight.w200, fontFamily: fontMono, color: _zinc50, letterSpacing: -2, ), displayMedium: TextStyle( fontSize: 60, fontWeight: FontWeight.w200, fontFamily: fontMono, color: _zinc50, ), displaySmall: TextStyle( fontSize: 36, fontWeight: FontWeight.w300, color: _zinc50, ), headlineLarge: TextStyle( fontSize: 28, fontWeight: FontWeight.w600, color: _zinc50, ), headlineMedium: TextStyle( fontSize: 22, fontWeight: FontWeight.w500, color: _zinc50, ), bodyLarge: TextStyle( fontSize: 18, fontWeight: FontWeight.w400, color: _zinc200, ), bodyMedium: TextStyle( fontSize: 16, fontWeight: FontWeight.w400, color: _zinc400, ), bodySmall: TextStyle( fontSize: 14, fontWeight: FontWeight.w400, color: _zinc500, ), labelLarge: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, color: _zinc50, letterSpacing: 1.5, ), ), iconTheme: const IconThemeData(color: _zinc400, size: 24), dividerColor: _zinc800, ); static const Color accent = _accent; static const Color accentDim = _accentDim; static const Color success = _success; static const Color danger = _danger; static const Color warning = _warning; static const Color surface = _zinc900; static const Color surfaceLight = _zinc800; static const Color background = _zinc950; static const Color textPrimary = _zinc50; static const Color textSecondary = _zinc400; static const Color textMuted = _zinc500; }