anshdadhich commited on
Commit
ae9710e
Β·
verified Β·
1 Parent(s): 1c2d465

Upload fastsearch-tauri/ui/styles.css

Browse files
Files changed (1) hide show
  1. fastsearch-tauri/ui/styles.css +389 -0
fastsearch-tauri/ui/styles.css ADDED
@@ -0,0 +1,389 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ :root {
2
+ --bg-primary: rgba(30, 30, 30, 0.88);
3
+ --bg-secondary: rgba(45, 45, 45, 0.85);
4
+ --bg-hover: rgba(60, 60, 60, 0.8);
5
+ --bg-selected: rgba(10, 132, 255, 0.35);
6
+ --text-primary: #ffffff;
7
+ --text-secondary: rgba(255, 255, 255, 0.55);
8
+ --text-tertiary: rgba(255, 255, 255, 0.35);
9
+ --accent: #0a84ff;
10
+ --accent-hover: #0077e6;
11
+ --border: rgba(255, 255, 255, 0.08);
12
+ --shadow: 0 25px 80px rgba(0, 0, 0, 0.6), 0 10px 30px rgba(0, 0, 0, 0.4);
13
+ --radius: 18px;
14
+ --radius-sm: 10px;
15
+ --transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);
16
+ }
17
+
18
+ * {
19
+ margin: 0;
20
+ padding: 0;
21
+ box-sizing: border-box;
22
+ }
23
+
24
+ body {
25
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
26
+ background: transparent;
27
+ overflow: hidden;
28
+ color: var(--text-primary);
29
+ -webkit-font-smoothing: antialiased;
30
+ }
31
+
32
+ #app {
33
+ width: 100vw;
34
+ height: 100vh;
35
+ display: flex;
36
+ align-items: flex-start;
37
+ justify-content: center;
38
+ padding-top: 80px;
39
+ }
40
+
41
+ /* ── Search Container ─────────────────────────────────────────────── */
42
+ .search-container {
43
+ width: 720px;
44
+ max-width: 90vw;
45
+ background: var(--bg-primary);
46
+ backdrop-filter: blur(60px) saturate(180%);
47
+ -webkit-backdrop-filter: blur(60px) saturate(180%);
48
+ border: 1px solid var(--border);
49
+ border-radius: var(--radius);
50
+ box-shadow: var(--shadow);
51
+ overflow: hidden;
52
+ transition: all var(--transition);
53
+ animation: slideDown 0.25s ease-out;
54
+ }
55
+
56
+ @keyframes slideDown {
57
+ from {
58
+ opacity: 0;
59
+ transform: translateY(-20px) scale(0.95);
60
+ }
61
+ to {
62
+ opacity: 1;
63
+ transform: translateY(0) scale(1);
64
+ }
65
+ }
66
+
67
+ /* ── Search Bar ──────────────────────────────────────────────────── */
68
+ .search-bar {
69
+ display: flex;
70
+ align-items: center;
71
+ padding: 16px 20px;
72
+ gap: 12px;
73
+ border-bottom: 1px solid var(--border);
74
+ }
75
+
76
+ .search-icon {
77
+ width: 22px;
78
+ height: 22px;
79
+ color: var(--text-tertiary);
80
+ flex-shrink: 0;
81
+ }
82
+
83
+ .search-bar input {
84
+ flex: 1;
85
+ background: transparent;
86
+ border: none;
87
+ outline: none;
88
+ color: var(--text-primary);
89
+ font-size: 22px;
90
+ font-weight: 400;
91
+ letter-spacing: -0.01em;
92
+ caret-color: var(--accent);
93
+ }
94
+
95
+ .search-bar input::placeholder {
96
+ color: var(--text-tertiary);
97
+ }
98
+
99
+ .loading-spinner {
100
+ width: 18px;
101
+ height: 18px;
102
+ border: 2px solid var(--text-tertiary);
103
+ border-top-color: var(--accent);
104
+ border-radius: 50%;
105
+ animation: spin 0.8s linear infinite;
106
+ display: none;
107
+ flex-shrink: 0;
108
+ }
109
+
110
+ .loading-spinner.active {
111
+ display: block;
112
+ }
113
+
114
+ @keyframes spin {
115
+ to { transform: rotate(360deg); }
116
+ }
117
+
118
+ .shortcut-hint {
119
+ font-size: 11px;
120
+ color: var(--text-tertiary);
121
+ background: var(--bg-secondary);
122
+ padding: 4px 8px;
123
+ border-radius: 6px;
124
+ border: 1px solid var(--border);
125
+ font-family: monospace;
126
+ flex-shrink: 0;
127
+ }
128
+
129
+ /* ── Results Container ──────────────────────────────────────────── */
130
+ .results-container {
131
+ max-height: 420px;
132
+ overflow-y: auto;
133
+ display: none;
134
+ }
135
+
136
+ .results-container.visible {
137
+ display: block;
138
+ }
139
+
140
+ .results-container::-webkit-scrollbar {
141
+ width: 6px;
142
+ }
143
+
144
+ .results-container::-webkit-scrollbar-track {
145
+ background: transparent;
146
+ }
147
+
148
+ .results-container::-webkit-scrollbar-thumb {
149
+ background: rgba(255, 255, 255, 0.15);
150
+ border-radius: 3px;
151
+ }
152
+
153
+ .results-list {
154
+ padding: 6px 8px;
155
+ }
156
+
157
+ /* ── Result Item ────────────────────────────────────────────────── */
158
+ .result-item {
159
+ display: flex;
160
+ align-items: center;
161
+ gap: 14px;
162
+ padding: 10px 14px;
163
+ border-radius: var(--radius-sm);
164
+ cursor: pointer;
165
+ transition: background var(--transition);
166
+ user-select: none;
167
+ }
168
+
169
+ .result-item:hover {
170
+ background: var(--bg-hover);
171
+ }
172
+
173
+ .result-item.selected {
174
+ background: var(--bg-selected);
175
+ }
176
+
177
+ .result-item.selected .result-name,
178
+ .result-item.selected .result-path {
179
+ color: var(--text-primary);
180
+ }
181
+
182
+ .result-icon {
183
+ width: 40px;
184
+ height: 40px;
185
+ border-radius: var(--radius-sm);
186
+ display: flex;
187
+ align-items: center;
188
+ justify-content: center;
189
+ flex-shrink: 0;
190
+ font-size: 18px;
191
+ background: var(--bg-secondary);
192
+ }
193
+
194
+ .result-icon.folder {
195
+ color: #ff9f0a;
196
+ }
197
+
198
+ .result-icon.file {
199
+ color: #0a84ff;
200
+ }
201
+
202
+ .result-icon.app {
203
+ color: #32d74b;
204
+ }
205
+
206
+ .result-info {
207
+ flex: 1;
208
+ min-width: 0;
209
+ overflow: hidden;
210
+ }
211
+
212
+ .result-name {
213
+ font-size: 14px;
214
+ font-weight: 500;
215
+ color: var(--text-primary);
216
+ white-space: nowrap;
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ line-height: 1.4;
220
+ }
221
+
222
+ .result-name .highlight {
223
+ color: var(--accent);
224
+ font-weight: 600;
225
+ }
226
+
227
+ .result-path {
228
+ font-size: 12px;
229
+ color: var(--text-tertiary);
230
+ white-space: nowrap;
231
+ overflow: hidden;
232
+ text-overflow: ellipsis;
233
+ margin-top: 2px;
234
+ line-height: 1.3;
235
+ }
236
+
237
+ .result-meta {
238
+ font-size: 11px;
239
+ color: var(--text-tertiary);
240
+ background: var(--bg-secondary);
241
+ padding: 3px 8px;
242
+ border-radius: 4px;
243
+ flex-shrink: 0;
244
+ font-family: monospace;
245
+ }
246
+
247
+ /* ── Results Footer ─────────────────────────────────────────────── */
248
+ .results-footer {
249
+ display: flex;
250
+ align-items: center;
251
+ justify-content: space-between;
252
+ padding: 8px 16px;
253
+ border-top: 1px solid var(--border);
254
+ font-size: 11px;
255
+ color: var(--text-tertiary);
256
+ background: rgba(0, 0, 0, 0.15);
257
+ }
258
+
259
+ .footer-hint kbd {
260
+ display: inline-block;
261
+ padding: 2px 5px;
262
+ background: var(--bg-secondary);
263
+ border: 1px solid var(--border);
264
+ border-radius: 4px;
265
+ font-family: monospace;
266
+ font-size: 10px;
267
+ color: var(--text-secondary);
268
+ margin: 0 1px;
269
+ }
270
+
271
+ .footer-stats {
272
+ font-family: monospace;
273
+ font-size: 11px;
274
+ }
275
+
276
+ /* ── Empty State ──────────────────────────────────────────────────── */
277
+ .empty-state {
278
+ padding: 40px 20px;
279
+ text-align: center;
280
+ display: block;
281
+ }
282
+
283
+ .empty-state.hidden {
284
+ display: none;
285
+ }
286
+
287
+ .empty-icon {
288
+ width: 56px;
289
+ height: 56px;
290
+ margin: 0 auto 16px;
291
+ color: var(--text-tertiary);
292
+ opacity: 0.6;
293
+ }
294
+
295
+ .empty-state p {
296
+ font-size: 15px;
297
+ color: var(--text-secondary);
298
+ font-weight: 500;
299
+ margin-bottom: 24px;
300
+ }
301
+
302
+ .empty-shortcuts {
303
+ display: flex;
304
+ flex-direction: column;
305
+ gap: 8px;
306
+ align-items: center;
307
+ }
308
+
309
+ .shortcut-row {
310
+ display: flex;
311
+ align-items: center;
312
+ gap: 8px;
313
+ font-size: 12px;
314
+ color: var(--text-tertiary);
315
+ }
316
+
317
+ .shortcut-row .key {
318
+ display: inline-flex;
319
+ align-items: center;
320
+ justify-content: center;
321
+ min-width: 28px;
322
+ padding: 3px 7px;
323
+ background: var(--bg-secondary);
324
+ border: 1px solid var(--border);
325
+ border-radius: 5px;
326
+ font-family: monospace;
327
+ font-size: 11px;
328
+ color: var(--text-secondary);
329
+ }
330
+
331
+ .shortcut-row .desc {
332
+ min-width: 130px;
333
+ text-align: left;
334
+ }
335
+
336
+ /* ── No Results ───────────────────────────────────────────────────── */
337
+ .no-results {
338
+ padding: 40px 20px;
339
+ text-align: center;
340
+ display: none;
341
+ }
342
+
343
+ .no-results.visible {
344
+ display: block;
345
+ }
346
+
347
+ .no-results-icon {
348
+ width: 48px;
349
+ height: 48px;
350
+ margin: 0 auto 16px;
351
+ color: var(--text-tertiary);
352
+ opacity: 0.5;
353
+ }
354
+
355
+ .no-results p {
356
+ font-size: 15px;
357
+ color: var(--text-secondary);
358
+ font-weight: 500;
359
+ }
360
+
361
+ .no-results-sub {
362
+ font-size: 12px;
363
+ color: var(--text-tertiary);
364
+ margin-top: 4px;
365
+ display: block;
366
+ }
367
+
368
+ /* ── Animations ───────────────────────────────────────────────────── */
369
+ .result-item {
370
+ animation: fadeIn 0.1s ease-out;
371
+ }
372
+
373
+ @keyframes fadeIn {
374
+ from {
375
+ opacity: 0;
376
+ transform: translateY(4px);
377
+ }
378
+ to {
379
+ opacity: 1;
380
+ transform: translateY(0);
381
+ }
382
+ }
383
+
384
+ /* ── Responsive ───────────────────────────────────────────────────── */
385
+ @media (max-width: 800px) {
386
+ .search-container {
387
+ width: 95vw;
388
+ }
389
+ }