返回 DeepSeek-Reasonix
MarkdownSvgBlock.css
根目录 / desktop / frontend / src / components / MarkdownSvgBlock.css
1 /* Chat SVG code block: the same shell as the Mermaid diagram so a previewed
2 fence reads as one family, with the picture scaled to fit rather than
3 cropped. */
4 .md-svg {
5 position: relative;
6 display: flex;
7 flex-direction: column;
8 min-width: 0;
9 margin: 12px 0;
10 overflow: hidden;
11 border: 1px solid var(--border-soft);
12 border-radius: 8px;
13 background: var(--bg-elev);
14 }
15
16 .md-svg__toolbar {
17 display: flex;
18 align-items: center;
19 justify-content: space-between;
20 flex-shrink: 0;
21 gap: 12px;
22 min-height: 38px;
23 padding: 5px 10px 5px 12px;
24 border-bottom: 1px solid var(--border-soft);
25 background: var(--bg-elev-2);
26 }
27
28 .md-svg__title {
29 min-width: 0;
30 overflow: hidden;
31 color: var(--fg-dim);
32 font-size: 12px;
33 font-weight: 600;
34 text-overflow: ellipsis;
35 white-space: nowrap;
36 }
37
38 .md-svg__actions {
39 display: flex;
40 align-items: center;
41 flex-shrink: 0;
42 gap: 4px;
43 }
44
45 .md-svg__icon-btn,
46 .md-svg__copy.copybtn {
47 display: inline-flex;
48 align-items: center;
49 justify-content: center;
50 width: 28px;
51 height: 28px;
52 padding: 0;
53 border: 1px solid transparent;
54 border-radius: 6px;
55 background: transparent;
56 color: var(--fg-faint);
57 cursor: pointer;
58 transition: background 0.12s, border-color 0.12s, color 0.12s;
59 }
60
61 .md-svg__icon-btn:hover:not(:disabled),
62 .md-svg__copy.copybtn:hover {
63 border-color: var(--button-border-hover);
64 background: var(--button-bg-hover);
65 color: var(--fg);
66 }
67
68 .md-svg__icon-btn:disabled {
69 opacity: 0.45;
70 cursor: default;
71 }
72
73 .md-svg__icon-btn:focus-visible,
74 .md-svg__copy.copybtn:focus-visible {
75 outline: none;
76 box-shadow: var(--focus-ring);
77 }
78
79 .md-svg__icon-btn--active {
80 border-color: var(--button-border-hover);
81 background: var(--accent-soft);
82 color: var(--fg);
83 }
84
85 .md-svg__copy.copybtn--copied {
86 border-color: var(--button-border-hover);
87 background: var(--accent-soft);
88 color: var(--accent-strong, var(--accent));
89 }
90
91 .md-svg__preview {
92 display: flex;
93 align-items: center;
94 justify-content: center;
95 min-width: 0;
96 max-height: min(60vh, 32rem);
97 padding: 12px;
98 overflow: hidden;
99 background: #ffffff;
100 }
101
102 :root[data-theme="dark"] .md-svg__preview {
103 background: #111319;
104 }
105
106 @media (prefers-color-scheme: dark) {
107 :root:not([data-theme="light"]) .md-svg__preview {
108 background: #111319;
109 }
110 }
111
112 .md-svg__preview img {
113 display: block;
114 max-width: 100%;
115 width: auto;
116 height: auto;
117 object-fit: contain;
118 }
119
120 .md-svg__note {
121 margin: 0;
122 padding: 8px 12px;
123 border-top: 1px solid var(--border-soft);
124 color: var(--fg-dim);
125 font-size: 12px;
126 }
127
128 .md-svg .code-block {
129 margin: 0;
130 border: 0;
131 border-radius: 0;
132 }
133
133 lines CSS