main
css 384 lines 7.86 KB
Raw
1 .container > *,
2 #right-panel {
3 min-width: 0;
4 }
5
6 #right-panel {
7 position: relative;
8 }
9
10 .container > x-component[path="canvas/right-canvas.html"],
11 .container > x-component[path="canvas/right-canvas.html"] > div[x-data] {
12 display: flex;
13 flex: 0 0 auto;
14 height: 100%;
15 min-width: 0;
16 min-height: 0;
17 }
18
19 body.right-canvas-resizing {
20 cursor: col-resize;
21 user-select: none;
22 }
23
24 .right-canvas {
25 --right-canvas-chrome: color-mix(in srgb, var(--color-background) 94%, #000 6%);
26 --right-canvas-surface: color-mix(in srgb, var(--color-panel) 88%, var(--color-background) 12%);
27 --right-canvas-border: color-mix(in srgb, var(--color-border) 70%, transparent);
28 position: relative;
29 z-index: 1200;
30 display: flex;
31 flex: 0 0 auto;
32 height: 100%;
33 min-width: 0;
34 max-width: none;
35 overflow: hidden;
36 border-left: 1px solid var(--right-canvas-border);
37 background: var(--right-canvas-chrome);
38 transition: width 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
39 }
40
41 .right-canvas-rail {
42 position: absolute;
43 top: 33%;
44 right: 100%;
45 z-index: 4;
46 display: flex;
47 flex: 0 0 52px;
48 flex-direction: column;
49 align-items: center;
50 gap: 7px;
51 height: auto;
52 max-height: min(70vh, calc(100vh - 32px));
53 padding: 10px 7px;
54 transform: translateY(-50%);
55 border-right: 0;
56 border-radius: 8px 0 0 8px;
57 box-shadow: -10px 0 30px rgba(0, 0, 0, 0.24);
58 background: var(--color-chat-background);
59 }
60
61 .right-canvas-rail-separator {
62 width: 24px;
63 height: 1px;
64 margin: 1px 0 3px;
65 background: color-mix(in srgb, var(--right-canvas-border) 76%, transparent);
66 }
67
68 .right-canvas.is-closed {
69 width: 0 !important;
70 min-width: 0;
71 overflow: visible;
72 border-left: 0;
73 background: transparent;
74 }
75
76 .right-canvas.is-open {
77 overflow: visible;
78 }
79
80 .right-canvas.is-closed .right-canvas-shell,
81 .right-canvas.is-closed .right-canvas-resize-handle {
82 display: none;
83 }
84
85 .right-canvas-rail-button,
86 .right-canvas-icon-button,
87 .right-canvas-tab {
88 appearance: none;
89 border: 1px solid transparent;
90 color: var(--color-text);
91 font: inherit;
92 cursor: pointer;
93 }
94
95 .right-canvas-rail-button,
96 .right-canvas-icon-button {
97 display: inline-flex;
98 align-items: center;
99 justify-content: center;
100 width: 34px;
101 height: 34px;
102 min-width: 34px;
103 min-height: 34px;
104 padding: 0;
105 border-radius: 7px;
106 background: transparent;
107 opacity: 0.76;
108 transition: background-color 0.16s ease, border-color 0.16s ease, opacity 0.16s ease;
109 }
110
111 .right-canvas-toggle-button {
112 color: color-mix(in srgb, var(--color-primary) 70%, var(--color-text));
113 }
114
115 .right-canvas-rail-button:hover,
116 .right-canvas-icon-button:hover,
117 .right-canvas-rail-button.is-active {
118 opacity: 1;
119 border-color: color-mix(in srgb, var(--color-primary) 28%, var(--right-canvas-border));
120 background: color-mix(in srgb, var(--color-background-hover) 72%, transparent);
121 }
122
123 .right-canvas-rail-button .material-symbols-outlined,
124 .right-canvas-icon-button .material-symbols-outlined {
125 font-size: 19px;
126 }
127
128 .right-canvas-surface-image {
129 display: block;
130 width: 22px;
131 height: 22px;
132 border-radius: 6px;
133 object-fit: cover;
134 }
135
136 .right-canvas-shell {
137 display: flex;
138 flex: 1 1 auto;
139 min-width: 0;
140 min-height: 0;
141 flex-direction: column;
142 }
143
144 .right-canvas-header {
145 position: relative;
146 z-index: 10;
147 display: grid;
148 grid-template-columns: minmax(0, 1fr) auto;
149 align-items: center;
150 gap: 8px;
151 min-height: 45px;
152 padding: 7px 8px 0 10px;
153 border-bottom: 1px solid var(--right-canvas-border);
154 background: color-mix(in srgb, var(--color-background) 91%, #000 9%);
155 overflow: visible;
156 }
157
158 .right-canvas-tabs {
159 display: flex;
160 align-items: end;
161 gap: 4px;
162 min-width: 0;
163 overflow-x: auto;
164 overflow-y: hidden;
165 scrollbar-width: thin;
166 }
167
168 .right-canvas-tabs::-webkit-scrollbar {
169 height: 4px;
170 }
171
172 .right-canvas-tabs::-webkit-scrollbar-track {
173 background: transparent;
174 }
175
176 .right-canvas-tabs::-webkit-scrollbar-thumb {
177 background: color-mix(in srgb, var(--color-border) 76%, transparent);
178 border-radius: 999px;
179 }
180
181 .right-canvas-tab {
182 display: inline-flex;
183 flex: 0 1 auto;
184 align-items: center;
185 gap: 7px;
186 min-width: 0;
187 padding: 0 10px;
188 background: transparent;
189 opacity: 0.4;
190 white-space: nowrap;
191 transition: border-color 0.16s ease, background-color 0.16s ease, opacity 0.16s ease;
192 }
193
194 .right-canvas-tab:hover,
195 .right-canvas-tab.is-active {
196 opacity: 1;
197 }
198
199 .right-canvas-tab .material-symbols-outlined {
200 flex: 0 0 auto;
201 font-size: 18px;
202 }
203
204 .right-canvas-tab .right-canvas-surface-image {
205 flex: 0 0 auto;
206 width: 18px;
207 height: 18px;
208 border-radius: 5px;
209 }
210
211 .right-canvas-tab-label {
212 min-width: 0;
213 overflow: hidden;
214 text-overflow: ellipsis;
215 font-size: 0.84rem;
216 font-weight: 650;
217 }
218
219 .right-canvas-toolbar {
220 position: relative;
221 z-index: 11;
222 display: flex;
223 align-items: center;
224 gap: 5px;
225 padding-bottom: 6px;
226 overflow: visible;
227 }
228
229 .right-canvas-panels {
230 position: relative;
231 z-index: 1;
232 display: flex;
233 flex: 1 1 auto;
234 min-width: 0;
235 min-height: 0;
236 overflow: hidden;
237 background: var(--right-canvas-surface);
238 }
239
240 .right-canvas-panels > x-extension {
241 display: contents;
242 }
243
244 .right-canvas-panels > x-extension > x-component {
245 display: contents;
246 }
247
248 .right-canvas-surface-panel {
249 position: absolute;
250 inset: 0;
251 display: flex;
252 flex: 0 0 auto;
253 width: 100%;
254 height: 100%;
255 min-width: 0;
256 min-height: 0;
257 overflow: hidden;
258 opacity: 0;
259 pointer-events: none;
260 z-index: 0;
261 }
262
263 .right-canvas-surface-panel.is-active {
264 opacity: 1;
265 pointer-events: auto;
266 z-index: 2;
267 }
268
269 .right-canvas-surface-panel > x-component,
270 .right-canvas-surface-panel > x-component > div[x-data] {
271 display: flex;
272 flex: 1 1 auto;
273 width: 100%;
274 height: 100%;
275 min-width: 0;
276 min-height: 0;
277 }
278
279 .right-canvas-empty-state {
280 display: grid;
281 flex: 1 1 auto;
282 place-items: center;
283 align-content: center;
284 gap: 8px;
285 color: color-mix(in srgb, var(--color-text) 60%, transparent);
286 }
287
288 .right-canvas-empty-state .material-symbols-outlined {
289 font-size: 28px;
290 }
291
292 .right-canvas-resize-handle {
293 position: absolute;
294 top: 0;
295 bottom: 0;
296 left: -3px;
297 z-index: 3;
298 width: 7px;
299 cursor: col-resize;
300 }
301
302 body.right-canvas-overlay-mode .right-canvas {
303 position: fixed;
304 top: 0;
305 right: 0;
306 bottom: 0;
307 height: 100%;
308 max-width: calc(100vw - 44px);
309 box-shadow: -16px 0 38px rgba(0, 0, 0, 0.34);
310 transform: translateX(100%);
311 }
312
313 body.right-canvas-overlay-mode .right-canvas.is-open {
314 transform: translateX(0);
315 }
316
317 body.right-canvas-overlay-mode .right-canvas-resize-handle {
318 display: none;
319 }
320
321 body.right-canvas-mobile-mode .right-canvas {
322 position: fixed;
323 top: 0;
324 right: 0;
325 bottom: 0;
326 z-index: 3400;
327 display: flex !important;
328 width: 0 !important;
329 min-width: 0;
330 height: 100%;
331 overflow: visible;
332 transform: none;
333 border-left: 0;
334 background: transparent;
335 box-shadow: none;
336 pointer-events: none;
337 }
338
339 body.right-canvas-mobile-mode .right-canvas.is-open {
340 transform: none;
341 }
342
343 body.right-canvas-mobile-mode .right-canvas-rail {
344 position: fixed;
345 top: 50%;
346 right: max(0px, env(safe-area-inset-right));
347 display: flex;
348 transform: translateY(-50%);
349 pointer-events: auto;
350 }
351
352 body.right-canvas-mobile-mode .right-canvas-shell,
353 body.right-canvas-mobile-mode .right-canvas-resize-handle {
354 display: none !important;
355 }
356
357 @media (max-width: 420px) {
358 body.right-canvas-mobile-mode .right-canvas-rail {
359 gap: 5px;
360 padding: 8px 6px;
361 transform: translateY(-50%) scale(0.92);
362 transform-origin: right center;
363 box-shadow: -8px 0 24px rgba(0, 0, 0, 0.22);
364 }
365
366 body.right-canvas-mobile-mode .right-canvas-rail-button,
367 body.right-canvas-mobile-mode .right-canvas-icon-button {
368 width: 32px;
369 height: 32px;
370 min-width: 32px;
371 min-height: 32px;
372 }
373
374 body.right-canvas-mobile-mode .right-canvas-rail-button .material-symbols-outlined,
375 body.right-canvas-mobile-mode .right-canvas-icon-button .material-symbols-outlined {
376 font-size: 18px;
377 }
378 }
379
380 @media (max-width: 480px) {
381 .right-canvas-tab-label {
382 display: none;
383 }
384 }