chadtmiller.com/knotless
git that lives in your Atmosphere account
7
/* Starlight in the pages' own look: its palette, type and links taken
from web/src/tokens.css, which change with the colour scheme as the
app's do. Starlight's light palette names its colours as its dark one
does, the strongest text `white` and the page `black`, so one mapping
holds in both. */
@import '../../web/src/tokens.css';
:root,
:root[data-theme='light'] {
--sl-color-white: var(--fg);
--sl-color-gray-1: var(--fg);
--sl-color-gray-2: var(--fg);
--sl-color-gray-3: var(--mute);
--sl-color-gray-4: var(--faint);
--sl-color-gray-5: var(--line);
--sl-color-gray-6: var(--soft);
--sl-color-gray-7: var(--panel);
--sl-color-black: var(--bg);
--sl-color-accent-low: var(--accent-soft);
--sl-color-accent: var(--primary);
--sl-color-accent-high: var(--accent);
--sl-color-bg-nav: var(--bg);
--sl-color-bg-sidebar: var(--bg);
--sl-color-hairline: var(--line);
--sl-color-hairline-light: var(--line);
--sl-color-hairline-shade: var(--line);
--sl-font: var(--font-sans);
--sl-font-mono: var(--font-mono);
--sl-line-height: var(--leading-prose);
/* Type on the pages' prose scale, not Starlight's larger one. */
--sl-text-body: var(--text-md);
--sl-text-h1: var(--text-3xl);
--sl-text-h2: var(--text-xl);
--sl-text-h3: var(--text-lg);
--sl-text-h4: var(--text-md);
--sl-text-h5: var(--text-md);
--sl-text-h6: var(--text-md);
}
h1, h2, h3, h4, h5, h6 {
font-weight: var(--weight-semibold);
letter-spacing: var(--tracking-tight);
}
/* A section's heading is ruled off, as in the pages' prose. */
.sl-markdown-content .level-h2 {
padding-bottom: var(--space-1-5);
border-bottom: var(--border);
}
/* The header: the pages' brand, in their mono. */
.brand {
display: flex;
align-items: baseline;
gap: var(--space-2);
font: var(--weight-semibold) var(--text-base) var(--font-mono);
color: var(--fg);
text-decoration: none;
white-space: nowrap;
}
.brand.section {
font-weight: var(--weight-normal);
color: var(--mute);
}
/* Links underlined quietly, as the pages' prose has them. */
.sl-markdown-content a:not(:where(.not-content *)) {
color: var(--fg);
text-decoration-color: var(--link-line);
text-underline-offset: var(--underline-offset);
}
.sl-markdown-content a:not(:where(.not-content *)):hover {
color: var(--fg);
text-decoration-color: currentColor;
}
/* Sidebar: the page one is on marked as the pages mark the tab one is on. */
.sidebar-content a[aria-current='page'] {
background: var(--accent-soft);
color: var(--fg);
font-weight: var(--weight-semibold);
}
/* Diagrams take the page's colours, as the repository pages' do. */
.sl-markdown-content .diagram {
line-height: normal;
overflow-x: auto;
--pele-bg: var(--bg);
--pele-fg: var(--fg);
--pele-muted: var(--mute);
--pele-line: var(--mute);
--pele-surface: var(--soft);
--pele-surface-alt: var(--panel);
--pele-border: var(--faint);
--pele-accent: var(--primary);
--pele-critical: var(--rem);
--pele-error: var(--rem);
--pele-font: var(--font-sans);
--pele-font-mono: var(--font-mono);
}
/* Reference: a table of names and what each does, drawn as a list of
them (reference.mjs), each name on a line of its own. */
.sl-markdown-content .ref-list {
margin-top: var(--space-4);
border-top: var(--border);
}
.sl-markdown-content .ref-list dt {
margin-top: 0;
padding-top: var(--space-4);
font-weight: var(--weight-normal);
}
.sl-markdown-content .ref-list dt code {
background: none;
padding: 0;
font-size: var(--text-md);
font-weight: var(--weight-semibold);
/* A signature breaks between its words, never inside a flag. */
overflow-wrap: normal;
word-break: normal;
}
.sl-markdown-content .ref-list dd {
margin: var(--space-1) 0 0;
padding-bottom: var(--space-4);
border-bottom: var(--border);
}
.sl-markdown-content .ref-list dd > * + * {
margin-top: var(--space-2);
}
.sl-markdown-content .ref-meta {
font-size: var(--text-sm);
color: var(--mute);
}
.ref-label {
font-size: var(--text-sm);
font-weight: var(--weight-medium);
color: var(--faint);
margin-right: var(--space-1);
}
/* An HTTP method, as a badge before its route. */
.method {
display: inline-block;
padding: 0 var(--space-1-5);
border-radius: var(--radius-sm);
font: var(--weight-semibold) var(--text-2xs) / 1.6 var(--font-mono);
letter-spacing: 0.02em;
vertical-align: 0.15em;
background: var(--accent-soft);
color: var(--accent);
}
.method-post {
background: var(--soft);
color: var(--green);
}
.method-ws {
color: var(--purple);
}
/* A method's lexicon, folded away under it. */
.sl-markdown-content .lexicon {
margin-top: var(--space-2);
border: var(--border);
border-radius: var(--radius-md);
font-size: var(--text-sm);
}
.sl-markdown-content .lexicon summary {
padding: var(--space-1-5) var(--space-3);
color: var(--mute);
cursor: pointer;
}
.sl-markdown-content .lexicon[open] summary {
border-bottom: var(--border);
}
.sl-markdown-content .lexicon > :not(summary) {
margin: var(--space-3);
}
.sl-markdown-content .lex-title {
font-weight: var(--weight-semibold);
color: var(--fg);
margin-bottom: var(--space-1) !important;
}
.sl-markdown-content .lex-fields {
display: table;
table-layout: fixed;
width: calc(100% - 2 * var(--space-3));
font-size: var(--text-sm);
}
.sl-markdown-content .lex-fields td {
vertical-align: top;
}
.lex-type {
display: block;
margin-top: var(--space-0-5);
color: var(--mute);
font-size: var(--text-xs);
}
.sl-markdown-content .lex-fields td:first-child {
width: 40%;
}
.sl-markdown-content .ref-list dt .word {
white-space: nowrap;
}
.sl-markdown-content .lex-source {
color: var(--mute);
}
/* The header's link to the repository, quiet as the pages' header links
are, and no divider after it: Starlight's sits before the theme
picker, which the docs leave out. */
.social-icons::after {
display: none;
}
.social-icons a {
color: var(--mute);
}
.social-icons a:hover {
color: var(--fg);
}