1
+ /* DarkStreaming Theme for Streamlit Apps
2
+ * A modern, streaming-inspired dark theme with green accents
3
+ * Easy to customize by modifying CSS variables
4
+ */
5
+
6
+ /* Import Google Fonts */
7
+ @import url ('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap' );
8
+
9
+ /* Theme Variables - Easy to Customize */
10
+ : root {
11
+ --primary-gold : # FFB000 ;
12
+ --accent-gold : # FFC947 ;
13
+ --dark-bg : # 121212 ;
14
+ --darker-bg : # 0a0a0a ;
15
+ --surface-bg : # 1a1a1a ;
16
+ --elevated-bg : # 242424 ;
17
+ --text-primary : # ffffff ;
18
+ --text-secondary : # b3b3b3 ;
19
+ --border-color : # 2a2a2a ;
20
+ --hover-color : # 2a2a2a ;
21
+ }
22
+
23
+ /* Base App Styling */
24
+ .stApp {
25
+ background : linear-gradient (180deg , var (--dark-bg ) 0% , var (--darker-bg ) 100% );
26
+ color : var (--text-primary );
27
+ font-family : 'Inter' , -apple-system, BlinkMacSystemFont, sans-serif;
28
+ }
29
+
30
+ /* Hide Streamlit Branding */
31
+ # MainMenu { visibility : hidden; }
32
+ footer { visibility : hidden; }
33
+ header { visibility : hidden; }
34
+
35
+ /* Typography */
36
+ h1 {
37
+ background : linear-gradient (45deg , var (--primary-gold ), var (--accent-gold ));
38
+ -webkit-background-clip : text;
39
+ -webkit-text-fill-color : transparent;
40
+ background-clip : text;
41
+ font-weight : 700 !important ;
42
+ font-size : 2.5rem !important ;
43
+ }
44
+
45
+ h2 , h3 , h4 , h5 , h6 {
46
+ color : var (--text-primary ) !important ;
47
+ font-weight : 600 !important ;
48
+ }
49
+
50
+ /* Sidebar */
51
+ .css-1d391kg {
52
+ background : var (--surface-bg ) !important ;
53
+ border-right : 1px solid var (--border-color );
54
+ }
55
+
56
+ /* Buttons */
57
+ .stButton > button {
58
+ background : linear-gradient (45deg , var (--primary-gold ), var (--accent-gold )) !important ;
59
+ color : var (--dark-bg ) !important ;
60
+ border : none !important ;
61
+ border-radius : 25px !important ;
62
+ padding : 0.5rem 2rem !important ;
63
+ font-weight : 600 !important ;
64
+ transition : all 0.2s ease !important ;
65
+ }
66
+
67
+ .stButton > button : hover {
68
+ transform : translateY (-2px ) !important ;
69
+ box-shadow : 0 8px 25px rgba (255 , 176 , 0 , 0.4 ) !important ;
70
+ filter : brightness (1.1 ) !important ;
71
+ }
72
+
73
+ /* Input Elements */
74
+ .stSelectbox > div > div ,
75
+ .stTextInput > div > div > input ,
76
+ .stTextArea > div > div > textarea {
77
+ background : var (--elevated-bg ) !important ;
78
+ border : 1px solid var (--border-color ) !important ;
79
+ border-radius : 8px !important ;
80
+ color : var (--text-primary ) !important ;
81
+ }
82
+
83
+ .stSelectbox > div > div : hover ,
84
+ .stTextInput > div > div > input : focus ,
85
+ .stTextArea > div > div > textarea : focus {
86
+ border-color : var (--primary-gold ) !important ;
87
+ box-shadow : 0 0 0 1px var (--primary-gold ) !important ;
88
+ }
89
+
90
+ /* File Uploader */
91
+ .stFileUploader > div {
92
+ background : var (--elevated-bg ) !important ;
93
+ border : 2px dashed var (--border-color ) !important ;
94
+ border-radius : 12px !important ;
95
+ transition : all 0.3s ease !important ;
96
+ }
97
+
98
+ .stFileUploader > div : hover {
99
+ border-color : var (--primary-gold ) !important ;
100
+ background : var (--hover-color ) !important ;
101
+ }
102
+
103
+ /* Chat Messages */
104
+ .stChatMessage {
105
+ background : var (--surface-bg ) !important ;
106
+ border : 1px solid var (--border-color ) !important ;
107
+ border-radius : 12px !important ;
108
+ margin : 0.5rem 0 !important ;
109
+ padding : 1rem !important ;
110
+ }
111
+
112
+ .stChatMessage [data-testid = "user-message" ] {
113
+ background : linear-gradient (135deg , var (--primary-gold ), var (--accent-gold )) !important ;
114
+ color : var (--dark-bg ) !important ;
115
+ margin-left : 2rem !important ;
116
+ }
117
+
118
+ .stChatMessage [data-testid = "assistant-message" ] {
119
+ background : var (--elevated-bg ) !important ;
120
+ margin-right : 2rem !important ;
121
+ }
122
+
123
+ /* Progress Elements */
124
+ .stProgress > div > div > div ,
125
+ .stSlider > div > div > div > div {
126
+ background : var (--primary-gold ) !important ;
127
+ }
128
+
129
+ /* Expanders */
130
+ .streamlit-expanderHeader {
131
+ background : var (--elevated-bg ) !important ;
132
+ border : 1px solid var (--border-color ) !important ;
133
+ border-radius : 8px !important ;
134
+ color : var (--text-primary ) !important ;
135
+ }
136
+
137
+ .streamlit-expanderContent {
138
+ background : var (--surface-bg ) !important ;
139
+ border : 1px solid var (--border-color ) !important ;
140
+ border-top : none !important ;
141
+ }
142
+
143
+ /* Alert Messages */
144
+ .stSuccess {
145
+ background : rgba (255 , 176 , 0 , 0.1 ) !important ;
146
+ border : 1px solid var (--primary-gold ) !important ;
147
+ color : var (--accent-gold ) !important ;
148
+ }
149
+
150
+ .stWarning {
151
+ background : rgba (255 , 193 , 7 , 0.1 ) !important ;
152
+ border : 1px solid # ffc107 !important ;
153
+ color : # ffc107 !important ;
154
+ }
155
+
156
+ .stError {
157
+ background : rgba (220 , 53 , 69 , 0.1 ) !important ;
158
+ border : 1px solid # dc3545 !important ;
159
+ color : # ff6b6b !important ;
160
+ }
161
+
162
+ .stInfo {
163
+ background : rgba (13 , 202 , 240 , 0.1 ) !important ;
164
+ border : 1px solid # 0dcaf0 !important ;
165
+ color : # 0dcaf0 !important ;
166
+ }
167
+
168
+ /* Custom Scrollbar */
169
+ ::-webkit-scrollbar {
170
+ width : 8px ;
171
+ height : 8px ;
172
+ }
173
+
174
+ ::-webkit-scrollbar-track {
175
+ background : var (--surface-bg );
176
+ border-radius : 4px ;
177
+ }
178
+
179
+ ::-webkit-scrollbar-thumb {
180
+ background : var (--border-color );
181
+ border-radius : 4px ;
182
+ }
183
+
184
+ ::-webkit-scrollbar-thumb : hover {
185
+ background : var (--primary-gold );
186
+ }
187
+
188
+ /* Links */
189
+ a {
190
+ color : var (--primary-gold ) !important ;
191
+ text-decoration : none !important ;
192
+ }
193
+
194
+ a : hover {
195
+ color : var (--accent-gold ) !important ;
196
+ text-decoration : underline !important ;
197
+ }
198
+
199
+ /* Mobile Responsive */
200
+ @media (max-width : 768px ) {
201
+ h1 { font-size : 2rem !important ; }
202
+
203
+ .stChatMessage [data-testid = "user-message" ] {
204
+ margin-left : 0.5rem !important ;
205
+ }
206
+
207
+ .stChatMessage [data-testid = "assistant-message" ] {
208
+ margin-right : 0.5rem !important ;
209
+ }
210
+ }
0 commit comments