Files
cherry-studio/src/renderer/src/assets/styles/markdown.css
T
Phantom c641b116ba fix(markdown): broken layout in translate page if rendered as long markdown (#10187)
* style(markdown): improve code block styling and layout

- Add text-wrap to pre elements for better readability
- Force background color for code blocks with !important
- Change display to grid in translate page for consistent layout
- Add overflow hidden to output container

* style(markdown): remove redundant !important from code block styling

Move !important declaration to output container's markdown pre selector where it's actually needed
2025-09-16 02:10:28 +08:00

390 lines
6.0 KiB
CSS

.markdown {
color: var(--color-text);
line-height: 1.6;
user-select: text;
word-break: break-word;
}
.markdown h1:first-child,
.markdown h2:first-child,
.markdown h3:first-child,
.markdown h4:first-child,
.markdown h5:first-child,
.markdown h6:first-child {
margin-top: 0;
}
.markdown h1,
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
margin: 1.5em 0 1em 0;
line-height: 1.3;
font-weight: bold;
}
.markdown h1 {
margin-top: 0;
font-size: 2em;
border-bottom: 0.5px solid var(--color-border);
padding-bottom: 0.3em;
}
.markdown h2 {
font-size: 1.5em;
border-bottom: 0.5px solid var(--color-border);
padding-bottom: 0.3em;
}
.markdown h3 {
font-size: 1.2em;
}
.markdown h4 {
font-size: 1em;
}
.markdown h5 {
font-size: 0.9em;
}
.markdown h6 {
font-size: 0.8em;
}
.markdown p {
margin: 1.3em 0;
white-space: pre-wrap;
line-height: 1.6;
}
.markdown p:last-child {
margin-bottom: 5px;
}
.markdown p:first-child {
margin-top: 0;
}
.markdown p:has(+ ul) {
margin-bottom: 0;
}
.markdown ul {
list-style: initial;
}
.markdown ul,
.markdown ol {
padding-left: 1.5em;
margin: 1em 0;
}
.markdown li {
margin-bottom: 0.5em;
}
.markdown li pre {
margin: 1.5em 0 !important;
}
.markdown li::marker {
color: var(--color-text-3);
}
.markdown li > ul,
.markdown li > ol {
margin: 0.5em 0;
}
.markdown hr {
border: none;
border-top: 0.5px solid var(--color-border);
margin: 20px 0;
}
.markdown span {
white-space: pre-wrap;
}
.markdown .katex span {
white-space: pre;
}
.markdown p code,
.markdown li code {
background: var(--color-background-mute);
padding: 3px 5px;
margin: 0 2px;
border-radius: 5px;
word-break: keep-all;
white-space: pre;
text-wrap: wrap;
}
.markdown code {
font-family: var(--code-font-family);
}
.markdown pre {
border-radius: 8px;
overflow-x: auto;
font-family: var(--code-font-family);
background-color: var(--color-background-mute);
}
.markdown pre:has(.special-preview) {
background-color: transparent;
}
.markdown pre:not(pre pre) > code:not(pre pre > code) {
padding: 15px;
display: block;
}
.markdown pre pre {
margin: 0 !important;
}
.markdown pre pre code {
background: none;
padding: 0;
border-radius: 0;
}
.markdown pre + pre {
margin-top: 10px;
}
.markdown .markdown-alert,
.markdown blockquote {
margin: 1.5em 0;
padding: 1em 1.5em;
background-color: var(--color-background-soft);
border-left: 4px solid var(--color-primary);
border-radius: 0 8px 8px 0;
font-style: italic;
position: relative;
}
.markdown table {
--table-border-radius: 8px;
margin: 2em 0;
font-size: 0.9em;
width: 100%;
border-radius: var(--table-border-radius);
overflow: hidden;
border-collapse: separate;
border: 0.5px solid var(--color-border);
border-spacing: 0;
}
.markdown th,
.markdown td {
border-right: 0.5px solid var(--color-border);
border-bottom: 0.5px solid var(--color-border);
padding: 0.5em;
}
.markdown th:last-child,
.markdown td:last-child {
border-right: none;
}
.markdown tr:last-child td {
border-bottom: none;
}
.markdown th {
background-color: var(--color-background-mute);
font-weight: 600;
text-align: left;
}
.markdown tr:hover {
background-color: var(--color-background-soft);
}
.markdown img {
max-width: 100%;
height: auto;
margin: 1em 0;
}
.markdown a,
.markdown .link {
color: var(--color-link);
text-decoration: none;
cursor: pointer;
}
.markdown a:hover,
.markdown .link:hover {
text-decoration: underline;
}
.markdown strong {
font-weight: bold;
}
.markdown em {
font-style: italic;
}
.markdown del {
text-decoration: line-through;
}
.markdown sup,
.markdown sub {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
.markdown sup {
top: -0.5em;
border-radius: 50%;
background-color: var(--color-reference);
color: var(--color-reference-text);
padding: 2px 5px;
zoom: 0.8;
}
.markdown sup > span.link {
color: var(--color-reference-text);
}
.markdown sub {
bottom: -0.25em;
}
.markdown .footnote-ref {
font-size: 0.8em;
vertical-align: super;
line-height: 0;
margin: 0 2px;
color: var(--color-primary);
text-decoration: none;
}
.markdown .footnote-ref:hover {
text-decoration: underline;
}
.footnotes {
margin-top: 1em;
margin-bottom: 1em;
padding-top: 1em;
background-color: var(--color-reference-background);
border-radius: 8px;
padding: 8px 12px;
}
.footnotes h4 {
margin-bottom: 5px;
font-size: 12px;
}
.footnotes a {
color: var(--color-link);
}
.footnotes ol {
padding-left: 1em;
margin: 0;
}
.footnotes ol li:last-child {
margin-bottom: 0;
}
.footnotes li {
font-size: 0.9em;
margin-bottom: 0.5em;
color: var(--color-text-light);
}
.footnotes li p {
display: inline;
margin: 0;
}
.footnotes .footnote-backref {
font-size: 0.8em;
vertical-align: super;
line-height: 0;
margin-left: 5px;
color: var(--color-primary);
text-decoration: none;
}
.footnotes .footnote-backref:hover {
text-decoration: underline;
}
emoji-picker {
--border-size: 0;
}
.block-wrapper + .block-wrapper {
margin-top: 1em;
}
.katex,
mjx-container {
display: inline-block;
overflow-x: auto;
overflow-y: hidden;
overflow-wrap: break-word;
vertical-align: middle;
max-width: 100%;
padding: 1px 2px;
margin-top: -2px;
}
/* Shiki 相关样式 */
.shiki {
font-family: var(--code-font-family);
/* 保持行高为初始值,在 shiki 代码块中处理 */
line-height: initial;
}
/* CodeMirror 相关样式 */
.cm-editor {
border-radius: inherit;
}
.cm-editor.cm-focused {
outline: none;
}
.cm-editor .cm-scroller {
font-family: var(--code-font-family);
border-radius: inherit;
}
.cm-editor .cm-scroller .cm-gutters {
line-height: 1.6;
border-right: none;
}
.cm-editor .cm-scroller .cm-content {
line-height: 1.6;
padding-left: 0.25em;
}
.cm-editor .cm-scroller .cm-lineWrapping * {
word-wrap: break-word;
white-space: pre-wrap;
}
.cm-editor .cm-announced {
position: absolute;
display: none;
}