@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
398 lines (345 loc) • 8.56 kB
JavaScript
import { createStaticStyles } from "antd-style";
//#region src/Markdown/markdown.style.ts
const IGNORE_CLASSNAME = ".ignore-markdown-style";
const styles = createStaticStyles(({ cssVar, css }) => {
const __root = css`
--lobe-markdown-font-size: 16px;
--lobe-markdown-header-multiple: 1;
--lobe-markdown-margin-multiple: 2;
--lobe-markdown-line-height: 1.8;
--lobe-markdown-border-radius: ${cssVar.borderRadiusLG};
--lobe-markdown-border-color: ${cssVar.colorFillQuaternary};
position: relative;
width: 100%;
max-width: 100%;
padding-inline: 1px;
font-size: var(--lobe-markdown-font-size);
line-height: var(--lobe-markdown-line-height);
word-break: break-word;
`;
const a = css`
a {
color: ${cssVar.colorInfoText};
&:hover {
color: ${cssVar.colorInfoHover};
}
}
`;
const blockquote = css`
blockquote {
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
margin-inline: 0;
padding-block: 0;
padding-inline: 1em;
border-inline-start: solid 4px ${cssVar.colorBorder};
color: ${cssVar.colorTextSecondary};
}
`;
const code = css`
code {
&:not(:has(span)) {
display: inline;
margin-inline: 0.25em;
padding-block: 0.2em;
padding-inline: 0.4em;
border: 1px solid var(--lobe-markdown-border-color);
border-radius: 0.25em;
font-family: ${cssVar.fontFamilyCode};
font-size: 0.875em;
line-height: 1;
word-break: break-word;
white-space: break-spaces;
background: ${cssVar.colorFillSecondary};
}
}
`;
const del = css`
del {
color: ${cssVar.colorTextDescription};
text-decoration: line-through;
}
`;
const details = css`
details {
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
padding-block: 0.75em;
padding-inline: 1em;
border-radius: calc(var(--lobe-markdown-border-radius) * 1px);
background: ${cssVar.colorFillTertiary};
box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);
summary {
cursor: pointer;
display: flex;
align-items: center;
list-style: none;
&::before {
content: '';
position: absolute;
inset-inline-end: 1.25em;
transform: rotateZ(-45deg);
display: block;
width: 0.4em;
height: 0.4em;
border-block-end: 1.5px solid ${cssVar.colorTextSecondary};
border-inline-end: 1.5px solid ${cssVar.colorTextSecondary};
font-family: ${cssVar.fontFamily};
transition: transform 200ms ${cssVar.motionEaseOut};
}
}
&[open] {
summary {
padding-block-end: 0.75em;
border-block-end: 1px dashed ${cssVar.colorBorder};
&::before {
transform: rotateZ(45deg);
}
}
}
}
`;
const header = css`
h1,
h2,
h3,
h4,
h5,
h6 {
margin-block: max(
calc(var(--lobe-markdown-header-multiple) * var(--lobe-markdown-margin-multiple) * 0.4em),
var(--lobe-markdown-font-size)
);
font-weight: bold;
line-height: 1.25;
}
h1 {
font-size: calc(
var(--lobe-markdown-font-size) * (1 + 1.5 * var(--lobe-markdown-header-multiple))
);
}
h2 {
font-size: calc(var(--lobe-markdown-font-size) * (1 + var(--lobe-markdown-header-multiple)));
}
h3 {
font-size: calc(
var(--lobe-markdown-font-size) * (1 + 0.5 * var(--lobe-markdown-header-multiple))
);
}
h4 {
font-size: calc(
var(--lobe-markdown-font-size) * (1 + 0.25 * var(--lobe-markdown-header-multiple))
);
}
h5,
h6 {
font-size: calc(var(--lobe-markdown-font-size) * 1);
}
`;
const hr = css`
hr {
width: 100%;
margin-block: calc(var(--lobe-markdown-margin-multiple) * 1.5em);
border-color: ${cssVar.colorBorder};
border-style: dashed;
border-width: 1px;
border-block-start: none;
border-inline-start: none;
border-inline-end: none;
}
`;
const img = css`
img {
max-width: 100%;
}
> img,
> p > img {
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
border-radius: calc(var(--lobe-markdown-border-radius) * 1px);
box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);
}
`;
const list = css`
li {
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.33em);
p:first-child {
display: inline;
}
}
ul,
ol {
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
margin-inline-start: 1em;
padding-inline-start: 0;
list-style-position: outside;
> ul,
> ol {
margin-block: 0;
}
> li {
margin-inline-start: 1em;
}
}
ol {
list-style: auto;
}
ul {
list-style-type: none;
> li {
&::before {
content: '-';
position: absolute;
display: inline-block;
margin-inline: -1em 0.5em;
opacity: 0.5;
}
}
}
.task-list-item {
&::before {
display: none ;
}
input[type='checkbox'] {
margin-block: 0 0.25em;
margin-inline: -1.6em 0.2em;
vertical-align: middle;
}
input[type='checkbox']:dir(rtl) {
margin: 0 -1.6em 0.25em 0.2em;
}
}
`;
const p = css`
p {
margin-block: 4px;
line-height: var(--lobe-markdown-line-height);
letter-spacing: 0.02em;
&:not(:first-child) {
margin-block-start: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
}
&:not(:last-child) {
margin-block-end: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
}
}
`;
const pre = css`
pre {
font-size: calc(var(--lobe-markdown-font-size) * 0.85);
}
`;
const strong = css`
strong {
font-weight: 600;
}
`;
const svg = css`
svg {
line-height: 1;
}
`;
const table = css`
table {
unicode-bidi: isolate;
overflow: auto hidden;
display: block;
border-spacing: 0;
border-collapse: collapse;
box-sizing: border-box;
width: max-content;
max-width: 100%;
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
border-radius: calc(var(--lobe-markdown-border-radius) * 1px);
text-align: start;
text-indent: initial;
text-wrap: pretty;
word-break: auto-phrase;
overflow-wrap: break-word;
background: ${cssVar.colorFillQuaternary};
box-shadow: 0 0 0 1px ${cssVar.colorBorderSecondary};
code {
word-break: break-word;
}
thead {
background: ${cssVar.colorFillQuaternary};
}
tr {
box-shadow: 0 1px 0 ${cssVar.colorBorderSecondary};
}
th,
td {
min-width: 120px;
padding-block: 0.75em;
padding-inline: 1em;
text-align: start;
}
}
`;
const video = css`
> video,
> p > video {
margin-block: calc(var(--lobe-markdown-margin-multiple) * 0.5em);
border-radius: calc(var(--lobe-markdown-border-radius) * 1px);
box-shadow: 0 0 0 1px var(--lobe-markdown-border-color);
}
video {
max-width: 100%;
}
`;
const footnote = css`
.footnotes {
margin-block-start: calc(var(--lobe-markdown-margin-multiple) * 1em);
font-size: smaller;
color: #8b949e;
#footnote-label {
display: none;
}
> ol {
margin: 0 ;
}
}
`;
const sup = css`
sup {
position: relative;
inset-block-start: -0.25em;
font-size: 0.75em;
line-height: var(--lobe-markdown-line-height);
vertical-align: baseline;
}
`;
return { root: css`
:not(:has(${IGNORE_CLASSNAME})),
.markdown {
${[
__root,
a,
blockquote,
code,
del,
details,
header,
hr,
img,
list,
p,
pre,
strong,
svg,
table,
video,
footnote,
css`
sub {
position: relative;
inset-block-end: -0.25em;
font-size: 0.75em;
line-height: var(--lobe-markdown-line-height);
vertical-align: baseline;
}
`,
sup
]}
}
` };
});
//#endregion
export { styles };
//# sourceMappingURL=markdown.style.mjs.map