/style

Every element this blog can render, in one place. I check it after changing the CSS or messing with the layout, and you're welcome to have a look too.

Contents
  1. Palette
  2. Typography
  3. Inline elements
  4. Lists
  5. Quotes and callouts
  6. Table
  7. Code
  8. Collapsible
  9. Image
  10. Diagram
  11. Share card
  12. Maps
  13. Components
  14. Post page

Palette

light

  • --background#dde4c3
  • --foreground#0f380f
  • --foreground-soft#2b4a28
  • --accent#306230
  • --accent-foreground#dde4c3
  • --muted#c8d3a2
  • --muted-foreground#306230
  • --border#8bac0f
  • --pea#8bac0f
  • --pixel-shadow#306230
  • --led#c8231b

dark

  • --background#142a12
  • --foreground#d3dfb0
  • --foreground-soft#b5c495
  • --accent#9bbc0f
  • --accent-foreground#142a12
  • --muted#253f22
  • --muted-foreground#9bbc0f
  • --border#306230
  • --pea#306230
  • --pixel-shadow#0b1a09
  • --led#e0392f

Typography

Body text is set in IBM Plex Mono, titles and small labels in Press Start 2P. This paragraph is long enough to wrap a few times, so line height and measure can be judged at a glance on both a phone and a wide screen.

.pixel-title

/blog

.pixel-label

Recent posts

h2

Heading level 2

h3

Heading level 3

h4

Heading level 4

h5
Heading level 5
h6
Heading level 6

Inline elements

A link, bold, italic, both, strikethrough, inline code, Ctrl + C, DMG, highlighted text, H2O and E = mc2. A footnote reference sits at the end of this sentence.1

Lists

  • An unordered list
  • With a second item
    • And a nested one
    • With a sibling
  1. An ordered list
  2. With a second item
    1. And a nested one

Quotes and callouts

A plain blockquote. It can run over several lines and still read as one quotation.

Note

A note, for context worth knowing.

Tip

A tip, for an optional shortcut.

Important

Something the reader shouldn’t miss.

Warning

A warning, for when things can go wrong.

Caution

A caution, for when they will.

Table

ModelYearScreen
DMG19894-shade green
Pocket19964-shade grey
Color199856 colours

Code

type Greeting = { name: string };

export function hello({ name }: Greeting) {
  const message = `Hello, ${name}!`; 
  console.log(message);
}src/hello.ts
function boot() {
  return "Nintendo"; 
  return "Nintendo®"; 
}
pnpm install
pnpm run build

Long lines scroll sideways instead of wrapping:

pnpm exec astro build && pnpm exec pagefind --site dist --output-subdir pagefind --glob "**/*.html"

Collapsible

Click to expand

Hidden content, shown on demand.

Image

A calm blue lake under a clear sky, wooded hills on the far shore

Until an image arrives a pixel block blinks in its place, and a cross marks one that never does:

loading
failed

Diagram

How a post gets published: the Obsidian vault and src/content/posts sync both ways through Unison every minute; a git push runs astro build on Netlify, which makes the pages, share cards and search index; sirlisko.com/blog is built with the rest of the site

Share card

The preview shown when a page is shared. Posts get their own, with the post title on the screen.

The blog's share card: a Game Boy with the site title on its screen

Maps

Seven Sisters
Distance22.7 km
Elevation+783 m
Time7h 28m

Before Leaflet loads, and if it never does:

loading
failed

Components

<PostCard>
  • Autumn Cleaning

    A new resume, one style per page, a site-wide accessibility pass, the blog moved into the same repository, and a few improvements for the IndieWeb.

<PostDate>
.back-link
.menu-cursor
hover
.pixel-link
github
default
hover
.pixel-icon
default
hover
.pixel-button
Back to /blog
default
hover
pressed
.pixel-rule

Post page

The parts below every post. The back to top button is live on this page too, once you scroll.

<ReplyByEmail>

Spotted something off on this page?

<Webmentions>

Footnotes

  1. And this is the footnote. ↩