import 'package:flutter/material.dart';

abstract interface class GeneralStyle {
  ButtonStyle get elevatedButtonStyle;
  ButtonStyle get roundedButtonStyle;

  Color get primaryTextLabelColor;
  Color get secondaryTextLabelColor;

  Color get primaryButtonBackgroundColor;
  Color get primaryButtonTextColor;

  Color get secondaryWidgetBackgroundColor;

  Color get pageBackgroundColor;

  Color get primaryCardColor;

  Color get errorColor;

  String get fontFamily;
}

class GeneralStyleImpl implements GeneralStyle {
  static final ButtonStyle _elevatedButtonStyle = ElevatedButton.styleFrom(textStyle: const TextStyle(fontSize: 20));
  static final ButtonStyle _roundedButtonStyle = ElevatedButton.styleFrom(shape: const CircleBorder(), padding: const EdgeInsets.all(8));

  @override
  ButtonStyle get elevatedButtonStyle => _elevatedButtonStyle;

  @override
  ButtonStyle get roundedButtonStyle => _roundedButtonStyle;

  @override
  Color get primaryTextLabelColor => const Color(0xFF0045FF);

  @override
  Color get secondaryTextLabelColor => const Color(0xFF2F2F2F);

  @override
  Color get primaryButtonBackgroundColor => const Color(0xFF0045FF);
  
  @override
  Color get secondaryWidgetBackgroundColor => const Color(0xFF001689);

  @override
  Color get primaryButtonTextColor => Colors.white;

  @override
  Color get primaryCardColor => Colors.white;

  @override
  Color get pageBackgroundColor => const Color(0xFFF5F5F5);

  @override
  Color get errorColor => const Color(0xFFFF0000);

  @override
  String get fontFamily => 'Panton';
}
