/* layout: no top bar on desktop, the sidebar carries logo and search, no dividers anywhere, a narrow reading column */ :root, :root[data-theme="light"] { --sl-content-width: 38rem; --sl-sidebar-width: 18.5rem; --sl-sidebar-pad-x: 3rem; /* one top inset shared by sidebar, content and table of contents */ --docs-top: 4.5rem; --sl-color-hairline: transparent; --sl-color-hairline-light: transparent; --sl-color-hairline-shade: transparent; } @media (min-width: 50rem) { :root[data-has-sidebar] { --sl-nav-height: 0rem; } :root[data-has-sidebar] .header { display: none; } } /* the landing page keeps a header, but it scrolls away with the page */ :root:not([data-has-sidebar]) .header { position: absolute; background: transparent; } .docs-header, .docs-header-end { display: flex; align-items: center; gap: 0.5rem; } .docs-header { justify-content: space-between; height: 100%; } ::selection { background-color: var(--color-background-info-subtle-hover); color: var(--color-foreground-default); } /* sidebar */ @media (min-width: 50rem) { .sidebar-content { padding-top: var(--docs-top); gap: 1.25rem; } :root[data-has-sidebar] main > .content-panel:first-of-type { padding-top: var(--docs-top); } .right-sidebar-panel { padding-top: var(--docs-top); } :root[data-has-sidebar] main > .content-panel:first-of-type h1 { margin-top: 0; } } .sidebar-top { align-items: center; justify-content: space-between; } .sidebar-top .site-title img { height: 1.75rem; width: auto; } /* search: a pill at the top of the sidebar that opens the search dialog */ .sidebar-search button[data-open-modal] { display: flex; width: 100%; height: 2rem; max-width: none; gap: 0.5rem; padding-inline: 0.75rem; border: 1px solid var(--color-border-default); border-radius: 9999px; background-color: var(--color-background-default); color: var(--color-foreground-subtle); font-size: 0.875rem; } .sidebar-search button[data-open-modal]:hover { border-color: var(--color-border-strong); color: var(--color-foreground-muted); } .sidebar-search button[data-open-modal] > span { display: block; } .sidebar-search button[data-open-modal] kbd { margin-inline-start: auto; background: transparent; color: var(--color-foreground-subtle); } site-search dialog { margin-top: 12vh; border: 1px solid var(--color-border-default); border-radius: 1rem; background-color: var(--color-background-default); box-shadow: 0 24px 48px -12px var(--color-shadow-ambient-strong); } site-search dialog::backdrop { background-color: color-mix(in srgb, var(--color-foreground-default) 18%, transparent); -webkit-backdrop-filter: none; backdrop-filter: none; } /* the nav: one size throughout, bold group headings, whitespace between groups */ .docs-nav { font-size: 0.875rem; line-height: 1.25rem; } .docs-nav ul { list-style: none; margin: 0; padding: 0; } .docs-nav > * + * { margin-top: 1.75rem; } .docs-nav h2, .docs-nav h3 { margin: 0 0 0.25rem; font-size: inherit; line-height: inherit; color: var(--color-foreground-default); } .docs-nav h2 { font-weight: var(--font-weight-semibold); } .docs-nav h3 { font-weight: var(--font-weight-medium); } .docs-nav .subgroup { margin-block: 0.75rem; } .docs-nav a { display: block; padding-block: 0.25rem; color: var(--color-foreground-muted); text-decoration: none; } .docs-nav a:hover { color: var(--color-foreground-default); } .docs-nav a[aria-current="page"] { color: var(--color-foreground-default); font-weight: var(--font-weight-medium); } /* content: markup.css does the typography. what's left is fitting it around the elements starlight adds */ /* starlight wraps each heading with its anchor link. the rule under a readme's h1 and h2 goes on the wrapper, so it spans the column */ .markup .sl-heading-wrapper { margin-top: var(--spacing-xl); margin-bottom: var(--spacing-sm); } .markup .sl-heading-wrapper > :is(h1, h2, h3, h4, h5, h6) { margin: 0; border: 0; padding: 0; } .markup .sl-heading-wrapper:is(.level-h1, .level-h2) { border-bottom: 1px solid var(--color-border-default); padding-bottom: var(--spacing-xs); } .markup > :first-child, .markup > .sl-heading-wrapper:first-child { margin-top: 0; } /* the anchor link, shown as tangled.org's `#` on hover */ .markup .sl-anchor-link { margin-inline-start: var(--spacing-xs); color: var(--color-foreground-placeholder); text-decoration: none; opacity: 0; transition: opacity 150ms; } .markup .sl-heading-wrapper:hover .sl-anchor-link, .markup .sl-anchor-link:focus-visible { opacity: 1; } .markup .sl-anchor-link svg { display: none; } .markup .sl-anchor-link::before { content: "#"; } /* asides, styled like tangled.org's github alerts */ .markup .starlight-aside { margin-block: var(--spacing-sm); padding: 0 0 0 var(--spacing-md); border: 0; border-inline-start: 2px solid var(--color-border-default); background: transparent; } .markup .starlight-aside__title { gap: 0; font-size: inherit; font-weight: var(--font-weight-semibold); } .markup .starlight-aside__icon { display: none; } .markup .starlight-aside--note, .markup .starlight-aside--tip { border-color: var(--color-background-info-emphasis); } .markup .starlight-aside--note .starlight-aside__title { color: var(--color-foreground-info); } .markup .starlight-aside--tip { border-color: var(--color-background-success-emphasis); } .markup .starlight-aside--tip .starlight-aside__title { color: var(--color-foreground-success); } .markup .starlight-aside--caution { border-color: var(--color-background-warning-emphasis); } .markup .starlight-aside--caution .starlight-aside__title { color: var(--color-foreground-warning); } .markup .starlight-aside--danger { border-color: var(--color-background-danger-emphasis); } .markup .starlight-aside--danger .starlight-aside__title { color: var(--color-foreground-danger); } /* next/previous links, as plain text */ .pagination-links a { border: 0; box-shadow: none; padding: var(--spacing-xs) 0; text-decoration: none; } .pagination-links a .link-title { font-size: 0.9375rem; font-weight: var(--font-weight-medium); } /* expressive code sets its own size on pre; markup.css sizes code at 0.875em of pre, so pre takes the body size and code lands on tangled.org's 13px */ .markup .expressive-code pre { font-size: 0.9375rem; } /* starlight sizes the heading wrapper with its own scale, which the anchor link inherits; match each level to the heading markup.css gives it */ .markup .sl-heading-wrapper.level-h1 { font-size: 1.5rem; } .markup .sl-heading-wrapper.level-h2 { font-size: 1.25rem; } .markup .sl-heading-wrapper.level-h3 { font-size: 1rem; } .markup .sl-heading-wrapper:is(.level-h4, .level-h5, .level-h6) { font-size: 0.8125rem; } /* starlight lets inline code break anywhere; in a table that splits short identifiers mid-word, so keep them whole and let the table scroll instead */ .markup :is(td, th) code { overflow-wrap: normal; white-space: nowrap; }