dark static method

Theme dark()

Dark theme with cyan accents.

Implementation

static Theme dark() {
  const primary = AnsiColor(39); // Cyan
  const secondary = AnsiColor(99); // Purple
  const surface = AnsiColor(236); // Dark gray
  const background = AnsiColor(233); // Very dark gray
  const error = AnsiColor(196); // Red
  const success = AnsiColor(42); // Green
  const warning = AnsiColor(214); // Orange
  const onPrimary = AnsiColor(232); // Black
  const onSecondary = AnsiColor(255); // White
  const onSurface = AnsiColor(252); // Light gray
  const onBackground = AnsiColor(250); // Light gray
  const onError = AnsiColor(255); // White
  const muted = AnsiColor(242); // Gray
  const border = AnsiColor(238); // Dark gray

  return Theme(
    primary: primary,
    secondary: secondary,
    surface: surface,
    background: background,
    error: error,
    success: success,
    warning: warning,
    onPrimary: onPrimary,
    onSecondary: onSecondary,
    onSurface: onSurface,
    onBackground: onBackground,
    onError: onError,
    muted: muted,
    border: border,
    // Extended colors
    surfaceVariant: const AnsiColor(234), // Slightly lighter than background
    onSurfaceVariant: onSurface,
    outline: const AnsiColor(240), // Subtle divider
    info: const AnsiColor(39), // Cyan (same as primary)
    onSuccess: const AnsiColor(232), // Black on green
    onWarning: const AnsiColor(232), // Black on orange
    onInfo: const AnsiColor(232), // Black on cyan
    highlight: const AnsiColor(25), // Dark blue highlight
    onHighlight: const AnsiColor(255), // White on highlight
    shadow: const AnsiColor(232), // Near-black shadow
    // Text styles
    titleLarge: Style().bold().foreground(onBackground),
    titleMedium: Style().bold().foreground(onSurface),
    titleSmall: Style().bold().foreground(muted),
    bodyLarge: Style().foreground(onBackground),
    bodyMedium: Style().foreground(onSurface),
    bodySmall: Style().foreground(muted),
    labelLarge: Style().foreground(onSurface),
    labelMedium: Style().foreground(muted),
    labelSmall: Style().dim().foreground(muted),
    editorTheme: EditorThemeData(
      shellBackground: const AnsiColor(236),
      inactiveShellBackground: const AnsiColor(234),
      activeShellBorderColor: primary,
      inactiveShellBorderColor: const AnsiColor(238),
      bodyBackground: const AnsiColor(233),
      inactiveBodyBackground: const AnsiColor(234),
      activeBodyBorderColor: const AnsiColor(240),
      inactiveBodyBorderColor: border,
      utilityBackground: const AnsiColor(234),
      utilityBorderColor: const AnsiColor(240),
      titleForeground: onSurface,
      inactiveTitleForeground: const AnsiColor(250),
      metaForeground: const AnsiColor(245),
      inactiveMetaForeground: muted,
      focusedPromptForeground: const AnsiColor(250),
      blurredPromptForeground: const AnsiColor(245),
      focusedTextForeground: onSurface,
      blurredTextForeground: const AnsiColor(250),
      focusedPlaceholderForeground: const AnsiColor(245),
      blurredPlaceholderForeground: muted,
      focusedLineNumberForeground: const AnsiColor(245),
      blurredLineNumberForeground: const AnsiColor(242),
      focusedCursorLineBackground: const AnsiColor(234),
      blurredCursorLineBackground: const AnsiColor(233),
      focusedCursorLineNumberForeground: primary,
      blurredCursorLineNumberForeground: const AnsiColor(242),
      searchMatchBackground: const AnsiColor(234),
      searchMatchUnderlineColor: primary,
    ),
  );
}