// spec.sr.ht stylesheet. // // Mirrors the SourceHut service pattern (see paste.sr.ht/scss/main.scss and // compare.sr.ht/scss/main.scss): pull in the shared `base` partial (Bootstrap 4 // plus the SourceHut chrome — contrast, variables, nav, events, highlight, // dark) and then add only what is unique to the document views. // // Build: `make css`, which is `sassc -I /usr/share/sourcehut/scss scss/main.scss` // plus minify plus a content-hashed filename. The shared partials come from // core.sr.ht's `make install`; dart-sass works too for a local build. // // The output is EMBEDDED INTO THE BINARY (web/templates.go's //go:embed static), // so `make css` alone does not restyle a running daemon: build the CSS, then // `go build`, then restart. @import "base"; // Let scheme-aware widgets follow prefers-color-scheme, as compare.sr.ht does. :root { color-scheme: light dark; } // ---- Rendered document ---------------------------------------------------- .spec-doc { // Prose, not code: a comfortable measure matters more than filling the // column. The sidebar already takes a quarter of the width, so this only // bites on very wide screens. max-width: 46rem; h1, h2, h3, h4, h5, h6 { margin-top: 1.5rem; } // The first heading sits directly under the page title; the extra top margin // reads as a gap rather than as structure. > :first-child { margin-top: 0; } blockquote { padding-left: 0.75rem; border-left: 3px solid $gray-400; color: $gray-700; @media (prefers-color-scheme: dark) { border-left-color: $gray-700; color: $gray-300; } } table { @extend .table; width: auto; } img { max-width: 100%; } } // A wikilink that resolved to nothing. The renderer emits it as a span rather // than dropping it, so the read plane doubles as a link checker — which only // works if it is visibly different from a link that resolved. .wikilink-missing { color: $danger; text-decoration: line-through dotted; } // ---- Search --------------------------------------------------------------- .search-hit { margin-bottom: 0.75rem; } .search-snippet { color: $gray-700; // bleve wraps matched terms in ; the browser default is a yellow that // is unreadable on the dark chrome. mark { padding: 0; background: transparent; color: inherit; font-weight: 700; } @media (prefers-color-scheme: dark) { color: $gray-300; } }