Files
IPSExtractor/gui/styles.py
T

59 lines
2.2 KiB
Python

"""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),
}