light static method

Theme light()

Light theme with blue accents.

Implementation

static Theme light() {
  const primary = AnsiColor(33); // Blue
  const secondary = AnsiColor(90); // Purple
  const surface = AnsiColor(254); // Light gray
  const background = AnsiColor(255); // White
  const error = AnsiColor(160); // Dark red
  const success = AnsiColor(28); // Dark green
  const warning = AnsiColor(172); // Dark orange
  const onPrimary = AnsiColor(255); // White
  const onSecondary = AnsiColor(255); // White
  const onSurface = AnsiColor(235); // Dark gray
  const onBackground = AnsiColor(232); // Black
  const onError = AnsiColor(255); // White
  const muted = AnsiColor(245); // Gray
  const border = AnsiColor(250); // Light 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(253), // Slightly darker than white
    onSurfaceVariant: onSurface,
    outline: const AnsiColor(248), // Subtle light divider
    info: const AnsiColor(33), // Blue (same as primary)
    onSuccess: const AnsiColor(255), // White on green
    onWarning: const AnsiColor(232), // Black on orange
    onInfo: const AnsiColor(255), // White on blue
    highlight: const AnsiColor(153), // Light blue highlight
    onHighlight: const AnsiColor(232), // Black on highlight
    shadow: const AnsiColor(248), // Light gray 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(254),
      inactiveShellBackground: const AnsiColor(253),
      activeShellBorderColor: primary,
      inactiveShellBorderColor: const AnsiColor(250),
      bodyBackground: background,
      inactiveBodyBackground: const AnsiColor(254),
      activeBodyBorderColor: const AnsiColor(248),
      inactiveBodyBorderColor: border,
      utilityBackground: const AnsiColor(253),
      utilityBorderColor: const AnsiColor(248),
      titleForeground: onSurface,
      inactiveTitleForeground: const AnsiColor(240),
      metaForeground: const AnsiColor(245),
      inactiveMetaForeground: muted,
      focusedPromptForeground: const AnsiColor(240),
      blurredPromptForeground: const AnsiColor(245),
      focusedTextForeground: onSurface,
      blurredTextForeground: const AnsiColor(240),
      focusedPlaceholderForeground: const AnsiColor(245),
      blurredPlaceholderForeground: muted,
      focusedLineNumberForeground: const AnsiColor(245),
      blurredLineNumberForeground: const AnsiColor(248),
      focusedCursorLineBackground: const AnsiColor(253),
      blurredCursorLineBackground: const AnsiColor(254),
      focusedCursorLineNumberForeground: primary,
      blurredCursorLineNumberForeground: const AnsiColor(248),
      searchMatchBackground: const AnsiColor(253),
      searchMatchUnderlineColor: primary,
    ),
  );
}