quantumkv commited on
Commit
f253bd2
·
verified ·
1 Parent(s): 993f15b

Turn the whole design into dark mode only

Browse files
Files changed (5) hide show
  1. components/header.js +17 -19
  2. components/status-bar.js +9 -13
  3. index.html +14 -15
  4. script.js +2 -3
  5. style.css +146 -24
components/header.js CHANGED
@@ -13,13 +13,13 @@ class AppHeader extends HTMLElement {
13
  this.shadowRoot.innerHTML = `
14
  <style>
15
  header {
16
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
17
- color: white;
18
  padding: 1rem 0;
19
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
 
20
  }
21
-
22
- .header-container {
23
  max-width: 1200px;
24
  margin: 0 auto;
25
  padding: 0 1rem;
@@ -49,32 +49,30 @@ class AppHeader extends HTMLElement {
49
  font-weight: 700;
50
  letter-spacing: -0.5px;
51
  }
52
-
53
  .app-subtitle {
54
  font-size: 0.75rem;
55
- opacity: 0.8;
56
  margin-top: 0.125rem;
 
57
  }
58
-
59
  .model-selector {
60
- background: rgba(255, 255, 255, 0.1);
61
- border: 1px solid rgba(255, 255, 255, 0.2);
62
- color: white;
63
  padding: 0.5rem 1rem;
64
  border-radius: 8px;
65
  font-size: 0.875rem;
66
  cursor: pointer;
67
  transition: all 0.2s;
68
- backdrop-filter: blur(10px);
69
  }
70
 
71
  .model-selector:hover {
72
- background: rgba(255, 255, 255, 0.2);
73
- border-color: rgba(255, 255, 255, 0.3);
74
  }
75
 
76
  .model-selector:focus {
77
- outline: 2px solid rgba(255, 255, 255, 0.5);
78
  outline-offset: 2px;
79
  }
80
 
@@ -84,11 +82,11 @@ class AppHeader extends HTMLElement {
84
  }
85
 
86
  .model-selector option {
87
- background: #4c51bf;
88
- color: white;
 
89
  }
90
-
91
- @media (max-width: 640px) {
92
  .header-container {
93
  flex-direction: column;
94
  gap: 1rem;
 
13
  this.shadowRoot.innerHTML = `
14
  <style>
15
  header {
16
+ background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
17
+ color: var(--text-primary);
18
  padding: 1rem 0;
19
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
20
+ border-bottom: 1px solid var(--border-color);
21
  }
22
+ .header-container {
 
23
  max-width: 1200px;
24
  margin: 0 auto;
25
  padding: 0 1rem;
 
49
  font-weight: 700;
50
  letter-spacing: -0.5px;
51
  }
 
52
  .app-subtitle {
53
  font-size: 0.75rem;
54
+ opacity: 0.7;
55
  margin-top: 0.125rem;
56
+ color: var(--text-secondary);
57
  }
 
58
  .model-selector {
59
+ background: var(--bg-secondary);
60
+ border: 1px solid var(--border-color);
61
+ color: var(--text-primary);
62
  padding: 0.5rem 1rem;
63
  border-radius: 8px;
64
  font-size: 0.875rem;
65
  cursor: pointer;
66
  transition: all 0.2s;
 
67
  }
68
 
69
  .model-selector:hover {
70
+ background: var(--bg-tertiary);
71
+ border-color: var(--primary-color);
72
  }
73
 
74
  .model-selector:focus {
75
+ outline: 2px solid var(--primary-color);
76
  outline-offset: 2px;
77
  }
78
 
 
82
  }
83
 
84
  .model-selector option {
85
+ background: var(--bg-secondary);
86
+ color: var(--text-primary);
87
+ border: 1px solid var(--border-color);
88
  }
89
+ @media (max-width: 640px) {
 
90
  .header-container {
91
  flex-direction: column;
92
  gap: 1rem;
components/status-bar.js CHANGED
@@ -45,23 +45,21 @@ class StatusBar extends HTMLElement {
45
  opacity: 1;
46
  transform: translateY(0);
47
  }
48
-
49
  .status-bar.success {
50
- background: linear-gradient(135deg, #10b981, #059669);
51
  color: white;
52
  }
53
 
54
  .status-bar.error {
55
- background: linear-gradient(135deg, #ef4444, #dc2626);
56
  color: white;
57
  }
58
 
59
  .status-bar.loading {
60
- background: linear-gradient(135deg, #3b82f6, #2563eb);
61
  color: white;
62
  }
63
-
64
- .status-message {
65
  flex: 1;
66
  display: flex;
67
  align-items: center;
@@ -71,10 +69,9 @@ class StatusBar extends HTMLElement {
71
  .status-icon {
72
  flex-shrink: 0;
73
  }
74
-
75
  .status-action {
76
- background: rgba(255, 255, 255, 0.2);
77
- border: 1px solid rgba(255, 255, 255, 0.3);
78
  color: white;
79
  padding: 0.25rem 0.75rem;
80
  border-radius: 4px;
@@ -84,11 +81,10 @@ class StatusBar extends HTMLElement {
84
  }
85
 
86
  .status-action:hover {
87
- background: rgba(255, 255, 255, 0.3);
88
- border-color: rgba(255, 255, 255, 0.4);
89
  }
90
-
91
- .loading-spinner {
92
  width: 16px;
93
  height: 16px;
94
  border: 2px solid rgba(255, 255, 255, 0.3);
 
45
  opacity: 1;
46
  transform: translateY(0);
47
  }
 
48
  .status-bar.success {
49
+ background: linear-gradient(135deg, #059669, #047857);
50
  color: white;
51
  }
52
 
53
  .status-bar.error {
54
+ background: linear-gradient(135deg, #dc2626, #b91c1c);
55
  color: white;
56
  }
57
 
58
  .status-bar.loading {
59
+ background: linear-gradient(135deg, #2563eb, #1d4ed8);
60
  color: white;
61
  }
62
+ .status-message {
 
63
  flex: 1;
64
  display: flex;
65
  align-items: center;
 
69
  .status-icon {
70
  flex-shrink: 0;
71
  }
 
72
  .status-action {
73
+ background: rgba(255, 255, 255, 0.15);
74
+ border: 1px solid rgba(255, 255, 255, 0.25);
75
  color: white;
76
  padding: 0.25rem 0.75rem;
77
  border-radius: 4px;
 
81
  }
82
 
83
  .status-action:hover {
84
+ background: rgba(255, 255, 255, 0.25);
85
+ border-color: rgba(255, 255, 255, 0.35);
86
  }
87
+ .loading-spinner {
 
88
  width: 16px;
89
  height: 16px;
90
  border: 2px solid rgba(255, 255, 255, 0.3);
index.html CHANGED
@@ -12,8 +12,8 @@
12
  <script src="components/header.js"></script>
13
  <script src="components/status-bar.js"></script>
14
  </head>
15
- <body class="bg-gray-50 h-screen flex flex-col overflow-hidden">
16
- <!-- Header Component -->
17
  <app-header></app-header>
18
 
19
  <!-- Status Indicator -->
@@ -24,20 +24,20 @@
24
  <!-- Example Prompts Section -->
25
  <section id="examplesSection" class="mb-4 transition-all duration-300">
26
  <div class="flex flex-wrap gap-2 justify-center">
27
- <button class="example-btn px-4 py-2.5 bg-white hover:bg-gray-100 text-gray-700 rounded-lg border border-gray-200 hover:border-gray-300 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Explain quantum computing in simple terms">
28
- <i data-feather="cpu" class="inline-block w-4 h-4 mr-2"></i>
29
  Explain quantum computing
30
  </button>
31
- <button class="example-btn px-4 py-2.5 bg-white hover:bg-gray-100 text-gray-700 rounded-lg border border-gray-200 hover:border-gray-300 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Write a detailed essay on AI impact">
32
- <i data-feather="edit-3" class="inline-block w-4 h-4 mr-2"></i>
33
  Essay on AI impact
34
  </button>
35
- <button class="example-btn px-4 py-2.5 bg-white hover:bg-gray-100 text-gray-700 rounded-lg border border-gray-200 hover:border-gray-300 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Write a short poem about coding">
36
- <i data-feather="feather" class="inline-block w-4 h-4 mr-2"></i>
37
  Poem about coding
38
  </button>
39
- <button class="example-btn px-4 py-2.5 bg-white hover:bg-gray-100 text-gray-700 rounded-lg border border-gray-200 hover:border-gray-300 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Generate a JavaScript function to sort an array">
40
- <i data-feather="code" class="inline-block w-4 h-4 mr-2"></i>
41
  JS array sorter
42
  </button>
43
  </div>
@@ -48,10 +48,9 @@
48
  <div id="messageThread" class="p-4 space-y-4">
49
  <!-- Messages will be inserted here -->
50
  </div>
51
-
52
  <!-- Typing Indicator -->
53
- <div id="typingIndicator" class="hidden absolute bottom-4 left-4 flex items-center space-x-2 text-gray-500">
54
- <div class="flex space-x-1">
55
  <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 0ms"></span>
56
  <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 150ms"></span>
57
  <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 300ms"></span>
@@ -97,8 +96,8 @@
97
  </div>
98
 
99
  <!-- Character Counter -->
100
- <div id="charCounter" class="mt-2 text-xs text-gray-500 text-right hidden">
101
- <span id="charCount">0</span> / 10000
102
  </div>
103
  </section>
104
  </main>
 
12
  <script src="components/header.js"></script>
13
  <script src="components/status-bar.js"></script>
14
  </head>
15
+ <body class="bg-gray-900 h-screen flex flex-col overflow-hidden">
16
+ <!-- Header Component -->
17
  <app-header></app-header>
18
 
19
  <!-- Status Indicator -->
 
24
  <!-- Example Prompts Section -->
25
  <section id="examplesSection" class="mb-4 transition-all duration-300">
26
  <div class="flex flex-wrap gap-2 justify-center">
27
+ <button class="example-btn px-4 py-2.5 bg-gray-800 hover:bg-gray-700 text-gray-200 rounded-lg border border-gray-600 hover:border-gray-500 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Explain quantum computing in simple terms">
28
+ <i data-feather="cpu" class="inline-block w-4 h-4 mr-2"></i>
29
  Explain quantum computing
30
  </button>
31
+ <button class="example-btn px-4 py-2.5 bg-gray-800 hover:bg-gray-700 text-gray-200 rounded-lg border border-gray-600 hover:border-gray-500 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Write a detailed essay on AI impact">
32
+ <i data-feather="edit-3" class="inline-block w-4 h-4 mr-2"></i>
33
  Essay on AI impact
34
  </button>
35
+ <button class="example-btn px-4 py-2.5 bg-gray-800 hover:bg-gray-700 text-gray-200 rounded-lg border border-gray-600 hover:border-gray-500 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Write a short poem about coding">
36
+ <i data-feather="feather" class="inline-block w-4 h-4 mr-2"></i>
37
  Poem about coding
38
  </button>
39
+ <button class="example-btn px-4 py-2.5 bg-gray-800 hover:bg-gray-700 text-gray-200 rounded-lg border border-gray-600 hover:border-gray-500 transition-all duration-200 text-sm font-medium shadow-sm hover:shadow-md transform hover:-translate-y-0.5" data-prompt="Generate a JavaScript function to sort an array">
40
+ <i data-feather="code" class="inline-block w-4 h-4 mr-2"></i>
41
  JS array sorter
42
  </button>
43
  </div>
 
48
  <div id="messageThread" class="p-4 space-y-4">
49
  <!-- Messages will be inserted here -->
50
  </div>
 
51
  <!-- Typing Indicator -->
52
+ <div id="typingIndicator" class="hidden absolute bottom-4 left-4 flex items-center space-x-2 text-gray-400">
53
+ <div class="flex space-x-1">
54
  <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 0ms"></span>
55
  <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 150ms"></span>
56
  <span class="w-2 h-2 bg-gray-400 rounded-full animate-bounce" style="animation-delay: 300ms"></span>
 
96
  </div>
97
 
98
  <!-- Character Counter -->
99
+ <div id="charCounter" class="mt-2 text-xs text-gray-400 text-right hidden">
100
+ <span id="charCount">0</span> / 10000
101
  </div>
102
  </section>
103
  </main>
script.js CHANGED
@@ -334,10 +334,9 @@ class ClaudeChatApp {
334
  if (message.content) {
335
  contentDiv.innerHTML = this.parseMarkdown(message.content);
336
  } else {
337
- contentDiv.innerHTML = '<span class="text-gray-400">Thinking...</span>';
338
  }
339
-
340
- messageDiv.appendChild(headerDiv);
341
  messageDiv.appendChild(contentDiv);
342
  messagesContainer.appendChild(messageDiv);
343
 
 
334
  if (message.content) {
335
  contentDiv.innerHTML = this.parseMarkdown(message.content);
336
  } else {
337
+ contentDiv.innerHTML = '<span class="text-gray-500">Thinking...</span>';
338
  }
339
+ messageDiv.appendChild(headerDiv);
 
340
  messageDiv.appendChild(contentDiv);
341
  messagesContainer.appendChild(messageDiv);
342
 
style.css CHANGED
@@ -1,16 +1,19 @@
1
- /* Custom styles for Claude Chat Interface */
 
2
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
3
 
4
  :root {
5
- --primary-color: #3B82F6;
6
- --primary-hover: #2563EB;
7
- --success-color: #10B981;
8
- --error-color: #EF4444;
9
- --warning-color: #F59E0B;
10
- --text-primary: #1F2937;
11
- --text-secondary: #6B7280;
12
- --border-color: #E5E7EB;
13
- --bg-secondary: #F9FAFB;
 
 
14
  }
15
 
16
  * {
@@ -19,8 +22,13 @@
19
 
20
  body {
21
  overscroll-behavior: contain;
 
22
  }
23
 
 
 
 
 
24
  /* Message Styles */
25
  .message {
26
  animation: messageSlideIn 0.3s ease-out;
@@ -45,10 +53,10 @@ body {
45
  max-width: 70%;
46
  border-radius: 18px 18px 4px 18px;
47
  }
48
-
49
  .message-assistant {
50
- background: white;
51
  border: 1px solid var(--border-color);
 
52
  margin-right: auto;
53
  max-width: 85%;
54
  border-radius: 18px 18px 18px 4px;
@@ -57,11 +65,11 @@ body {
57
  .message-system {
58
  background: var(--bg-secondary);
59
  border-left: 3px solid var(--warning-color);
 
60
  text-align: center;
61
  max-width: 100%;
62
  border-radius: 8px;
63
  }
64
-
65
  .message-header {
66
  font-size: 0.75rem;
67
  font-weight: 600;
@@ -103,19 +111,19 @@ body {
103
  .message-content li {
104
  margin: 0.25rem 0;
105
  }
106
-
107
  .message-content code {
108
- background: #f3f4f6;
109
  padding: 0.125rem 0.375rem;
110
  border-radius: 4px;
111
  font-family: 'Courier New', monospace;
112
  font-size: 0.875em;
113
- color: #d97706;
114
  }
115
 
116
  .message-content pre {
117
- background: #1f2937;
118
- color: #f9fafb;
 
119
  padding: 1rem;
120
  border-radius: 8px;
121
  overflow-x: auto;
@@ -127,7 +135,6 @@ body {
127
  color: inherit;
128
  padding: 0;
129
  }
130
-
131
  .message-content a {
132
  color: var(--primary-color);
133
  text-decoration: underline;
@@ -265,7 +272,6 @@ select:focus-visible {
265
  opacity: 1;
266
  }
267
  }
268
-
269
  /* Tooltip */
270
  .tooltip {
271
  position: relative;
@@ -277,8 +283,9 @@ select:focus-visible {
277
  bottom: 100%;
278
  left: 50%;
279
  transform: translateX(-50%);
280
- background: #1f2937;
281
- color: white;
 
282
  padding: 0.5rem 0.75rem;
283
  border-radius: 6px;
284
  font-size: 0.875rem;
@@ -295,5 +302,120 @@ select:focus-visible {
295
 
296
  /* Selection highlight */
297
  ::selection {
298
- background-color: rgba(59, 130, 246, 0.2);
299
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ /* Custom styles for Claude Chat Interface - Dark Mode */
3
  @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
4
 
5
  :root {
6
+ --primary-color: #60A5FA;
7
+ --primary-hover: #3B82F6;
8
+ --success-color: #34D399;
9
+ --error-color: #F87171;
10
+ --warning-color: #FBBF24;
11
+ --text-primary: #F9FAFB;
12
+ --text-secondary: #D1D5DB;
13
+ --border-color: #374151;
14
+ --bg-secondary: #1F2937;
15
+ --bg-tertiary: #111827;
16
+ --message-user-bg: linear-gradient(135deg, #4F46E5 0%, #7C3AED 100%);
17
  }
18
 
19
  * {
 
22
 
23
  body {
24
  overscroll-behavior: contain;
25
+ background: var(--bg-tertiary);
26
  }
27
 
28
+ /* Update Tailwind background class */
29
+ body.bg-gray-50 {
30
+ background: var(--bg-tertiary) !important;
31
+ }
32
  /* Message Styles */
33
  .message {
34
  animation: messageSlideIn 0.3s ease-out;
 
53
  max-width: 70%;
54
  border-radius: 18px 18px 4px 18px;
55
  }
 
56
  .message-assistant {
57
+ background: var(--bg-secondary);
58
  border: 1px solid var(--border-color);
59
+ color: var(--text-primary);
60
  margin-right: auto;
61
  max-width: 85%;
62
  border-radius: 18px 18px 18px 4px;
 
65
  .message-system {
66
  background: var(--bg-secondary);
67
  border-left: 3px solid var(--warning-color);
68
+ color: var(--text-primary);
69
  text-align: center;
70
  max-width: 100%;
71
  border-radius: 8px;
72
  }
 
73
  .message-header {
74
  font-size: 0.75rem;
75
  font-weight: 600;
 
111
  .message-content li {
112
  margin: 0.25rem 0;
113
  }
 
114
  .message-content code {
115
+ background: #374151;
116
  padding: 0.125rem 0.375rem;
117
  border-radius: 4px;
118
  font-family: 'Courier New', monospace;
119
  font-size: 0.875em;
120
+ color: #FBBF24;
121
  }
122
 
123
  .message-content pre {
124
+ background: #111827;
125
+ color: #F9FAFB;
126
+ border: 1px solid var(--border-color);
127
  padding: 1rem;
128
  border-radius: 8px;
129
  overflow-x: auto;
 
135
  color: inherit;
136
  padding: 0;
137
  }
 
138
  .message-content a {
139
  color: var(--primary-color);
140
  text-decoration: underline;
 
272
  opacity: 1;
273
  }
274
  }
 
275
  /* Tooltip */
276
  .tooltip {
277
  position: relative;
 
283
  bottom: 100%;
284
  left: 50%;
285
  transform: translateX(-50%);
286
+ background: #374151;
287
+ color: var(--text-primary);
288
+ border: 1px solid var(--border-color);
289
  padding: 0.5rem 0.75rem;
290
  border-radius: 6px;
291
  font-size: 0.875rem;
 
302
 
303
  /* Selection highlight */
304
  ::selection {
305
+ background-color: rgba(96, 165, 250, 0.3);
306
+ }
307
+
308
+ /* Dark mode specific styles */
309
+ .bg-white {
310
+ background-color: var(--bg-secondary) !important;
311
+ }
312
+
313
+ .text-gray-700 {
314
+ color: var(--text-primary) !important;
315
+ }
316
+
317
+ .text-gray-500 {
318
+ color: var(--text-secondary) !important;
319
+ }
320
+
321
+ .border-gray-200 {
322
+ border-color: var(--border-color) !important;
323
+ }
324
+
325
+ .border-gray-300 {
326
+ border-color: var(--border-color) !important;
327
+ }
328
+
329
+ .hover\:bg-gray-100:hover {
330
+ background-color: var(--bg-secondary) !important;
331
+ }
332
+
333
+ .hover\:bg-gray-50:hover {
334
+ background-color: var(--bg-tertiary) !important;
335
+ }
336
+
337
+ .hover\:border-gray-300:hover {
338
+ border-color: var(--border-color) !important;
339
+ }
340
+
341
+ .placeholder-gray-400::placeholder {
342
+ color: var(--text-secondary) !important;
343
+ }
344
+
345
+ .focus\:border-blue-500:focus {
346
+ border-color: var(--primary-color) !important;
347
+ }
348
+
349
+ .focus\:ring-blue-200:focus {
350
+ --tw-ring-color: rgba(96, 165, 250, 0.2) !important;
351
+ }
352
+
353
+ .shadow-sm {
354
+ box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3) !important;
355
+ }
356
+
357
+ /* Chat container dark mode */
358
+ #chatContainer {
359
+ background: var(--bg-secondary) !important;
360
+ border-color: var(--border-color) !important;
361
+ }
362
+
363
+ /* Input area dark mode */
364
+ #messageInput {
365
+ background: var(--bg-secondary) !important;
366
+ color: var(--text-primary) !important;
367
+ border-color: var(--border-color) !important;
368
+ }
369
+
370
+ #messageInput:focus {
371
+ background: var(--bg-secondary) !important;
372
+ color: var(--text-primary) !important;
373
+ }
374
+
375
+ /* Example buttons dark mode */
376
+ .example-btn {
377
+ background: var(--bg-secondary) !important;
378
+ color: var(--text-primary) !important;
379
+ border-color: var(--border-color) !important;
380
+ }
381
+
382
+ .example-btn:hover {
383
+ background: var(--bg-tertiary) !important;
384
+ border-color: var(--border-color) !important;
385
+ }
386
+
387
+ /* Typing indicator dark mode */
388
+ #typingIndicator {
389
+ color: var(--text-secondary) !important;
390
+ }
391
+
392
+ /* Character counter dark mode */
393
+ #charCounter {
394
+ color: var(--text-secondary) !important;
395
+ }
396
+
397
+ /* Scroll to bottom button dark mode */
398
+ #scrollToBottom {
399
+ background: var(--primary-color) !important;
400
+ }
401
+
402
+ #scrollToBottom:hover {
403
+ background: var(--primary-hover) !important;
404
+ }
405
+
406
+ /* Send and Stream buttons */
407
+ #sendBtn, #streamBtn {
408
+ background: var(--primary-color) !important;
409
+ }
410
+
411
+ #sendBtn:hover, #streamBtn:hover {
412
+ background: var(--primary-hover) !important;
413
+ }
414
+
415
+ #streamBtn {
416
+ background: var(--success-color) !important;
417
+ }
418
+
419
+ #streamBtn:hover {
420
+ background: #10B981 !important;
421
+ }