Mark-Lasfar commited on
Commit
625c807
·
1 Parent(s): 89ce331

Fix: Multilingual speech synthesis with advanced language detection and playback controls

Browse files
Files changed (1) hide show
  1. static/css/chat/bubble.css +67 -14
static/css/chat/bubble.css CHANGED
@@ -114,42 +114,95 @@ html.light .message-actions .action-btn:hover {
114
  color: #2563eb;
115
  }
116
 
117
- /* Animation for speaking button */
118
- @keyframes pulse {
119
- 0%, 100% { transform: scale(1); opacity: 1; }
120
- 50% { transform: scale(1.1); opacity: 0.7; }
121
- }
122
 
123
- /* Speech controls styling */
 
 
 
 
124
  .speech-controls {
125
  display: flex;
126
  gap: 6px;
127
  margin-top: 8px;
128
- padding-top: 4px;
129
- border-top: 1px solid rgba(255, 255, 255, 0.1);
 
130
  }
131
 
 
132
  .speech-controls .action-btn {
133
- padding: 4px 6px;
134
- background: rgba(59, 130, 246, 0.2);
135
- border-radius: 6px;
136
  transition: all 0.2s ease;
 
 
 
137
  }
138
 
139
  .speech-controls .action-btn:hover {
140
- background: rgba(59, 130, 246, 0.4);
141
  transform: scale(1.05);
142
  }
143
 
144
- /* Light theme */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  html.light .speech-controls {
146
  border-top-color: rgba(0, 0, 0, 0.1);
147
  }
148
 
149
  html.light .speech-controls .action-btn {
150
  background: rgba(59, 130, 246, 0.1);
 
151
  }
152
 
153
  html.light .speech-controls .action-btn:hover {
154
- background: rgba(59, 130, 246, 0.3);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  }
 
114
  color: #2563eb;
115
  }
116
 
 
 
 
 
 
117
 
118
+ /* ============================================================
119
+ SPEECH CONTROLS
120
+ ============================================================ */
121
+
122
+ /* Container لأزرار التحكم */
123
  .speech-controls {
124
  display: flex;
125
  gap: 6px;
126
  margin-top: 8px;
127
+ padding-top: 6px;
128
+ border-top: 1px solid rgba(255, 255, 255, 0.15);
129
+ flex-wrap: wrap;
130
  }
131
 
132
+ /* تنسيق الأزرار داخل الـ speech-controls */
133
  .speech-controls .action-btn {
134
+ background: rgba(59, 130, 246, 0.15);
135
+ border-radius: 8px;
136
+ padding: 4px 8px;
137
  transition: all 0.2s ease;
138
+ display: inline-flex;
139
+ align-items: center;
140
+ justify-content: center;
141
  }
142
 
143
  .speech-controls .action-btn:hover {
144
+ background: rgba(59, 130, 246, 0.35);
145
  transform: scale(1.05);
146
  }
147
 
148
+ .speech-controls .action-btn:active {
149
+ transform: scale(0.95);
150
+ }
151
+
152
+ /* زر الصوت النابض أثناء التشغيل */
153
+ @keyframes speakingPulse {
154
+ 0%, 100% {
155
+ transform: scale(1);
156
+ opacity: 1;
157
+ }
158
+ 50% {
159
+ transform: scale(1.15);
160
+ opacity: 0.7;
161
+ }
162
+ }
163
+
164
+ .action-btn.speaking {
165
+ animation: speakingPulse 0.6s ease-in-out infinite;
166
+ color: #10b981 !important;
167
+ }
168
+
169
+ /* ============================================================
170
+ LIGHT THEME SUPPORT FOR SPEECH CONTROLS
171
+ ============================================================ */
172
+
173
  html.light .speech-controls {
174
  border-top-color: rgba(0, 0, 0, 0.1);
175
  }
176
 
177
  html.light .speech-controls .action-btn {
178
  background: rgba(59, 130, 246, 0.1);
179
+ color: #2563eb;
180
  }
181
 
182
  html.light .speech-controls .action-btn:hover {
183
+ background: rgba(59, 130, 246, 0.25);
184
+ color: #1d4ed8;
185
+ }
186
+
187
+ html.light .action-btn.speaking {
188
+ color: #059669 !important;
189
+ }
190
+
191
+ /* ============================================================
192
+ RESPONSIVE FOR MOBILE
193
+ ============================================================ */
194
+
195
+ @media (max-width: 640px) {
196
+ .speech-controls {
197
+ gap: 4px;
198
+ }
199
+
200
+ .speech-controls .action-btn {
201
+ padding: 3px 6px;
202
+ }
203
+
204
+ .speech-controls .action-btn svg {
205
+ width: 12px;
206
+ height: 12px;
207
+ }
208
  }