# agent_v0/lea_ui/styles.py """ Theme et couleurs pour l'interface Lea. Palette douce et moderne, pensee pour ne pas fatiguer les yeux lors d'une utilisation prolongee sur un poste de travail Windows. """ # --------------------------------------------------------------------------- # Palette de couleurs # --------------------------------------------------------------------------- # Fond principal COLOR_BG = "#F5F7FA" # Fond secondaire (sidebar, header) COLOR_BG_SECONDARY = "#EEF1F6" # Fond des bulles utilisateur COLOR_BUBBLE_USER = "#6366F1" # Fond des bulles Lea COLOR_BUBBLE_LEA = "#FFFFFF" # Accent principal (indigo) COLOR_ACCENT = "#6366F1" # Accent hover COLOR_ACCENT_HOVER = "#4F46E5" # Texte principal COLOR_TEXT = "#1F2937" # Texte secondaire COLOR_TEXT_SECONDARY = "#6B7280" # Texte sur accent (blanc) COLOR_TEXT_ON_ACCENT = "#FFFFFF" # Bordure legere COLOR_BORDER = "#E5E7EB" # Succes (vert) COLOR_SUCCESS = "#10B981" # Erreur (rouge) COLOR_ERROR = "#EF4444" # Avertissement (orange) COLOR_WARNING = "#F59E0B" # Overlay rouge pulsant COLOR_OVERLAY_PULSE = "#EF4444" # Overlay texte COLOR_OVERLAY_TEXT = "#FFFFFF" # Overlay fond info COLOR_OVERLAY_INFO_BG = "rgba(31, 41, 55, 200)" # --------------------------------------------------------------------------- # Typographie # --------------------------------------------------------------------------- FONT_FAMILY = "Segoe UI" FONT_SIZE_SMALL = 11 FONT_SIZE_NORMAL = 13 FONT_SIZE_LARGE = 15 FONT_SIZE_TITLE = 18 # --------------------------------------------------------------------------- # Dimensions # --------------------------------------------------------------------------- # Largeur du panneau Lea PANEL_WIDTH = 380 # Hauteur minimale PANEL_MIN_HEIGHT = 500 # Rayon des coins arrondis BORDER_RADIUS = 12 # Rayon des bulles de chat BUBBLE_RADIUS = 16 # Padding interne PADDING = 12 # Taille de l'avatar AVATAR_SIZE = 40 # Marge entre les elements SPACING = 8 # --------------------------------------------------------------------------- # Stylesheet global du panneau Lea # --------------------------------------------------------------------------- MAIN_WINDOW_STYLE = f""" QWidget#LeaMainWindow {{ background-color: {COLOR_BG}; border-radius: {BORDER_RADIUS}px; border: 1px solid {COLOR_BORDER}; }} """ HEADER_STYLE = f""" QWidget#LeaHeader {{ background-color: {COLOR_BG_SECONDARY}; border-top-left-radius: {BORDER_RADIUS}px; border-top-right-radius: {BORDER_RADIUS}px; border-bottom: 1px solid {COLOR_BORDER}; }} QLabel#LeaTitle {{ color: {COLOR_TEXT}; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_TITLE}px; font-weight: bold; }} QLabel#LeaStatus {{ color: {COLOR_TEXT_SECONDARY}; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_SMALL}px; }} """ CHAT_AREA_STYLE = f""" QScrollArea {{ border: none; background-color: {COLOR_BG}; }} QWidget#ChatContainer {{ background-color: {COLOR_BG}; }} """ INPUT_STYLE = f""" QLineEdit#ChatInput {{ background-color: {COLOR_BUBBLE_LEA}; border: 1px solid {COLOR_BORDER}; border-radius: 20px; padding: 8px 16px; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_NORMAL}px; color: {COLOR_TEXT}; }} QLineEdit#ChatInput:focus {{ border-color: {COLOR_ACCENT}; }} """ SEND_BUTTON_STYLE = f""" QPushButton#SendButton {{ background-color: {COLOR_ACCENT}; color: {COLOR_TEXT_ON_ACCENT}; border: none; border-radius: 20px; padding: 8px 16px; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_NORMAL}px; font-weight: bold; min-width: 50px; }} QPushButton#SendButton:hover {{ background-color: {COLOR_ACCENT_HOVER}; }} QPushButton#SendButton:pressed {{ background-color: #3730A3; }} """ QUICK_BUTTON_STYLE = f""" QPushButton#QuickButton {{ background-color: {COLOR_BUBBLE_LEA}; color: {COLOR_ACCENT}; border: 1px solid {COLOR_ACCENT}; border-radius: 18px; padding: 6px 14px; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_SMALL}px; }} QPushButton#QuickButton:hover {{ background-color: {COLOR_ACCENT}; color: {COLOR_TEXT_ON_ACCENT}; }} """ PROGRESS_STYLE = f""" QProgressBar {{ border: none; border-radius: 4px; background-color: {COLOR_BORDER}; text-align: center; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_SMALL}px; color: {COLOR_TEXT}; max-height: 8px; }} QProgressBar::chunk {{ background-color: {COLOR_ACCENT}; border-radius: 4px; }} """ STATUS_LABEL_STYLE = f""" QLabel#StatusLabel {{ color: {COLOR_TEXT_SECONDARY}; font-family: "{FONT_FAMILY}"; font-size: {FONT_SIZE_SMALL}px; padding: 4px 8px; }} """ MINI_BAR_STYLE = f""" QWidget#MiniBar {{ background-color: {COLOR_BG_SECONDARY}; border-radius: 20px; border: 1px solid {COLOR_BORDER}; }} """