"""Configuración centralizada de estilos, temas y fuentes para la GUI.""" import customtkinter as ctk class AppStyles: """Clase con configuración de estilos y fuentes de la aplicación.""" @staticmethod def configure_theme(): """Configura el tema y apariencia general de la aplicación.""" ctk.set_appearance_mode("System") ctk.set_default_color_theme("blue") @staticmethod def get_fonts(): """Devuelve un diccionario con las fuentes personalizadas.""" return { "title": ctk.CTkFont(family="Roboto", size=22, weight="bold"), "section": ctk.CTkFont(family="Roboto", size=16, weight="bold"), "ui": ctk.CTkFont(family="Roboto", size=13), "mono": ctk.CTkFont(family="Consolas", size=12), "mono_small": ctk.CTkFont(family="Consolas", size=10), "italic_small": ctk.CTkFont(size=12, slant="italic"), "bold_large": ctk.CTkFont(size=16, weight="bold"), "button_large": ctk.CTkFont(size=14, weight="bold"), } @staticmethod def get_colors(): """Devuelve un diccionario con los colores personalizados.""" return { "primary_button": ("#106BA3", "#106BA3"), "primary_hover": ("#0D5582", "#0D5582"), "secondary_button": ("#2E86C1", "#2E86C1"), "secondary_hover": ("#21618C", "#21618C"), "success": ("#27AE60", "#27AE60"), "success_hover": ("#1E8449", "#1E8449"), "warning": ("#D35400", "#D35400"), "warning_hover": ("#A04000", "#A04000"), "danger": ("#C0392B", "#C0392B"), "danger_hover": ("#A93226", "#A93226"), "gray_light": "gray60", "gray_dark": "gray70", "text_muted": ("gray50", "gray70"), } @staticmethod def get_spacing(): """Devuelve un diccionario con espaciados y padding estándar.""" return { "padding_small": 2, "padding_medium": 5, "padding_large": 10, "padding_section": 15, "margin_small": (0, 2), "margin_medium": (5, 5), "margin_large": (10, 15), }