コンテンツにスキップ
まだあたたかい

Typography & Markdown: every text element this theme renders

A kitchen-sink reference for headings, lists, blockquotes, tables, inline formatting, footnotes, definition lists, callouts and more  Everified in both light and dark mode.

Reference 4 分で読めます

This post is the typography test page for the theme. If you change fonts, prose sizing, or anything in the prose-chirpy typography stack, load this page in both light and dark mode and confirm everything still looks balanced.

The theme’s body font is Source Sans 3, the code font is JetBrains Mono, and the prose column is capped at --width-prose (50 rem) so line lengths stay comfortable.

You can write bold, italic, strikethrough, inline code, and nested bold italic. Long URLs become clickable: visit astro.build. External links open in a new tab with rel="nofollow noopener" thanks to rehype-external-links.

Use the <kbd> tag for keyboard shortcuts: press Cmd + K or / to open the search modal.

“Typography is the craft of endowing human language with a durable visual form.”  E_Robert Bringhurst_

A second paragraph keeps the rhythm. Line height, vertical margin and maximum width are tuned for comfortable reading on both phone and desktop.

Headings are auto-slugged by rehype-slug and given hover anchors by rehype-autolink-headings  Ehover to the left of any heading on this page to reveal the # link.

The right-hand TOC reveals H3s only while you are scrolled inside the parent H2 section.

H4s are supported and styled, but they are dense  Ereach for them only when really needed.

Unordered list:

  • A first item with a link to the home page.
  • A second item with bold text and inline code.
  • A nested item:
    • With its own children.
    • And a deeper nested item.
      • Three levels deep, no problem.

Ordered list:

  1. Pick a topic.
  2. Outline it  EH2 for sections, H3 for subsections.
  3. Write a first draft straight through, no editing.
  4. Sleep on it.
  5. Edit ruthlessly.

GitHub-flavoured task list (thanks to remark-gfm):

  • Wire up Tailwind v4
  • Animated theme switcher
  • Bilingual routing
  • Reach the bottom of this page

A single-line blockquote.

A multi-line blockquote.

Nested quote that emphasises a sub-point  Eused rarely, but the theme handles it gracefully.

Continuing the outer quote after the nested fragment.

FeatureMarkdownMDXNotes
Headings✁E✁EH1–H4 with anchor links
Code blocks✁E✁EShiki dual theme
Components✁E<Callout> and friends
JS expressions✁E{new Date().toDateString()}
Footnotes✁E✁EGFM-style1

Use inline code for identifiers (SITE.showFeaturedImages) or short snippets (bun astro dev). Within tables and lists it stays readable thanks to a slightly muted background.

A short example  Ethe dedicated code blocks post covers every Expressive Code option in detail.

src/utils/posts.ts
import { getCollection, type CollectionEntry } from 'astro:content';
import { SITE, type Locale } from '../config';
export function shouldShowHero(post: CollectionEntry<'posts'>): boolean {
if (!post.data.heroImage) return false;
return post.data.showFeaturedImage ?? SITE.showFeaturedImages;
}

The theme ships an MDX <Callout> component with four semantic variants. They inherit daisyUI semantic colours, so they stay legible in both themes.

In plain Markdown, you can also reach for the lower-level CSS class:

Note: set toc: false in frontmatter to hide the table of contents on a per-post basis.

Inline Markdown images render edge-to-edge inside the prose column:

Light streaming through a window onto a wooden desk

A captioned figure with a <figcaption>:

A close-up of a MacBook keyboard
Photo by Ales Nesetril on Unsplash

Use them sparingly to mark a strong topic shift:


After a horizontal rule, anything that follows (text, code, images) gets a fresh top margin so the rhythm restarts cleanly.

Term : Definition for the term, rendered with a slight indent.

Another term : With a longer definition spread across multiple lines, useful for glossary-style content. Definition lists come from remark-gfm / plain Markdown extensions and are styled by the prose stack.

For full LaTeX math you must opt in with math: true (see the math post). This page intentionally omits that flag so we can verify that without it, KaTeX styles do not load.

If anything here looks off  Euneven spacing, oversized headings, unreadable code colours in dark mode  Ethat’s a regression. This page is your safety net.

  1. Footnote rendering is provided by remark-gfm.