Type specimen
This page exists to be looked at, not read. It exercises every element the templates render, so a change to sass/style.scss can be checked against one page instead of against a memory of what the site used to look like.
The palette is Bonfire, committed in the Thylacine tree at docs/UTOPIA-VISUAL.md §1. Its background is #0e0c0c – not red, not warm grey, but near-black with a barely perceptible red cast, the way darkness looks when a fire a few hundred metres away cannot illuminate anything and only shifts the colour temperature of the air.
Prose
Body text is fg, #e4ddd8. Emphasis and strong carry the usual weight. Inline code such as burrow_attach sits on the lifted surface tone. Links look like this and underline on hover.
A blockquote takes the ember rule on its left edge. The shell yields commands to the kernel; every invocation is a derivation, which is what the mark means.
Footnotes work and land at the bottom of the article.1
Like so. The return arrow is generated by the markdown renderer.
A third-level heading
Every heading gets an anchor link, so a paragraph deep in a long article stays addressable. Hover a heading to see it.
- Ordered lists number themselves.
- And nest:
- like this,
- and this.
Code
Highlighting comes from a Bonfire theme in extra/bonfire.json, rendered as CSS classes rather than inline styles. The colours are the committed palette, so a code block here and the same code in nora are the same colours – not an approximation of them.
/// The client half of the graphics protocol.
pub struct Surface {
weave: Fd,
slots: usize,
generation: u32,
}
impl Surface {
pub fn present(&mut self, rect: Rect) -> Result<(), TapError> {
let tag = self.ring.submit(Op::Present { rect, slot: self.slot })?;
loop {
match self.ring.reap()? {
Some(cqe) if cqe.tag == tag => break,
Some(cqe) => self.pending.push(cqe),
None => continue,
}
}
self.slot = (self.slot + 1) % self.slots;
Ok(())
}
}/* Extinction Level Event -- the thematic name for a kernel panic. */
void
extinction(const char *msg)
{
int cpu = cpu_id();
if (g_extinction_depth[cpu]++ > 0)
_hang();
uart_puts("\nEXTINCTION: ");
uart_puts(msg);
uart_puts("\n");
halls_dump();
_hang();
}[markdown.highlighting]
style = "class"
theme = "bonfire"
extra_themes = ["extra/bonfire.json"]# The SMP soundness gate. Single boots lie.
tools/ci-smp-gate.sh
SMP_GATE_CONFIGS="default-smp4 ubsan-smp4" tools/ci-smp-gate.shA block with no language declared falls back to plain text:
Thylacine v0.1-dev booting...
arch: arm64
cpus: 4
Thylacine boot OKTables
| Role | Hex | Use |
|---|---|---|
bg | #0e0c0c | Warm near-black |
fg | #e4ddd8 | Primary text |
ember | #e07840 | The prompt glyph, the cursor, the fire |
slate | #8a9ac8 | Keywords, control flow |
dusk | #a898c8 | String literals |
smoke | #7a8a7a | Comments |
Wide tables scroll inside their own container rather than pushing the page sideways.
A horizontal rule above. Below it, the end of the specimen.