Compare commits

...
5 Commits
Author SHA1 Message Date
inherentlee feaaeb30b7 build 2026-05-14 09:24:37 -07:00
inherentlee 4af8d68ac9 add all years in footer 2026-05-14 09:19:20 -07:00
inherentlee c51e5b502a gram reformat 2026-05-14 09:19:05 -07:00
inherentlee 6585b8e74d fix time zone issue 2026-05-14 09:18:15 -07:00
inherentlee 22d4c48b46 core css draft 2026-05-14 09:02:08 -07:00
286 changed files with 4886 additions and 4481 deletions
+42 -23
View File
@@ -1,73 +1,92 @@
import { DateTime } from "luxon";
export default function(eleventyConfig) {
export default function (eleventyConfig) {
// Return the keys used in an object
eleventyConfig.addFilter("getKeys", target => {
eleventyConfig.addFilter("getKeys", (target) => {
return Object.keys(target);
});
/* Exclude all posts with given URLs from a collection list */
eleventyConfig.addFilter("excludeFromCollection", function (collection=[], urls=[this.ctx.page.url]) {
return collection.filter(post => urls.indexOf(post.url) === -1);
});
eleventyConfig.addFilter(
"excludeFromCollection",
function (collection = [], urls = [this.ctx.page.url]) {
return collection.filter((post) => urls.indexOf(post.url) === -1);
},
);
/* Filter a collection by a set of tags, returning any that share one or more tags */
eleventyConfig.addFilter("filterByTags", function(collection=[], ...requiredTags) {
return collection.filter(post => {
return requiredTags.flat().some(tag => post.data.tags.includes(tag));
});
eleventyConfig.addFilter(
"filterByTags",
function (collection = [], ...requiredTags) {
return collection.filter((post) => {
return requiredTags.flat().some((tag) => post.data.tags.includes(tag));
});
},
);
/* Return n elements from a list */
eleventyConfig.addFilter("head", (collection=[], n) => {
if(!Array.isArray(collection) || collection.length === 0) {
eleventyConfig.addFilter("head", (collection = [], n) => {
if (!Array.isArray(collection) || collection.length === 0) {
return [];
}
if( n < 0 ) {
if (n < 0) {
return collection.slice(n);
}
return collection.slice(0, n);
});
/* For <time> elements */
eleventyConfig.addFilter("htmlDateString", (dateObj) => {
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat('yyyy-LL-dd');
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat("yyyy-LL-dd");
});
/* What it says on the tin */
eleventyConfig.addFilter("randomize", function(array) {
eleventyConfig.addFilter("randomize", function (array) {
// Create a copy of the array to avoid modifying the original
let shuffledArray = array.slice();
// Fisher-Yates shuffle algorithm
for (let i = shuffledArray.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]];
[shuffledArray[i], shuffledArray[j]] = [
shuffledArray[j],
shuffledArray[i],
];
}
return shuffledArray;
});
/* Human-readable dates */
eleventyConfig.addFilter("readableDate", (dateObj, zone) => {
return DateTime.fromJSDate(dateObj, { zone: zone || "utc" })
.toLocaleString(DateTime.DATE_FULL);
eleventyConfig.addFilter("readableDate", (dateObj) => {
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toLocaleString(
DateTime.DATE_FULL,
);
});
/* Filter out structural tags */
eleventyConfig.addFilter("removeBasicTags", (tags) => {
return tags.filter(tag => ["all", "posts", "gallery", "reference", "tagPagination", "blur"].indexOf(tag) === -1);
return tags.filter(
(tag) =>
[
"all",
"posts",
"gallery",
"reference",
"tagPagination",
"blur",
].indexOf(tag) === -1,
);
});
/* What it says on the tin */
eleventyConfig.addFilter("sortAlphabetically", strings =>
(strings || []).sort((b, a) => b.localeCompare(a))
eleventyConfig.addFilter("sortAlphabetically", (strings) =>
(strings || []).sort((b, a) => b.localeCompare(a)),
);
/* Remove year from image filenames for OG metadata file path */
eleventyConfig.addFilter("toOgFilename", (filename) => {
return filename.split("/")[1];
});
};
}
+2 -2
View File
@@ -9,9 +9,9 @@
<li>
<a href="/" title="go home"
aria-label="go home | {{ metadata.title }} from {{ metadata.author }} in 2026"
aria-label="go home | {{ metadata.title }} from {{ metadata.author }}, 2022-2026"
{% if page.url == "/" %}aria-current="page"{% endif %}>
{{ metadata.title }} from {{ metadata.author }} in 2026</a>
{{ metadata.title }} from {{ metadata.author }}, 2022-2026</a>
</li>
<li>
+1 -1
View File
@@ -15,7 +15,7 @@ layout: base.njk
<div class="post-metadata">
<p>
posted on
<time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate("America/Los_Angeles") }}</time>
<time datetime="{{ page.date | htmlDateString }}">{{ page.date | readableDate }}</time>
by {{ metadata.author }}
</p>
{% set relevantTags = tags | removeBasicTags %}
+3 -3
View File
@@ -1202,8 +1202,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1215,6 +1215,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/1/` was built on 2026-05-14T15:56:42.955Z -->
<!-- This page `/1/` was built on 2026-05-14T16:22:59.414Z -->
</body>
</html>
+3 -3
View File
@@ -1232,8 +1232,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1245,6 +1245,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/10/` was built on 2026-05-14T15:56:47.557Z -->
<!-- This page `/10/` was built on 2026-05-14T16:23:05.136Z -->
</body>
</html>
+3 -3
View File
@@ -1238,8 +1238,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1251,6 +1251,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/11/` was built on 2026-05-14T15:56:47.840Z -->
<!-- This page `/11/` was built on 2026-05-14T16:23:05.814Z -->
</body>
</html>
+3 -3
View File
@@ -1226,8 +1226,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1239,6 +1239,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/12/` was built on 2026-05-14T15:56:48.196Z -->
<!-- This page `/12/` was built on 2026-05-14T16:23:06.071Z -->
</body>
</html>
+3 -3
View File
@@ -1214,8 +1214,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1227,6 +1227,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/13/` was built on 2026-05-14T15:56:48.638Z -->
<!-- This page `/13/` was built on 2026-05-14T16:23:06.405Z -->
</body>
</html>
+3 -3
View File
@@ -1146,8 +1146,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1159,6 +1159,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/14/` was built on 2026-05-14T15:56:48.705Z -->
<!-- This page `/14/` was built on 2026-05-14T16:23:06.594Z -->
</body>
</html>
+3 -3
View File
@@ -1206,8 +1206,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1219,6 +1219,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/2/` was built on 2026-05-14T15:56:43.386Z -->
<!-- This page `/2/` was built on 2026-05-14T16:23:00.007Z -->
</body>
</html>
+3 -3
View File
@@ -1214,8 +1214,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1227,6 +1227,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/3/` was built on 2026-05-14T15:56:43.959Z -->
<!-- This page `/3/` was built on 2026-05-14T16:23:00.490Z -->
</body>
</html>
+3 -3
View File
@@ -1210,8 +1210,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1223,6 +1223,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/4/` was built on 2026-05-14T15:56:44.812Z -->
<!-- This page `/4/` was built on 2026-05-14T16:23:01.436Z -->
</body>
</html>
+4 -4
View File
@@ -895,7 +895,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1000,8 +1000,8 @@ export { HeadingAnchors }</script>
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1013,6 +1013,6 @@ export { HeadingAnchors }</script>
</footer>
<!-- This page `/404.html` was built on 2026-05-14T15:56:39.334Z -->
<!-- This page `/404.html` was built on 2026-05-14T16:22:55.587Z -->
</body>
</html>
+3 -3
View File
@@ -1206,8 +1206,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1219,6 +1219,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/5/` was built on 2026-05-14T15:56:45.168Z -->
<!-- This page `/5/` was built on 2026-05-14T16:23:02.107Z -->
</body>
</html>
+3 -3
View File
@@ -1204,8 +1204,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1217,6 +1217,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/6/` was built on 2026-05-14T15:56:45.547Z -->
<!-- This page `/6/` was built on 2026-05-14T16:23:02.632Z -->
</body>
</html>
+3 -3
View File
@@ -1214,8 +1214,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1227,6 +1227,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/7/` was built on 2026-05-14T15:56:46.126Z -->
<!-- This page `/7/` was built on 2026-05-14T16:23:03.095Z -->
</body>
</html>
+3 -3
View File
@@ -1202,8 +1202,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1215,6 +1215,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/8/` was built on 2026-05-14T15:56:46.583Z -->
<!-- This page `/8/` was built on 2026-05-14T16:23:03.660Z -->
</body>
</html>
+3 -3
View File
@@ -1240,8 +1240,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1253,6 +1253,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/9/` was built on 2026-05-14T15:56:47.081Z -->
<!-- This page `/9/` was built on 2026-05-14T16:23:04.552Z -->
</body>
</html>
+14 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-01-16">January 15, 2024</time>
<time datetime="2024-01-16">January 16, 2024</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/foldy-wallet-with-thumb-slide/">
<h2 data-ha-exclude="" id="foldy-wallet-with-thumb-slide">foldy wallet with thumb slide </h2>
<a class="postlink" href="/zipper-bifold-green/">
<h2 data-ha-exclude="" id="zipper-bifold-green">zipper bifold (green) </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/foldy-thumb-slide.jpg" alt="A card wallet with one main pocket and one quick access slot with a thumb slide. The cover of the main pocket curves around the thumb slide." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/zipper-bifold-green.jpg" alt="A collage showing a green leather wallet with a zippered pocket built into one external side." loading="lazy" decoding="async" width="1000" height="1332">
</a>
</li>
<li class="post">
<a class="postlink" href="/patchwork-wallet/">
<h2 data-ha-exclude="" id="patchwork-wallet">patchwork wallet </h2>
<a class="postlink" href="/brookes-suspenders/">
<h2 data-ha-exclude="" id="brookes-suspenders">brooke&#39;s suspenders </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/patchwork-wallet.jpg" alt="A collage showing a wallet in a patchwork style, with different colors of leather all stitched together to make up the exterior and the top interior pockets. Other pockets inside are dyed various colors." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/brooke-suspenders.jpg" alt="a two image collage showing the front and back of a person, neck to waist. she&#39;s wearing leather suspenders with a button attachment, buckles for adjustment, and a stitched diamond where the straps cross in the back." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/foldy-wallet/">
<h2 data-ha-exclude="" id="foldy-wallet">foldy wallet </h2>
<a class="postlink" href="/leather-keychains/">
<h2 data-ha-exclude="" id="leather-keychains">leather keychains </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/foldy-wallet.jpg" alt="A four part collage showing a single piece of deep red leather folding up to become a card wallet." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/leather-keychains.jpg" alt="A picture of multiple leather keychains sitting on a wood table. Many of them are simple rectangle shapes with stitching around the edge; a few are odd wavy or geometric shapes. A few say things like &#39;MOM&#39; or &#39;EGG&#39;." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/aarons-mask/` was built on 2026-05-14T15:56:39.317Z -->
<!-- This page `/aarons-mask/` was built on 2026-05-14T16:22:55.569Z -->
</body>
</html>
+4 -4
View File
@@ -895,7 +895,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1117,8 +1117,8 @@ export { HeadingAnchors }</script>
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1130,6 +1130,6 @@ export { HeadingAnchors }</script>
</footer>
<!-- This page `/about/` was built on 2026-05-14T15:56:39.333Z -->
<!-- This page `/about/` was built on 2026-05-14T16:22:55.587Z -->
</body>
</html>
+14 -16
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-11-04">November 3, 2022</time>
<time datetime="2022-11-04">November 4, 2022</time>
by Lee Cattarin
</p>
@@ -1615,45 +1615,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/tiny-books/">
<h2 data-ha-exclude="" id="tiny-books">tiny books </h2>
<a class="postlink" href="/square-watercolor-pad/">
<h2 data-ha-exclude="" id="square-watercolor-pad">square watercolor pad </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/tiny-book.jpg" alt="A three panel collage showing a book held in the palm of a hand." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/square-watercolor-pad.jpg" alt="A two panel collage showing a square book with a tan cover and blue and gold endpapers." loading="lazy" decoding="async" width="1000" height="1331">
</a>
</li>
<li class="post">
<a class="postlink" href="/brookes-notebook/">
<h2 data-ha-exclude="" id="brookes-notebook">brooke&#39;s notebook </h2>
<a class="postlink" href="/orange-green-journal/">
<h2 data-ha-exclude="" id="orange-green-journal">orange green journal </h2>
<ul class="postlist-tags">
<li>book</li>
<li>highlight</li>
</ul>
<img src="/img/brooke-notebook.jpg" alt="A six panel collage showing the covers, endpapers, and some of the pages of a notebook." loading="lazy" decoding="async" width="1000" height="1500">
<img src="/img/orange-green-journal.jpg" alt="A 4-part collage of a slim handbound book." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
<li class="post">
<a class="postlink" href="/lined-notebook/">
<h2 data-ha-exclude="" id="lined-notebook">lined notebook </h2>
<a class="postlink" href="/stampede-journal/">
<h2 data-ha-exclude="" id="stampede-journal">stampede journal </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/lined-notebook.jpg" alt="A three panel collage showing a the endpapers, cover, and pages of a small hardbound notebook." loading="lazy" decoding="async" width="1000" height="1776">
<img src="/img/stampede-journal.jpg" alt="A 4-part collage of a hardcover book, showing a coloring page with &#39;stampede!&#39; written across it." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
@@ -1676,8 +1674,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1689,6 +1687,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/acadia-coloring-journal/` was built on 2026-05-14T15:56:39.293Z -->
<!-- This page `/acadia-coloring-journal/` was built on 2026-05-14T16:22:55.546Z -->
</body>
</html>
+27 -25
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-07-26">July 25, 2025</time>
<time datetime="2025-07-26">July 26, 2025</time>
by Lee Cattarin
</p>
@@ -1599,22 +1599,38 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/brookes-scarf/">
<h2 data-ha-exclude="" id="brookes-scarf">brooke&#39;s scarf </h2>
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
</a>
</li>
<li class="post">
<a class="postlink" href="/keffiyah-fishing-net-pattern/">
<h2 data-ha-exclude="" id="keffiyah-fishing-net-pattern">keffiyah fishing net pattern </h2>
<ul class="postlist-tags">
<li>knit</li>
</ul>
<img src="/img/brooke-scarf.jpg" alt="A diaphanous knit lacework scarf draped over the back of a chair. It is split down the long way into two colors - one tinted orange and one tinted mint blue. Both colors, the orange and the blue, are held double with the same variegated gray, making the piece more cohesive. The yarn overs in the lacework create airy repeating holes." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/keffiyah-nets.jpg" alt="a knitted swatch. it&#39;s mostly white yarn, but a grid of dark red- purple- green yarn that looks like a chain link fence is built into it. the diagonal lines are achieved with floats of yarn from one row, then picked up and knit into several rows later." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/butch-hands-pattern/">
<h2 data-ha-exclude="" id="butch-hands-pattern">butch hands pattern </h2>
<a class="postlink" href="/textures-unite/">
<h2 data-ha-exclude="" id="textures-unite">textures unite </h2>
<ul class="postlist-tags">
@@ -1623,21 +1639,7 @@ if (window.innerWidth > 650) {
<li>highlight</li>
</ul>
<img src="/img/butch-hands.jpg" alt="Hands wearing a pair of pink and grey gloves with convertable mitten tops." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/knit-shrimp/">
<h2 data-ha-exclude="" id="knit-shrimp">knit shrimp </h2>
<ul class="postlist-tags">
<li>knit</li>
</ul>
<img src="/img/knit-shrimp.jpg" alt="Four knitted shrimp in various shades of pink. They are all somewhere around hand-sized, and have little yarn antennae and leggies." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/textures-unite.jpg" alt="a largely unseen person holds up an expansive knitted shawl, built in 6 sections of different textures and colors. in the background, trees and dappled sunlight." loading="lazy" decoding="async" width="1000" height="1334">
</a>
</li>
@@ -1660,8 +1662,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1673,6 +1675,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/acadia-mitts/` was built on 2026-05-14T15:56:39.328Z -->
<!-- This page `/acadia-mitts/` was built on 2026-05-14T16:22:55.581Z -->
</body>
</html>
+14 -16
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-03-22">March 21, 2026</time>
<time datetime="2026-03-22">March 22, 2026</time>
by Lee Cattarin
</p>
@@ -1658,45 +1658,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/moving-images/">
<h2 data-ha-exclude="" id="moving-images">moving images </h2>
<a class="postlink" href="/screen-reader-optimizations/">
<h2 data-ha-exclude="" id="screen-reader-optimizations">screen reader optimizations </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/cormorant.jpg" alt="Image unrelated to post. A cormorant, a type of black waterfowl, poses with wings spread on a buoy in Puget Sound. Off to the left, another bird floats." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/crow.jpg" alt="Image unrelated to post. A crow poses on driftwood against a whitish sky." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/redirections/">
<h2 data-ha-exclude="" id="redirections">redirections </h2>
<a class="postlink" href="/domain-and-site-setup/">
<h2 data-ha-exclude="" id="domain-and-site-setup">domain and site setup </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/angle-brackets-uwu.jpg" alt="Ascii art of an emoticon with pinched eyes and a small mouth made with two angle brackets." loading="lazy" decoding="async" width="1000" height="316">
<img src="/img/crinkly-mushrooms.jpg" alt="Picture unrelated to post. Some crinkly brown-orange mushrooms in vibrant green grass." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/azure-locations-and-file-crawling/">
<h2 data-ha-exclude="" id="azure-locations-and-file-crawling">azure locations and file crawling </h2>
<a class="postlink" href="/comparing-text-editors/">
<h2 data-ha-exclude="" id="comparing-text-editors">comparing text editors </h2>
<ul class="postlist-tags">
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/azure-locations.jpg" alt="A Linux terminal. There is a fun rainbow flag in ascii art at the top, and then the user has called a command asking Azure for a list of locations applicable to a specific resource type. The output is lengthy." loading="lazy" decoding="async" width="1000" height="827">
<img src="/img/horsetail.jpg" alt="Image unrelated to post. Close up on a horsetail plant&#39;s stem, with many small needle-like leaves emerging from all sides of the circular stem at each segmented joint." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1719,8 +1717,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1732,6 +1730,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/accessible-image-modals/` was built on 2026-05-14T15:56:39.325Z -->
<!-- This page `/accessible-image-modals/` was built on 2026-05-14T16:22:55.578Z -->
</body>
</html>
+33 -33
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-01-07">January 6, 2026</time>
<time datetime="2026-01-07">January 7, 2026</time>
by Lee Cattarin
</p>
@@ -2013,6 +2013,34 @@ codeberg https://codeberg.org/inherentlee/git-intro.git (push)</code></pre>
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/moving-images/">
<h2 data-ha-exclude="" id="moving-images">moving images </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/cormorant.jpg" alt="Image unrelated to post. A cormorant, a type of black waterfowl, poses with wings spread on a buoy in Puget Sound. Off to the left, another bird floats." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/my-favorite-git-flag/">
<h2 data-ha-exclude="" id="my-favorite-git-flag">my favorite git flag </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/shelf-mushrooms.jpg" alt="Picture unrelated to post. Creamy beige shelf mushrooms on a mossy tree trunk." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/handedness-toggle/">
<h2 data-ha-exclude="" id="handedness-toggle">handedness toggle </h2>
@@ -2027,34 +2055,6 @@ codeberg https://codeberg.org/inherentlee/git-intro.git (push)</code></pre>
</a>
</li>
<li class="post">
<a class="postlink" href="/backend-accessibility/">
<h2 data-ha-exclude="" id="backend-accessibility">backend accessibility </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/camelCase-print.jpg" alt="A carved stamp next to its print. The print reads &#39;#camelCase&#39; in a slightly formal-looking italic font." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/domain-and-site-setup/">
<h2 data-ha-exclude="" id="domain-and-site-setup">domain and site setup </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/crinkly-mushrooms.jpg" alt="Picture unrelated to post. Some crinkly brown-orange mushrooms in vibrant green grass." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
</ol>
</section>
@@ -2073,8 +2073,8 @@ codeberg https://codeberg.org/inherentlee/git-intro.git (push)</code></pre>
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -2086,6 +2086,6 @@ codeberg https://codeberg.org/inherentlee/git-intro.git (push)</code></pre>
</footer>
<!-- This page `/an-intro-to-git/` was built on 2026-05-14T15:56:39.323Z -->
<!-- This page `/an-intro-to-git/` was built on 2026-05-14T16:22:55.576Z -->
</body>
</html>
+29 -33
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-10-04">October 3, 2023</time>
<time datetime="2023-10-04">October 4, 2023</time>
by Lee Cattarin
</p>
@@ -1621,53 +1621,49 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/big-pidge/">
<h2 data-ha-exclude="" id="big-pidge">big pidge </h2>
<a class="postlink" href="/geese-trans-wrongs/">
<h2 data-ha-exclude="" id="geese-trans-wrongs">geese/trans wrongs </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/big-pidge-print.jpg" alt="A block print of a superb speciman of pigeon, inked mostly in black but with patches of green, blue, and purple to indicate iridescence." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/trans-wrongs-geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over towards them and HONKS! Both have speech bubbles; the calm goose says &#39;trans rights!&#39; while the honking goose says &#39;trans wrongs!&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/crow/">
<h2 data-ha-exclude="" id="crow">crow </h2>
<a class="postlink" href="/bottom-growth/">
<h2 data-ha-exclude="" id="bottom-growth-mature">bottom growth (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/bottom-growth-prints.jpg" alt="4 copies of the same print in various color schemes, laid out in a 2x2 grid. The print shows testosterone-driven bottom growth of a clitoris. The color schemes are, clockwise from top right, brown on turquoise, red on cornsilk (muted yellow), violet on magenta, and mint green on lilac." class="blur" loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/squarsh/">
<h2 data-ha-exclude="" id="squarsh">squarsh </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/crow-print.jpg" alt="a block print in dark indigo ink on white paper depicting a perched crow looking over one shoulder. one side of the crow is lit with fine feather detail, and the other side is almost entirely in shadow." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/shrimp/">
<h2 data-ha-exclude="" id="shrimp">shrimp </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>sticker</li>
<li>pin</li>
</ul>
<img src="/img/shrimp-print.jpg" alt="A print of a small shrimp with slender little leggies in orange ink." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/squarsh-prints.jpg" alt="Two identical prints of a delicata squash. The body of the squash is cornsilk (muted yellow), the stem and stripes in mint green, and the shadows in lilac." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1690,8 +1686,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1703,6 +1699,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/anarchy-autism/` was built on 2026-05-14T15:56:39.305Z -->
<!-- This page `/anarchy-autism/` was built on 2026-05-14T16:22:55.558Z -->
</body>
</html>
+5 -5
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-05-26">May 25, 2025</time>
<time datetime="2025-05-26">May 26, 2025</time>
by Lee Cattarin
</p>
@@ -1622,8 +1622,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1635,6 +1635,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/art-shows-and-events/` was built on 2026-05-14T15:56:39.327Z -->
<!-- This page `/art-shows-and-events/` was built on 2026-05-14T16:22:55.580Z -->
</body>
</html>
+32 -32
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-28">June 27, 2023</time>
<time datetime="2023-06-28">June 28, 2023</time>
by Lee Cattarin
</p>
@@ -1606,53 +1606,53 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/trans-the-world/">
<h2 data-ha-exclude="" id="trans-the-world">trans the world </h2>
<a class="postlink" href="/luminescent/">
<h2 data-ha-exclude="" id="luminescent-mature">luminescent (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/trans-the-world-print.jpg" alt="A print that reads &#39;trans the world&#39; surrounding an image of a globe and a trans symbol. It&#39;s in a ping-to-blue gradient." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/luminescent-print.jpg" alt="A print of a tattooed woman in bright highlighter yellow underwear." class="blur" loading="lazy" decoding="async" width="900" height="1200">
</a>
</li>
<li class="post">
<a class="postlink" href="/artisans-cooperative-shirts/">
<h2 data-ha-exclude="" id="artisans-cooperative-shirts">artisans cooperative shirts </h2>
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>shirt</li>
<li>print</li>
</ul>
<img src="/img/artisans-coop-shirt.jpg" alt="A black tank top laid on a desk. In white ink it reads &#39;Artisans Cooperative&#39; with a print of some chickens and a quail." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/geese/">
<h2 data-ha-exclude="" id="geese">geese </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
<li>print</li>
<li>highlight</li>
</ul>
<img src="/img/geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over and HONKS!" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/pronoun-patches/">
<h2 data-ha-exclude="" id="pronoun-patches">pronoun patches </h2>
<ul class="postlist-tags">
<li>print</li>
<li>patch</li>
<li>gender</li>
</ul>
<img src="/img/pronoun-patch.jpg" alt="Rows of the same design, a skull with a speech bubble announcing varied pronoun sets, repeat in multiple colors along a stretch of off-white fabric." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
@@ -1675,8 +1675,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1688,6 +1688,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/artisans-cooperative-cards/` was built on 2026-05-14T15:56:39.303Z -->
<!-- This page `/artisans-cooperative-cards/` was built on 2026-05-14T16:22:55.555Z -->
</body>
</html>
+30 -24
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-09-22">September 21, 2023</time>
<time datetime="2023-09-22">September 22, 2023</time>
by Lee Cattarin
</p>
@@ -1607,38 +1607,26 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/tiny-mushrooms/">
<h2 data-ha-exclude="" id="tiny-mushrooms">tiny mushrooms </h2>
<a class="postlink" href="/lupine/">
<h2 data-ha-exclude="" id="lupine">lupine </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/pixels-mushrooms.jpg" alt="3 tiny mushroom stamps next to their impressions. They are all about 1 inch square. There is a chanterelle in yellow, a russula in pink, and witch&#39;s hat mycena in indigo." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/five-of-them/">
<h2 data-ha-exclude="" id="five-of-them">five of them </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
</ul>
<img src="/img/five-of-them-print.jpg" alt="A block print of five mule deer grazing in a dark green field. The deer are partially negative space and partially brown ink detailing." loading="lazy" decoding="async" width="1000" height="594">
<img src="/img/lupine-prints.jpg" alt="6 versions of a print of lupine flowers with the leaves inked in light green and the blossoms inked in a variety of blues, purples, and pinks." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/artisans-cooperative-cards/">
<h2 data-ha-exclude="" id="artisans-cooperative-cards">artisans cooperative cards </h2>
<a class="postlink" href="/iris/">
<h2 data-ha-exclude="" id="iris">iris </h2>
<ul class="postlist-tags">
@@ -1647,7 +1635,25 @@ if (window.innerWidth > 650) {
<li>card</li>
</ul>
<img src="/img/artisans-coop-cards.jpg" alt="2 white greeting cards with the Artisans Cooperative logo, a chicken. One card has a single print of the chicken in black ink, and the other has two overlapping prints in blue and red ink" loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/iris-prints.jpg" alt="3 copies of the same print of iris flowers and a bud, done in slightly varied color schemes." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
<li class="post">
<a class="postlink" href="/pronoun-patches/">
<h2 data-ha-exclude="" id="pronoun-patches">pronoun patches </h2>
<ul class="postlist-tags">
<li>print</li>
<li>patch</li>
<li>gender</li>
</ul>
<img src="/img/pronoun-patch.jpg" alt="Rows of the same design, a skull with a speech bubble announcing varied pronoun sets, repeat in multiple colors along a stretch of off-white fabric." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
@@ -1670,8 +1676,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1683,6 +1689,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/artisans-cooperative-shirts/` was built on 2026-05-14T15:56:39.304Z -->
<!-- This page `/artisans-cooperative-shirts/` was built on 2026-05-14T16:22:55.557Z -->
</body>
</html>
+5 -5
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-12-02">December 1, 2023</time>
<time datetime="2023-12-02">December 2, 2023</time>
by Lee Cattarin
</p>
@@ -1599,8 +1599,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1612,6 +1612,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/artists-conk/` was built on 2026-05-14T15:56:39.313Z -->
<!-- This page `/artists-conk/` was built on 2026-05-14T16:22:55.564Z -->
</body>
</html>
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-05-14">May 13, 2025</time>
<time datetime="2025-05-14">May 14, 2025</time>
by Lee Cattarin
</p>
@@ -1846,33 +1846,31 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/eleventy-lessons/">
<h2 data-ha-exclude="" id="eleventy-lessons">eleventy lessons </h2>
<a class="postlink" href="/designing-a-bag/">
<h2 data-ha-exclude="" id="designing-a-bag">designing a bag </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>software</li>
</ul>
<img src="/img/shoelace-bag.jpg" alt="a 3-image collage showcasing a leather crossbody bag. the leather body is brown and fairly simple. up the narrow sides, rope is laced through grommets in a style resembling a shoe lacing. the rope forms the handle and loops seamlessly through the other side of the bag, joining in one point in a figure-8 follow-through knot. At the bottom corners, there are small diagonal lines of stitching to give the bag a small lip around the base and ensure small objects don&#39;t slide out." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
<li class="post">
<a class="postlink" href="/an-intro-to-git/">
<h2 data-ha-exclude="" id="an-intro-to-git">an intro to git </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/hellebore.jpg" alt="Image unrelated to post. Close up on a pale green hellebore flower." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
<li>highlight</li>
</ul>
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/goldeneye-tail.jpg" alt="Image unrelated to post. The tail of a diving duck pokes out from the water with a small splash." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1895,8 +1893,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1908,6 +1906,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/azure-locations-and-file-crawling/` was built on 2026-05-14T15:56:39.326Z -->
<!-- This page `/azure-locations-and-file-crawling/` was built on 2026-05-14T16:22:55.579Z -->
</body>
</html>
+33 -35
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-05-12">May 11, 2023</time>
<time datetime="2023-05-12">May 12, 2023</time>
by Lee Cattarin
</p>
@@ -1659,6 +1659,34 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/screen-reader-optimizations/">
<h2 data-ha-exclude="" id="screen-reader-optimizations">screen reader optimizations </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/crow.jpg" alt="Image unrelated to post. A crow poses on driftwood against a whitish sky." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/comparing-text-editors/">
<h2 data-ha-exclude="" id="comparing-text-editors">comparing text editors </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/horsetail.jpg" alt="Image unrelated to post. Close up on a horsetail plant&#39;s stem, with many small needle-like leaves emerging from all sides of the circular stem at each segmented joint." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/designing-a-bag/">
<h2 data-ha-exclude="" id="designing-a-bag">designing a bag </h2>
@@ -1675,36 +1703,6 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/azure-locations-and-file-crawling/">
<h2 data-ha-exclude="" id="azure-locations-and-file-crawling">azure locations and file crawling </h2>
<ul class="postlist-tags">
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/azure-locations.jpg" alt="A Linux terminal. There is a fun rainbow flag in ascii art at the top, and then the user has called a command asking Azure for a list of locations applicable to a specific resource type. The output is lengthy." loading="lazy" decoding="async" width="1000" height="827">
</a>
</li>
<li class="post">
<a class="postlink" href="/accessible-image-modals/">
<h2 data-ha-exclude="" id="accessible-image-modals">accessible image modals </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/snacking-seagull.jpg" alt="Image unrelated to post. A seagull floating in the water with a starfish hanging out of eir mouth." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
</ol>
</section>
@@ -1723,8 +1721,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1736,6 +1734,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/backend-accessibility/` was built on 2026-05-14T15:56:39.299Z -->
<!-- This page `/backend-accessibility/` was built on 2026-05-14T16:22:55.551Z -->
</body>
</html>
+14 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-12-02">December 1, 2023</time>
<time datetime="2023-12-02">December 2, 2023</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/mom-bag/">
<h2 data-ha-exclude="" id="mom-bag">mom bag </h2>
<a class="postlink" href="/long-zipper-bifold/">
<h2 data-ha-exclude="" id="long-zipper-bifold">long zipper bifold </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/mom-bag.jpg" alt="A leather bag sized for a large smartphone with a main pocket and a wraparound smaller pocket. It has a magnetic clasp." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/long-zipper-bifold.jpg" alt="A collage showing an orange leather wallet with a long zipper running the length of the outside." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/o-ring-bracelet/">
<h2 data-ha-exclude="" id="o-ring-bracelet">o-ring bracelet </h2>
<a class="postlink" href="/soras-collar/">
<h2 data-ha-exclude="" id="soras-collar">sora&#39;s collar </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/oring-bracelet.jpg" alt="A green leather bracelet, stitched along the edges with dark blue thread, holds an ouroborous o-ring in place with two black snaps." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/sora-collar.jpg" alt="A collage showing a red and black leather dog collar tooled with roses and the name Sora. It&#39;s fully stitched with dark red stitching and has brass hardware." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/leather-lighter-case/">
<h2 data-ha-exclude="" id="leather-lighter-case">leather lighter case </h2>
<a class="postlink" href="/eight-pocket-bifold/">
<h2 data-ha-exclude="" id="eight-pocket-bifold">eight pocket bifold </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/leather-lighter-case.jpg" alt="A bic lighter wrapped in leather and hand-stitched up one side." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/eight-pocket-bifold.jpg" alt="A 3-picture collage showing a hand stitched full grain leather bifold wallet in dark plum leather. It has a main bill pocket and a asymmetrical interior with a hidden pocket and 3 card pockets on the right, and a hidden pocket and 2 card pockets on the left. The left front pocket has a small naturally occuring hole." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/bag-strap/` was built on 2026-05-14T15:56:39.313Z -->
<!-- This page `/bag-strap/` was built on 2026-05-14T16:22:55.565Z -->
</body>
</html>
+8 -8
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-09">June 8, 2023</time>
<time datetime="2023-06-09">June 9, 2023</time>
by Lee Cattarin
</p>
@@ -1609,15 +1609,15 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/lined-notebook/">
<h2 data-ha-exclude="" id="lined-notebook">lined notebook </h2>
<a class="postlink" href="/flocked-notebook/">
<h2 data-ha-exclude="" id="flocked-notebook">flocked notebook </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/lined-notebook.jpg" alt="A three panel collage showing a the endpapers, cover, and pages of a small hardbound notebook." loading="lazy" decoding="async" width="1000" height="1776">
<img src="/img/flocked-notebook.jpg" alt="A two panel collage showing the cover and endpapers of a thick notebook." loading="lazy" decoding="async" width="1000" height="1331">
</a>
</li>
@@ -1668,8 +1668,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1681,6 +1681,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/baseball-journal/` was built on 2026-05-14T15:56:39.301Z -->
<!-- This page `/baseball-journal/` was built on 2026-05-14T16:22:55.553Z -->
</body>
</html>
+26 -28
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-10-31">October 30, 2022</time>
<time datetime="2022-10-31">October 31, 2022</time>
by Lee Cattarin
</p>
@@ -1605,6 +1605,24 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/trans-the-world/">
<h2 data-ha-exclude="" id="trans-the-world">trans the world </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/trans-the-world-print.jpg" alt="A print that reads &#39;trans the world&#39; surrounding an image of a globe and a trans symbol. It&#39;s in a ping-to-blue gradient." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/squarsh/">
<h2 data-ha-exclude="" id="squarsh">squarsh </h2>
@@ -1620,35 +1638,15 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/flicker/">
<h2 data-ha-exclude="" id="flicker">flicker </h2>
<a class="postlink" href="/tiny-mushrooms/">
<h2 data-ha-exclude="" id="tiny-mushrooms">tiny mushrooms </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
</ul>
<img src="/img/flicker-print.jpg" alt="A print in black, brown, and red ink of a northern flicker (a type of woodpecker). Viewed from the back, he is looking over his shoulder and upward towards something unseen above him (my bird feeder)." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/killdeer/">
<h2 data-ha-exclude="" id="killdeer">killdeer </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/killdeer-print.jpg" alt="A print of a killdeer in black ink." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/pixels-mushrooms.jpg" alt="3 tiny mushroom stamps next to their impressions. They are all about 1 inch square. There is a chanterelle in yellow, a russula in pink, and witch&#39;s hat mycena in indigo." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1671,8 +1669,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1684,6 +1682,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/become-unbutterable/` was built on 2026-05-14T15:56:39.293Z -->
<!-- This page `/become-unbutterable/` was built on 2026-05-14T16:22:55.545Z -->
</body>
</html>
+22 -22
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-01-18">January 17, 2026</time>
<time datetime="2026-01-18">January 18, 2026</time>
by Lee Cattarin
</p>
@@ -1598,20 +1598,6 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/light-grey-jacobs-handspun/">
<h2 data-ha-exclude="" id="light-grey-jacobs-handspun">light grey jacobs handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/light-grey-jacobs.jpg" alt="a skein of light grey handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/handspun-yarn-in-party-mix-and-orange-gold/">
<h2 data-ha-exclude="" id="handspun-yarn-in-party-mix-and-orange-gold">handspun yarn in party mix and orange-gold </h2>
@@ -1627,15 +1613,29 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/fire-and-ice-handspun/">
<h2 data-ha-exclude="" id="fire-and-ice-handspun">fire &amp; ice handspun </h2>
<a class="postlink" href="/spinners-dream-handspun/">
<h2 data-ha-exclude="" id="spinners-dream-handspun">spinner&#39;s dream handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/fire-ice-handspun.jpg" alt="2 skeins, one large and one small, of a heathered orange yarn with hints of blue in about a DK or worsted weight." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/spinners-dream-handspun.jpg" alt="a skein of a lightly variegated grey yarn in about a sport or DK weight." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/charlie-the-alpaca-handspun/">
<h2 data-ha-exclude="" id="charlie-the-alpaca-handspun">charlie the alpaca handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/charlie-alpaca-handspun.jpg" alt="one large skein (and technically a smaller skein hidden behind it) of sheen-y black alpaca handspun, in about a DK weight" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/bfl-silk-handspun/` was built on 2026-05-14T15:56:39.323Z -->
<!-- This page `/bfl-silk-handspun/` was built on 2026-05-14T16:22:55.577Z -->
</body>
</html>
+14 -16
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-08">June 7, 2023</time>
<time datetime="2023-06-08">June 8, 2023</time>
by Lee Cattarin
</p>
@@ -1616,22 +1616,22 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/loon/">
<h2 data-ha-exclude="" id="loon">loon </h2>
<a class="postlink" href="/kniphofia/">
<h2 data-ha-exclude="" id="kniphofia">kniphofia </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/loon-print.jpg" alt="A print of a loon rearing up with wings spread" loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/kniphofia-print.jpg" alt="A print of a brightly colored flower in 4 layers of color" loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/chanterelle/">
<h2 data-ha-exclude="" id="chanterelle">chanterelle </h2>
<a class="postlink" href="/iris/">
<h2 data-ha-exclude="" id="iris">iris </h2>
<ul class="postlist-tags">
@@ -1640,14 +1640,14 @@ if (window.innerWidth > 650) {
<li>card</li>
</ul>
<img src="/img/chanterelle-print.jpg" alt="A print of two chanterelle mushrooms inked in a dark-to-light yellow gradient." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/iris-prints.jpg" alt="3 copies of the same print of iris flowers and a bud, done in slightly varied color schemes." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
<li class="post">
<a class="postlink" href="/coming-out/">
<h2 data-ha-exclude="" id="coming-out">coming out </h2>
<a class="postlink" href="/seedling/">
<h2 data-ha-exclude="" id="seedling">seedling </h2>
<ul class="postlist-tags">
@@ -1655,10 +1655,8 @@ if (window.innerWidth > 650) {
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/coming-out-card-print.jpg" alt="A card and print in the same design - a chick and a broken eggshell, and a simple font reading &#39;congrats on coming out of your shell&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/seedling-print.jpg" alt="A print of a 3-stage design of a green seedling barely open, starting to straighten up, and growing strong, with little piles of dirt beneath each one." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1681,8 +1679,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1694,6 +1692,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/big-pidge/` was built on 2026-05-14T15:56:39.299Z -->
<!-- This page `/big-pidge/` was built on 2026-05-14T16:22:55.552Z -->
</body>
</html>
+26 -30
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-05-11">May 10, 2023</time>
<time datetime="2023-05-11">May 11, 2023</time>
by Lee Cattarin
</p>
@@ -1639,24 +1639,38 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/rope-one/">
<h2 data-ha-exclude="" id="rope-one-mature">rope (one) (mature)</h2>
<a class="postlink" href="/killdeer/">
<h2 data-ha-exclude="" id="killdeer">killdeer </h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
<li>card</li>
</ul>
<img src="/img/rope-print-1.jpg" alt="A print of a nude trans woman in an asymmetrical rope harness." class="blur" loading="lazy" decoding="async" width="1000" height="1242">
<img src="/img/killdeer-print.jpg" alt="A print of a killdeer in black ink." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/trans-wrongs-skull/">
<h2 data-ha-exclude="" id="trans-wrongs-skull">trans wrongs skull </h2>
<a class="postlink" href="/euphorbia/">
<h2 data-ha-exclude="" id="euphorbia">euphorbia </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/euphorbia-print.jpg" alt="A print in black ink on brown paper. It depicts a stem of euphorbia, a plant with long, thin leaves and many clustered flowers." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/queer/">
<h2 data-ha-exclude="" id="queer">queer </h2>
<ul class="postlist-tags">
@@ -1671,25 +1685,7 @@ if (window.innerWidth > 650) {
<li>gender</li>
</ul>
<img src="/img/trans-wrongs-print.jpg" alt="A smiling skull with devil horns and a little spiked tail, and a speech bubble reading &#39;trans wrongs!&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/slightly-weird-man-club/">
<h2 data-ha-exclude="" id="slightly-weird-man-club">slightly weird man club </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/slightly-weird-man-club-print.jpg" alt="A print that reads &#39;slightly weird man club&#39; in a nonbinary flag colored gradient" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/queer-print.jpg" alt="A print of the word queer in black ink. The letters are rounded with elongated oval negative space." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1712,8 +1708,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1725,6 +1721,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/block-printing-transfer-method/` was built on 2026-05-14T15:56:39.299Z -->
<!-- This page `/block-printing-transfer-method/` was built on 2026-05-14T16:22:55.551Z -->
</body>
</html>
+16 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-11-04">November 3, 2022</time>
<time datetime="2022-11-04">November 4, 2022</time>
by Lee Cattarin
</p>
@@ -1615,43 +1615,45 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/lined-notebook/">
<h2 data-ha-exclude="" id="lined-notebook">lined notebook </h2>
<a class="postlink" href="/square-watercolor-pad/">
<h2 data-ha-exclude="" id="square-watercolor-pad">square watercolor pad </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/lined-notebook.jpg" alt="A three panel collage showing a the endpapers, cover, and pages of a small hardbound notebook." loading="lazy" decoding="async" width="1000" height="1776">
<img src="/img/square-watercolor-pad.jpg" alt="A two panel collage showing a square book with a tan cover and blue and gold endpapers." loading="lazy" decoding="async" width="1000" height="1331">
</a>
</li>
<li class="post">
<a class="postlink" href="/orange-journal/">
<h2 data-ha-exclude="" id="orange-journal">orange journal </h2>
<a class="postlink" href="/brookes-notebook/">
<h2 data-ha-exclude="" id="brookes-notebook">brooke&#39;s notebook </h2>
<ul class="postlist-tags">
<li>book</li>
<li>highlight</li>
</ul>
<img src="/img/orange-journal.jpg" alt="A three panel collage showcasing a small book with foldout pages and a bright orange cover." loading="lazy" decoding="async" width="1000" height="1776">
<img src="/img/brooke-notebook.jpg" alt="A six panel collage showing the covers, endpapers, and some of the pages of a notebook." loading="lazy" decoding="async" width="1000" height="1500">
</a>
</li>
<li class="post">
<a class="postlink" href="/orange-green-journal/">
<h2 data-ha-exclude="" id="orange-green-journal">orange green journal </h2>
<a class="postlink" href="/tiny-books/">
<h2 data-ha-exclude="" id="tiny-books">tiny books </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/orange-green-journal.jpg" alt="A 4-part collage of a slim handbound book." loading="lazy" decoding="async" width="1000" height="1777">
<img src="/img/tiny-book.jpg" alt="A three panel collage showing a book held in the palm of a hand." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1674,8 +1676,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1687,6 +1689,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/blue-and-brown-leather-journal/` was built on 2026-05-14T15:56:39.294Z -->
<!-- This page `/blue-and-brown-leather-journal/` was built on 2026-05-14T16:22:55.546Z -->
</body>
</html>
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-07-17">July 16, 2024</time>
<time datetime="2024-07-17">July 17, 2024</time>
by Lee Cattarin
</p>
@@ -1609,55 +1609,47 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/congrats-on-the-gay/">
<h2 data-ha-exclude="" id="congrats-on-the-gay">congrats on the gay </h2>
<a class="postlink" href="/kniphofia/">
<h2 data-ha-exclude="" id="kniphofia">kniphofia </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/congrats-on-the-gay.jpg" alt="A greeting card reading, in black. &#39;Congrats on the,&#39; and then, in rainbow, &#39;Gay!&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/kniphofia-print.jpg" alt="A print of a brightly colored flower in 4 layers of color" loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/gender-in-data-models/">
<h2 data-ha-exclude="" id="gender-in-data-models">gender in data models </h2>
<a class="postlink" href="/hair/">
<h2 data-ha-exclude="" id="hair">hair </h2>
<ul class="postlist-tags">
<li>gender</li>
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/peony.jpg" alt="Image unrelated to post. A light pink peony in full bloom, close up." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
<li>highlight</li>
<li>gender</li>
</ul>
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/hair-print.jpg" alt="A print in black ink of belly hair." loading="lazy" decoding="async" width="1000" height="710">
</a>
</li>
<li class="post">
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
</a>
</li>
@@ -1680,8 +1672,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1693,6 +1685,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/booby-congrats-on-the-top-surgery/` was built on 2026-05-14T15:56:39.320Z -->
<!-- This page `/booby-congrats-on-the-top-surgery/` was built on 2026-05-14T16:22:55.573Z -->
</body>
</html>
+29 -27
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-01-23">January 22, 2024</time>
<time datetime="2024-01-23">January 23, 2024</time>
by Lee Cattarin
</p>
@@ -1604,38 +1604,26 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/loon/">
<h2 data-ha-exclude="" id="loon">loon </h2>
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
<li>highlight</li>
</ul>
<img src="/img/loon-print.jpg" alt="A print of a loon rearing up with wings spread" loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
</a>
</li>
<li class="post">
<a class="postlink" href="/spotted-towhee/">
<h2 data-ha-exclude="" id="spotted-towhee">spotted towhee </h2>
<a class="postlink" href="/congrats-on-the-autism-adhd/">
<h2 data-ha-exclude="" id="congrats-on-the-autism-adhd">congrats on the autism/adhd </h2>
<ul class="postlist-tags">
@@ -1644,7 +1632,21 @@ if (window.innerWidth > 650) {
<li>card</li>
</ul>
<img src="/img/spotted-towhee-print.jpg" alt="A block print of a spotted towhee mid-leap." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/congrats-on-the.jpg" alt="4 greeting cards propped up on a keyboard. On the right hand side, two cards read &#39;Congrats on the Autism&#39;; one in rainbow ink and one in black ink with a glittery gold shadow. On the left, two cards read &#39;Congrats on the ADHD&#39;; one in red and one in black, both with glittery pink shadows." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
<li class="post">
<a class="postlink" href="/on-the-ubiquity-of-enby/">
<h2 data-ha-exclude="" id="on-the-ubiquity-of-enby">on the ubiquity of &#39;enby&#39; </h2>
<ul class="postlist-tags">
<li>gender</li>
</ul>
<img src="/img/gender-census.jpg" alt="A screenshot of part of the Gender Census reports page, showing the header bar and a title that reads &#39;Gender Census 2023 Worldwide Report&#39;" loading="lazy" decoding="async" width="1000" height="364">
</a>
</li>
@@ -1667,8 +1669,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1680,6 +1682,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/bottom-growth/` was built on 2026-05-14T15:56:39.318Z -->
<!-- This page `/bottom-growth/` was built on 2026-05-14T16:22:55.570Z -->
</body>
</html>
+16 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-02-03">February 2, 2024</time>
<time datetime="2024-02-03">February 3, 2024</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,45 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/x-acto-knife-sheath/">
<h2 data-ha-exclude="" id="x-acto-knife-sheath">x-acto knife sheath </h2>
<a class="postlink" href="/zipper-bifold-green/">
<h2 data-ha-exclude="" id="zipper-bifold-green">zipper bifold (green) </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/knife-sheaths.jpg" alt="Several blades with leather sheaths, and a few extra sheaths. There&#39;s a #2 blade with an orange sheath with yellow stitching, a #11 blade with a blue sheath with light grey stitching, and a skiving knife with a plum sheath and pink stitching." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/zipper-bifold-green.jpg" alt="A collage showing a green leather wallet with a zippered pocket built into one external side." loading="lazy" decoding="async" width="1000" height="1332">
</a>
</li>
<li class="post">
<a class="postlink" href="/rachels-bracelets/">
<h2 data-ha-exclude="" id="rachels-bracelets">rachel&#39;s bracelets </h2>
<a class="postlink" href="/little-critter-pouch/">
<h2 data-ha-exclude="" id="little-critter-pouch">little critter pouch </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>highlight</li>
</ul>
<img src="/img/rachel-bracelets.jpg" alt="Two pink leather bracelets with stainless steel hardware and aqua stitching." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/little-critter-pouch.jpg" alt="A leather pouch shaped a bit like a d10 but with eight sides. It has a rainbow zippered opening and a wristlet strap." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/mom-bag/">
<h2 data-ha-exclude="" id="mom-bag">mom bag </h2>
<a class="postlink" href="/makers-mark-keychain/">
<h2 data-ha-exclude="" id="makers-mark-keychain">maker&#39;s mark keychain </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/mom-bag.jpg" alt="A leather bag sized for a large smartphone with a main pocket and a wraparound smaller pocket. It has a magnetic clasp." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/makers-mark-keychain.jpg" alt="A keychain on an iridescent rainbow split ring. It is dark brown/grey leather and has LEE CAT ART stamped into it." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1658,8 +1660,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1673,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/bowtie/` was built on 2026-05-14T15:56:39.319Z -->
<!-- This page `/bowtie/` was built on 2026-05-14T16:22:55.571Z -->
</body>
</html>
+36 -40
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-08-19">August 18, 2023</time>
<time datetime="2023-08-19">August 19, 2023</time>
by Lee Cattarin
</p>
@@ -1626,51 +1626,47 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/pins/">
<h2 data-ha-exclude="" id="pins">pins! </h2>
<ul class="postlist-tags">
<li>pin</li>
</ul>
<img src="/img/trans-rights-and-wrongs-pins.jpg" alt="Two hard enamel pins in my trans rights and trans wrongs skulls designs." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
</a>
</li>
<li class="post">
<a class="postlink" href="/anarchy-autism/">
<h2 data-ha-exclude="" id="anarchy-autism">anarchy autism </h2>
<a class="postlink" href="/become-unbutterable/">
<h2 data-ha-exclude="" id="become-unbutterable">become unbutterable </h2>
<ul class="postlist-tags">
<li>print</li>
<li>sticker</li>
</ul>
<img src="/img/become-unbutterable.jpg" alt="3 copies of the same stamp in orange ink are spread out next to the hand carved rubber stamp they were made from. They show a cat lying on his back with paws curled, holding a butter knife in his mouth. Text around the cat reads, in all caps, &#39;become unbutterable.&#39;" loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
<li class="post">
<a class="postlink" href="/give-to-trans-orgs-and-people/">
<h2 data-ha-exclude="" id="give-to-trans-orgs-and-people">give to trans orgs and people </h2>
<ul class="postlist-tags">
<li>gender</li>
</ul>
<img src="/img/bouquet.jpg" alt="Image unrelated to post. A close up on a flower bouquet in shades of purple, pink, and white. Centered is a large, almost soft-looking pink flower that is still partially closed up." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/geese-trans-wrongs/">
<h2 data-ha-exclude="" id="geese-trans-wrongs">geese/trans wrongs </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>pin</li>
<li>gender</li>
</ul>
<img src="/img/anarchy-autism-rainbow-print.jpg" alt="A print in rainbow ink that says autism with the anarchy A." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/trans-wrongs-geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over towards them and HONKS! Both have speech bubbles; the calm goose says &#39;trans rights!&#39; while the honking goose says &#39;trans wrongs!&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1693,8 +1689,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1706,6 +1702,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/boypussy/` was built on 2026-05-14T15:56:39.304Z -->
<!-- This page `/boypussy/` was built on 2026-05-14T16:22:55.556Z -->
</body>
</html>
+11 -13
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-12-02">December 1, 2023</time>
<time datetime="2023-12-02">December 2, 2023</time>
by Lee Cattarin
</p>
@@ -1599,31 +1599,29 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/proud-dad-wallet/">
<h2 data-ha-exclude="" id="proud-dad-wallet">proud dad wallet </h2>
<a class="postlink" href="/x-acto-knife-sheath/">
<h2 data-ha-exclude="" id="x-acto-knife-sheath">x-acto knife sheath </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>gender</li>
</ul>
<img src="/img/proud-dad-wallet.jpg" alt="A brown leather wallet with a subtle trans flag stitching across the top." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/knife-sheaths.jpg" alt="Several blades with leather sheaths, and a few extra sheaths. There&#39;s a #2 blade with an orange sheath with yellow stitching, a #11 blade with a blue sheath with light grey stitching, and a skiving knife with a plum sheath and pink stitching." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/long-zipper-bifold/">
<h2 data-ha-exclude="" id="long-zipper-bifold">long zipper bifold </h2>
<a class="postlink" href="/foldy-wallet-with-thumb-slide/">
<h2 data-ha-exclude="" id="foldy-wallet-with-thumb-slide">foldy wallet with thumb slide </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/long-zipper-bifold.jpg" alt="A collage showing an orange leather wallet with a long zipper running the length of the outside." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/foldy-thumb-slide.jpg" alt="A card wallet with one main pocket and one quick access slot with a thumb slide. The cover of the main pocket curves around the thumb slide." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1662,8 +1660,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1675,6 +1673,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brookes-collar/` was built on 2026-05-14T15:56:39.314Z -->
<!-- This page `/brookes-collar/` was built on 2026-05-14T16:22:55.565Z -->
</body>
</html>
+14 -16
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-01-16">January 15, 2024</time>
<time datetime="2024-01-16">January 16, 2024</time>
by Lee Cattarin
</p>
@@ -1599,45 +1599,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/dragon-mask/">
<h2 data-ha-exclude="" id="dragon-mask">dragon mask </h2>
<a class="postlink" href="/bag-strap/">
<h2 data-ha-exclude="" id="bag-strap">bag strap </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>highlight</li>
</ul>
<img src="/img/dragon-mask.jpg" alt="lee (a white person with glasses and a side shave) holds up a leather dragon mask in black and dark green. ze sticks hir tongue out at it." loading="lazy" decoding="async" width="1000" height="746">
<img src="/img/bag-strap.jpg" alt="A nylon webbing shoulder strap in bright teal with clips on each end." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/zipper-bifold/">
<h2 data-ha-exclude="" id="zipper-bifold">zipper bifold </h2>
<a class="postlink" href="/patchwork-wallet/">
<h2 data-ha-exclude="" id="patchwork-wallet">patchwork wallet </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/zipper-bifold.jpg" alt="A collage showing a hand-stitched leather bifold with a zippered coin pocket on one exterior side." loading="lazy" decoding="async" width="1000" height="1777">
<img src="/img/patchwork-wallet.jpg" alt="A collage showing a wallet in a patchwork style, with different colors of leather all stitched together to make up the exterior and the top interior pockets. Other pockets inside are dyed various colors." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/soras-collar/">
<h2 data-ha-exclude="" id="soras-collar">sora&#39;s collar </h2>
<a class="postlink" href="/lobstah/">
<h2 data-ha-exclude="" id="lobstah">lobstah </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/sora-collar.jpg" alt="A collage showing a red and black leather dog collar tooled with roses and the name Sora. It&#39;s fully stitched with dark red stitching and has brass hardware." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/lobstah.jpg" alt="Two red leather lobster ornaments, about 4-5 in long each." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1660,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1673,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brookes-cuff-bracelets/` was built on 2026-05-14T15:56:39.317Z -->
<!-- This page `/brookes-cuff-bracelets/` was built on 2026-05-14T16:22:55.569Z -->
</body>
</html>
+40 -36
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-12-16">December 15, 2022</time>
<time datetime="2022-12-16">December 16, 2022</time>
by Lee Cattarin
</p>
@@ -1614,45 +1614,49 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/quorbs/">
<h2 data-ha-exclude="" id="quorbs">quorbs </h2>
<a class="postlink" href="/blue-and-brown-leather-journal/">
<h2 data-ha-exclude="" id="blue-and-brown-leather-journal">blue and brown leather journal </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/blue-brown-leather-journal.jpg" alt="A three panel collage showcasing a blue and brown leather-covered journal." loading="lazy" decoding="async" width="1000" height="1776">
</a>
</li>
<li class="post">
<a class="postlink" href="/dragon-mask/">
<h2 data-ha-exclude="" id="dragon-mask">dragon mask </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>highlight</li>
</ul>
<img src="/img/dragon-mask.jpg" alt="lee (a white person with glasses and a side shave) holds up a leather dragon mask in black and dark green. ze sticks hir tongue out at it." loading="lazy" decoding="async" width="1000" height="746">
</a>
</li>
<li class="post">
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
<li>highlight</li>
</ul>
<img src="/img/quorbs-print.jpg" alt="A print in two layers of color showing two rotund quails on a branch. Most of the details are in black ink, then there is a layer with a brown gradient filling in some color on the head and breast." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/leather-strap-journal/">
<h2 data-ha-exclude="" id="leather-strap-journal">leather strap journal </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/leather-strap-journal.jpg" alt="A 3-part collage showing a blue journal with leather straps woven into the covers." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/orange-green-journal/">
<h2 data-ha-exclude="" id="orange-green-journal">orange green journal </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/orange-green-journal.jpg" alt="A 4-part collage of a slim handbound book." loading="lazy" decoding="async" width="1000" height="1777">
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1675,8 +1679,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1688,6 +1692,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brookes-notebook/` was built on 2026-05-14T15:56:39.296Z -->
<!-- This page `/brookes-notebook/` was built on 2026-05-14T16:22:55.548Z -->
</body>
</html>
+21 -23
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-12-02">December 1, 2025</time>
<time datetime="2025-12-02">December 2, 2025</time>
by Lee Cattarin
</p>
@@ -1605,20 +1605,6 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/keffiyah-fishing-net-pattern/">
<h2 data-ha-exclude="" id="keffiyah-fishing-net-pattern">keffiyah fishing net pattern </h2>
<ul class="postlist-tags">
<li>knit</li>
</ul>
<img src="/img/keffiyah-nets.jpg" alt="a knitted swatch. it&#39;s mostly white yarn, but a grid of dark red- purple- green yarn that looks like a chain link fence is built into it. the diagonal lines are achieved with floats of yarn from one row, then picked up and knit into several rows later." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/sideways-canvas-shirt/">
<h2 data-ha-exclude="" id="sideways-canvas-shirt">sideways canvas shirt </h2>
@@ -1634,17 +1620,29 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<a class="postlink" href="/brookes-socks/">
<h2 data-ha-exclude="" id="brookes-socks">brooke&#39;s socks </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/brooke-socks.jpg" alt="Feet in a pair of colorful socks. They are identically striped and quickly vary between yellow, green, blue, white, and gray." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/knit-shrimp/">
<h2 data-ha-exclude="" id="knit-shrimp">knit shrimp </h2>
<ul class="postlist-tags">
<li>knit</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
<img src="/img/knit-shrimp.jpg" alt="Four knitted shrimp in various shades of pink. They are all somewhere around hand-sized, and have little yarn antennae and leggies." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1667,8 +1665,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1680,6 +1678,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brookes-scarf/` was built on 2026-05-14T15:56:39.330Z -->
<!-- This page `/brookes-scarf/` was built on 2026-05-14T16:22:55.583Z -->
</body>
</html>
+21 -21
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-11-21">November 20, 2022</time>
<time datetime="2022-11-21">November 21, 2022</time>
by Lee Cattarin
</p>
@@ -1598,6 +1598,22 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/on-the-shoulders-of-giants/">
<h2 data-ha-exclude="" id="on-the-shoulders-of-giants">on the shoulders of giants </h2>
<ul class="postlist-tags">
<li>zine</li>
<li>knit</li>
</ul>
<img src="/img/on-the-shoulders.jpg" alt="ok so. five image collage showing the front, 3 inner spreads, and back of a riso-printed zine in green and light blue. it&#39;s called &#39;on the shoulders of giants&#39; and it&#39;s about a knitting technique I learned from Stephen west and how I built on that technique. it talks about joining two adjacent panels without seaming, instead knitting the second panel onto the selvedge of the first. then it uses that technique to approach two panels knit with significantly different weights of yarn" loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/keffiyah-fishing-net-pattern/">
<h2 data-ha-exclude="" id="keffiyah-fishing-net-pattern">keffiyah fishing net pattern </h2>
@@ -1612,22 +1628,6 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
</a>
</li>
<li class="post">
<a class="postlink" href="/brookes-scarf/">
<h2 data-ha-exclude="" id="brookes-scarf">brooke&#39;s scarf </h2>
@@ -1660,8 +1660,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1673,6 +1673,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brookes-socks/` was built on 2026-05-14T15:56:39.295Z -->
<!-- This page `/brookes-socks/` was built on 2026-05-14T16:22:55.548Z -->
</body>
</html>
+15 -15
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-09-05">September 4, 2025</time>
<time datetime="2025-09-05">September 5, 2025</time>
by Lee Cattarin
</p>
@@ -1599,45 +1599,45 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/little-critter-pouch/">
<h2 data-ha-exclude="" id="little-critter-pouch">little critter pouch </h2>
<a class="postlink" href="/leather-long-stitch-journals/">
<h2 data-ha-exclude="" id="leather-long-stitch-journals">leather long-stitch journals </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>highlight</li>
<li>book</li>
</ul>
<img src="/img/little-critter-pouch.jpg" alt="A leather pouch shaped a bit like a d10 but with eight sides. It has a rainbow zippered opening and a wristlet strap." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/long-stitch-journals.jpg" alt="A stack of hand-bound journals showing long stitches aligned with the spines. They are leather bound and have tie closures." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/foldy-wallet/">
<h2 data-ha-exclude="" id="foldy-wallet">foldy wallet </h2>
<a class="postlink" href="/leaf-patches/">
<h2 data-ha-exclude="" id="leaf-patches">leaf patches </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/foldy-wallet.jpg" alt="A four part collage showing a single piece of deep red leather folding up to become a card wallet." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/leaf-patches-oak.jpg" alt="Several oak-leaf-shaped leather patches with stitching holes punched around the edges." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/bag-strap/">
<h2 data-ha-exclude="" id="bag-strap">bag strap </h2>
<a class="postlink" href="/pinatex-wallet-with-zipper/">
<h2 data-ha-exclude="" id="pinatex-wallet-with-zipper">piñatex wallet with zipper </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/bag-strap.jpg" alt="A nylon webbing shoulder strap in bright teal with clips on each end." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/pinatex-ten-pocket-bifold.jpg" alt="A two-picture collage showing the inside and outside of a wallet made with piñatex, a leather alternative made from pineapple leaves. It is two tone blue with a pink accent and has a zippered pocket built in." loading="lazy" decoding="async" width="1000" height="1331">
</a>
</li>
@@ -1660,8 +1660,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1673,6 +1673,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brookes-suspenders/` was built on 2026-05-14T15:56:39.328Z -->
<!-- This page `/brookes-suspenders/` was built on 2026-05-14T16:22:55.582Z -->
</body>
</html>
+19 -17
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-12-18">December 17, 2024</time>
<time datetime="2024-12-18">December 18, 2024</time>
by Lee Cattarin
</p>
@@ -1600,22 +1600,26 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/kniphofia/">
<h2 data-ha-exclude="" id="kniphofia">kniphofia </h2>
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
<li>highlight</li>
</ul>
<img src="/img/kniphofia-print.jpg" alt="A print of a brightly colored flower in 4 layers of color" loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/nonbinary-flag/">
<h2 data-ha-exclude="" id="nonbinary-flag">nonbinary flag </h2>
<a class="postlink" href="/seedling/">
<h2 data-ha-exclude="" id="seedling">seedling </h2>
<ul class="postlist-tags">
@@ -1623,26 +1627,24 @@ if (window.innerWidth > 650) {
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/nonbinary-flag-print.jpg" alt="A print of a nonbinary flag waving, with yellow, white (uninked), purple, and black stripes." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/seedling-print.jpg" alt="A print of a 3-stage design of a green seedling barely open, starting to straighten up, and growing strong, with little piles of dirt beneath each one." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/hair/">
<h2 data-ha-exclude="" id="hair">hair </h2>
<a class="postlink" href="/artisans-cooperative-cards/">
<h2 data-ha-exclude="" id="artisans-cooperative-cards">artisans cooperative cards </h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
<li>card</li>
</ul>
<img src="/img/hair-print.jpg" alt="A print in black ink of belly hair." loading="lazy" decoding="async" width="1000" height="710">
<img src="/img/artisans-coop-cards.jpg" alt="2 white greeting cards with the Artisans Cooperative logo, a chicken. One card has a single print of the chicken in black ink, and the other has two overlapping prints in blue and red ink" loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1665,8 +1667,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1678,6 +1680,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/brown-creeper/` was built on 2026-05-14T15:56:39.322Z -->
<!-- This page `/brown-creeper/` was built on 2026-05-14T16:22:55.575Z -->
</body>
</html>
+31 -27
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-02-13">February 12, 2023</time>
<time datetime="2023-02-13">February 13, 2023</time>
by Lee Cattarin
</p>
@@ -1681,47 +1681,51 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/textures-unite/">
<h2 data-ha-exclude="" id="textures-unite">textures unite </h2>
<a class="postlink" href="/little-critter-pouch/">
<h2 data-ha-exclude="" id="little-critter-pouch">little critter pouch </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>highlight</li>
</ul>
<img src="/img/little-critter-pouch.jpg" alt="A leather pouch shaped a bit like a d10 but with eight sides. It has a rainbow zippered opening and a wristlet strap." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/on-the-shoulders-of-giants/">
<h2 data-ha-exclude="" id="on-the-shoulders-of-giants">on the shoulders of giants </h2>
<ul class="postlist-tags">
<li>zine</li>
<li>knit</li>
<li>highlight</li>
</ul>
<img src="/img/textures-unite.jpg" alt="a largely unseen person holds up an expansive knitted shawl, built in 6 sections of different textures and colors. in the background, trees and dappled sunlight." loading="lazy" decoding="async" width="1000" height="1334">
<img src="/img/on-the-shoulders.jpg" alt="ok so. five image collage showing the front, 3 inner spreads, and back of a riso-printed zine in green and light blue. it&#39;s called &#39;on the shoulders of giants&#39; and it&#39;s about a knitting technique I learned from Stephen west and how I built on that technique. it talks about joining two adjacent panels without seaming, instead knitting the second panel onto the selvedge of the first. then it uses that technique to approach two panels knit with significantly different weights of yarn" loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/recommendations-and-favorites/">
<h2 data-ha-exclude="" id="recommendations-and-favorites">recommendations &amp; favorites </h2>
<ul class="postlist-tags">
<li>highlight</li>
</ul>
<img src="/img/metal-curl.jpg" alt="Photo unrelated to content of post. A metal sculpture rises up and curls into itself, with similar sculptures around it. Looking through the very center of the curve, an any-gender bathroom sign is visible." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/quorbs/">
<h2 data-ha-exclude="" id="quorbs">quorbs </h2>
<a class="postlink" href="/kestrel-zine/">
<h2 data-ha-exclude="" id="kestrel-zine">kestrel zine </h2>
<ul class="postlist-tags">
<li>print</li>
<li>zine</li>
<li>highlight</li>
</ul>
<img src="/img/quorbs-print.jpg" alt="A print in two layers of color showing two rotund quails on a branch. Most of the details are in black ink, then there is a layer with a brown gradient filling in some color on the head and breast." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/kestrel-zine.jpg" alt="A 5 photo collage showing the front and back cover as well as 3 full spreads of a folded zine about Kestrel, my dog, who is a 65lb Malinois with a goofy smile and floppy ears. it is printed in two layers of color, blue and orange, and each image depicts Kestrel in various posts... alert and watchful, resting, looking mopey, wearing a sweatshirt." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1744,8 +1748,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1757,6 +1761,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/butch-hands-pattern/` was built on 2026-05-14T15:56:39.296Z -->
<!-- This page `/butch-hands-pattern/` was built on 2026-05-14T16:22:55.549Z -->
</body>
</html>
+24 -26
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-04-16">April 15, 2023</time>
<time datetime="2023-04-16">April 16, 2023</time>
by Lee Cattarin
</p>
@@ -1610,24 +1610,6 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/congrats-on-the-gay/">
<h2 data-ha-exclude="" id="congrats-on-the-gay">congrats on the gay </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/congrats-on-the-gay.jpg" alt="A greeting card reading, in black. &#39;Congrats on the,&#39; and then, in rainbow, &#39;Gay!&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/junco/">
<h2 data-ha-exclude="" id="junco">junco </h2>
@@ -1645,8 +1627,8 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/geese/">
<h2 data-ha-exclude="" id="geese">geese </h2>
<a class="postlink" href="/big-pidge/">
<h2 data-ha-exclude="" id="big-pidge">big pidge </h2>
<ul class="postlist-tags">
@@ -1657,7 +1639,23 @@ if (window.innerWidth > 650) {
<li>shirt</li>
</ul>
<img src="/img/geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over and HONKS!" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/big-pidge-print.jpg" alt="A block print of a superb speciman of pigeon, inked mostly in black but with patches of green, blue, and purple to indicate iridescence." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/killdeer/">
<h2 data-ha-exclude="" id="killdeer">killdeer </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/killdeer-print.jpg" alt="A print of a killdeer in black ink." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1680,8 +1678,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1693,6 +1691,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/chanterelle/` was built on 2026-05-14T15:56:39.297Z -->
<!-- This page `/chanterelle/` was built on 2026-05-14T16:22:55.549Z -->
</body>
</html>
+33 -33
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-02-05">February 4, 2026</time>
<time datetime="2026-02-05">February 5, 2026</time>
by Lee Cattarin
</p>
@@ -1598,34 +1598,6 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/handcombed-jacobs-handspun/">
<h2 data-ha-exclude="" id="handcombed-jacobs-handspun">handcombed jacobs handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/handcombed-jacobs.jpg" alt="a skein of dark grey handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/handspun-yarn-in-party-mix-and-orange-gold/">
<h2 data-ha-exclude="" id="handspun-yarn-in-party-mix-and-orange-gold">handspun yarn in party mix and orange-gold </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/handspun0.jpg" alt="4 skeins of handspun yarn, two in a somewhat pastel multicolor and two in a blend of orange, gold, and white." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/orion-handspun/">
<h2 data-ha-exclude="" id="orion-handspun">orion handspun </h2>
@@ -1640,6 +1612,34 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/fire-and-ice-handspun/">
<h2 data-ha-exclude="" id="fire-and-ice-handspun">fire &amp; ice handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/fire-ice-handspun.jpg" alt="2 skeins, one large and one small, of a heathered orange yarn with hints of blue in about a DK or worsted weight." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/dyeing-fiber/">
<h2 data-ha-exclude="" id="dyeing-fiber">dyeing fiber </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/dyed-fiber.jpg" alt="4oz of yarn and a pound of wool, chunked out, drying on a drying rack outdoors. the yarn and half the wool is a mix of teals and greens; the other half of the wool is a beautiful orange-gold." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
</ol>
</section>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/charlie-the-alpaca-handspun/` was built on 2026-05-14T15:56:39.325Z -->
<!-- This page `/charlie-the-alpaca-handspun/` was built on 2026-05-14T16:22:55.578Z -->
</body>
</html>
+16 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-12-31">December 30, 2023</time>
<time datetime="2023-12-31">December 31, 2023</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,45 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/aarons-mask/">
<h2 data-ha-exclude="" id="aarons-mask">aaron&#39;s mask </h2>
<a class="postlink" href="/moss-harness/">
<h2 data-ha-exclude="" id="moss-harness">moss harness </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/aaron-mask.jpg" alt="A brown/grey leather mask of a long snouted dog with visible teeth and red detailing." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/moss-harness.jpg" alt="A nylon webbing harness in bright teal laid out on a desk." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/lobstah/">
<h2 data-ha-exclude="" id="lobstah">lobstah </h2>
<a class="postlink" href="/dragon-mask/">
<h2 data-ha-exclude="" id="dragon-mask">dragon mask </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>highlight</li>
</ul>
<img src="/img/lobstah.jpg" alt="Two red leather lobster ornaments, about 4-5 in long each." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/dragon-mask.jpg" alt="lee (a white person with glasses and a side shave) holds up a leather dragon mask in black and dark green. ze sticks hir tongue out at it." loading="lazy" decoding="async" width="1000" height="746">
</a>
</li>
<li class="post">
<a class="postlink" href="/leather-keychains/">
<h2 data-ha-exclude="" id="leather-keychains">leather keychains </h2>
<a class="postlink" href="/sunflower/">
<h2 data-ha-exclude="" id="sunflower">sunflower </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/leather-keychains.jpg" alt="A picture of multiple leather keychains sitting on a wood table. Many of them are simple rectangle shapes with stitching around the edge; a few are odd wavy or geometric shapes. A few say things like &#39;MOM&#39; or &#39;EGG&#39;." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/sunflower.jpg" alt="A sunflower made of leather. Many individual natural toned leather petals are sewn onto a brown center ." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1658,8 +1660,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1673,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/circle-bag/` was built on 2026-05-14T15:56:39.315Z -->
<!-- This page `/circle-bag/` was built on 2026-05-14T16:22:55.566Z -->
</body>
</html>
+4 -4
View File
@@ -895,7 +895,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1008,8 +1008,8 @@ export { HeadingAnchors }</script>
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1021,6 +1021,6 @@ export { HeadingAnchors }</script>
</footer>
<!-- This page `/colophon/` was built on 2026-05-14T15:56:39.334Z -->
<!-- This page `/colophon/` was built on 2026-05-14T16:22:55.588Z -->
</body>
</html>
+40 -42
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-07-04">July 3, 2023</time>
<time datetime="2023-07-04">July 4, 2023</time>
by Lee Cattarin
</p>
@@ -1615,49 +1615,47 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/squarsh/">
<h2 data-ha-exclude="" id="squarsh">squarsh </h2>
<a class="postlink" href="/networks-of-trans-care/">
<h2 data-ha-exclude="" id="networks-of-trans-care">networks of trans care </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/squarsh-prints.jpg" alt="Two identical prints of a delicata squash. The body of the squash is cornsilk (muted yellow), the stem and stripes in mint green, and the shadows in lilac." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/five-of-them/">
<h2 data-ha-exclude="" id="five-of-them">five of them </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
</ul>
<img src="/img/five-of-them-print.jpg" alt="A block print of five mule deer grazing in a dark green field. The deer are partially negative space and partially brown ink detailing." loading="lazy" decoding="async" width="1000" height="594">
</a>
</li>
<li class="post">
<a class="postlink" href="/congrats-on-the-gay/">
<h2 data-ha-exclude="" id="congrats-on-the-gay">congrats on the gay </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/congrats-on-the-gay.jpg" alt="A greeting card reading, in black. &#39;Congrats on the,&#39; and then, in rainbow, &#39;Gay!&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/mushrooms-and-moss.jpg" alt="Image unrelated to post. Close up on a cluster of orange-brown mushrooms on a mossy tree trunk." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/hair/">
<h2 data-ha-exclude="" id="hair">hair </h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/hair-print.jpg" alt="A print in black ink of belly hair." loading="lazy" decoding="async" width="1000" height="710">
</a>
</li>
<li class="post">
<a class="postlink" href="/rope-one/">
<h2 data-ha-exclude="" id="rope-one-mature">rope (one) (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/rope-print-1.jpg" alt="A print of a nude trans woman in an asymmetrical rope harness." class="blur" loading="lazy" decoding="async" width="1000" height="1242">
</a>
</li>
@@ -1680,8 +1678,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1693,6 +1691,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/coming-out/` was built on 2026-05-14T15:56:39.303Z -->
<!-- This page `/coming-out/` was built on 2026-05-14T16:22:55.556Z -->
</body>
</html>
+8 -8
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-01-08">January 7, 2026</time>
<time datetime="2026-01-08">January 8, 2026</time>
by Lee Cattarin
</p>
@@ -1853,15 +1853,15 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/moving-images/">
<h2 data-ha-exclude="" id="moving-images">moving images </h2>
<a class="postlink" href="/screen-reader-optimizations/">
<h2 data-ha-exclude="" id="screen-reader-optimizations">screen reader optimizations </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/cormorant.jpg" alt="Image unrelated to post. A cormorant, a type of black waterfowl, poses with wings spread on a buoy in Puget Sound. Off to the left, another bird floats." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/crow.jpg" alt="Image unrelated to post. A crow poses on driftwood against a whitish sky." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1884,8 +1884,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1897,6 +1897,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/comparing-text-editors/` was built on 2026-05-14T15:56:39.323Z -->
<!-- This page `/comparing-text-editors/` was built on 2026-05-14T16:22:55.576Z -->
</body>
</html>
+19 -27
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-10-31">October 30, 2022</time>
<time datetime="2022-10-31">October 31, 2022</time>
by Lee Cattarin
</p>
@@ -1612,61 +1612,53 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/geese-trans-wrongs/">
<h2 data-ha-exclude="" id="geese-trans-wrongs">geese/trans wrongs </h2>
<a class="postlink" href="/boypussy/">
<h2 data-ha-exclude="" id="boypussy-mature">boypussy (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>sticker</li>
<li>shirt</li>
<li>pin</li>
<li>gender</li>
</ul>
<img src="/img/trans-wrongs-geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over towards them and HONKS! Both have speech bubbles; the calm goose says &#39;trans rights!&#39; while the honking goose says &#39;trans wrongs!&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/boypussy-shirt.jpg" alt="A butch holding a chainsaw and wearing a tank top that reads boypussy in pink Barbie font." class="blur" loading="lazy" decoding="async" width="1000" height="1250">
</a>
</li>
<li class="post">
<a class="postlink" href="/trans-rights-skull/">
<h2 data-ha-exclude="" id="trans-rights-skull">trans rights skull </h2>
<a class="postlink" href="/greeting-quorbs/">
<h2 data-ha-exclude="" id="greeting-quorbs">greeting quorbs </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>sticker</li>
<li>pin</li>
<li>gender</li>
<li>print</li>
</ul>
<img src="/img/trans-rights-print.jpg" alt="A print in mostly black ink of a smiling skull with a speech bubble. In pink and blue, the speech bubble reads &#39;trans rights!&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/greeting-quorbs.jpg" alt="A pile of hand-printed A2 size greeting cards. Only the front is visible, showing a particularly round quail." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/anarchy-autism/">
<h2 data-ha-exclude="" id="anarchy-autism">anarchy autism </h2>
<a class="postlink" href="/loon/">
<h2 data-ha-exclude="" id="loon">loon </h2>
<ul class="postlist-tags">
<li>print</li>
<li>sticker</li>
<li>shirt</li>
<li>pin</li>
</ul>
<img src="/img/anarchy-autism-rainbow-print.jpg" alt="A print in rainbow ink that says autism with the anarchy A." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/loon-print.jpg" alt="A print of a loon rearing up with wings spread" loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1689,8 +1681,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1702,6 +1694,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/congrats-on-the-autism-adhd/` was built on 2026-05-14T15:56:39.293Z -->
<!-- This page `/congrats-on-the-autism-adhd/` was built on 2026-05-14T16:22:55.545Z -->
</body>
</html>
+29 -25
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-02-01">January 31, 2023</time>
<time datetime="2023-02-01">February 1, 2023</time>
by Lee Cattarin
</p>
@@ -1618,22 +1618,40 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/fix-your-hearts/">
<h2 data-ha-exclude="" id="fix-your-hearts">fix your hearts </h2>
<a class="postlink" href="/slightly-weird-man-club/">
<h2 data-ha-exclude="" id="slightly-weird-man-club">slightly weird man club </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/slightly-weird-man-club-print.jpg" alt="A print that reads &#39;slightly weird man club&#39; in a nonbinary flag colored gradient" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/euphorbia/">
<h2 data-ha-exclude="" id="euphorbia">euphorbia </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/fix-your-hearts-print.jpg" alt="2 copies of the same print, one in black ink and one in dark teal. The print is text that reads &#39;fix your hearts or die&#39;, with the text shaped into a somewhat long and narrow heart." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/euphorbia-print.jpg" alt="A print in black ink on brown paper. It depicts a stem of euphorbia, a plant with long, thin leaves and many clustered flowers." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/seedling/">
<h2 data-ha-exclude="" id="seedling">seedling </h2>
<a class="postlink" href="/flatfish/">
<h2 data-ha-exclude="" id="flatfish">flatfish </h2>
<ul class="postlist-tags">
@@ -1642,21 +1660,7 @@ if (window.innerWidth > 650) {
<li>card</li>
</ul>
<img src="/img/seedling-print.jpg" alt="A print of a 3-stage design of a green seedling barely open, starting to straighten up, and growing strong, with little piles of dirt beneath each one." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/squarsh/">
<h2 data-ha-exclude="" id="squarsh">squarsh </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/squarsh-prints.jpg" alt="Two identical prints of a delicata squash. The body of the squash is cornsilk (muted yellow), the stem and stripes in mint green, and the shadows in lilac." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/flatfish-print.jpg" alt="A print of a simple flatfish design inked in sepia." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1679,8 +1683,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1692,6 +1696,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/congrats-on-the-gay/` was built on 2026-05-14T15:56:39.296Z -->
<!-- This page `/congrats-on-the-gay/` was built on 2026-05-14T16:22:55.549Z -->
</body>
</html>
+4 -4
View File
@@ -895,7 +895,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1088,8 +1088,8 @@ export { HeadingAnchors }</script>
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1101,6 +1101,6 @@ export { HeadingAnchors }</script>
</footer>
<!-- This page `/contact/` was built on 2026-05-14T15:56:39.334Z -->
<!-- This page `/contact/` was built on 2026-05-14T16:22:55.588Z -->
</body>
</html>
+11 -11
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-01-18">January 17, 2026</time>
<time datetime="2026-01-18">January 18, 2026</time>
by Lee Cattarin
</p>
@@ -1599,15 +1599,15 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/hand-dyed-gold-handspun/">
<h2 data-ha-exclude="" id="hand-dyed-gold-handspun">hand-dyed gold handspun </h2>
<a class="postlink" href="/handspun-yarn-in-party-mix-and-orange-gold/">
<h2 data-ha-exclude="" id="handspun-yarn-in-party-mix-and-orange-gold">handspun yarn in party mix and orange-gold </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/gold-handspun.jpg" alt="3 skeins, one small and two large, of a rich golden-orange handspun with light tonal effects, in about a DK weight" loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/handspun0.jpg" alt="4 skeins of handspun yarn, two in a somewhat pastel multicolor and two in a blend of orange, gold, and white." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1627,15 +1627,15 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/rambouillet-handspun/">
<h2 data-ha-exclude="" id="rambouillet-handspun">rambouillet handspun </h2>
<a class="postlink" href="/light-grey-jacobs-handspun/">
<h2 data-ha-exclude="" id="light-grey-jacobs-handspun">light grey jacobs handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/rambouillet-handspun.jpg" alt="1 large and 2 small skeins of handspun yarn in a sport or DK weight that has been dyed in light and dark teal, green, and rusty green-gold." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/light-grey-jacobs.jpg" alt="a skein of light grey handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/coral-reef-handspun/` was built on 2026-05-14T15:56:39.323Z -->
<!-- This page `/coral-reef-handspun/` was built on 2026-05-14T16:22:55.577Z -->
</body>
</html>
+18 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-02-09">February 8, 2026</time>
<time datetime="2026-02-09">February 9, 2026</time>
by Lee Cattarin
</p>
@@ -1598,38 +1598,40 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/luminescent/">
<h2 data-ha-exclude="" id="luminescent-mature">luminescent (mature)</h2>
<a class="postlink" href="/slightly-weird-man-club/">
<h2 data-ha-exclude="" id="slightly-weird-man-club">slightly weird man club </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/luminescent-print.jpg" alt="A print of a tattooed woman in bright highlighter yellow underwear." class="blur" loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/slightly-weird-man-club-print.jpg" alt="A print that reads &#39;slightly weird man club&#39; in a nonbinary flag colored gradient" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/euphorbia/">
<h2 data-ha-exclude="" id="euphorbia">euphorbia </h2>
<a class="postlink" href="/printmaking-paper-notes/">
<h2 data-ha-exclude="" id="printmaking-paper-notes">printmaking paper notes </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/euphorbia-print.jpg" alt="A print in black ink on brown paper. It depicts a stem of euphorbia, a plant with long, thin leaves and many clustered flowers." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/killdeer.jpg" alt="Image unrelated to post. A very fluffed up killdeer stands on a rocky beach." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/iris/">
<h2 data-ha-exclude="" id="iris">iris </h2>
<a class="postlink" href="/flicker/">
<h2 data-ha-exclude="" id="flicker">flicker </h2>
<ul class="postlist-tags">
@@ -1637,8 +1639,10 @@ if (window.innerWidth > 650) {
<li>card</li>
<li>shirt</li>
</ul>
<img src="/img/iris-prints.jpg" alt="3 copies of the same print of iris flowers and a bud, done in slightly varied color schemes." loading="lazy" decoding="async" width="1000" height="562">
<img src="/img/flicker-print.jpg" alt="A print in black, brown, and red ink of a northern flicker (a type of woodpecker). Viewed from the back, he is looking over his shoulder and upward towards something unseen above him (my bird feeder)." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1661,8 +1665,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1674,6 +1678,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/crow/` was built on 2026-05-14T15:56:39.325Z -->
<!-- This page `/crow/` was built on 2026-05-14T16:22:55.578Z -->
</body>
</html>
+20 -16
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-09-08">September 7, 2025</time>
<time datetime="2025-09-08">September 8, 2025</time>
by Lee Cattarin
</p>
@@ -1615,43 +1615,47 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/leather-keychains/">
<h2 data-ha-exclude="" id="leather-keychains">leather keychains </h2>
<a class="postlink" href="/gender-in-data-models/">
<h2 data-ha-exclude="" id="gender-in-data-models">gender in data models </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>gender</li>
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/leather-keychains.jpg" alt="A picture of multiple leather keychains sitting on a wood table. Many of them are simple rectangle shapes with stitching around the edge; a few are odd wavy or geometric shapes. A few say things like &#39;MOM&#39; or &#39;EGG&#39;." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/peony.jpg" alt="Image unrelated to post. A light pink peony in full bloom, close up." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/shrimp-cat-toy/">
<h2 data-ha-exclude="" id="shrimp-cat-toy">shrimp cat toy </h2>
<a class="postlink" href="/moving-images/">
<h2 data-ha-exclude="" id="moving-images">moving images </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>software</li>
</ul>
<img src="/img/two-shrimp.jpg" alt="Two leather shrimp-shaped cat toys. They have long dangly antennae and are stitched in red and orange." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/cormorant.jpg" alt="Image unrelated to post. A cormorant, a type of black waterfowl, poses with wings spread on a buoy in Puget Sound. Off to the left, another bird floats." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/aarons-mask/">
<h2 data-ha-exclude="" id="aarons-mask">aaron&#39;s mask </h2>
<a class="postlink" href="/sunflower/">
<h2 data-ha-exclude="" id="sunflower">sunflower </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/aaron-mask.jpg" alt="A brown/grey leather mask of a long snouted dog with visible teeth and red detailing." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/sunflower.jpg" alt="A sunflower made of leather. Many individual natural toned leather petals are sewn onto a brown center ." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1674,8 +1678,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1687,6 +1691,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/designing-a-bag/` was built on 2026-05-14T15:56:39.329Z -->
<!-- This page `/designing-a-bag/` was built on 2026-05-14T16:22:55.582Z -->
</body>
</html>
+14 -18
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-11-07">November 6, 2023</time>
<time datetime="2023-11-07">November 7, 2023</time>
by Lee Cattarin
</p>
@@ -1650,47 +1650,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/gender-in-data-models/">
<h2 data-ha-exclude="" id="gender-in-data-models">gender in data models </h2>
<a class="postlink" href="/eleventy-lessons/">
<h2 data-ha-exclude="" id="eleventy-lessons">eleventy lessons </h2>
<ul class="postlist-tags">
<li>gender</li>
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/peony.jpg" alt="Image unrelated to post. A light pink peony in full bloom, close up." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/hellebore.jpg" alt="Image unrelated to post. Close up on a pale green hellebore flower." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/moving-images/">
<h2 data-ha-exclude="" id="moving-images">moving images </h2>
<a class="postlink" href="/comparing-text-editors/">
<h2 data-ha-exclude="" id="comparing-text-editors">comparing text editors </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/cormorant.jpg" alt="Image unrelated to post. A cormorant, a type of black waterfowl, poses with wings spread on a buoy in Puget Sound. Off to the left, another bird floats." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/horsetail.jpg" alt="Image unrelated to post. Close up on a horsetail plant&#39;s stem, with many small needle-like leaves emerging from all sides of the circular stem at each segmented joint." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/my-favorite-git-flag/">
<h2 data-ha-exclude="" id="my-favorite-git-flag">my favorite git flag </h2>
<a class="postlink" href="/backend-accessibility/">
<h2 data-ha-exclude="" id="backend-accessibility">backend accessibility </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/shelf-mushrooms.jpg" alt="Picture unrelated to post. Creamy beige shelf mushrooms on a mossy tree trunk." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/camelCase-print.jpg" alt="A carved stamp next to its print. The print reads &#39;#camelCase&#39; in a slightly formal-looking italic font." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1713,8 +1709,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1726,6 +1722,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/domain-and-site-setup/` was built on 2026-05-14T15:56:39.313Z -->
<!-- This page `/domain-and-site-setup/` was built on 2026-05-14T16:22:55.564Z -->
</body>
</html>
+14 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-10-17">October 16, 2023</time>
<time datetime="2023-10-17">October 17, 2023</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/vix-collar/">
<h2 data-ha-exclude="" id="vix-collar">vix collar </h2>
<a class="postlink" href="/foldy-wallet/">
<h2 data-ha-exclude="" id="foldy-wallet">foldy wallet </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/vix-collar.jpg" alt="A collar rests on a leather-wrapped lighter. It is lined with shearling and built of two other layers of leather - a wider mustard yellow layer and a thinner teal layer over that. the teal layer holds a heart shaped o-ring in place." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/foldy-wallet.jpg" alt="A four part collage showing a single piece of deep red leather folding up to become a card wallet." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/pinatex-wallet-with-zipper/">
<h2 data-ha-exclude="" id="pinatex-wallet-with-zipper">piñatex wallet with zipper </h2>
<a class="postlink" href="/zipper-bifold/">
<h2 data-ha-exclude="" id="zipper-bifold">zipper bifold </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/pinatex-ten-pocket-bifold.jpg" alt="A two-picture collage showing the inside and outside of a wallet made with piñatex, a leather alternative made from pineapple leaves. It is two tone blue with a pink accent and has a zippered pocket built in." loading="lazy" decoding="async" width="1000" height="1331">
<img src="/img/zipper-bifold.jpg" alt="A collage showing a hand-stitched leather bifold with a zippered coin pocket on one exterior side." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
<li class="post">
<a class="postlink" href="/wrap-bracelets/">
<h2 data-ha-exclude="" id="wrap-bracelets">wrap bracelets </h2>
<a class="postlink" href="/gradient-purse-strap/">
<h2 data-ha-exclude="" id="gradient-purse-strap">gradient purse strap </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/leather-wrap-bracelets.jpg" alt="two wrists, each wearing a black leather wrap bracelet. the upper bracelet is a thin strap wrapped 3 times around the wrist. the lower bracelet wraps twice, with a thicker strap, and has carefully placed spikes that avoid the wrap spots." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/gradient-purse-strap.jpg" alt="a coiled up purse strap in gradient cool colors - we can see green, teal, indigo, and a slightly pinkish purple. It has brass hardware and is stiched along its length with cream stitches." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/double-bill-pocket-bifold/` was built on 2026-05-14T15:56:39.306Z -->
<!-- This page `/double-bill-pocket-bifold/` was built on 2026-05-14T16:22:55.559Z -->
</body>
</html>
+27 -25
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-11-13">November 12, 2025</time>
<time datetime="2025-11-13">November 13, 2025</time>
by Lee Cattarin
</p>
@@ -1604,45 +1604,47 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/brookes-cuff-bracelets/">
<h2 data-ha-exclude="" id="brookes-cuff-bracelets">brooke&#39;s cuff bracelets </h2>
<a class="postlink" href="/zipper-bifold/">
<h2 data-ha-exclude="" id="zipper-bifold">zipper bifold </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/brooke-cuffs.jpg" alt="Olive green leather cuffs with silver spikes and a shearling lining." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/zipper-bifold.jpg" alt="A collage showing a hand-stitched leather bifold with a zippered coin pocket on one exterior side." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
<li class="post">
<a class="postlink" href="/leather-lighter-case/">
<h2 data-ha-exclude="" id="leather-lighter-case">leather lighter case </h2>
<a class="postlink" href="/greeting-loons/">
<h2 data-ha-exclude="" id="greeting-loons">greeting loons </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>card</li>
</ul>
<img src="/img/leather-lighter-case.jpg" alt="A bic lighter wrapped in leather and hand-stitched up one side." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/butch-hands-pattern/">
<h2 data-ha-exclude="" id="butch-hands-pattern">butch hands pattern </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>print</li>
<li>highlight</li>
</ul>
<img src="/img/butch-hands.jpg" alt="Hands wearing a pair of pink and grey gloves with convertable mitten tops." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/greeting-loons.jpg" alt="A pile of hand-printed A2 size greeting cards. A loon rearing up with outstretched wings spans the front and back of the cards." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/x-acto-knife-sheath/">
<h2 data-ha-exclude="" id="x-acto-knife-sheath">x-acto knife sheath </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/knife-sheaths.jpg" alt="Several blades with leather sheaths, and a few extra sheaths. There&#39;s a #2 blade with an orange sheath with yellow stitching, a #11 blade with a blue sheath with light grey stitching, and a skiving knife with a plum sheath and pink stitching." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1665,8 +1667,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1678,6 +1680,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/dragon-mask/` was built on 2026-05-14T15:56:39.329Z -->
<!-- This page `/dragon-mask/` was built on 2026-05-14T16:22:55.583Z -->
</body>
</html>
+22 -22
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-01-18">January 17, 2026</time>
<time datetime="2026-01-18">January 18, 2026</time>
by Lee Cattarin
</p>
@@ -1599,29 +1599,15 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/rambouillet-handspun/">
<h2 data-ha-exclude="" id="rambouillet-handspun">rambouillet handspun </h2>
<a class="postlink" href="/light-grey-jacobs-handspun/">
<h2 data-ha-exclude="" id="light-grey-jacobs-handspun">light grey jacobs handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/rambouillet-handspun.jpg" alt="1 large and 2 small skeins of handspun yarn in a sport or DK weight that has been dyed in light and dark teal, green, and rusty green-gold." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/orion-handspun/">
<h2 data-ha-exclude="" id="orion-handspun">orion handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/orion-handspun.jpg" alt="3 skeins of handspun yarn, 1 large and 2 small. One of the small skeins is a little more inconsistent weight than the other two - this one was spun on drop spindle about 2 years ago. The other two are about a sport or maybe a DK weight. All three are a gold colorway with tiny hints of orange and a pale light green." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/light-grey-jacobs.jpg" alt="a skein of light grey handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1640,6 +1626,20 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/handcombed-jacobs-handspun/">
<h2 data-ha-exclude="" id="handcombed-jacobs-handspun">handcombed jacobs handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/handcombed-jacobs.jpg" alt="a skein of dark grey handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
</ol>
</section>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/dyeing-fiber/` was built on 2026-05-14T15:56:39.324Z -->
<!-- This page `/dyeing-fiber/` was built on 2026-05-14T16:22:55.577Z -->
</body>
</html>
+5 -5
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-09-30">September 29, 2023</time>
<time datetime="2023-09-30">September 30, 2023</time>
by Lee Cattarin
</p>
@@ -1640,8 +1640,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1653,6 +1653,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/ecommerce-options/` was built on 2026-05-14T15:56:39.305Z -->
<!-- This page `/ecommerce-options/` was built on 2026-05-14T16:22:55.557Z -->
</body>
</html>
+14 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-10-17">October 16, 2023</time>
<time datetime="2023-10-17">October 17, 2023</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/foldy-wallet-with-thumb-slide/">
<h2 data-ha-exclude="" id="foldy-wallet-with-thumb-slide">foldy wallet with thumb slide </h2>
<a class="postlink" href="/mousie/">
<h2 data-ha-exclude="" id="mousie">mousie </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/foldy-thumb-slide.jpg" alt="A card wallet with one main pocket and one quick access slot with a thumb slide. The cover of the main pocket curves around the thumb slide." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/mousie.jpg" alt="A cat in a sunbeam snuggles a little leather mouse-shaped cat toy." loading="lazy" decoding="async" width="1000" height="1499">
</a>
</li>
<li class="post">
<a class="postlink" href="/circle-bag/">
<h2 data-ha-exclude="" id="circle-bag">circle bag </h2>
<a class="postlink" href="/aarons-mask/">
<h2 data-ha-exclude="" id="aarons-mask">aaron&#39;s mask </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/circle-bag.jpg" alt="A round bag in brown, mustard yellow, and rich deep orange, with a teal shoulder strap." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/aaron-mask.jpg" alt="A brown/grey leather mask of a long snouted dog with visible teeth and red detailing." loading="lazy" decoding="async" width="900" height="1200">
</a>
</li>
<li class="post">
<a class="postlink" href="/leather-chest-harness/">
<h2 data-ha-exclude="" id="leather-chest-harness">leather chest harness </h2>
<a class="postlink" href="/leatherworking-favorites/">
<h2 data-ha-exclude="" id="leatherworking-favorites">leatherworking favorites </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/leather-chest-harness.jpg" alt="Someone from chin to mid-torso, wearing a dark teal leather chest harness with matte black fittings over a t shirt." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/leather-harness-wip.jpg" alt="two pieces of a chest harness sitting on a messy workbench. both pieces are about 8 inches long total and consist of two large o-rings joined by a dark teal leather strap. the o rings and rivets are matte black." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/eight-pocket-bifold/` was built on 2026-05-14T15:56:39.306Z -->
<!-- This page `/eight-pocket-bifold/` was built on 2026-05-14T16:22:55.559Z -->
</body>
</html>
+37 -33
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-02-19">February 18, 2026</time>
<time datetime="2026-02-19">February 19, 2026</time>
by Lee Cattarin
</p>
@@ -1889,34 +1889,6 @@ eleventyExcludeFromCollections: true
<h2 data-ha-exclude="" id="related-posts-2">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/moving-images/">
<h2 data-ha-exclude="" id="moving-images">moving images </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/cormorant.jpg" alt="Image unrelated to post. A cormorant, a type of black waterfowl, poses with wings spread on a buoy in Puget Sound. Off to the left, another bird floats." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/redirections/">
<h2 data-ha-exclude="" id="redirections">redirections </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/angle-brackets-uwu.jpg" alt="Ascii art of an emoticon with pinched eyes and a small mouth made with two angle brackets." loading="lazy" decoding="async" width="1000" height="316">
</a>
</li>
<li class="post">
<a class="postlink" href="/domain-and-site-setup/">
<h2 data-ha-exclude="" id="domain-and-site-setup">domain and site setup </h2>
@@ -1931,6 +1903,38 @@ eleventyExcludeFromCollections: true
</a>
</li>
<li class="post">
<a class="postlink" href="/gender-in-data-models/">
<h2 data-ha-exclude="" id="gender-in-data-models">gender in data models </h2>
<ul class="postlist-tags">
<li>gender</li>
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/peony.jpg" alt="Image unrelated to post. A light pink peony in full bloom, close up." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/handedness-toggle/">
<h2 data-ha-exclude="" id="handedness-toggle">handedness toggle </h2>
<ul class="postlist-tags">
<li>software</li>
</ul>
<img src="/img/handedness-toggle-0.png" alt="A screenshot of the rescue trans rescue navbar centered on a button that shows a hand pointing left." loading="lazy" decoding="async" width="1000" height="257">
</a>
</li>
</ol>
</section>
@@ -1949,8 +1953,8 @@ eleventyExcludeFromCollections: true
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1962,6 +1966,6 @@ eleventyExcludeFromCollections: true
</footer>
<!-- This page `/eleventy-lessons/` was built on 2026-05-14T15:56:39.325Z -->
<!-- This page `/eleventy-lessons/` was built on 2026-05-14T16:22:55.578Z -->
</body>
</html>
+17 -19
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-12-17">December 16, 2024</time>
<time datetime="2024-12-17">December 17, 2024</time>
by Lee Cattarin
</p>
@@ -1599,8 +1599,8 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/booby-congrats-on-the-top-surgery/">
<h2 data-ha-exclude="" id="booby-congrats-on-the-top-surgery">booby (congrats on the top surgery) </h2>
<a class="postlink" href="/big-pidge/">
<h2 data-ha-exclude="" id="big-pidge">big pidge </h2>
<ul class="postlist-tags">
@@ -1608,17 +1608,17 @@ if (window.innerWidth > 650) {
<li>card</li>
<li>gender</li>
<li>shirt</li>
</ul>
<img src="/img/booby-card.jpg" alt="A landscape-oriented white card with a two-color print of a blue-footed booby." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/big-pidge-print.jpg" alt="A block print of a superb speciman of pigeon, inked mostly in black but with patches of green, blue, and purple to indicate iridescence." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/chanterelle/">
<h2 data-ha-exclude="" id="chanterelle">chanterelle </h2>
<a class="postlink" href="/junco/">
<h2 data-ha-exclude="" id="junco">junco </h2>
<ul class="postlist-tags">
@@ -1627,25 +1627,23 @@ if (window.innerWidth > 650) {
<li>card</li>
</ul>
<img src="/img/chanterelle-print.jpg" alt="A print of two chanterelle mushrooms inked in a dark-to-light yellow gradient." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/junco-print.jpg" alt="A print of a junco mid-takeoff from a branch. Eir head is inked in black, body in gray, and the branch in sepia." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/pronoun-patches/">
<h2 data-ha-exclude="" id="pronoun-patches">pronoun patches </h2>
<a class="postlink" href="/greeting-quorbs/">
<h2 data-ha-exclude="" id="greeting-quorbs">greeting quorbs </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
<li>patch</li>
<li>gender</li>
</ul>
<img src="/img/pronoun-patch.jpg" alt="Rows of the same design, a skull with a speech bubble announcing varied pronoun sets, repeat in multiple colors along a stretch of off-white fabric." loading="lazy" decoding="async" width="1000" height="562">
<img src="/img/greeting-quorbs.jpg" alt="A pile of hand-printed A2 size greeting cards. Only the front is visible, showing a particularly round quail." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1668,8 +1666,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1681,6 +1679,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/euphorbia/` was built on 2026-05-14T15:56:39.321Z -->
<!-- This page `/euphorbia/` was built on 2026-05-14T16:22:55.574Z -->
</body>
</html>
+24 -26
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-08">June 7, 2023</time>
<time datetime="2023-06-08">June 8, 2023</time>
by Lee Cattarin
</p>
@@ -1616,22 +1616,8 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/block-printing-transfer-method/">
<h2 data-ha-exclude="" id="block-printing-transfer-method">block printing transfer method </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/transfer-wip.jpg" alt="A pink block of carving material with a printed design of a bird attached to it. The paper has been partially rubbed away (process described in this post) to reveal the inked design on the carving material." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/killdeer/">
<h2 data-ha-exclude="" id="killdeer">killdeer </h2>
<a class="postlink" href="/spotted-towhee/">
<h2 data-ha-exclude="" id="spotted-towhee">spotted towhee </h2>
<ul class="postlist-tags">
@@ -1640,23 +1626,35 @@ if (window.innerWidth > 650) {
<li>card</li>
</ul>
<img src="/img/killdeer-print.jpg" alt="A print of a killdeer in black ink." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/spotted-towhee-print.jpg" alt="A block print of a spotted towhee mid-leap." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/congrats-on-the-autism-adhd/">
<h2 data-ha-exclude="" id="congrats-on-the-autism-adhd">congrats on the autism/adhd </h2>
<a class="postlink" href="/brown-creeper/">
<h2 data-ha-exclude="" id="brown-creeper">brown creeper </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/brown-creeper-print.jpg" alt="2 copies of the same print side by side. In yellow, black, and purple ink, a brown creeper, a small bird, is depicted, well camouflaged against a tree trunk." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/crow/">
<h2 data-ha-exclude="" id="crow">crow </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/congrats-on-the.jpg" alt="4 greeting cards propped up on a keyboard. On the right hand side, two cards read &#39;Congrats on the Autism&#39;; one in rainbow ink and one in black ink with a glittery gold shadow. On the left, two cards read &#39;Congrats on the ADHD&#39;; one in red and one in black, both with glittery pink shadows." loading="lazy" decoding="async" width="1000" height="562">
<img src="/img/crow-print.jpg" alt="a block print in dark indigo ink on white paper depicting a perched crow looking over one shoulder. one side of the crow is lit with fine feather detail, and the other side is almost entirely in shadow." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1679,8 +1677,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1692,6 +1690,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fat-raccoon/` was built on 2026-05-14T15:56:39.300Z -->
<!-- This page `/fat-raccoon/` was built on 2026-05-14T16:22:55.552Z -->
</body>
</html>
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-03-23">March 22, 2024</time>
<time datetime="2024-03-23">March 23, 2024</time>
by Lee Cattarin
</p>
@@ -1633,17 +1633,35 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/fishhook-pride-keychains/">
<h2 data-ha-exclude="" id="fishhook-pride-keychains">fishhook pride keychains </h2>
<a class="postlink" href="/booby-congrats-on-the-top-surgery/">
<h2 data-ha-exclude="" id="booby-congrats-on-the-top-surgery">booby (congrats on the top surgery) </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>print</li>
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/fishhook-keychain-nonbinary.jpg" alt="a keychain with an iridescent fishhook style attachment linked via leather to an iridescent keyring. the leather is stitched with nonbinary flag colors." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/booby-card.jpg" alt="A landscape-oriented white card with a two-color print of a blue-footed booby." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/rope-one/">
<h2 data-ha-exclude="" id="rope-one-mature">rope (one) (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/rope-print-1.jpg" alt="A print of a nude trans woman in an asymmetrical rope harness." class="blur" loading="lazy" decoding="async" width="1000" height="1242">
</a>
</li>
@@ -1664,24 +1682,6 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/gender-in-data-models/">
<h2 data-ha-exclude="" id="gender-in-data-models">gender in data models </h2>
<ul class="postlist-tags">
<li>gender</li>
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/peony.jpg" alt="Image unrelated to post. A light pink peony in full bloom, close up." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
</ol>
</section>
@@ -1700,8 +1700,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1713,6 +1713,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fd-signifier-and-oppositional-sexism/` was built on 2026-05-14T15:56:39.320Z -->
<!-- This page `/fd-signifier-and-oppositional-sexism/` was built on 2026-05-14T16:22:55.573Z -->
</body>
</html>
+5 -5
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-05-06">May 5, 2026</time>
<time datetime="2026-05-06">May 6, 2026</time>
by Lee Cattarin
</p>
@@ -1593,8 +1593,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1606,6 +1606,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fedilearns/` was built on 2026-05-14T15:56:39.325Z -->
<!-- This page `/fedilearns/` was built on 2026-05-14T16:22:55.579Z -->
</body>
</html>
+15 -15
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-12-17">December 16, 2024</time>
<time datetime="2024-12-17">December 17, 2024</time>
by Lee Cattarin
</p>
@@ -1599,19 +1599,17 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/kestrel-zine/">
<h2 data-ha-exclude="" id="kestrel-zine">kestrel zine </h2>
<a class="postlink" href="/gender-as-a-proxy-variable/">
<h2 data-ha-exclude="" id="gender-as-a-proxy-variable">gender as a proxy variable </h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
<li>zine</li>
<li>highlight</li>
</ul>
<img src="/img/kestrel-zine.jpg" alt="A 5 photo collage showing the front and back cover as well as 3 full spreads of a folded zine about Kestrel, my dog, who is a 65lb Malinois with a goofy smile and floppy ears. it is printed in two layers of color, blue and orange, and each image depicts Kestrel in various posts... alert and watchful, resting, looking mopey, wearing a sweatshirt." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/gender-zine-cover.png" alt="Part of a scan of the cover of my zine, Gender as a Proxy Variable. It shows the title and a bit of handsewn binding." loading="lazy" decoding="async" width="1000" height="444">
</a>
</li>
@@ -1633,17 +1631,19 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/gender-as-a-proxy-variable/">
<h2 data-ha-exclude="" id="gender-as-a-proxy-variable">gender as a proxy variable </h2>
<a class="postlink" href="/kestrel-zine/">
<h2 data-ha-exclude="" id="kestrel-zine">kestrel zine </h2>
<ul class="postlist-tags">
<li>gender</li>
<li>print</li>
<li>zine</li>
<li>highlight</li>
</ul>
<img src="/img/gender-zine-cover.png" alt="Part of a scan of the cover of my zine, Gender as a Proxy Variable. It shows the title and a bit of handsewn binding." loading="lazy" decoding="async" width="1000" height="444">
<img src="/img/kestrel-zine.jpg" alt="A 5 photo collage showing the front and back cover as well as 3 full spreads of a folded zine about Kestrel, my dog, who is a 65lb Malinois with a goofy smile and floppy ears. it is printed in two layers of color, blue and orange, and each image depicts Kestrel in various posts... alert and watchful, resting, looking mopey, wearing a sweatshirt." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1666,8 +1666,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1679,6 +1679,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fedizinefest-2025/` was built on 2026-05-14T15:56:39.321Z -->
<!-- This page `/fedizinefest-2025/` was built on 2026-05-14T16:22:55.574Z -->
</body>
</html>
+22 -22
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2026-01-18">January 17, 2026</time>
<time datetime="2026-01-18">January 18, 2026</time>
by Lee Cattarin
</p>
@@ -1598,20 +1598,6 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/icelandic-lamb-handspun/">
<h2 data-ha-exclude="" id="icelandic-lamb-handspun">icelandic lamb handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/icelandic-lamb.jpg" alt="a skein of black handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/light-grey-jacobs-handspun/">
<h2 data-ha-exclude="" id="light-grey-jacobs-handspun">light grey jacobs handspun </h2>
@@ -1627,15 +1613,29 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/bfl-silk-handspun/">
<h2 data-ha-exclude="" id="bfl-silk-handspun">BFL/silk handspun </h2>
<a class="postlink" href="/icelandic-lamb-handspun/">
<h2 data-ha-exclude="" id="icelandic-lamb-handspun">icelandic lamb handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/bfl-silk-handspun.jpg" alt="a spinning wheel bobbin full of undyed white handspun yarn in about a sport or DK weight." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/icelandic-lamb.jpg" alt="a skein of black handspun yarn" loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/coral-reef-handspun/">
<h2 data-ha-exclude="" id="coral-reef-handspun">coral reef handspun </h2>
<ul class="postlist-tags">
<li>yarn</li>
</ul>
<img src="/img/coral-reef-handspun.jpg" alt="2 skeins, one large and one small, of a heathered grey yarn with hints of blue and orange in about a sport or DK weight." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fire-and-ice-handspun/` was built on 2026-05-14T15:56:39.324Z -->
<!-- This page `/fire-and-ice-handspun/` was built on 2026-05-14T16:22:55.577Z -->
</body>
</html>
+33 -27
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-12-31">December 30, 2023</time>
<time datetime="2023-12-31">December 31, 2023</time>
by Lee Cattarin
</p>
@@ -1604,45 +1604,51 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/vix-collar/">
<h2 data-ha-exclude="" id="vix-collar">vix collar </h2>
<a class="postlink" href="/on-the-ubiquity-of-enby/">
<h2 data-ha-exclude="" id="on-the-ubiquity-of-enby">on the ubiquity of &#39;enby&#39; </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/vix-collar.jpg" alt="A collar rests on a leather-wrapped lighter. It is lined with shearling and built of two other layers of leather - a wider mustard yellow layer and a thinner teal layer over that. the teal layer holds a heart shaped o-ring in place." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/pride-dice-bags/">
<h2 data-ha-exclude="" id="pride-dice-bags">pride dice bags </h2>
<ul class="postlist-tags">
<li>knit</li>
<li>gender</li>
</ul>
<img src="/img/pride-dice-bags.jpg" alt="Several knitted drawstring dice bags sit in front of a bookshelf. They are in different pride flag colors; from right to left (skipping a few duplicates) bisexual, lesbian, nonbinary, trans, and genderqueer. The trans-colored dice bag in the center opens towards the camera, showing a variety of colorful dice inside." loading="lazy" decoding="async" width="1000" height="500">
<img src="/img/gender-census.jpg" alt="A screenshot of part of the Gender Census reports page, showing the header bar and a title that reads &#39;Gender Census 2023 Worldwide Report&#39;" loading="lazy" decoding="async" width="1000" height="364">
</a>
</li>
<li class="post">
<a class="postlink" href="/triangle-pouch/">
<h2 data-ha-exclude="" id="triangle-pouch">triangle pouch </h2>
<a class="postlink" href="/boypussy/">
<h2 data-ha-exclude="" id="boypussy-mature">boypussy (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>sticker</li>
<li>shirt</li>
<li>pin</li>
<li>gender</li>
</ul>
<img src="/img/boypussy-shirt.jpg" alt="A butch holding a chainsaw and wearing a tank top that reads boypussy in pink Barbie font." class="blur" loading="lazy" decoding="async" width="1000" height="1250">
</a>
</li>
<li class="post">
<a class="postlink" href="/o-ring-bracelet/">
<h2 data-ha-exclude="" id="o-ring-bracelet">o-ring bracelet </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/triangle-pouch.jpg" alt="5 small triangular pouches made of leather in two sizes and various colors." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/oring-bracelet.jpg" alt="A green leather bracelet, stitched along the edges with dark blue thread, holds an ouroborous o-ring in place with two black snaps." loading="lazy" decoding="async" width="900" height="1200">
</a>
</li>
@@ -1665,8 +1671,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1678,6 +1684,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fishhook-pride-keychains/` was built on 2026-05-14T15:56:39.315Z -->
<!-- This page `/fishhook-pride-keychains/` was built on 2026-05-14T16:22:55.566Z -->
</body>
</html>
+29 -29
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-22">June 21, 2023</time>
<time datetime="2023-06-22">June 22, 2023</time>
by Lee Cattarin
</p>
@@ -1611,40 +1611,22 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/artisans-cooperative-cards/">
<h2 data-ha-exclude="" id="artisans-cooperative-cards">artisans cooperative cards </h2>
<a class="postlink" href="/printmaking-paper-notes/">
<h2 data-ha-exclude="" id="printmaking-paper-notes">printmaking paper notes </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/artisans-coop-cards.jpg" alt="2 white greeting cards with the Artisans Cooperative logo, a chicken. One card has a single print of the chicken in black ink, and the other has two overlapping prints in blue and red ink" loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/killdeer.jpg" alt="Image unrelated to post. A very fluffed up killdeer stands on a rocky beach." loading="lazy" decoding="async" width="1000" height="666">
</a>
</li>
<li class="post">
<a class="postlink" href="/seedling/">
<h2 data-ha-exclude="" id="seedling">seedling </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/seedling-print.jpg" alt="A print of a 3-stage design of a green seedling barely open, starting to straighten up, and growing strong, with little piles of dirt beneath each one." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/flicker/">
<h2 data-ha-exclude="" id="flicker">flicker </h2>
<a class="postlink" href="/heron/">
<h2 data-ha-exclude="" id="heron">heron </h2>
<ul class="postlist-tags">
@@ -1655,7 +1637,25 @@ if (window.innerWidth > 650) {
<li>shirt</li>
</ul>
<img src="/img/flicker-print.jpg" alt="A print in black, brown, and red ink of a northern flicker (a type of woodpecker). Viewed from the back, he is looking over his shoulder and upward towards something unseen above him (my bird feeder)." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/heron-print.jpg" alt="A print in black ink of a great blue heron, leaning downwards so that eir beak is level with eir feet." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/stellars-jay/">
<h2 data-ha-exclude="" id="stellars-jay">stellar&#39;s jay </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
</ul>
<img src="/img/stellars-jay-print.jpg" alt="A print of a stellar&#39;s jay, a beautiful black and blue bird, about to take off from a branch" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1678,8 +1678,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1691,6 +1691,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/five-of-them/` was built on 2026-05-14T15:56:39.302Z -->
<!-- This page `/five-of-them/` was built on 2026-05-14T16:22:55.554Z -->
</body>
</html>
+37 -45
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2025-03-20">March 19, 2025</time>
<time datetime="2025-03-20">March 20, 2025</time>
by Lee Cattarin
</p>
@@ -1598,24 +1598,8 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/greeting-quorbs/">
<h2 data-ha-exclude="" id="greeting-quorbs">greeting quorbs </h2>
<ul class="postlist-tags">
<li>card</li>
<li>print</li>
</ul>
<img src="/img/greeting-quorbs.jpg" alt="A pile of hand-printed A2 size greeting cards. Only the front is visible, showing a particularly round quail." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/trans-rights-skull/">
<h2 data-ha-exclude="" id="trans-rights-skull">trans rights skull </h2>
<a class="postlink" href="/hummingbird-become-ungovernable/">
<h2 data-ha-exclude="" id="hummingbird-become-ungovernable">hummingbird become ungovernable </h2>
<ul class="postlist-tags">
@@ -1623,32 +1607,40 @@ if (window.innerWidth > 650) {
<li>card</li>
<li>sticker</li>
<li>pin</li>
<li>gender</li>
</ul>
<img src="/img/trans-rights-print.jpg" alt="A print in mostly black ink of a smiling skull with a speech bubble. In pink and blue, the speech bubble reads &#39;trans rights!&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/trans-the-world/">
<h2 data-ha-exclude="" id="trans-the-world">trans the world </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/hummingbird-ungovernable-print.jpg" alt="A block print in black and orange ink of a rufous hummingbird, tail flared, hovering in midair. Clutched in eir tiny claws is a banner that waves in the wind and reads &#39;become ungovernable&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/euphorbia/">
<h2 data-ha-exclude="" id="euphorbia">euphorbia </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/trans-the-world-print.jpg" alt="A print that reads &#39;trans the world&#39; surrounding an image of a globe and a trans symbol. It&#39;s in a ping-to-blue gradient." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/euphorbia-print.jpg" alt="A print in black ink on brown paper. It depicts a stem of euphorbia, a plant with long, thin leaves and many clustered flowers." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/junco/">
<h2 data-ha-exclude="" id="junco">junco </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/junco-print.jpg" alt="A print of a junco mid-takeoff from a branch. Eir head is inked in black, body in gray, and the branch in sepia." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
@@ -1671,8 +1663,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1684,6 +1676,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fix-your-hearts/` was built on 2026-05-14T15:56:39.326Z -->
<!-- This page `/fix-your-hearts/` was built on 2026-05-14T16:22:55.579Z -->
</body>
</html>
+26 -24
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-04-16">April 15, 2023</time>
<time datetime="2023-04-16">April 16, 2023</time>
by Lee Cattarin
</p>
@@ -1610,6 +1610,24 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/lupine/">
<h2 data-ha-exclude="" id="lupine">lupine </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
</ul>
<img src="/img/lupine-prints.jpg" alt="6 versions of a print of lupine flowers with the leaves inked in light green and the blossoms inked in a variety of blues, purples, and pinks." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/hair/">
<h2 data-ha-exclude="" id="hair">hair </h2>
@@ -1627,31 +1645,15 @@ if (window.innerWidth > 650) {
</li>
<li class="post">
<a class="postlink" href="/luminescent/">
<h2 data-ha-exclude="" id="luminescent-mature">luminescent (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/luminescent-print.jpg" alt="A print of a tattooed woman in bright highlighter yellow underwear." class="blur" loading="lazy" decoding="async" width="900" height="1200">
</a>
</li>
<li class="post">
<a class="postlink" href="/printmaking-paper-notes/">
<h2 data-ha-exclude="" id="printmaking-paper-notes">printmaking paper notes </h2>
<a class="postlink" href="/brown-creeper/">
<h2 data-ha-exclude="" id="brown-creeper">brown creeper </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/killdeer.jpg" alt="Image unrelated to post. A very fluffed up killdeer stands on a rocky beach." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/brown-creeper-print.jpg" alt="2 copies of the same print side by side. In yellow, black, and purple ink, a brown creeper, a small bird, is depicted, well camouflaged against a tree trunk." loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
@@ -1674,8 +1676,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1687,6 +1689,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/flatfish/` was built on 2026-05-14T15:56:39.297Z -->
<!-- This page `/flatfish/` was built on 2026-05-14T16:22:55.549Z -->
</body>
</html>
+37 -37
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-05-04">May 3, 2023</time>
<time datetime="2023-05-04">May 4, 2023</time>
by Lee Cattarin
</p>
@@ -1615,38 +1615,6 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/tiny-mushrooms/">
<h2 data-ha-exclude="" id="tiny-mushrooms">tiny mushrooms </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/pixels-mushrooms.jpg" alt="3 tiny mushroom stamps next to their impressions. They are all about 1 inch square. There is a chanterelle in yellow, a russula in pink, and witch&#39;s hat mycena in indigo." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/lupine/">
<h2 data-ha-exclude="" id="lupine">lupine </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>shirt</li>
</ul>
<img src="/img/lupine-prints.jpg" alt="6 versions of a print of lupine flowers with the leaves inked in light green and the blossoms inked in a variety of blues, purples, and pinks." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/become-unbutterable/">
<h2 data-ha-exclude="" id="become-unbutterable">become unbutterable </h2>
@@ -1661,6 +1629,38 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/artisans-cooperative-cards/">
<h2 data-ha-exclude="" id="artisans-cooperative-cards">artisans cooperative cards </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/artisans-coop-cards.jpg" alt="2 white greeting cards with the Artisans Cooperative logo, a chicken. One card has a single print of the chicken in black ink, and the other has two overlapping prints in blue and red ink" loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/killdeer/">
<h2 data-ha-exclude="" id="killdeer">killdeer </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/killdeer-print.jpg" alt="A print of a killdeer in black ink." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
</ol>
</section>
@@ -1679,8 +1679,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1692,6 +1692,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/flicker/` was built on 2026-05-14T15:56:39.298Z -->
<!-- This page `/flicker/` was built on 2026-05-14T16:22:55.551Z -->
</body>
</html>
+22 -22
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2022-12-16">December 15, 2022</time>
<time datetime="2022-12-16">December 16, 2022</time>
by Lee Cattarin
</p>
@@ -1612,29 +1612,15 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/green-memo-pad/">
<h2 data-ha-exclude="" id="green-memo-pad">green memo pad </h2>
<a class="postlink" href="/orange-green-journal/">
<h2 data-ha-exclude="" id="orange-green-journal">orange green journal </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/green-memo-pad.jpg" alt="A three panel collage showcasing a small green memo pad." loading="lazy" decoding="async" width="1000" height="1776">
</a>
</li>
<li class="post">
<a class="postlink" href="/acadia-coloring-journal/">
<h2 data-ha-exclude="" id="acadia-coloring-journal">Acadia coloring journal </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/acadia-coloring-journal.jpg" alt="A five panel collage showcasing a book that is part graph papers of various sizes, and part coloring pages based on Acadia National Park." loading="lazy" decoding="async" width="1000" height="562">
<img src="/img/orange-green-journal.jpg" alt="A 4-part collage of a slim handbound book." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
@@ -1653,6 +1639,20 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/green-memo-pad/">
<h2 data-ha-exclude="" id="green-memo-pad">green memo pad </h2>
<ul class="postlist-tags">
<li>book</li>
</ul>
<img src="/img/green-memo-pad.jpg" alt="A three panel collage showcasing a small green memo pad." loading="lazy" decoding="async" width="1000" height="1776">
</a>
</li>
</ol>
</section>
@@ -1671,8 +1671,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1684,6 +1684,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/flocked-notebook/` was built on 2026-05-14T15:56:39.296Z -->
<!-- This page `/flocked-notebook/` was built on 2026-05-14T16:22:55.548Z -->
</body>
</html>
+14 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-01-16">January 15, 2024</time>
<time datetime="2024-01-16">January 16, 2024</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/wrap-bracelets/">
<h2 data-ha-exclude="" id="wrap-bracelets">wrap bracelets </h2>
<a class="postlink" href="/moss-harness/">
<h2 data-ha-exclude="" id="moss-harness">moss harness </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/leather-wrap-bracelets.jpg" alt="two wrists, each wearing a black leather wrap bracelet. the upper bracelet is a thin strap wrapped 3 times around the wrist. the lower bracelet wraps twice, with a thicker strap, and has carefully placed spikes that avoid the wrap spots." loading="lazy" decoding="async" width="1000" height="1333">
<img src="/img/moss-harness.jpg" alt="A nylon webbing harness in bright teal laid out on a desk." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/nine-pocket-bifold/">
<h2 data-ha-exclude="" id="nine-pocket-bifold">nine pocket bifold </h2>
<a class="postlink" href="/rachels-bracelets/">
<h2 data-ha-exclude="" id="rachels-bracelets">rachel&#39;s bracelets </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/nine-pocket-bifold.jpg" alt="A hand stitched full grain leather bifold wallet in dark plum leather. It has a main bill pocket and a symmetrical interior with a hidden pocket and 3 card pockets on each side." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/rachel-bracelets.jpg" alt="Two pink leather bracelets with stainless steel hardware and aqua stitching." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/foldy-wallet/">
<h2 data-ha-exclude="" id="foldy-wallet">foldy wallet </h2>
<a class="postlink" href="/x-acto-knife-sheath/">
<h2 data-ha-exclude="" id="x-acto-knife-sheath">x-acto knife sheath </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/foldy-wallet.jpg" alt="A four part collage showing a single piece of deep red leather folding up to become a card wallet." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/knife-sheaths.jpg" alt="Several blades with leather sheaths, and a few extra sheaths. There&#39;s a #2 blade with an orange sheath with yellow stitching, a #11 blade with a blue sheath with light grey stitching, and a skiving knife with a plum sheath and pink stitching." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1658,8 +1658,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1671,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/foldy-wallet-with-thumb-slide/` was built on 2026-05-14T15:56:39.317Z -->
<!-- This page `/foldy-wallet-with-thumb-slide/` was built on 2026-05-14T16:22:55.569Z -->
</body>
</html>
+16 -14
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-01-12">January 11, 2024</time>
<time datetime="2024-01-12">January 12, 2024</time>
by Lee Cattarin
</p>
@@ -1599,43 +1599,45 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/snap-pouch/">
<h2 data-ha-exclude="" id="snap-pouch">snap pouch </h2>
<a class="postlink" href="/zipper-bifold/">
<h2 data-ha-exclude="" id="zipper-bifold">zipper bifold </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/snap-pouches.jpg" alt="4 square pouches that close with snaps. 2 have loops that attach keyrings. They are in various colors of leather." loading="lazy" decoding="async" width="900" height="1200">
<img src="/img/zipper-bifold.jpg" alt="A collage showing a hand-stitched leather bifold with a zippered coin pocket on one exterior side." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
<li class="post">
<a class="postlink" href="/vertical-bifold/">
<h2 data-ha-exclude="" id="vertical-bifold">vertical bifold </h2>
<a class="postlink" href="/brookes-collar/">
<h2 data-ha-exclude="" id="brookes-collar">brooke&#39;s collar </h2>
<ul class="postlist-tags">
<li>leather</li>
</ul>
<img src="/img/vertical-bifold.jpg" alt="A collage showing a hand-stitched leather vertical bifold wallet with 6 card pockets, 2 hidden pockets, and 1 bill pocket." loading="lazy" decoding="async" width="1000" height="1777">
<img src="/img/lined-shearling-collar.jpg" alt="A green leather collar lined with brown/grey shearling and fitted with two sizes of silver-toned spikes." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/eight-pocket-bifold/">
<h2 data-ha-exclude="" id="eight-pocket-bifold">eight pocket bifold </h2>
<a class="postlink" href="/designing-a-bag/">
<h2 data-ha-exclude="" id="designing-a-bag">designing a bag </h2>
<ul class="postlist-tags">
<li>leather</li>
<li>software</li>
</ul>
<img src="/img/eight-pocket-bifold.jpg" alt="A 3-picture collage showing a hand stitched full grain leather bifold wallet in dark plum leather. It has a main bill pocket and a asymmetrical interior with a hidden pocket and 3 card pockets on the right, and a hidden pocket and 2 card pockets on the left. The left front pocket has a small naturally occuring hole." loading="lazy" decoding="async" width="1000" height="1777">
<img src="/img/shoelace-bag.jpg" alt="a 3-image collage showcasing a leather crossbody bag. the leather body is brown and fairly simple. up the narrow sides, rope is laced through grommets in a style resembling a shoe lacing. the rope forms the handle and loops seamlessly through the other side of the bag, joining in one point in a figure-8 follow-through knot. At the bottom corners, there are small diagonal lines of stitching to give the bag a small lip around the base and ensure small objects don&#39;t slide out." loading="lazy" decoding="async" width="1000" height="1777">
</a>
</li>
@@ -1658,8 +1660,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1671,6 +1673,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/foldy-wallet/` was built on 2026-05-14T15:56:39.317Z -->
<!-- This page `/foldy-wallet/` was built on 2026-05-14T16:22:55.568Z -->
</body>
</html>
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-12-18">December 17, 2024</time>
<time datetime="2024-12-18">December 18, 2024</time>
by Lee Cattarin
</p>
@@ -1659,8 +1659,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1672,6 +1672,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/fountain-pen-friendly-stationery/` was built on 2026-05-14T15:56:39.322Z -->
<!-- This page `/fountain-pen-friendly-stationery/` was built on 2026-05-14T16:22:55.575Z -->
</body>
</html>
+12 -16
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-30">June 29, 2023</time>
<time datetime="2023-06-30">June 30, 2023</time>
by Lee Cattarin
</p>
@@ -1615,30 +1615,26 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/trans-wrongs-skull/">
<h2 data-ha-exclude="" id="trans-wrongs-skull">trans wrongs skull </h2>
<a class="postlink" href="/geese-trans-wrongs/">
<h2 data-ha-exclude="" id="geese-trans-wrongs">geese/trans wrongs </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>sticker</li>
<li>pin</li>
<li>shirt</li>
<li>gender</li>
</ul>
<img src="/img/trans-wrongs-print.jpg" alt="A smiling skull with devil horns and a little spiked tail, and a speech bubble reading &#39;trans wrongs!&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/trans-wrongs-geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over towards them and HONKS! Both have speech bubbles; the calm goose says &#39;trans rights!&#39; while the honking goose says &#39;trans wrongs!&#39;" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/stellars-jay/">
<h2 data-ha-exclude="" id="stellars-jay">stellar&#39;s jay </h2>
<a class="postlink" href="/geese/">
<h2 data-ha-exclude="" id="geese">geese </h2>
<ul class="postlist-tags">
@@ -1649,7 +1645,7 @@ if (window.innerWidth > 650) {
<li>shirt</li>
</ul>
<img src="/img/stellars-jay-print.jpg" alt="A print of a stellar&#39;s jay, a beautiful black and blue bird, about to take off from a branch" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/geese-print.jpg" alt="Two Canada geese and their reflections in the water. One is calmly swimming away, while the over leans over and HONKS!" loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1690,8 +1686,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1703,6 +1699,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/foxgloves/` was built on 2026-05-14T15:56:39.303Z -->
<!-- This page `/foxgloves/` was built on 2026-05-14T16:22:55.555Z -->
</body>
</html>
+3 -3
View File
@@ -1210,8 +1210,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1223,6 +1223,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/1/` was built on 2026-05-14T15:56:43.027Z -->
<!-- This page `/gallery/1/` was built on 2026-05-14T16:22:59.413Z -->
</body>
</html>
+3 -3
View File
@@ -1214,8 +1214,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1227,6 +1227,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/10/` was built on 2026-05-14T15:56:47.753Z -->
<!-- This page `/gallery/10/` was built on 2026-05-14T16:23:04.925Z -->
</body>
</html>
+3 -3
View File
@@ -1092,8 +1092,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1105,6 +1105,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/11/` was built on 2026-05-14T15:56:48.023Z -->
<!-- This page `/gallery/11/` was built on 2026-05-14T16:23:05.392Z -->
</body>
</html>
+3 -3
View File
@@ -1226,8 +1226,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1239,6 +1239,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/2/` was built on 2026-05-14T15:56:43.720Z -->
<!-- This page `/gallery/2/` was built on 2026-05-14T16:22:59.908Z -->
</body>
</html>
+3 -3
View File
@@ -1206,8 +1206,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1219,6 +1219,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/3/` was built on 2026-05-14T15:56:44.279Z -->
<!-- This page `/gallery/3/` was built on 2026-05-14T16:23:00.358Z -->
</body>
</html>
+3 -3
View File
@@ -1214,8 +1214,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1227,6 +1227,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/4/` was built on 2026-05-14T15:56:44.829Z -->
<!-- This page `/gallery/4/` was built on 2026-05-14T16:23:00.872Z -->
</body>
</html>
+3 -3
View File
@@ -1208,8 +1208,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1221,6 +1221,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/5/` was built on 2026-05-14T15:56:45.271Z -->
<!-- This page `/gallery/5/` was built on 2026-05-14T16:23:01.608Z -->
</body>
</html>
+3 -3
View File
@@ -1214,8 +1214,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1227,6 +1227,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/6/` was built on 2026-05-14T15:56:45.728Z -->
<!-- This page `/gallery/6/` was built on 2026-05-14T16:23:02.306Z -->
</body>
</html>
+3 -3
View File
@@ -1256,8 +1256,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1269,6 +1269,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/7/` was built on 2026-05-14T15:56:46.340Z -->
<!-- This page `/gallery/7/` was built on 2026-05-14T16:23:02.851Z -->
</body>
</html>
+3 -3
View File
@@ -1238,8 +1238,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1251,6 +1251,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/8/` was built on 2026-05-14T15:56:46.744Z -->
<!-- This page `/gallery/8/` was built on 2026-05-14T16:23:03.276Z -->
</body>
</html>
+3 -3
View File
@@ -1240,8 +1240,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1253,6 +1253,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/9/` was built on 2026-05-14T15:56:47.254Z -->
<!-- This page `/gallery/9/` was built on 2026-05-14T16:23:03.854Z -->
</body>
</html>
+3 -3
View File
@@ -1198,8 +1198,8 @@ footer a:focus-visible {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1211,6 +1211,6 @@ footer a:focus-visible {
</footer>
<!-- This page `/gallery/` was built on 2026-05-14T15:56:39.332Z -->
<!-- This page `/gallery/` was built on 2026-05-14T16:22:55.585Z -->
</body>
</html>
+35 -39
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-08">June 7, 2023</time>
<time datetime="2023-06-08">June 8, 2023</time>
by Lee Cattarin
</p>
@@ -1615,6 +1615,36 @@ if (window.innerWidth > 650) {
<h2 data-ha-exclude="" id="related-posts">related posts</h2>
<ol id="postlist">
<li class="post">
<a class="postlink" href="/queer-book-list/">
<h2 data-ha-exclude="" id="queer-book-list">queer book list </h2>
<ul class="postlist-tags">
<li>gender</li>
</ul>
<img src="/img/rainbow-books.jpg" alt="A bookshelf with a variety of books on LGBTQ+ themes, arranged roughly in rainbow order" loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
<li class="post">
<a class="postlink" href="/rope-one/">
<h2 data-ha-exclude="" id="rope-one-mature">rope (one) (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/rope-print-1.jpg" alt="A print of a nude trans woman in an asymmetrical rope harness." class="blur" loading="lazy" decoding="async" width="1000" height="1242">
</a>
</li>
<li class="post">
<a class="postlink" href="/anarchy-autism/">
<h2 data-ha-exclude="" id="anarchy-autism">anarchy autism </h2>
@@ -1635,40 +1665,6 @@ if (window.innerWidth > 650) {
</a>
</li>
<li class="post">
<a class="postlink" href="/iris/">
<h2 data-ha-exclude="" id="iris">iris </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/iris-prints.jpg" alt="3 copies of the same print of iris flowers and a bud, done in slightly varied color schemes." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
<li class="post">
<a class="postlink" href="/booby-congrats-on-the-top-surgery/">
<h2 data-ha-exclude="" id="booby-congrats-on-the-top-surgery">booby (congrats on the top surgery) </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/booby-card.jpg" alt="A landscape-oriented white card with a two-color print of a blue-footed booby." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
</ol>
</section>
@@ -1687,8 +1683,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1700,6 +1696,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/geese-trans-wrongs/` was built on 2026-05-14T15:56:39.300Z -->
<!-- This page `/geese-trans-wrongs/` was built on 2026-05-14T16:22:55.553Z -->
</body>
</html>
+28 -30
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2023-06-08">June 7, 2023</time>
<time datetime="2023-06-08">June 8, 2023</time>
by Lee Cattarin
</p>
@@ -1616,22 +1616,8 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/tiny-mushrooms/">
<h2 data-ha-exclude="" id="tiny-mushrooms">tiny mushrooms </h2>
<ul class="postlist-tags">
<li>print</li>
</ul>
<img src="/img/pixels-mushrooms.jpg" alt="3 tiny mushroom stamps next to their impressions. They are all about 1 inch square. There is a chanterelle in yellow, a russula in pink, and witch&#39;s hat mycena in indigo." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/happy-bihrtday/">
<h2 data-ha-exclude="" id="happy-bihrtday">happy biHRTday </h2>
<a class="postlink" href="/chanterelle/">
<h2 data-ha-exclude="" id="chanterelle">chanterelle </h2>
<ul class="postlist-tags">
@@ -1639,28 +1625,40 @@ if (window.innerWidth > 650) {
<li>card</li>
<li>gender</li>
</ul>
<img src="/img/happy-bihrtday-card-print.jpg" alt="A card and print in the same design - a bouncy, cheery font reading &#39;happy biHRTday&#39;" loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/chanterelle-print.jpg" alt="A print of two chanterelle mushrooms inked in a dark-to-light yellow gradient." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/trans-the-world/">
<h2 data-ha-exclude="" id="trans-the-world">trans the world </h2>
<a class="postlink" href="/seedling/">
<h2 data-ha-exclude="" id="seedling">seedling </h2>
<ul class="postlist-tags">
<li>print</li>
<li>shirt</li>
<li>gender</li>
<li>card</li>
</ul>
<img src="/img/trans-the-world-print.jpg" alt="A print that reads &#39;trans the world&#39; surrounding an image of a globe and a trans symbol. It&#39;s in a ping-to-blue gradient." loading="lazy" decoding="async" width="1000" height="750">
<img src="/img/seedling-print.jpg" alt="A print of a 3-stage design of a green seedling barely open, starting to straighten up, and growing strong, with little piles of dirt beneath each one." loading="lazy" decoding="async" width="1000" height="1333">
</a>
</li>
<li class="post">
<a class="postlink" href="/iris/">
<h2 data-ha-exclude="" id="iris">iris </h2>
<ul class="postlist-tags">
<li>print</li>
<li>card</li>
</ul>
<img src="/img/iris-prints.jpg" alt="3 copies of the same print of iris flowers and a bud, done in slightly varied color schemes." loading="lazy" decoding="async" width="1000" height="562">
</a>
</li>
@@ -1683,8 +1681,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1696,6 +1694,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/geese/` was built on 2026-05-14T15:56:39.300Z -->
<!-- This page `/geese/` was built on 2026-05-14T16:22:55.552Z -->
</body>
</html>
+26 -36
View File
@@ -1410,7 +1410,7 @@ class HeadingAnchors extends HTMLElement {
anchor.classList.add(HeadingAnchors.classes.anchor);
let content = this.getContent();
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`;
anchor.innerHTML = `<span aria-labelledby=${heading.id}>${content}</span>`; // CHANGED HERE
anchor.addEventListener("focus", e => {
let anchor = e.target.closest(`.${HeadingAnchors.classes.anchor}`);
@@ -1532,7 +1532,7 @@ if (window.innerWidth > 650) {
<div class="post-metadata">
<p>
posted on
<time datetime="2024-02-28">February 27, 2024</time>
<time datetime="2024-02-28">February 28, 2024</time>
by Lee Cattarin
</p>
@@ -1787,53 +1787,43 @@ if (window.innerWidth > 650) {
<ol id="postlist">
<li class="post">
<a class="postlink" href="/bottom-growth/">
<h2 data-ha-exclude="" id="bottom-growth-mature">bottom growth (mature)</h2>
<ul class="postlist-tags">
<li>print</li>
<li>gender</li>
</ul>
<img src="/img/bottom-growth-prints.jpg" alt="4 copies of the same print in various color schemes, laid out in a 2x2 grid. The print shows testosterone-driven bottom growth of a clitoris. The color schemes are, clockwise from top right, brown on turquoise, red on cornsilk (muted yellow), violet on magenta, and mint green on lilac." class="blur" loading="lazy" decoding="async" width="1000" height="1000">
</a>
</li>
<li class="post">
<a class="postlink" href="/gender-in-data-models/">
<h2 data-ha-exclude="" id="gender-in-data-models">gender in data models </h2>
<a class="postlink" href="/fd-signifier-and-oppositional-sexism/">
<h2 data-ha-exclude="" id="fd-signifier-and-oppositional-sexism">fd signifier &amp; oppositional sexism </h2>
<ul class="postlist-tags">
<li>gender</li>
<li>software</li>
<li>highlight</li>
</ul>
<img src="/img/peony.jpg" alt="Image unrelated to post. A light pink peony in full bloom, close up." loading="lazy" decoding="async" width="1000" height="666">
<img src="/img/sheep.jpg" alt="Image unrelated to post. A mama sheep with two babies curled up next to her in a grassy field." loading="lazy" decoding="async" width="1000" height="450">
</a>
</li>
<li class="post">
<a class="postlink" href="/kestrel-zine/">
<h2 data-ha-exclude="" id="kestrel-zine">kestrel zine </h2>
<a class="postlink" href="/networks-of-trans-care/">
<h2 data-ha-exclude="" id="networks-of-trans-care">networks of trans care </h2>
<ul class="postlist-tags">
<li>print</li>
<li>zine</li>
<li>highlight</li>
<li>gender</li>
</ul>
<img src="/img/kestrel-zine.jpg" alt="A 5 photo collage showing the front and back cover as well as 3 full spreads of a folded zine about Kestrel, my dog, who is a 65lb Malinois with a goofy smile and floppy ears. it is printed in two layers of color, blue and orange, and each image depicts Kestrel in various posts... alert and watchful, resting, looking mopey, wearing a sweatshirt." loading="lazy" decoding="async" width="1000" height="1000">
<img src="/img/mushrooms-and-moss.jpg" alt="Image unrelated to post. Close up on a cluster of orange-brown mushrooms on a mossy tree trunk." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
<li class="post">
<a class="postlink" href="/give-to-trans-orgs-and-people/">
<h2 data-ha-exclude="" id="give-to-trans-orgs-and-people">give to trans orgs and people </h2>
<ul class="postlist-tags">
<li>gender</li>
</ul>
<img src="/img/bouquet.jpg" alt="Image unrelated to post. A close up on a flower bouquet in shades of purple, pink, and white. Centered is a large, almost soft-looking pink flower that is still partially closed up." loading="lazy" decoding="async" width="1000" height="750">
</a>
</li>
@@ -1856,8 +1846,8 @@ if (window.innerWidth > 650) {
</li>
<li>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin in 2026">
hello hello from Lee Cattarin in 2026</a>
<a href="/" title="go home" aria-label="go home | hello hello from Lee Cattarin, 2022-2026">
hello hello from Lee Cattarin, 2022-2026</a>
</li>
<li>
@@ -1869,6 +1859,6 @@ if (window.innerWidth > 650) {
</footer>
<!-- This page `/gender-as-a-proxy-variable/` was built on 2026-05-14T15:56:39.319Z -->
<!-- This page `/gender-as-a-proxy-variable/` was built on 2026-05-14T16:22:55.572Z -->
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More