{
"path": "/3mhizlban7k2w",
"site": "at://did:plc:btxrwcaeyodrap5mnjw2fvmz/site.standard.publication/3lppk75kw7k26",
"tags": [],
"$type": "site.standard.document",
"title": "Fonts and footnotes!",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"id": "019cc520-3e23-7aa0-b26d-8a161b9522c1",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 106,
"byteStart": 97
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "We hinted that we were dropping two F-bombs — a pair of long-awaited features — fonts (okay, typefaces) and footnotes!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Fonts"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Leaflet now has six curated typefaces — our original favorite, iA Writer Quattro, plus:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Atkinson Hyperlegible Next"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Lora"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Monterrat"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Sometype Mono"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Source Sans 3"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "We have settings for both body and header font, so you can mix and match for just the right amount of contrast."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 12,
"byteStart": 8
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "You can also add any custom font available on Google Fonts! Paste in the font name and we'll load it right in."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"id": "019d0291-9df9-7bbc-a71e-219562957c0e",
"$type": "pub.leaflet.blocks.page"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"id": "019d0c36-c5d1-7bbc-a736-08d695a3506d",
"$type": "pub.leaflet.blocks.page"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "The arbitrary Google Font option is particularly fun for adding funky header fonts. And useful if you need a font that better supports non-English scripts."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Paired with our existing theme options, you've not got more ways to be expressive in Leaflet and give your posts and pubs their own special flavor."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "We tweaked font sizes a bit too, mainly bumping the header scale overall and adjusting base size for some of the fonts to more or less match better. Future idea: more settings for size and spacing…"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"plaintext": "Footnotes"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "One of our top editor requests. Add footnotes from the editor toolbar, and they show…in three places, actually!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "* Footnotes: classic, bottom of post"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "† Sidenotes: easy reference, with wider windows"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "‡ Popover: tap to preview, great on mobile"
}
}
]
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "Here's what they look like:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreidypoufdythraom3ro3qoubbi67pdfexilnkv2k7lkdczpjsl3zdy"
},
"mimeType": "image/webp",
"size": 162172
},
"aspectRatio": {
"width": 2000,
"height": 1124
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "And some examples of footnotes in action:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"id": "019d0299-4874-7bbc-a72e-e286fd414673",
"$type": "pub.leaflet.blocks.page"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": "We can't wait to see how you use both these new features!"
}
}
]
},
{
"id": "019d0c36-c5d1-7bbc-a736-08d695a3506d",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Fun Google Fonts for headers!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.unorderedList",
"children": [
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 11,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/moo+lah+lah",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Moo Lah Lah"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 13,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/Rubik+Microbe",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Rubik Microbe"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/schoolbell",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Schoolbell"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 8,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/Kablammo",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Kablammo"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/silkscreen",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Silkscreen"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 7,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/flavors",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Flavors"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/barriecito",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Barriecito"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 12,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/coral+pixels",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Coral Pixels"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 14,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/jim+nightshade",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Jim Nightshade"
}
},
{
"$type": "pub.leaflet.blocks.unorderedList#listItem",
"content": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 10,
"byteStart": 0
},
"features": [
{
"uri": "https://fonts.google.com/specimen/Comic+Neue",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Comic Neue"
}
}
]
}
}
]
},
{
"id": "019d0291-9df9-7bbc-a71e-219562957c0e",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Examples"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 32,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "Leaflet posts with custom fonts!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://desertthunder.leaflet.pub/3mgi3w3lmxs2z",
"$type": "pub.leaflet.blocks.website",
"title": "Software as Fan-Art - oh hey, it's owais",
"description": "Dev Log 46: 2026-03-07",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidaanh6a44dtw7q33rhsxjcrtafgbbfqlxud4cd2hlj4p3d64vbeq"
},
"mimeType": "image/png",
"size": 28698
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreib6buhruksb7snqhvr5ij7egdnwjuxqqhnhd6xn6sugs5srychmb4"
},
"mimeType": "image/webp",
"size": 204774
},
"aspectRatio": {
"width": 1678,
"height": 1678
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://www.aaronrosspowell.com/3mhikjko2ws2a",
"$type": "pub.leaflet.blocks.website",
"title": "The Inner Life of Liberalism - Aaron Ross Powell’s Blog",
"description": "The practices that make your life better are the same ones that sustain a free society. It's time liberalism took that seriously.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreid26ehgfgopbddmihzwhpfmc5fjejulamqkmzc2n2rlzijxu4uhdm"
},
"mimeType": "image/png",
"size": 39041
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreihk3dhz7ipi76f63mryqmd2kjnl3zaxjxwjauotzlyd4nii45r3au"
},
"mimeType": "image/webp",
"size": 381734
},
"aspectRatio": {
"width": 1680,
"height": 1680
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://max.leaflet.pub/3m7gdocum3c2z",
"$type": "pub.leaflet.blocks.website",
"title": "My Opinion on the iPhone Air - maxine naomi lunaris ✦",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihyt6vzi7sfjxvg7bjgmh4epeltghzetgyxwfiqu5edwl42aagb4a"
},
"mimeType": "image/png",
"size": 37051
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreicbqboxc7j6q3tql4hzd7pz4mjwubkqvpcabs6u527rniajlmhrsy"
},
"mimeType": "image/webp",
"size": 226928
},
"aspectRatio": {
"width": 1680,
"height": 1680
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://dailyplanet.leaflet.pub/3mhgmgkv5us2i",
"$type": "pub.leaflet.blocks.website",
"title": "The Daily Planet #128: War and the non-human world - The Daily Planet",
"description": "",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidhxsulcecl2wtsdiktggou6jys7kl6tcx6z3wb7ysk5fnhugfezq"
},
"mimeType": "image/png",
"size": 33457
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.image",
"image": {
"$type": "blob",
"ref": {
"$link": "bafkreihru6lwwrgczh5mx7ktzws3o53sh7a3z4llbbsw3dqzpmzdwbrbli"
},
"mimeType": "image/webp",
"size": 355720
},
"aspectRatio": {
"width": 1680,
"height": 1680
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"plaintext": ""
}
}
]
},
{
"id": "019d0299-4874-7bbc-a72e-e286fd414673",
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 1,
"plaintext": "Examples"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 29,
"byteStart": 0
},
"features": [
{
"$type": "pub.leaflet.richtext.facet#italic"
}
]
}
],
"plaintext": "Leaflet posts with footnotes!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://aiueo-en.leaflet.pub/3mggw6ypzqk2m",
"$type": "pub.leaflet.blocks.website",
"title": "Disaster preparedness in Japan: Apps, websites, etc. - aiueo",
"description": "For English speakers living or traveling in Japan (and other languages, to a more limited extent)",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreibi2jxunxhmxy3bpizreebazf6idgx4yqgr3ca4opyifiari7ypqi"
},
"mimeType": "image/png",
"size": 32591
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://peripheral.leaflet.pub/3mgjezis5fk2y",
"$type": "pub.leaflet.blocks.website",
"title": "A better Signal wishlist - re:center",
"description": "Dreams of a better end-to-end-encrypted messaging app.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreigwqag4dbxx327k3qg62vhtlvvr3623pf4o3t3jhfr3xjugjimogu"
},
"mimeType": "image/png",
"size": 38070
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://thelittleoutsider.leaflet.pub/3mgl4sfhcdk2b",
"$type": "pub.leaflet.blocks.website",
"title": "\"the day of spring, warmth, flowers and gentleness\" - the diary of a half-asleep owl",
"description": "how International Women's Day is viewed in my country, and how the government continues to promote this point of view",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiaf2uonkkjyxhycku7huvubwvqow5jcgkdyssgqncokxv3gclqaeq"
},
"mimeType": "image/png",
"size": 98906
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://rensletter.leaflet.pub/3mgqhjsgfjk2h",
"$type": "pub.leaflet.blocks.website",
"title": "if i may be a little obsessive… - ren’s letter",
"description": "omfg. this music.",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreihwiw6uaxhsc2vl2hmtili37hxowprrjvnxtzjdzo6njacgc2fjoi"
},
"mimeType": "image/png",
"size": 37309
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://7hird.dev/3mgzlboei5k2i",
"$type": "pub.leaflet.blocks.website",
"title": "Bots Among Us - 7hird Thoughts",
"description": "How can we build trust in an era of bots and lies?",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidtwjj5r3ka2i335w6wrweckkojsci6fwpcmjbljf6cfz52ex4cn4"
},
"mimeType": "image/png",
"size": 62356
}
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"src": "https://melly.leaflet.pub/3mh35ggyjyk27",
"$type": "pub.leaflet.blocks.website",
"title": "A blog intro and a hello world! - A melly band of essayists",
"description": "If you haven't yet, you should start your own blog!",
"previewImage": {
"$type": "blob",
"ref": {
"$link": "bafkreif2nfyzd5d757jzzn3uxpjphkixzqsfmta36tk2m234xdmscd5bea"
},
"mimeType": "image/png",
"size": 45834
}
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreicmefktngndjimp2z6bd5d64n4sigtkeck2xmajumivy6orhbw23i",
"uri": "at://did:plc:btxrwcaeyodrap5mnjw2fvmz/app.bsky.feed.post/3mhizlfxakc2w",
"commit": {
"cid": "bafyreifuf5d3ozqyk7n3wz5wmsahavl3zb43tzhh4ro42nkog2i3yruqwq",
"rev": "3mhizlfzg6f26"
},
"validationStatus": "valid"
},
"description": "Lab Notes 024: adding curated (and custom) typefaces to Leaflet theme options, and a whole new way to add footnotes (and sidenotes!) to posts",
"publishedAt": "2026-03-06T18:12:00.000Z"
}