This article renders every content component the blog offers, so each one can be
seen live and its pattern copied. It is not documentation — it is a visual index.
Body copy is a paragraph. It carries strong emphasis for the load-bearing
words, italic emphasis for a lighter touch, and inline code for identifiers,
file names and anything typed verbatim.
Enjoying my writing and feeling like supporting my work? You can show your appreciation by buying me a coffee (I really really really do like coffee), which gives me the energy to take on more ambitious articles and projects.
As a token of gratitude, your name will be featured on the little screen below. Thank you for reading!
A changed line ends in // [!code ++] or // [!code --], and copying takes only the new code:
greet.ts+1 / −11 added, 1 removed
function greet(name: string) { return 'Hello ' + name + '!'; return `Hello ${name}!`; }
variant="info", "warning" and "danger" are for logs and output, titled after their level unless given a title:
Info
ready - started server on 0.0.0.0:3000, url: http://localhost:3000
Warning
Warning: Each child in a list should have a unique "key" prop. Check the render method of `PostList`.
Error: TypeError
TypeError: Cannot read properties of undefined (reading 'map') at MessageList (components/message-list.tsx:18:22) at renderWithHooks (react-dom.development.js:16305:18)
A block longer than 24 lines folds to its first 16:
p1 and p2 are where the ray crosses the atmosphere, g1 and g2 the ground, and the bold stretch is the air it travels through. H is the point nearest the centre.
Leaders, for names that cannot sit beside their subject.
1st pass2nd passB(t)P0P1P2P3
t0.42
Each pass slides a point the fraction t along every segment of the one before, until one point is left, on the curve.
A loupe.
28%
Edge angle25.0°
A pixel is filled by the share of it the shape covers, hatched under the loupe.
A surface, in three dimensions.
xyz625 vertices
Frequency1.50
Turn0°
A flat grid, each point lifted by a wave of its distance from the centre.
Driven by time.
P0P1t = 0.73
Linear interpolation: the point sits the fraction t of the way from P0 to P1.
Footnotes are resolved by the FootnotesList component, which renders this list and links each entry back to its reference.
Liked this article? Share it with a friend on Bluesky or Twitter or support me to take on more ambitious projects to write about. Have a question, feedback or simply wish to contact me privately? Shoot me a DM and I'll do my best to get back to you.