Suppression du .git embarqué dans agent_v0/ — le code est maintenant tracké normalement dans le repo principal. Inclut : agent_v1 (client), server_v1 (streaming), lea_ui (chat client) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
201 lines
5.1 KiB
Python
201 lines
5.1 KiB
Python
# 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};
|
|
}}
|
|
"""
|