taylorchen_obsidian-press/styles/default.css

314 lines
5.8 KiB
CSS

/* Press PDF Export — Default PDF Stylesheet */
/* === Base === */
:root {
--text-color: #1a1a1a;
--bg-color: #ffffff;
--code-bg: #f5f5f5;
--border-color: #e0e0e0;
--accent-color: #7c3aed;
}
@page {
size: A4;
margin: 25mm;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 11pt;
line-height: 1.6;
color: var(--text-color);
max-width: 100%;
}
/* === Headings === */
h1, h2, h3, h4, h5, h6 {
margin-top: 1.5em;
margin-bottom: 0.5em;
font-weight: 600;
line-height: 1.3;
page-break-after: avoid;
}
h1 {
font-size: 2em;
border-bottom: 2px solid var(--accent-color);
padding-bottom: 0.3em;
}
h2 {
font-size: 1.5em;
border-bottom: 1px solid var(--border-color);
padding-bottom: 0.2em;
}
h3 { font-size: 1.25em; }
h4 { font-size: 1.1em; }
h5 { font-size: 1em; }
h6 { font-size: 0.9em; color: #666; }
/* === Paragraphs === */
p {
margin: 0.8em 0;
orphans: 3;
widows: 3;
}
/* === Links === */
a {
color: var(--accent-color);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
/* === Images === */
img {
max-width: 100%;
height: auto;
display: block;
margin: 1em auto;
border-radius: 4px;
}
/* Pandoc-style image attributes */
img[width] {
display: inline-block;
}
figure {
margin: 1.5em 0;
text-align: center;
page-break-inside: avoid;
}
figcaption {
font-size: 0.9em;
color: #666;
margin-top: 0.5em;
}
/* === Code === */
code {
font-family: "Fira Code", "JetBrains Mono", "SF Mono", "Cascadia Code", Consolas, monospace;
font-size: 0.85em;
background: var(--code-bg);
padding: 0.15em 0.4em;
border-radius: 3px;
}
pre {
background: var(--code-bg);
border: 1px solid var(--border-color);
border-radius: 6px;
padding: 1em;
overflow-x: auto;
page-break-inside: avoid;
margin: 1em 0;
}
pre code {
background: none;
padding: 0;
font-size: 0.85em;
line-height: 1.5;
}
/* Pandoc code blocks */
.sourceCode {
background: var(--code-bg);
}
pre.sourceCode {
border: 1px solid var(--border-color);
border-radius: 6px;
}
/* === Blockquotes === */
blockquote {
margin: 1em 0;
padding: 0.5em 1em;
border-left: 4px solid var(--accent-color);
background: #f8f8f8;
color: #555;
}
blockquote p {
margin: 0.3em 0;
}
/* === Callouts (Obsidian-style) === */
.callout {
margin: 1.5em 0;
padding: 1em;
border-radius: 8px;
border-left: 4px solid;
page-break-inside: avoid;
}
.callout-title {
font-weight: 600;
font-size: 1.05em;
margin-bottom: 0.5em;
}
.callout-body {
font-size: 0.95em;
}
.callout-body p {
margin: 0.3em 0;
}
/* Callout type colors */
.callout-note { border-color: #448aff; background: #e8f0fe; }
.callout-note .callout-title { color: #1a73e8; }
.callout-tip { border-color: #00bfa5; background: #e0f7fa; }
.callout-tip .callout-title { color: #00897b; }
.callout-important { border-color: #7c4dff; background: #ede7f6; }
.callout-important .callout-title { color: #651fff; }
.callout-warning { border-color: #ff9100; background: #fff3e0; }
.callout-warning .callout-title { color: #e65100; }
.callout-caution { border-color: #ff5252; background: #ffebee; }
.callout-caution .callout-title { color: #d50000; }
.callout-abstract { border-color: #448aff; background: #e8eaf6; }
.callout-abstract .callout-title { color: #283593; }
.callout-info { border-color: #448aff; background: #e3f2fd; }
.callout-info .callout-title { color: #1565c0; }
.callout-todo { border-color: #448aff; background: #e8f0fe; }
.callout-todo .callout-title { color: #1a73e8; }
.callout-example { border-color: #7c4dff; background: #f3e5f5; }
.callout-example .callout-title { color: #7b1fa2; }
.callout-quote { border-color: #9e9e9e; background: #fafafa; }
.callout-quote .callout-title { color: #616161; }
.callout-success { border-color: #00c853; background: #e8f5e9; }
.callout-success .callout-title { color: #2e7d32; }
.callout-question { border-color: #ff6d00; background: #fff8e1; }
.callout-question .callout-title { color: #e65100; }
.callout-failure { border-color: #ff1744; background: #fce4ec; }
.callout-failure .callout-title { color: #c62828; }
.callout-danger { border-color: #d50000; background: #ffebee; }
.callout-danger .callout-title { color: #b71c1c; }
.callout-bug { border-color: #f44336; background: #fbe9e7; }
.callout-bug .callout-title { color: #bf360c; }
/* === Tables === */
table {
width: 100%;
border-collapse: collapse;
margin: 1em 0;
page-break-inside: avoid;
}
thead {
background: #f0f0f0;
}
th, td {
padding: 0.5em 0.8em;
border: 1px solid var(--border-color);
text-align: left;
}
th {
font-weight: 600;
}
tbody tr:nth-child(even) {
background: #fafafa;
}
/* === Lists === */
ul, ol {
margin: 0.5em 0;
padding-left: 2em;
}
li {
margin: 0.3em 0;
}
li > ul, li > ol {
margin: 0.2em 0;
}
/* Task lists */
li.task-list-item {
list-style: none;
margin-left: -1.5em;
}
li.task-list-item input[type="checkbox"] {
margin-right: 0.5em;
}
/* === Horizontal Rule === */
hr {
border: none;
border-top: 2px solid var(--border-color);
margin: 2em 0;
}
/* === Math === */
.math-display {
margin: 1.5em 0;
text-align: center;
overflow-x: auto;
}
.math-inline {
font-style: italic;
}
/* === Mark (highlights) === */
mark {
background: #fff176;
padding: 0.1em 0.3em;
border-radius: 2px;
}
/* === Superscript / Subscript === */
sup { font-size: 0.75em; vertical-align: super; }
sub { font-size: 0.75em; vertical-align: sub; }
/* === Print adjustments === */
@media print {
body {
font-size: 10pt;
}
h1, h2, h3 {
page-break-after: avoid;
}
pre, blockquote, table, .callout, figure {
page-break-inside: avoid;
}
a {
color: var(--accent-color);
}
a[href^="http"]::after {
content: " (" attr(href) ")";
font-size: 0.8em;
color: #999;
}
}