darkTheme function

ThemeData darkTheme()

Implementation

ThemeData darkTheme() {
  return ThemeData(
    useMaterial3: true,
    brightness: Brightness.dark,
    scaffoldBackgroundColor: kBackgroundDark,
    fontFamily: GoogleFonts.notoSans().fontFamily,
    primaryColor: kPrimaryColor,
    colorScheme: const ColorScheme.dark(
      primary: kPrimaryColor,
      surface: kSurfaceDark,
      onPrimary: Colors.white,
      onSurface: kTextPrimaryDark,
      // Fix: Distinct background for inputs in Dark Mode
      surfaceContainerHighest: kSurfaceElevatedDark,
      onSurfaceVariant: Color(0xFF94A3B8), // Slate-400
      // Fix: Project Icons Background (Dark Blue)
      primaryContainer: Color(0xFF00468C),
      onPrimaryContainer: Color(0xFFD6E3FF),
    ),
    appBarTheme: appBarTheme().copyWith(
      backgroundColor: Colors.transparent,
      iconTheme: const IconThemeData(color: kTextPrimaryDark),
      titleTextStyle: GoogleFonts.spaceGrotesk(
          color: kTextPrimaryDark, fontSize: 18, fontWeight: FontWeight.bold),
    ),
    cardColor: kSurfaceDark,
    inputDecorationTheme: inputDecorationTheme(
      fillColor: kSurfaceElevatedDark, // Correct dark fill
      borderColor: kBorderDark,
      focusColor: kPrimaryColor,
    ),
    textTheme: textTheme().apply(
      bodyColor: kTextPrimaryDark,
      displayColor: kTextPrimaryDark,
    ),
    dividerColor: kBorderDark,
    extensions: <ThemeExtension<dynamic>>[
      DiagramTheme(
        canvasBg: const Color(0xFF111827),
        panelBg: kSurfaceDark,
        gridLine: Colors.white.withValues(alpha: 0.05),
        nodeBg: kSurfaceElevatedDark,
        nodeBorder: kBorderDark,
        textColor: kTextPrimaryDark,
        accentColor: kPrimaryColor,
        isDark: true,
      ),
    ],
  );
}