Nymbo commited on
Commit
749a3fc
·
verified ·
1 Parent(s): 5a5949d

Create styles.css

Browse files
Files changed (1) hide show
  1. styles.css +309 -0
styles.css ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Style only the top-level app title to avoid affecting headings elsewhere */
2
+ .app-title {
3
+ text-align: center;
4
+ /* Ensure main title appears first, then our two subtitle lines */
5
+ display: grid;
6
+ justify-items: center;
7
+ }
8
+ .app-title::after {
9
+ grid-row: 2;
10
+ content: "General purpose tools useful for any agent.";
11
+ display: block;
12
+ font-size: 1rem;
13
+ font-weight: 400;
14
+ opacity: 0.9;
15
+ margin-top: 2px;
16
+ white-space: pre-wrap;
17
+ }
18
+
19
+ /* Sidebar Container */
20
+ .app-sidebar {
21
+ background-color: rgba(255, 255, 255, 0.02) !important;
22
+ border-right: 1px solid rgba(255, 255, 255, 0.08) !important;
23
+ }
24
+ @media (prefers-color-scheme: light) {
25
+ .app-sidebar {
26
+ background-color: rgba(0, 0, 0, 0.02) !important;
27
+ border-right: 1px solid rgba(0, 0, 0, 0.08) !important;
28
+ }
29
+ }
30
+
31
+ /* Historical safeguard: if any h1 appears inside tabs, don't attach pseudo content */
32
+ .gradio-container [role="tabpanel"] h1::before,
33
+ .gradio-container [role="tabpanel"] h1::after {
34
+ content: none !important;
35
+ }
36
+
37
+ /* Information accordion - modern info cards */
38
+ .info-accordion {
39
+ margin: 8px 0 2px;
40
+ }
41
+ .info-grid {
42
+ display: grid;
43
+ gap: 12px;
44
+ /* Force a 2x2 layout on medium+ screens */
45
+ grid-template-columns: repeat(2, minmax(0, 1fr));
46
+ align-items: stretch;
47
+ }
48
+ /* On narrow screens, stack into a single column */
49
+ @media (max-width: 800px) {
50
+ .info-grid {
51
+ grid-template-columns: 1fr;
52
+ }
53
+ }
54
+ .info-card {
55
+ display: flex;
56
+ gap: 14px;
57
+ padding: 14px 16px;
58
+ border: 1px solid rgba(255, 255, 255, 0.08);
59
+ background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.03));
60
+ border-radius: 12px;
61
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
62
+ position: relative;
63
+ overflow: hidden;
64
+ -webkit-backdrop-filter: blur(2px);
65
+ backdrop-filter: blur(2px);
66
+ }
67
+ .info-card::before {
68
+ content: "";
69
+ position: absolute;
70
+ inset: 0;
71
+ border-radius: 12px;
72
+ pointer-events: none;
73
+ background: linear-gradient(90deg, rgba(99,102,241,0.06), rgba(59,130,246,0.05));
74
+ }
75
+ .info-card__icon {
76
+ font-size: 24px;
77
+ flex: 0 0 28px;
78
+ line-height: 1;
79
+ filter: saturate(1.1);
80
+ }
81
+ .info-card__body {
82
+ min-width: 0;
83
+ }
84
+ .info-card__body h3 {
85
+ margin: 0 0 6px;
86
+ font-size: 1.05rem;
87
+ }
88
+ .info-card__body p {
89
+ margin: 6px 0;
90
+ opacity: 0.95;
91
+ }
92
+ /* Readable code blocks inside info cards */
93
+ .info-card pre {
94
+ margin: 8px 0;
95
+ padding: 10px 12px;
96
+ background: rgba(20, 20, 30, 0.55);
97
+ border: 1px solid rgba(255, 255, 255, 0.08);
98
+ border-radius: 10px;
99
+ overflow-x: auto;
100
+ white-space: pre;
101
+ }
102
+ .info-card code {
103
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
104
+ font-size: 0.95em;
105
+ }
106
+ .info-card pre code {
107
+ display: block;
108
+ }
109
+ .info-card p {
110
+ word-wrap: break-word;
111
+ overflow-wrap: break-word;
112
+ }
113
+ .info-card p code {
114
+ word-break: break-all;
115
+ }
116
+ .info-list {
117
+ margin: 6px 0 0 18px;
118
+ padding: 0;
119
+ }
120
+ .info-hint {
121
+ margin-top: 8px;
122
+ font-size: 0.9em;
123
+ opacity: 0.9;
124
+ }
125
+
126
+ /* Light theme adjustments */
127
+ @media (prefers-color-scheme: light) {
128
+ .info-card {
129
+ border-color: rgba(0, 0, 0, 0.08);
130
+ background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.9));
131
+ }
132
+ .info-card::before {
133
+ background: linear-gradient(90deg, rgba(99,102,241,0.08), rgba(59,130,246,0.06));
134
+ }
135
+ .info-card pre {
136
+ background: rgba(245, 246, 250, 0.95);
137
+ border-color: rgba(0, 0, 0, 0.08);
138
+ }
139
+ }
140
+
141
+ /* Sidebar Navigation - styled like the previous tabs */
142
+ .sidebar-nav {
143
+ background: transparent !important;
144
+ border: none !important;
145
+ padding: 0 !important;
146
+ }
147
+ .sidebar-nav .form {
148
+ gap: 8px !important;
149
+ display: flex !important;
150
+ flex-direction: column !important;
151
+ border: none !important;
152
+ background: transparent !important;
153
+ }
154
+ .sidebar-nav label {
155
+ display: flex !important;
156
+ align-items: center !important;
157
+ padding: 10px 12px !important;
158
+ border-radius: 10px !important;
159
+ border: 1px solid rgba(255, 255, 255, 0.08) !important;
160
+ background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.03)) !important;
161
+ transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .06s ease !important;
162
+ cursor: pointer !important;
163
+ margin-bottom: 0 !important;
164
+ width: 100% !important;
165
+ justify-content: flex-start !important;
166
+ text-align: left !important;
167
+ }
168
+ .sidebar-nav label:hover {
169
+ border-color: rgba(99,102,241,0.28) !important;
170
+ background: linear-gradient(180deg, rgba(99,102,241,0.10), rgba(59,130,246,0.08)) !important;
171
+ }
172
+ /* Selected state - Gradio adds 'selected' class to the label in some versions, or we check input:checked */
173
+ .sidebar-nav label.selected {
174
+ border-color: rgba(99,102,241,0.35) !important;
175
+ box-shadow: inset 0 0 0 1px rgba(99,102,241,0.25), 0 1px 2px rgba(0,0,0,0.25) !important;
176
+ background: linear-gradient(180deg, rgba(99,102,241,0.18), rgba(59,130,246,0.14)) !important;
177
+ color: rgba(255, 255, 255, 0.95) !important;
178
+ }
179
+
180
+ /* Light theme adjustments for sidebar */
181
+ @media (prefers-color-scheme: light) {
182
+ .sidebar-nav label {
183
+ border-color: rgba(0, 0, 0, 0.08) !important;
184
+ background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.90)) !important;
185
+ color: rgba(0, 0, 0, 0.85) !important;
186
+ }
187
+ .sidebar-nav label:hover {
188
+ border-color: rgba(99,102,241,0.25) !important;
189
+ background: linear-gradient(180deg, rgba(99,102,241,0.08), rgba(59,130,246,0.06)) !important;
190
+ }
191
+ .sidebar-nav label.selected {
192
+ border-color: rgba(99,102,241,0.35) !important;
193
+ background: linear-gradient(180deg, rgba(99,102,241,0.16), rgba(59,130,246,0.12)) !important;
194
+ color: rgba(0, 0, 0, 0.85) !important;
195
+ }
196
+ }
197
+
198
+ /* Hide scrollbars/arrows that can appear on the description block in some browsers */
199
+ /* stylelint-disable compat-api/css */
200
+ article.prose, .prose, .gr-prose {
201
+ overflow: visible !important;
202
+ max-height: none !important;
203
+ -ms-overflow-style: none !important; /* IE/Edge */
204
+ scrollbar-width: none !important; /* Firefox */
205
+ }
206
+ /* stylelint-enable compat-api/css */
207
+ article.prose::-webkit-scrollbar,
208
+ .prose::-webkit-scrollbar,
209
+ .gr-prose::-webkit-scrollbar {
210
+ display: none !important; /* Chrome/Safari */
211
+ }
212
+
213
+ /* Fix for white background on single-line inputs in dark mode */
214
+ .gradio-container input[type="text"],
215
+ .gradio-container input[type="password"],
216
+ .gradio-container input[type="number"],
217
+ .gradio-container input[type="email"] {
218
+ background-color: var(--input-background-fill) !important;
219
+ color: var(--body-text-color) !important;
220
+ }
221
+
222
+ /* Custom glossy purple styling for primary action buttons */
223
+ .gradio-container button.primary {
224
+ border: 1px solid rgba(99, 102, 241, 0.35) !important;
225
+ background: linear-gradient(180deg, rgba(99, 102, 241, 0.25), rgba(59, 130, 246, 0.20)) !important;
226
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 2px 4px rgba(0, 0, 0, 0.15) !important;
227
+ color: rgba(255, 255, 255, 0.95) !important;
228
+ transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .06s ease !important;
229
+ }
230
+ .gradio-container button.primary:hover {
231
+ border-color: rgba(99, 102, 241, 0.5) !important;
232
+ background: linear-gradient(180deg, rgba(99, 102, 241, 0.35), rgba(59, 130, 246, 0.28)) !important;
233
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 3px 6px rgba(0, 0, 0, 0.2) !important;
234
+ }
235
+ .gradio-container button.primary:active {
236
+ transform: scale(0.98) !important;
237
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.1) !important;
238
+ }
239
+ @media (prefers-color-scheme: light) {
240
+ .gradio-container button.primary {
241
+ border-color: rgba(99, 102, 241, 0.4) !important;
242
+ background: linear-gradient(180deg, rgba(99, 102, 241, 0.85), rgba(79, 70, 229, 0.75)) !important;
243
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 2px 4px rgba(0, 0, 0, 0.12) !important;
244
+ color: rgba(255, 255, 255, 0.98) !important;
245
+ }
246
+ .gradio-container button.primary:hover {
247
+ background: linear-gradient(180deg, rgba(99, 102, 241, 0.95), rgba(79, 70, 229, 0.85)) !important;
248
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 3px 6px rgba(0, 0, 0, 0.15) !important;
249
+ }
250
+ }
251
+
252
+ /* Hide the actual tabs since we use the sidebar to control them */
253
+ .hidden-tabs .tab-nav,
254
+ .hidden-tabs [role="tablist"] {
255
+ display: none !important;
256
+ }
257
+ /* Hide the entire first row of the tabs container (contains tab buttons + overflow) */
258
+ .hidden-tabs > div:first-child {
259
+ display: none !important;
260
+ }
261
+ /* Ensure audio component buttons remain visible - they're inside tab panels, not the first row */
262
+ .hidden-tabs [role="tabpanel"] button {
263
+ display: inline-flex !important;
264
+ }
265
+
266
+ /* Custom scrollbar styling - Progressive enhancement, falls back to default scrollbars */
267
+ /* stylelint-disable compat-api/css */
268
+ * {
269
+ scrollbar-width: thin;
270
+ scrollbar-color: rgba(61, 212, 159, 0.4) rgba(255, 255, 255, 0.05);
271
+ }
272
+ *::-webkit-scrollbar {
273
+ width: 8px;
274
+ height: 8px;
275
+ }
276
+ *::-webkit-scrollbar-track {
277
+ background: rgba(255, 255, 255, 0.05);
278
+ border-radius: 4px;
279
+ }
280
+ *::-webkit-scrollbar-thumb {
281
+ background: linear-gradient(180deg, rgba(61, 212, 159, 0.5), rgba(17, 186, 136, 0.4));
282
+ border-radius: 4px;
283
+ border: 1px solid rgba(119, 247, 209, 0.2);
284
+ }
285
+ *::-webkit-scrollbar-thumb:hover {
286
+ background: linear-gradient(180deg, rgba(85, 250, 192, 0.7), rgba(65, 184, 131, 0.6));
287
+ }
288
+ *::-webkit-scrollbar-corner {
289
+ background: rgba(255, 255, 255, 0.05);
290
+ }
291
+ @media (prefers-color-scheme: light) {
292
+ * {
293
+ scrollbar-color: rgba(61, 212, 159, 0.4) rgba(0, 0, 0, 0.05);
294
+ }
295
+ *::-webkit-scrollbar-track {
296
+ background: rgba(0, 0, 0, 0.05);
297
+ }
298
+ *::-webkit-scrollbar-thumb {
299
+ background: linear-gradient(180deg, rgba(61, 212, 159, 0.5), rgba(17, 186, 136, 0.4));
300
+ border-color: rgba(0, 0, 0, 0.1);
301
+ }
302
+ *::-webkit-scrollbar-thumb:hover {
303
+ background: linear-gradient(180deg, rgba(85, 250, 192, 0.7), rgba(65, 184, 131, 0.6));
304
+ }
305
+ *::-webkit-scrollbar-corner {
306
+ background: rgba(0, 0, 0, 0.05);
307
+ }
308
+ }
309
+ /* stylelint-enable compat-api/css */