Compare commits

...

3 Commits

Author SHA1 Message Date
742d06f3c7 Simplify contents sidebar styles and markup 2026-03-23 13:40:55 +08:00
f226f440a5 make toc srollable if its too long 2026-03-23 13:28:51 +08:00
6534dc58ab codex update the css. 2026-03-22 12:36:46 +08:00
5 changed files with 690 additions and 274 deletions

View File

@@ -1,88 +1,130 @@
.theorem-environment { .theorem-environment {
position: relative;
margin: 1.5rem 0;
padding: 1rem 1.25rem;
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
font-style: italic; font-style: italic;
margin-top: 1em; }
background-color: whitesmoke;
.theorem-environment > :first-child {
margin-top: 0;
}
.theorem-environment > :last-child {
margin-bottom: 0;
} }
.theorem-header { .theorem-header {
font-weight: bold; color: var(--color-text);
font-weight: 700;
font-style: normal; font-style: normal;
} }
.theorem-header .index:before { .theorem-header .index:before {
content: ' '; content: " ";
} }
.theorem-header .name:before { .theorem-header .name:before {
content: ' ('; content: " (";
} }
.theorem-header .name:after { .theorem-header .name:after {
content: ')'; content: ")";
} }
.theorem-header:after { .theorem-header:after {
content: '.\2002\2002'; content: ".\2002\2002";
} }
.theorem-header+p { .theorem-header + p {
display: inline; display: inline;
} }
.Proof .type { .Proof {
font-style: italic; padding-right: 2.5rem;
font-weight: normal; font-style: normal;
} }
.Proof { .Proof .type {
font-style: normal; color: var(--color-linkh);
position: relative; font-weight: 400;
font-style: italic;
} }
.Proof:after { .Proof:after {
content: '∎'; content: "\220e";
position: absolute; position: absolute;
right: 0px; right: 1rem;
bottom: 0px; bottom: 0.85rem;
color: var(--color-tag1);
} }
table.postindex { table.postindex {
width: 100%; width: 100%;
border: 0;
border-collapse: separate;
border-spacing: 0;
background: transparent;
box-shadow: none;
} }
table.postindex cite { table.postindex cite {
font-style: normal; font-style: normal;
} }
table.postindex td {
padding: 0.65rem 0;
border: 0;
border-bottom: 1px solid var(--color-border);
background: transparent;
}
table.postindex tr:nth-child(even) td {
background: transparent;
}
table.postindex tr:last-child td {
border-bottom: 0;
}
table.postindex td.right { table.postindex td.right {
text-align: right;
width: 11ex; width: 11ex;
color: var(--color-tag1);
text-align: right;
white-space: nowrap;
} }
.header-section-number { .header-section-number {
margin-right: 10px; margin-right: 0.55rem;
color: var(--color-tag1);
} }
.header-section-number:after { .header-section-number:after {
content: '.'; content: ".";
} }
.csl-entry { .csl-entry {
display: table; display: table;
width: 100%; width: 100%;
margin-bottom: 0.75rem;
table-layout: auto; table-layout: auto;
} }
.csl-left-margin { .csl-left-margin {
display: table-cell; display: table-cell;
padding-right: 0.5em;
white-space: nowrap;
width: 1px; width: 1px;
padding-right: 0.75em;
color: var(--color-tag1);
white-space: nowrap;
} }
.csl-right-inline { .csl-right-inline {
display: table-cell; display: table-cell;
} }
.csl-right-inline a{
.csl-right-inline a {
word-break: break-all; word-break: break-all;
} }

View File

@@ -1,69 +1,170 @@
:root { :root {
--color-text: black; color-scheme: light;
--color-tag1: gray; --color-text: #162031;
--color-tag2: darkolivegreen; --color-tag1: #6c788c;
--color-bg: white; --color-tag2: #547157;
--color-link: #337ab7; --color-bg: #f3f6fb;
--color-linkhbg: #e6f0ff; --color-surface: rgba(255, 255, 255, 0.84);
--color-linkh: #002266; --color-surface-strong: #ffffff;
--color-bq: olivedrab; --color-surface-muted: #edf3fb;
--color-notice: #fb4f4f; --color-border: rgba(22, 32, 49, 0.12);
--color-border-strong: rgba(22, 32, 49, 0.2);
--color-link: #225b9c;
--color-link-line: rgba(34, 91, 156, 0.28);
--color-linkhbg: rgba(89, 143, 211, 0.16);
--color-linkh: #163a63;
--color-bq: #628b72;
--color-notice: #d0455a;
--color-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
--color-shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.06);
--code-bg: #f6f8fc;
--code-border: rgba(55, 65, 81, 0.14);
--page-glow-1: rgba(144, 187, 241, 0.18);
--page-glow-2: rgba(99, 141, 118, 0.14);
} }
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
:root { :root {
--color-text: white; color-scheme: dark;
--color-bg: black; --color-text: #e7edf7;
--color-tag1: #9aa7bb;
--color-tag2: #9abf9c;
--color-bg: #0b1020;
--color-surface: rgba(15, 23, 42, 0.78);
--color-surface-strong: #101827;
--color-surface-muted: #162238;
--color-border: rgba(148, 163, 184, 0.18);
--color-border-strong: rgba(148, 163, 184, 0.26);
--color-link: #8bc3ff;
--color-link-line: rgba(139, 195, 255, 0.35);
--color-linkhbg: rgba(139, 195, 255, 0.16);
--color-linkh: #d9ecff;
--color-bq: #8db59a;
--color-notice: #ff8b8b;
--color-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
--color-shadow-soft: 0 12px 32px rgba(0, 0, 0, 0.3);
--code-bg: #0f172a;
--code-border: rgba(148, 163, 184, 0.22);
--page-glow-1: rgba(71, 119, 183, 0.22);
--page-glow-2: rgba(74, 118, 90, 0.18);
} }
} }
*,
*::before,
*::after {
box-sizing: border-box;
}
html { html {
scrollbar-gutter: stable; scrollbar-gutter: stable;
scroll-behavior: smooth;
font-size: 14pt; font-size: 14pt;
} }
body { body {
font-family: 'Lato', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif; box-sizing: content-box;
margin: 0;
font-family: "Lato", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
font-optical-sizing: auto; font-optical-sizing: auto;
font-weight: 400; font-weight: 400;
font-style: normal; font-style: normal;
font-size: 1rem; font-size: 1rem;
line-height: 125%; line-height: 1.5;
color: var(--color-text); color: var(--color-text);
background-color: var(--color-bg); background:
radial-gradient(circle at top, var(--page-glow-1), transparent 38%),
radial-gradient(circle at right top, var(--page-glow-2), transparent 30%),
var(--color-bg);
background-attachment: fixed;
text-rendering: optimizeLegibility; text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
} }
body.lang-zh { body.lang-zh {
text-align: left; text-align: left;
} }
::selection {
background-color: var(--color-linkhbg);
color: var(--color-linkh);
}
main,
.text-space {
min-width: 0;
}
body a { body a {
color: var(--color-link); color: var(--color-link);
text-decoration: none; text-decoration: underline;
text-decoration-thickness: 0.08em;
text-underline-offset: 0.18em;
text-decoration-color: var(--color-link-line);
transition:
color 0.18s ease,
background-color 0.18s ease,
text-decoration-color 0.18s ease;
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
}
body a:visited {
color: var(--color-link);
} }
.text-space a:hover { .text-space a:hover {
background-color: var(--color-linkhbg); background-color: var(--color-linkhbg);
color: var(--color-linkh); color: var(--color-linkh);
text-decoration: none; text-decoration-color: transparent;
} border-radius: 0.2rem;
details {
background-color: var(--color-linkhbg);
}
summary:hover {
cursor: pointer;
} }
/*mathML*/ body a:focus-visible {
.htmlmathparagraph, mtext,math { outline: 2px solid var(--color-link);
font-family: Lete Sans Math; outline-offset: 3px;
border-radius: 0.25rem;
} }
details {
margin: 1.25rem 0;
padding: 0.85rem 1rem;
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
}
details[open] summary {
margin-bottom: 0.75rem;
}
details > :last-child {
margin-bottom: 0;
}
summary {
font-weight: 700;
}
summary:hover {
cursor: pointer;
color: var(--color-linkh);
}
/* mathML */
.htmlmathparagraph,
mtext,
math {
font-family: "Lete Sans Math";
}
.math-container, .math-container,
#math-container { #math-container {
display: block; display: block;
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
padding: .5em; padding: 0.5em;
} }
.math-container.math-container-tagged { .math-container.math-container-tagged {
@@ -72,7 +173,7 @@ summary:hover {
align-items: center; align-items: center;
column-gap: 1rem; column-gap: 1rem;
overflow: visible; overflow: visible;
padding: .5em 0; padding: 0.5em 0;
} }
.math-container.math-container-tagged .math-tag-spacer { .math-container.math-container-tagged .math-tag-spacer {
@@ -83,7 +184,7 @@ summary:hover {
min-width: 0; min-width: 0;
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
padding: .5em 0; padding: 0.5em 0;
} }
.math-container.math-container-tagged .math-tag { .math-container.math-container-tagged .math-tag {
@@ -105,6 +206,7 @@ summary:hover {
} }
p { p {
margin: 0 0 1rem;
hyphens: auto; hyphens: auto;
} }
@@ -117,21 +219,25 @@ header {
font-family: "IosevkaC", sans-serif; font-family: "IosevkaC", sans-serif;
} }
/* top bar*/
.navbar { .navbar {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
gap: 1rem;
}
.navright {
display: flex;
flex-wrap: wrap;
} }
.navright a { .navright a {
margin: 0 0 0 1em; margin: 0 0 0 1em;
} }
/* Links inside the navbar */
.navbar a { .navbar a {
text-decoration: none;
color: var(--color-text); color: var(--color-text);
text-decoration: none;
} }
.navbar a:visited { .navbar a:visited {
@@ -139,37 +245,32 @@ header {
} }
nav { nav {
margin-bottom: 1.5rem;
padding-bottom: 0.75rem;
text-align: right; text-align: right;
border-bottom: solid 1px var(--color-text); border-bottom: 1px solid var(--color-border-strong);
} }
nav a { nav a {
font-size: 1.2rem; display: inline-flex;
/*margin-left: 0.5em;*/ align-items: center;
display: inline-block;
vertical-align: middle; vertical-align: middle;
font-size: 1.05rem;
text-decoration: none; text-decoration: none;
} }
.uri { .uri {
word-wrap: break-word; overflow-wrap: anywhere;
/* Legacy support */ word-break: break-word;
overflow-wrap: break-word;
/* Modern property */
word-break: break-all;
/* Break long words if necessary */
white-space: normal; white-space: normal;
/* Allow wrapping */
} }
footer { footer {
color: var(--color-text); margin-top: 3rem;
font-size: 0.8rem; padding-right: 0.2rem;
margin-top: 2em; color: var(--color-tag1);
font-size: 0.82rem;
text-align: right; text-align: right;
padding-right: 1em;
} }
h1, h1,
@@ -179,47 +280,63 @@ h4,
h5, h5,
h6 { h6 {
text-align: left; text-align: left;
text-wrap: balance;
} }
.pagetitle { .pagetitle {
margin: 0;
font-size: 2rem; font-size: 2rem;
font-weight: normal; font-weight: 400;
font-style: normal; font-style: normal;
text-align: left; text-align: left;
line-height: 100%; line-height: 1;
letter-spacing: -0.03em;
} }
h1 { h1 {
margin-top: 1em; margin-top: 1.5rem;
margin-bottom: 0.75rem;
font-size: 1.44rem; font-size: 1.44rem;
font-weight: bold; font-weight: 700;
font-style: normal; font-style: normal;
text-align: left; line-height: 1.1;
line-height: 100%; letter-spacing: -0.02em;
} }
h2 { h2 {
margin-top: 1em; margin-top: 1.75rem;
margin-bottom: 0.7rem;
font-size: 1.2rem; font-size: 1.2rem;
font-weight: bold; font-weight: 700;
font-style: normal font-style: normal;
line-height: 1.2;
} }
h3 { h3 {
margin-top: 1em; margin-top: 1.5rem;
margin-bottom: 0.6rem;
font-size: 1rem; font-size: 1rem;
font-weight: bold; font-weight: 700;
font-style: normal font-style: normal;
line-height: 1.25;
}
h4,
h5,
h6 {
margin-top: 1.35rem;
margin-bottom: 0.55rem;
line-height: 1.3;
} }
article .header { article .header {
color: var(--color-tag1);
font-size: 1rem; font-size: 1rem;
font-style: normal; font-style: normal;
color: var(--color-tag1);
text-align: left; text-align: left;
letter-spacing: 0.02em;
} }
.info { .info {
color: var(--color-tag2); color: var(--color-tag2);
font-size: 1rem; font-size: 1rem;
@@ -239,196 +356,375 @@ article .header {
} }
section.body { section.body {
margin-top: 2rem; margin-top: 1.75rem;
}
section.body > :first-child {
margin-top: 0;
} }
.ascii-art { .ascii-art {
overflow-x: auto;
font-family: monospace; font-family: monospace;
line-height: normal; line-height: 1.2;
} }
blockquote { blockquote {
margin: 1rem 0; margin: 1.5rem 0;
padding: 0 0 0 1.5em; padding: 1rem 1.25rem;
border-left: 3px solid var(--color-bq); background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-left: 4px solid var(--color-bq);
border-radius: 0 1rem 1rem 0;
box-shadow: var(--color-shadow-soft);
} }
blockquote p { blockquote p {
margin: 0; margin: 0;
} }
ol { ol,
padding-left: 2em;
}
ul { ul {
list-style-type: square; margin: 0 0 1.1rem;
padding-left: 2em; padding-left: 2em;
} }
li {
margin-bottom: 0.15em;
}
table, ul {
list-style-type: square;
}
li {
margin-bottom: 0.3em;
padding-left: 0.15em;
}
li::marker {
color: var(--color-tag2);
}
table {
margin: 1.5rem 0;
border: 1px solid var(--color-border-strong);
border-collapse: collapse;
background-color: var(--color-surface-strong);
box-shadow: var(--color-shadow-soft);
}
th, th,
td { td {
border: 1px solid darkolivegreen; padding: 0.65rem 0.8rem;
border-collapse: collapse; border: 1px solid var(--color-border);
text-align: left; text-align: left;
vertical-align: top;
}
th {
background-color: var(--color-surface-muted);
}
tr:nth-child(even) td {
background-color: var(--color-surface);
} }
figure { figure {
display: flex; display: flex;
flex-flow: column; flex-flow: column;
padding: 5px; gap: 0.75rem;
margin: auto; padding: 0.9rem;
margin: 1.5rem auto;
max-width: 80%; max-width: 80%;
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: 1.25rem;
box-shadow: var(--color-shadow-soft);
} }
figure img {
border-radius: 0.9rem;
}
figcaption { figcaption {
/* font: italic smaller sans-serif; */ padding: 0 0.25rem;
padding: 3px; color: var(--color-tag1);
font-size: 0.92rem;
text-align: center; text-align: center;
} }
.caption { .caption {
display: none display: none;
} }
.centerimg img { .centerimg img {
margin: 0 auto 0 auto;
display: block; display: block;
margin: 0 auto;
} }
pre,
div.highlight, div.highlight {
pre code { margin: 1.5rem 0;
margin: auto; padding: 1rem 1.1rem;
padding: 10px;
overflow: auto; overflow: auto;
background-color: var(--code-bg);
border: 1px solid var(--code-border);
border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
}
pre code,
div.highlight pre,
div.highlight pre code {
display: block; display: block;
margin: 0;
padding: 0;
overflow: visible;
background: transparent;
border: 0;
box-shadow: none;
} }
code { code {
display: inline;
margin: 0;
padding: 0.12em 0.35em;
background-color: var(--code-bg);
border: 1px solid var(--code-border);
border-radius: 0.45rem;
font-family: "IosevkaC", monospace; font-family: "IosevkaC", monospace;
margin: 0 auto; font-size: 0.92em;
display: inline-block;
padding: 0px 2px;
border-radius: 2px;
font-variant-ligatures: none; font-variant-ligatures: none;
font-kerning: none; font-kerning: none;
text-rendering: optimizeSpeed; text-rendering: optimizeSpeed;
} }
.draft-notice { .draft-notice {
display: table;
margin: 1.5rem auto;
padding: 0.85rem 1rem;
color: var(--color-notice); color: var(--color-notice);
margin: 1em auto; text-align: center;
text-align: center background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-left: 4px solid var(--color-notice);
border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
} }
.subtitle { .subtitle {
text-align: left; margin-top: 0.5rem;
color: var(--color-tag1);
font-size: 1.2rem; font-size: 1.2rem;
margin-top: 0 line-height: 1.4;
text-align: left;
} }
.subtitle p {
margin: 0.2rem 0;
}
.gallery { .gallery {
margin-top: 2em;
display: grid; display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 12px; gap: 1rem;
margin-top: 2em;
} }
.gallery img { .gallery img {
display: block;
width: 100%; width: 100%;
max-width: 320px; max-width: 320px;
display: block; border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
} }
/* phones -- no sidebar no sidenotes*/ hr {
@media (max-width: 768px) { margin: 2rem 0;
body { border: 0;
/* width: 90%; */ border-top: 1px solid var(--color-border-strong);
margin: auto;
padding: 0 5%;
text-align: left;
max-width: 876px;
}
mjx-container[display="true"]
/*, .katex-display */ {
overflow-x: auto;
overflow-y: hidden;
}
/* .katex-display>.katex>.katex-html>.tag {
display: inline-block;
position: relative;
padding-left: 10pt;
} */
} }
.toc { .toc {
display: none; display: none;
} }
/* sidebar. no sidenotes */ /* phones: no sidebar, no sidenotes */
@media (max-width: 768px) {
body {
max-width: 876px;
margin: auto;
padding: 1rem 5% 3rem;
text-align: left;
background-attachment: scroll;
}
mjx-container[display="true"] {
overflow-x: auto;
overflow-y: hidden;
}
figure {
max-width: 100%;
}
}
/* sidebar, no sidenotes */
@media (min-width: 769px) { @media (min-width: 769px) {
body { body {
max-width: 1350px; display: flex;
display: -webkit-flex;
-webkit-flex-flow: row wrap;
display: -ms-flexbox;
-ms-flex-flow: row wrap;
flex-flow: row wrap; flex-flow: row wrap;
width: 95%; width: 95%;
padding-right: 5%; max-width: 1350px;
margin: auto; margin: auto;
padding: 1.5rem 5% 3rem 0;
} }
.toc { .toc {
margin-top: 5rem; display: inline-block;
width: 33%;
margin-top: 4.5rem;
margin-left: 0; margin-left: 0;
margin-right: 0; margin-right: 0;
width: 33%;
display: inline-block;
} }
div#contents ul, div#contents ul,
div#contents-big ul { div#contents-big ul {
margin-top: 0.5em; margin-top: 0.3em;
margin-bottom: 0.5em; margin-bottom: 0.3em;
padding-left: 1em; margin-left: 0.1rem;
line-height: 1.2; padding-left: 1.45rem;
line-height: 1.25;
list-style-type: decimal; list-style-type: decimal;
margin-left: 0
} }
div#contents-big ul ul { div#contents-big ul ul {
list-style-type: none; list-style-type: none;
margin-top: 0.15rem;
margin-left: 0.2rem;
padding-left: 0.8rem;
border-left: 1px solid var(--color-border);
} }
div#contents-big li+li { div#contents-big li + li {
margin-top: 0.5em margin-top: 0.18rem;
}
div#contents-big li::marker {
color: var(--color-tag1);
font-family: "IosevkaC", sans-serif;
} }
div#contents-big { div#contents-big {
font-size: 80%;
padding-top: 0;
padding-left: 1rem;
text-align: left;
max-width: 60%;
clear: both;
margin-right: 4em;
position: sticky; position: sticky;
top: 5rem; top: 6rem;
left: 100% max-height: calc(100vh - 7rem);
max-height: calc(100dvh - 7rem);
left: 100%;
clear: both;
display: flex;
flex-direction: column;
max-width: 68%;
margin-right: 4em;
padding: 0.8rem;
background-color: var(--color-surface);
background-clip: padding-box;
border: 1px solid var(--color-border);
border-radius: 1.25rem;
box-shadow: var(--color-shadow-soft);
backdrop-filter: blur(14px);
font-size: 80%;
text-align: left;
}
div#contents-big .toc-scroll {
min-height: 0;
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-gutter: stable;
scrollbar-width: thin;
scrollbar-color: var(--color-border-strong) transparent;
}
div#contents-big .toc-scroll::-webkit-scrollbar {
width: 0.7rem;
}
div#contents-big .toc-scroll::-webkit-scrollbar-track {
margin-block: 0.45rem;
background: transparent;
}
div#contents-big .toc-scroll::-webkit-scrollbar-thumb {
background-color: var(--color-border-strong);
border: 0.18rem solid transparent;
border-radius: 999px;
background-clip: content-box;
}
div#contents-big .toc-scroll::-webkit-scrollbar-thumb:hover {
background-color: var(--color-tag1);
} }
div#contents-big .mini-header { div#contents-big .mini-header {
font-weight: bold; margin: 0 0 0.45rem;
margin: 0; color: var(--color-tag1);
font-weight: 700;
font-variant: small-caps; font-variant: small-caps;
letter-spacing: 0.08em;
}
div#contents-big a {
color: var(--color-text);
text-decoration: none;
}
div#contents-big li > a {
display: block;
margin: 0 0.2rem;
padding: 0.14rem 0.32rem;
border-radius: 0.55rem;
border: 1px solid transparent;
transition:
color 0.18s ease,
background-color 0.18s ease,
border-color 0.18s ease,
transform 0.18s ease;
}
div#contents-big a:visited {
color: var(--color-text);
}
div#contents-big a:hover {
background-color: var(--color-linkhbg);
color: var(--color-linkh);
}
div#contents-big li > a:hover,
div#contents-big li > a:focus-visible {
border-color: var(--color-border);
transform: translateX(2px);
}
div#contents-big li > a:focus-visible,
div#contents-big .mini-header a:focus-visible {
outline: 2px solid var(--color-link);
outline-offset: 2px;
}
div#contents-big .mini-header a {
display: inline;
margin-left: 0.25rem;
color: var(--color-link);
font-size: 0.85rem;
line-height: 1;
vertical-align: baseline;
transition: color 0.18s ease;
}
div#contents-big .mini-header a:hover {
background-color: transparent;
color: var(--color-linkh);
transform: none;
} }
.text-space { .text-space {
@@ -437,7 +733,8 @@ code {
max-width: 875px; max-width: 875px;
} }
} }
/* sidebar+sidenotes */
/* sidebar + sidenotes */
@media (min-width: 1200px) { @media (min-width: 1200px) {
body { body {
width: 75%; width: 75%;
@@ -446,7 +743,6 @@ code {
} }
@media print { @media print {
.no-print, .no-print,
.no-print * { .no-print * {
display: none !important; display: none !important;
@@ -454,5 +750,16 @@ code {
body { body {
margin: auto; margin: auto;
background: white;
}
blockquote,
details,
div#contents-big,
figure,
pre,
div.highlight,
table {
box-shadow: none;
} }
} }

View File

@@ -1,35 +1,79 @@
:root {
code.sourceCode --syntax-alert: #c2410c;
{ --syntax-annotation: #0f766e;
background: inherit --syntax-attribute: #2563eb;
--syntax-number: #7c3aed;
--syntax-control: #4d7c0f;
--syntax-char: #0f766e;
--syntax-constant: #9f1239;
--syntax-comment: #7b8794;
--syntax-doc: #b45309;
--syntax-type-bg: #efe7ff;
--syntax-error: #dc2626;
--syntax-function: #0f4c81;
--syntax-import: #0d9488;
--syntax-preprocessor: #92400e;
--syntax-special: #0369a1;
--syntax-string: #15803d;
--syntax-variable: #1d4ed8;
} }
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
code span.al { color: #CB4B16; font-weight: bold; } /* Alert */ @media (prefers-color-scheme: dark) {
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ :root {
code span.at { color: #7d9029; } /* Attribute */ --syntax-alert: #fdba74;
code span.bn { color: #D33682; } /* BaseN */ --syntax-annotation: #99f6e4;
code span.bu { } /* BuiltIn */ --syntax-attribute: #93c5fd;
code span.cf { color: #5F8700; font-weight: bold; } /* ControlFlow */ --syntax-number: #d8b4fe;
code span.ch { color: #16801a; } /* Char */ --syntax-control: #bef264;
code span.cn { color: #880000; } /* Constant */ --syntax-char: #86efac;
code span.co { color: #93A1A1; font-style: italic; } /* Comment */ --syntax-constant: #fda4af;
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ --syntax-comment: #94a3b8;
code span.do { color: #ba2121; font-style: italic; } /* Documentation */ --syntax-doc: #fcd34d;
code span.dt { background-color: #f8edff; } /* DataType */ --syntax-type-bg: rgba(216, 180, 254, 0.16);
code span.dv { color: #D33682; } /* DecVal */ --syntax-error: #f87171;
code span.er { color: #D30102; font-weight: bold; } /* Error */ --syntax-function: #bfdbfe;
code span.ex { } /* Extension */ --syntax-import: #5eead4;
code span.fl { color: #D33682; } /* Float */ --syntax-preprocessor: #fdba74;
code span.fu { } /* Function */ --syntax-special: #7dd3fc;
code span.im { color: #D70000} /* Import */ --syntax-string: #86efac;
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ --syntax-variable: #c4b5fd;
code span.kw { font-weight: bold; } /* Keyword */ }
code span.op { font-weight: bold; } /* Operator */ }
code span.ot { font-weight: bold; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */ code.sourceCode {
code span.sc { color: #4070a0; } /* SpecialChar */ background: inherit;
code span.ss { color: #bb6688; } /* SpecialString */ }
code span.st { color: #16801a; } /* String */
code span.va { color: #19177c; } /* Variable */ pre > code.sourceCode > span > a:first-child::before {
code span.vs { color: #4070a0; } /* VerbatimString */ text-decoration: underline;
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ }
code span.al { color: var(--syntax-alert); font-weight: 700; }
code span.an { color: var(--syntax-annotation); font-weight: 700; font-style: italic; }
code span.at { color: var(--syntax-attribute); }
code span.bn { color: var(--syntax-number); }
code span.bu { color: var(--syntax-function); }
code span.cf { color: var(--syntax-control); font-weight: 700; }
code span.ch { color: var(--syntax-char); }
code span.cn { color: var(--syntax-constant); }
code span.co { color: var(--syntax-comment); font-style: italic; }
code span.cv { color: var(--syntax-annotation); font-weight: 700; font-style: italic; }
code span.do { color: var(--syntax-doc); font-style: italic; }
code span.dt { background-color: var(--syntax-type-bg); }
code span.dv { color: var(--syntax-number); }
code span.er { color: var(--syntax-error); font-weight: 700; }
code span.ex { color: var(--syntax-function); }
code span.fl { color: var(--syntax-number); }
code span.fu { color: var(--syntax-function); }
code span.im { color: var(--syntax-import); }
code span.in { color: var(--syntax-annotation); font-weight: 700; font-style: italic; }
code span.kw { color: var(--syntax-control); font-weight: 700; }
code span.op { color: var(--syntax-function); font-weight: 700; }
code span.ot { color: var(--syntax-special); font-weight: 700; }
code span.pp { color: var(--syntax-preprocessor); }
code span.sc { color: var(--syntax-special); }
code span.ss { color: var(--syntax-number); }
code span.st { color: var(--syntax-string); }
code span.va { color: var(--syntax-variable); }
code span.vs { color: var(--syntax-special); }
code span.wa { color: var(--syntax-annotation); font-weight: 700; font-style: italic; }

View File

@@ -19,127 +19,148 @@ body {
.sidenote, .sidenote,
.marginnote, .marginnote,
.marginnote-left { .marginnote-left {
position: relative;
float: right; float: right;
clear: right; clear: right;
margin-right: -42%;
width: 36%; width: 36%;
margin-top: 0.3rem; margin-top: 0.45rem;
margin-right: -42%;
margin-bottom: 0; margin-bottom: 0;
font-size: 0.8em; padding: 0.85rem 1rem;
line-height: 1.2; background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
backdrop-filter: blur(14px);
vertical-align: baseline; vertical-align: baseline;
position: relative; font-size: 0.82em;
line-height: 1.45;
text-align: left; text-align: left;
} }
@media (max-width: 1200px) { @media (max-width: 1200px) {
.sidenote, .sidenote,
.marginnote, .marginnote,
.marginnote-left { .marginnote-left {
margin-right: -40%;
width: 33%; width: 33%;
margin-right: -40%;
} }
} }
.marginnote-left { .marginnote-left {
position: relative;
float: left; float: left;
clear: left; clear: left;
margin-left: -32%;
width: 25%; width: 25%;
position: relative; margin-left: -32%;
text-align: right; text-align: right;
} }
/* The first condition is for the case of a left-aligned layout (on a
smaller screen), and the second condition for a more centered layout /* The first condition is for the case of a left-aligned layout
on a larger screen. It's a bit awkward, sadly :/ */ (on a smaller screen), and the second condition for a more centered
@media (max-width: 1349px) or ((min-width: 1367px) and (max-width: 1620px)) { layout on a larger screen. */
@media (max-width: 1349px), (min-width: 1367px) and (max-width: 1620px) {
.marginnote-left { .marginnote-left {
margin-left: -33%;
width: 30%; width: 30%;
margin-left: -33%;
} }
} }
.sidenote code { .sidenote > :first-child,
font-size: 0.94em; .marginnote > :first-child,
.marginnote-left > :first-child {
margin-top: 0;
} }
/* For some reason, although only `overflow-x` is set in `default.css`, .sidenote > :last-child,
block code in side and marginnotes gets a vertical (!) scrollbar no .marginnote > :last-child,
matter what; disable that. .marginnote-left > :last-child {
*/ margin-bottom: 0;
}
.sidenote code {
font-size: 0.92em;
}
/* Block code in side and margin notes gets a vertical scrollbar on some
browsers; disable that. */
div .marginnote pre, div .marginnote pre,
div .sidenote pre { div .sidenote pre {
margin: 0.75rem 0;
overflow-y: hidden; overflow-y: hidden;
} }
.sidenote-number { .sidenote-number {
counter-increment: sidenote-counter;
color: var(--color-link); color: var(--color-link);
counter-increment: sidenote-counter;
font-family: "IosevkaC", sans-serif;
} }
.sidenote-number:after, .sidenote-number:after,
.sidenote:before { .sidenote:before {
position: relative; position: relative;
vertical-align: baseline; vertical-align: baseline;
color: var(--color-link);
font-family: "IosevkaC", sans-serif;
} }
.sidenote-number:after { .sidenote-number:after {
content: counter(sidenote-counter); content: counter(sidenote-counter);
font-size: 0.8rem;
top: -0.5rem; top: -0.5rem;
font-size: 0.8rem;
font-weight: 700;
} }
/* Properly position siednote number and adjust position of sidenote /* Properly position sidenote number and adjust position of sidenote
paragraphs: paragraphs:
https://github.com/edwardtufte/tufte-css/issues/93#issuecomment-670695382 https://github.com/edwardtufte/tufte-css/issues/93#issuecomment-670695382
*/ */
.sidenote::before { .sidenote::before {
content: counter(sidenote-counter) " "; content: counter(sidenote-counter) " ";
font-size: 0.8rem;
top: -0.55rem;
position: absolute; position: absolute;
top: -0.55rem;
right: calc(100% + 0.5em); right: calc(100% + 0.5em);
font-size: 0.8rem;
font-weight: 700;
} }
.sidenote p { .sidenote p {
margin: 1em 0; margin: 0.85em 0;
} }
.sidenote p:first-child {
margin-top: 0;
}
.sidenote p:last-child {
margin-bottom: 0;
}
/* */
input.margin-toggle { input.margin-toggle {
display: none; display: none;
} }
label.sidenote-number { label.sidenote-number {
display: inline-block; display: inline-block;
max-height: 2rem; /* should be less than or equal to paragraph line-height */ max-height: 2rem;
} }
label.margin-toggle:not(.sidenote-number) { label.margin-toggle:not(.sidenote-number) {
display: none; display: none;
color: var(--color-link);
font-family: "IosevkaC", sans-serif;
} }
.iframe-wrapper { .iframe-wrapper {
position: relative; position: relative;
padding-bottom: 56.25%; /* 16:9 */
padding-top: 25px;
height: 0; height: 0;
padding-top: 25px;
padding-bottom: 56.25%;
overflow: hidden;
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: 1rem;
box-shadow: var(--color-shadow-soft);
} }
.iframe-wrapper iframe { .iframe-wrapper iframe {
position: absolute; position: absolute;
top: 0; inset: 0;
left: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
border: 0;
} }
@media (max-width: 1200px) { @media (max-width: 1200px) {
@@ -153,23 +174,24 @@ label.margin-toggle:not(.sidenote-number) {
display: none; display: none;
} }
/* Linkify sidenotes iff they are clickable */ /* Linkify sidenotes iff they are clickable. */
.margin-toggle, .margin-toggle,
.sidenote-number:after { .sidenote-number:after {
color: var(--color-link); color: var(--color-link);
text-decoration: none; text-decoration: underline;
text-decoration-color: var(--color-link-line);
} }
.margin-toggle:checked + .sidenote, .margin-toggle:checked + .sidenote,
.margin-toggle:checked + .marginnote, .margin-toggle:checked + .marginnote,
.margin-toggle:checked + .marginnote-left { .margin-toggle:checked + .marginnote-left {
display: block; position: relative;
float: left; float: left;
left: 1rem; left: 1rem;
clear: both; clear: both;
display: block;
width: 95%; width: 95%;
margin: 1rem 2.5%; margin: 1rem 2.5%;
position: relative;
text-align: left; text-align: left;
} }

View File

@@ -10,11 +10,12 @@ $partial("templates/head.html")$
<!-- A table of contents on the left side, but only for screens <!-- A table of contents on the left side, but only for screens
that are big enough --> that are big enough -->
<div id="contents-big"> <div id="contents-big">
<p class="mini-header">Notes <a id="up-arrow" href="/"></a></p> <p class="mini-header"> <a href="#">Contents</a></p>
<p class="mini-header">Contents <a id="up-arrow" href="#"></a></p> <div class="toc-scroll">
$toc$ $toc$
</div> </div>
</div> </div>
</div>
<div class="text-space"> <div class="text-space">
<main role="main"> <main role="main">
<h1 class="pagetitle">$title$</h1> <h1 class="pagetitle">$title$</h1>