返回 DeepSeek-Reasonix
BrowserPanel.css
根目录 / desktop / frontend / src / components / BrowserPanel.css
1 .workbench-dock__body > .browser-panel {
2 height: 100%;
3 }
4
5 .browser-panel {
6 display: flex;
7 flex-direction: column;
8 min-width: 0;
9 min-height: 0;
10 color: var(--fg);
11 background: var(--bg-elev);
12 }
13
14 .browser-panel__tabs {
15 display: flex;
16 align-items: stretch;
17 gap: 2px;
18 min-height: 30px;
19 padding: 4px 6px 0;
20 overflow-x: auto;
21 border-bottom: 1px solid var(--border-soft);
22 scrollbar-width: none;
23 }
24
25 .browser-panel__tabs::-webkit-scrollbar {
26 display: none;
27 }
28
29 .browser-tab {
30 display: flex;
31 flex: 0 1 180px;
32 align-items: center;
33 min-width: 72px;
34 border-radius: var(--radius) var(--radius) 0 0;
35 color: var(--fg-dim);
36 }
37
38 .browser-tab:hover {
39 background: var(--sidebar-hover);
40 }
41
42 .browser-tab--active {
43 color: var(--fg);
44 background: var(--bg-soft);
45 box-shadow: inset 0 -2px 0 var(--accent);
46 }
47
48 .browser-tab__select {
49 display: flex;
50 flex: 1 1 auto;
51 align-items: center;
52 gap: 6px;
53 min-width: 0;
54 padding: 5px 4px 5px 8px;
55 border: 0;
56 background: none;
57 color: inherit;
58 font: inherit;
59 font-size: var(--text-xs);
60 cursor: pointer;
61 }
62
63 .browser-tab__title {
64 flex: 1 1 auto;
65 min-width: 0;
66 overflow: hidden;
67 text-align: left;
68 text-overflow: ellipsis;
69 white-space: nowrap;
70 }
71
72 .browser-tab__badge {
73 flex: 0 0 auto;
74 padding: 0 5px;
75 border-radius: 999px;
76 background: color-mix(in srgb, var(--accent) 18%, transparent);
77 color: var(--accent);
78 font-size: 10px;
79 line-height: 16px;
80 }
81
82 .browser-tab__spinner,
83 .browser-tab__close {
84 flex: 0 0 auto;
85 }
86
87 .browser-tab__spinner {
88 width: 10px;
89 height: 10px;
90 border: 2px solid var(--border);
91 border-top-color: var(--accent);
92 border-radius: 50%;
93 animation: browser-panel-spin 0.8s linear infinite;
94 }
95
96 @keyframes browser-panel-spin {
97 to {
98 transform: rotate(360deg);
99 }
100 }
101
102 .browser-tab__close,
103 .browser-panel__icon-btn,
104 .browser-panel__zoom {
105 display: inline-flex;
106 align-items: center;
107 justify-content: center;
108 border: 0;
109 border-radius: var(--radius);
110 background: none;
111 color: var(--fg-dim);
112 cursor: pointer;
113 }
114
115 .browser-tab__close {
116 width: 20px;
117 height: 20px;
118 margin-right: 4px;
119 }
120
121 .browser-panel__icon-btn {
122 width: 26px;
123 height: 26px;
124 }
125
126 .browser-tab__close:hover,
127 .browser-panel__icon-btn:hover:not(:disabled),
128 .browser-panel__zoom:hover:not(:disabled) {
129 background: var(--sidebar-hover);
130 color: var(--fg);
131 }
132
133 .browser-panel__icon-btn:disabled,
134 .browser-panel__zoom:disabled {
135 opacity: 0.4;
136 cursor: default;
137 }
138
139 .browser-panel__toolbar {
140 display: flex;
141 align-items: center;
142 gap: 2px;
143 padding: 5px 6px;
144 border-bottom: 1px solid var(--border-soft);
145 }
146
147 .browser-panel__zoom {
148 height: 26px;
149 padding: 0 6px;
150 font: inherit;
151 font-size: var(--text-xs);
152 font-variant-numeric: tabular-nums;
153 }
154
155 .browser-panel__address {
156 flex: 1 1 auto;
157 min-width: 0;
158 height: 26px;
159 padding: 0 8px;
160 border: 1px solid var(--border);
161 border-radius: var(--radius);
162 background: var(--bg-soft);
163 color: var(--fg);
164 font: inherit;
165 font-size: var(--text-xs);
166 }
167
168 .browser-panel__address:focus {
169 border-color: var(--accent);
170 outline: none;
171 }
172
173 .browser-panel__takeover {
174 display: flex;
175 align-items: center;
176 gap: 8px;
177 padding: 6px 10px;
178 border-bottom: 1px solid var(--border-soft);
179 background: color-mix(in srgb, var(--accent) 14%, var(--bg-elev));
180 color: var(--fg);
181 font-size: var(--text-xs);
182 }
183
184 .browser-panel__takeover span {
185 flex: 1 1 auto;
186 }
187
188 .browser-panel__content {
189 position: relative;
190 display: flex;
191 flex: 1 1 auto;
192 min-height: 0;
193 }
194
195 .browser-panel__surface {
196 flex: 1 1 auto;
197 min-height: 0;
198 background: var(--bg-soft);
199 }
200
201 .browser-panel__empty,
202 .browser-panel__error {
203 display: flex;
204 flex: 1 1 auto;
205 flex-direction: column;
206 align-items: center;
207 justify-content: center;
208 gap: 8px;
209 padding: 24px;
210 color: var(--fg-dim);
211 text-align: center;
212 }
213
214 .browser-panel__empty .browser-panel__address {
215 width: min(100%, 360px);
216 flex: 0 0 auto;
217 margin-top: 8px;
218 }
219
220 .browser-panel__empty-title,
221 .browser-panel__error-title {
222 margin: 0;
223 color: var(--fg);
224 font-size: var(--text-sm);
225 font-weight: 600;
226 }
227
228 .browser-panel__empty-hint,
229 .browser-panel__error-detail {
230 margin: 0;
231 font-size: var(--text-xs);
232 }
233
234 .browser-panel__error {
235 color: var(--err);
236 }
237
238 .browser-panel__error-url {
239 max-width: 100%;
240 overflow: hidden;
241 color: var(--fg-faint);
242 font-size: var(--text-xs);
243 text-overflow: ellipsis;
244 white-space: nowrap;
245 }
246
247 .browser-panel__downloads {
248 padding: 6px 8px;
249 border-top: 1px solid var(--border-soft);
250 font-size: var(--text-xs);
251 }
252
253 .browser-panel__downloads-head {
254 display: flex;
255 align-items: center;
256 gap: 6px;
257 color: var(--fg-dim);
258 }
259
260 .browser-panel__downloads-head span {
261 flex: 1 1 auto;
262 }
263
264 .browser-panel__downloads-head .browser-panel__icon-btn {
265 width: 20px;
266 height: 20px;
267 }
268
269 .browser-panel__download-list {
270 margin: 4px 0 0;
271 padding: 0;
272 list-style: none;
273 }
274
275 .browser-download {
276 display: grid;
277 grid-template-columns: minmax(0, 1fr) auto;
278 gap: 2px 8px;
279 padding: 2px 0;
280 }
281
282 .browser-download__name {
283 overflow: hidden;
284 color: var(--fg);
285 text-overflow: ellipsis;
286 white-space: nowrap;
287 }
288
289 .browser-download__state {
290 color: var(--fg-faint);
291 font-variant-numeric: tabular-nums;
292 }
293
294 .browser-download--interrupted .browser-download__state {
295 color: var(--err);
296 }
297
298 .browser-download__bar {
299 grid-column: 1 / -1;
300 width: 100%;
301 height: 3px;
302 accent-color: var(--accent);
303 }
304
304 lines CSS