File size: 3,750 Bytes
b1acf7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
"""
UI styles and CSS for the Sentiment Fused application.
"""

from ..config.settings import CUSTOM_CSS, UI_COLORS


def get_custom_css() -> str:
    """Get the custom CSS styles for the application."""
    return CUSTOM_CSS


def get_ui_colors() -> dict:
    """Get the UI color scheme."""
    return UI_COLORS


def get_sentiment_color_style(sentiment: str) -> str:
    """Get color style for different sentiment types."""
    colors = {
        "Positive": "color: #28a745;",
        "Negative": "color: #dc3545;",
        "Neutral": "color: #ffc107;",
        "Angry": "color: #dc3545;",
        "Sad": "color: #17a2b8;",
        "Happy": "color: #28a745;",
        "Fear": "color: #6f42c1;",
        "Disgust": "color: #fd7e14;",
        "Surprise": "color: #ffc107;",
    }
    return colors.get(sentiment, "color: #6c757d;")


def get_metric_style(metric_type: str = "default") -> str:
    """Get styling for different metric types."""
    styles = {
        "default": "background-color: #f8f9fa; padding: 1rem; border-radius: 8px;",
        "success": "background-color: #d4edda; padding: 1rem; border-radius: 8px; border: 1px solid #c3e6cb;",
        "warning": "background-color: #fff3cd; padding: 1rem; border-radius: 8px; border: 1px solid #ffeaa7;",
        "error": "background-color: #f8d7da; padding: 1rem; border-radius: 8px; border: 1px solid #f5c6cb;",
        "info": "background-color: #d1ecf1; padding: 1rem; border-radius: 8px; border: 1px solid #bee5eb;",
    }
    return styles.get(metric_type, styles["default"])


def get_card_style(card_type: str = "default") -> str:
    """Get styling for different card types."""
    styles = {
        "default": "background-color: #f0f2f6; padding: 1.5rem; border-radius: 10px; margin: 1rem 0; border-left: 4px solid #1f77b4;",
        "model": "background-color: #f0f2f6; padding: 1.5rem; border-radius: 10px; margin: 1rem 0; border-left: 4px solid #1f77b4;",
        "result": "background-color: #e8f4fd; padding: 1rem; border-radius: 8px; border: 1px solid #1f77b4; margin: 1rem 0;",
        "upload": "background-color: #f8f9fa; padding: 1.5rem; border-radius: 10px; border: 2px dashed #dee2e6; text-align: center; margin: 1rem 0;",
        "info": "background-color: #d1ecf1; padding: 1rem; border-radius: 8px; border: 1px solid #bee5eb; margin: 1rem 0;",
    }
    return styles.get(card_type, styles["default"])


def get_button_style(button_type: str = "primary") -> str:
    """Get styling for different button types."""
    styles = {
        "primary": "background-color: #1f77b4; color: white; border: none; padding: 0.5rem 1rem; border-radius: 5px;",
        "secondary": "background-color: #6c757d; color: white; border: none; padding: 0.5rem 1rem; border-radius: 5px;",
        "success": "background-color: #28a745; color: white; border: none; padding: 0.5rem 1rem; border-radius: 5px;",
        "warning": "background-color: #ffc107; color: black; border: none; padding: 0.5rem 1rem; border-radius: 5px;",
        "danger": "background-color: #dc3545; color: white; border: none; padding: 0.5rem 1rem; border-radius: 5px;",
    }
    return styles.get(button_type, styles["primary"])


def get_sidebar_style() -> str:
    """Get styling for the sidebar."""
    return """
    <style>
    .css-1d391kg {
        background-color: #f8f9fa;
    }
    .css-1d391kg .sidebar-content {
        padding: 1rem;
    }
    </style>
    """


def get_header_style() -> str:
    """Get styling for the main header."""
    return """
    <style>
    .main-header {
        font-size: 2.5rem;
        font-weight: bold;
        color: #1f77b4;
        text-align: center;
        margin-bottom: 2rem;
        text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
    }
    </style>
    """