<?xml version="1.0" encoding="UTF-8"?>
 <rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://pinboard.in">
    <title>Pinboard (spaceninja)</title>
    <link>https://pinboard.in/u:spaceninja/public/</link>
    <description>recent bookmarks from spaceninja</description>
    <items>
      <rdf:Seq>	<rdf:li rdf:resource="https://master.dev/blog/how-to-make-an-interactive-element-invisible-but-accessible/"/>
	<rdf:li rdf:resource="https://css-tricks.com/get-ready-for-the-powerful-css-border-shape-property/"/>
	<rdf:li rdf:resource="https://www.joshwcomeau.com/css/anchor-positioning/"/>
	<rdf:li rdf:resource="https://jakearchibald.com/2026/goldilocks-select-height/#putting-it-all-together"/>
	<rdf:li rdf:resource="https://olliewilliams.xyz/blog/dark-mode/"/>
	<rdf:li rdf:resource="https://accessibility.huit.harvard.edu/news/2026/05/deep-dive-contrast-themes"/>
	<rdf:li rdf:resource="https://thedebrief.org/massive-tycho-space-station-10x-larger-than-the-iss-wins-inaugural-aurelia-prize/"/>
	<rdf:li rdf:resource="https://dbushell.com/2026/07/03/fixing-full-bleed-css/"/>
	<rdf:li rdf:resource="https://cassidoo.co/post/radial-mask-text-css/"/>
	<rdf:li rdf:resource="https://una.im/modern-css-theming/"/>
	<rdf:li rdf:resource="https://derekhanson.blog/nobody-clicks-your-share-buttons/"/>
	<rdf:li rdf:resource="https://storiedcolors.com/"/>
	<rdf:li rdf:resource="https://www.rotecodefraktion.de/en/blog/css-view-transitions-zwischen-seiten/"/>
	<rdf:li rdf:resource="https://utilitybend.com/blog/css-is-filling-the-gaps-with-rules-a-way-to-style-gaps-in-grid-and-flex"/>
	<rdf:li rdf:resource="https://gridlanes.webkit.org/"/>
	<rdf:li rdf:resource="https://frontendmasters.com/blog/the-fundamentals-and-dev-experience-of-css-function/"/>
	<rdf:li rdf:resource="https://replacements.fyi/"/>
	<rdf:li rdf:resource="https://ericwbailey.design/published/you-probably-shouldnt-be-annotating-focus-order/"/>
	<rdf:li rdf:resource="https://frontendmasters.com/blog/repeating-square-dots-backgrounds-in-css/"/>
	<rdf:li rdf:resource="https://chrismorgan.info/css-themed-colours"/>
	<rdf:li rdf:resource="https://evilmartians.com/chronicles/600-million-people-write-right-to-left-2-fixes-your-app-needs"/>
	<rdf:li rdf:resource="https://css-tricks.com/cross-document-view-transitions-part-1/"/>
	<rdf:li rdf:resource="https://github.com/spaceninja/ink-documentation"/>
	<rdf:li rdf:resource="https://ishadeed.com/article/css-round/"/>
	<rdf:li rdf:resource="https://remysharp.com/2026/05/08/popover-backdrop-anti-pattern"/>
	<rdf:li rdf:resource="https://web.dev/articles/baseline-in-action-color-theme"/>
	<rdf:li rdf:resource="https://css-tricks.com/computing-and-displaying-discounted-prices-in-css/"/>
	<rdf:li rdf:resource="https://thoughtbot.com/blog/when-to-use-and-not-use-css-shorthand-properties"/>
	<rdf:li rdf:resource="https://allthingssmitty.com/2026/05/11/i-keep-tripping-over-true-false-true/"/>
	<rdf:li rdf:resource="https://annaecook.com/writing/2026/ai-doesnt-fix-accessible-systems-it-depends-on-them"/>
	<rdf:li rdf:resource="https://css-tricks.com/why-keyboard-users-cant-scroll-your-overflow-containers/"/>
	<rdf:li rdf:resource="https://polypane.app/blog/using-safe-area-inset-to-build-mobile-safe-layouts/"/>
	<rdf:li rdf:resource="https://frontendmasters.com/blog/css-n-of-selectors-for-conditional-validation/"/>
	<rdf:li rdf:resource="https://ishadeed.com/article/range-syntax/"/>
	<rdf:li rdf:resource="https://www.joshwcomeau.com/animation/scroll-driven-animations/"/>
	<rdf:li rdf:resource="https://thathtml.blog/2026/04/masonry-now-css-grid-lanes/"/>
	<rdf:li rdf:resource="https://tarnoff.info/2026/03/20/quick-tip-dont-use-abbr/"/>
	<rdf:li rdf:resource="https://www.alwaystwisted.com/articles/design-token-naming-conventions"/>
	<rdf:li rdf:resource="https://css-tricks.com/the-radio-state-machine/"/>
	<rdf:li rdf:resource="https://kittygiraudel.com/2026/04/09/an-interactive-cover-component/"/>
	<rdf:li rdf:resource="https://frontendmasters.com/blog/building-a-ui-without-breakpoints/"/>
	<rdf:li rdf:resource="https://spaceninja.com/blog/2026/the-end-of-friday-front-end/"/>
	<rdf:li rdf:resource="https://stephaniewalter.design/blog/9-accessibility-myths-and-pushbacks-and-how-to-answer-them/"/>
	<rdf:li rdf:resource="https://thoughtbot.com/blog/trimming-our-css-with-sibling-index-and-sibling-count"/>
	<rdf:li rdf:resource="https://alexop.dev/posts/modern-frontend-quality-pipeline/"/>
	<rdf:li rdf:resource="https://piccalil.li/blog/the-end-of-responsive-images/"/>
	<rdf:li rdf:resource="https://www.youtube.com/watch?v=OEvVW4wQUII"/>
	<rdf:li rdf:resource="https://vtbag.dev/"/>
	<rdf:li rdf:resource="https://shadow-dom-css.adobe.com/"/>
	<rdf:li rdf:resource="https://www.youtube.com/watch?v=RKWvnCrKizI"/>
	<rdf:li rdf:resource="https://matuzo.at/blog/2026/box-shadow-no-alternative-to-outline"/>
	<rdf:li rdf:resource="https://adrianroselli.com/2026/04/wcag3-contrast-as-of-april-2026.html"/>
	<rdf:li rdf:resource="https://dbushell.com/2026/04/15/containment-breach-in-cascade-layer/"/>
	<rdf:li rdf:resource="https://mattwaler.com/blog/container-query-typography-systems/"/>
	<rdf:li rdf:resource="https://www.joshwcomeau.com/animation/squash-and-stretch/"/>
	<rdf:li rdf:resource="https://www.zachleat.com/web/its-10pm/"/>
	<rdf:li rdf:resource="https://tools.rmv.fyi/"/>
	<rdf:li rdf:resource="https://cssence.com/2026/font-variant-emoji/"/>
	<rdf:li rdf:resource="https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli/"/>
	<rdf:li rdf:resource="https://github.com/unmta/emailmd"/>
	<rdf:li rdf:resource="https://emshort.blog/2017/04/01/small-plotting-trick-for-choice-of-work/"/>
	<rdf:li rdf:resource="https://gist.github.com/spaceninja/c2c086584be17bfc5bc93499ee4dcd93"/>
	<rdf:li rdf:resource="https://github.com/wildwinter/Ink-Storylet-Framework"/>
	<rdf:li rdf:resource="https://gist.github.com/joningold/0a45fadb69e697ff34294a2aa8f06ce6"/>
	<rdf:li rdf:resource="https://pauljickling.github.io/2024/01/29/storylets-using-ink.html"/>
	<rdf:li rdf:resource="https://emshort.blog/2019/12/03/storylets-play-together/"/>
	<rdf:li rdf:resource="https://heterogenoustasks.wordpress.com/2015/01/26/standard-patterns-in-choice-based-games/"/>
	<rdf:li rdf:resource="https://www.matuzo.at/blog/2026/skip-links-tabindex"/>
	<rdf:li rdf:resource="https://css-tricks.com/css-multi-column-layout-wrapping-features/"/>
	<rdf:li rdf:resource="https://macarthur.me/posts/preloading-images/"/>
      </rdf:Seq>
    </items>
  </channel><item rdf:about="https://master.dev/blog/how-to-make-an-interactive-element-invisible-but-accessible/">
    <title>How to Make an Interactive Element Invisible but Accessible – Master.dev Blog</title>
    <dc:date>2026-07-08T18:16:02+00:00</dc:date>
    <link>https://master.dev/blog/how-to-make-an-interactive-element-invisible-but-accessible/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[This means we need to hide the element while still making it accessible. Well, that’s what the hidden="until-found" attribute-value does, but we also need to reserve the space, since we can’t hover what isn’t there, right? We also don’t want to cause any layout shift.

]]></description>
<dc:subject>css accessibility hidden untilfound contain-intrinsic-size</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:7650aa0471b3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:hidden"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:untilfound"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:contain-intrinsic-size"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://css-tricks.com/get-ready-for-the-powerful-css-border-shape-property/">
    <title>Get Ready For the Powerful CSS border-shape Property! | CSS-Tricks</title>
    <dc:date>2026-07-08T18:15:28+00:00</dc:date>
    <link>https://css-tricks.com/get-ready-for-the-powerful-css-border-shape-property/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[So, we recently got the new shape() function (now Baseline!) as well as the corner-shape property. What else could we possibly need as far as making shapes in CSS? Let me tell you: the border-shape property!]]></description>
<dc:subject>css shapes corner-shape border-shape</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:79a7eabcd939/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:shapes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:corner-shape"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:border-shape"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.joshwcomeau.com/css/anchor-positioning/">
    <title>Getting Started with Anchor Positioning • Josh W. Comeau</title>
    <dc:date>2026-07-07T16:53:44+00:00</dc:date>
    <link>https://www.joshwcomeau.com/css/anchor-positioning/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Historically, we’ve used JavaScript to solve these sorts of problems, and the code that manages this stuff can get pretty hairy. Fortunately, a shiny new browser API handles all of the tough stuff for us: the Anchor Positioning API.

]]></description>
<dc:subject>css anchor position</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:017d0dd36def/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:anchor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:position"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://jakearchibald.com/2026/goldilocks-select-height/#putting-it-all-together">
    <title>The Goldilocks customizable select height - JakeArchibald.com</title>
    <dc:date>2026-07-06T17:01:50+00:00</dc:date>
    <link>https://jakearchibald.com/2026/goldilocks-select-height/#putting-it-all-together</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[I recently gave a talk on customizable (as in fully-stylable) <select>, and as I was building demos I realised there's a sizing 'pattern' that's almost always the-one-you-want, but it took me a long time to figure out how to do it in CSS.

]]></description>
<dc:subject>select css popover anchor position</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:959dbe76bcbf/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:select"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:popover"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:anchor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:position"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://olliewilliams.xyz/blog/dark-mode/">
    <title>Dark mode with web standards</title>
    <dc:date>2026-07-06T17:00:26+00:00</dc:date>
    <link>https://olliewilliams.xyz/blog/dark-mode/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Respecting the user’s OS setting is straightforward: use the prefers-color-scheme media query in CSS. Arguably, that isn’t enough: users should also be able to customise their choice on a per-site basis. A user might want dark mode for the UI of an application, but light mode for reading long-form text on content-heavy sites, for example.

]]></description>
<dc:subject>css darkmode light-dark color-scheme</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:b5ac2d3abeae/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:darkmode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:light-dark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:color-scheme"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://accessibility.huit.harvard.edu/news/2026/05/deep-dive-contrast-themes">
    <title>A Deep Dive into Contrast Themes | Digital Accessibility​ Services</title>
    <dc:date>2026-07-03T20:45:15+00:00</dc:date>
    <link>https://accessibility.huit.harvard.edu/news/2026/05/deep-dive-contrast-themes</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Contrast Themes (aka "forced-colors") are a step users take beyond using sites' Light or Dark mode. Learn what they do, why they're used, how to test your site, and how to improve your site for when they're used.
]]></description>
<dc:subject>contrast highcontrastmode darkmode accessibility themes</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:973127149238/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:contrast"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:highcontrastmode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:darkmode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:themes"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://thedebrief.org/massive-tycho-space-station-10x-larger-than-the-iss-wins-inaugural-aurelia-prize/">
    <title>Massive 'Tycho' Space Station 10X Larger Than the ISS Wins Inaugural Aurelia Prize - The Debrief</title>
    <dc:date>2026-07-03T20:43:42+00:00</dc:date>
    <link>https://thedebrief.org/massive-tycho-space-station-10x-larger-than-the-iss-wins-inaugural-aurelia-prize/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[The Aurelia Institute has selected designer Will Root and his orbital Tycho space station, which boasts 10 times more interior space than the International Space Station, as the winners of their inaugural Aurelia Prize in Design for Space Urbanism. The organization also announced the four Honorable Mentions in the $20,000 global design competition, which included several alternative off-world space-habitat concepts.

]]></description>
<dc:subject>inspiration writing space spacestations scifi</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:9cfcb001b09b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:inspiration"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:space"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:spacestations"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:scifi"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://dbushell.com/2026/07/03/fixing-full-bleed-css/">
    <title>Fixing full-bleed CSS – David Bushell – Web Dev (UK)</title>
    <dc:date>2026-07-03T17:16:21+00:00</dc:date>
    <link>https://dbushell.com/2026/07/03/fixing-full-bleed-css/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[The “modern” approach is to use CSS containment. Turn the <body> element (or any 100% width child) into a container. Then replace the viewport units with container units.
]]></description>
<dc:subject>css fullbleed cqi inline-size containment</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:864d5635349e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fullbleed"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cqi"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:inline-size"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:containment"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://cassidoo.co/post/radial-mask-text-css/">
    <title>An animated radial gradient mask over text in CSS</title>
    <dc:date>2026-07-01T17:03:03+00:00</dc:date>
    <link>https://cassidoo.co/post/radial-mask-text-css/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[I saw a cool text effect on Nikhil’s blog recently, where the big “Hello!” on his website has some rings masking the word “hello” that produce a cool effect, and I thought I’d try to replicate it.]]></description>
<dc:subject>css radial gradients masks</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:5e47588bf515/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:radial"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:gradients"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:masks"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://una.im/modern-css-theming/">
    <title>una.im | Modern CSS theming with light-dark(), contrast-color(), and style queries</title>
    <dc:date>2026-06-24T17:29:00+00:00</dc:date>
    <link>https://una.im/modern-css-theming/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[I’ve been playing with a combination of new CSS features that, together, form a really nice dynamic theming system. This technique creates themed components with shadows in light mode that swap out to glowing borders in dark mode, and text that’s always readable against its dynamic background color. All in CSS. Available in all modern browsers as of May 2026 🥳.

]]></description>
<dc:subject>css themes darkmode light-dark constrast-color containerstylequeries</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:a294086a9e8a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:themes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:darkmode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:light-dark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:constrast-color"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:containerstylequeries"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://derekhanson.blog/nobody-clicks-your-share-buttons/">
    <title>Nobody clicks your share buttons – Derek Hanson</title>
    <dc:date>2026-06-19T21:17:12+00:00</dc:date>
    <link>https://derekhanson.blog/nobody-clicks-your-share-buttons/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[When I find something worth sharing, I tap the share icon in Chrome on my phone. That’s it. On my desktop I click the little link icon in Arc’s browser bar, or I just double-click the address bar and hit command-C command-V. I’ve never once looked at a row of branded social icons at the bottom of a blog post and thought, “Oh good, there’s the Facebook button.”
]]></description>
<dc:subject>ui ux share buttons social</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:25672cc4fb5e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ui"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ux"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:share"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:buttons"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:social"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://storiedcolors.com/">
    <title>Storied Colors</title>
    <dc:date>2026-06-17T20:26:09+00:00</dc:date>
    <link>https://storiedcolors.com/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Every pigment in this catalogue has a paper trail. Where it was first ground, in whose workshop, on whose canvas it dried, when it was banned, what replaced it. We do not invent provenance and we do not edit out the unflattering parts.

]]></description>
<dc:subject>color design palette</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:683914d690d5/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:color"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:design"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:palette"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.rotecodefraktion.de/en/blog/css-view-transitions-zwischen-seiten/">
    <title>CSS Can Now Animate Between Pages: View Transitions Without JavaScript — rotecodefraktion</title>
    <dc:date>2026-06-10T17:55:08+00:00</dc:date>
    <link>https://www.rotecodefraktion.de/en/blog/css-view-transitions-zwischen-seiten/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Clicking a link on a classic website means a hard cut: the old page disappears, the new one appears. Single-page apps reserved the smooth transition as a selling point for a long time — at the cost of routing logic, hydration, and a fair amount of JavaScript. Since cross-document view transitions landed in browsers, that cost is gone. A single @view-transition rule is enough to make a plain <a href> feel like an app transition.
]]></description>
<dc:subject>css animation viewtransitions</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:da20f2b6660b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:animation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:viewtransitions"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://utilitybend.com/blog/css-is-filling-the-gaps-with-rules-a-way-to-style-gaps-in-grid-and-flex">
    <title>CSS is filling the gaps with rules. A way to style gaps in grid and flex. | utilitybend</title>
    <dc:date>2026-06-10T17:54:43+00:00</dc:date>
    <link>https://utilitybend.com/blog/css-is-filling-the-gaps-with-rules-a-way-to-style-gaps-in-grid-and-flex</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[For a long time, if you wanted to style the space between items in a grid or flex layout, you had to fake it. Borders on child elements, extra pseudo-elements, background tricks, extra markup, etc. It worked... until it didn't. Responsive changes could break illusions, it always felt hacky, and in a few cases we'd end up polluting the DOM structure for something purely visual (Which I hate doing). An update that is long overdue, CSS is filling those gaps in our grid systems.]]></description>
<dc:subject>css cssgrid column-rul row-rule row-rule-width row-rule-style row-rule-color column-rule-width column-rule-style column-rule-color rule rule-break rule-inset rule-overlap rule-visibility-items gapdecorations</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:28267a9b4efb/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssgrid"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:column-rul"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:row-rule"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:row-rule-width"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:row-rule-style"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:row-rule-color"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:column-rule-width"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:column-rule-style"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:column-rule-color"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:rule"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:rule-break"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:rule-inset"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:rule-overlap"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:rule-visibility-items"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:gapdecorations"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://gridlanes.webkit.org/">
    <title>The Field Guide to CSS Grid Lanes</title>
    <dc:date>2026-06-10T17:48:28+00:00</dc:date>
    <link>https://gridlanes.webkit.org/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Masonry layouts in pure CSS. No JavaScript. No hacks. Just four lines of code.
]]></description>
<dc:subject>css cssgrid masonry grid-lanes</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:24d676d21e5a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssgrid"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:masonry"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:grid-lanes"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://frontendmasters.com/blog/the-fundamentals-and-dev-experience-of-css-function/">
    <title>The Fundamentals and Dev Experience of CSS @function – Frontend Masters Blog</title>
    <dc:date>2026-06-02T20:47:43+00:00</dc:date>
    <link>https://frontendmasters.com/blog/the-fundamentals-and-dev-experience-of-css-function/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[CSS has introduced functions so authors can encapsulate and reuse property behaviors across their style sheets without duplicating the code or polluting the DOM with single-use intermediate --_variables1.

]]></description>
<dc:subject>css functions</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:52b483d86809/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:functions"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://replacements.fyi/">
    <title>replacements.fyi - performant, safer npm package alternatives</title>
    <dc:date>2026-06-02T20:45:26+00:00</dc:date>
    <link>https://replacements.fyi/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[lets you drop a package.json into it to see which dependencies can be replaced with native functionality, or more performant choices]]></description>
<dc:subject>packages node npm performance javascript</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:9702668d0022/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:packages"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:node"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:npm"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:performance"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:javascript"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://ericwbailey.design/published/you-probably-shouldnt-be-annotating-focus-order/">
    <title>You probably shouldn’t be annotating focus order – Eric Bailey</title>
    <dc:date>2026-05-29T17:59:47+00:00</dc:date>
    <link>https://ericwbailey.design/published/you-probably-shouldnt-be-annotating-focus-order/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[However, interactive elements allow you to place focus on them without needing to do anything else. This includes buttons, links, form fields, checkboxes and radio buttons, expand/collapse toggles, tab panels, etc.
]]></description>
<dc:subject>accessibility focus focusorder</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:2f4051db59bd/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:focus"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:focusorder"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://frontendmasters.com/blog/repeating-square-dots-backgrounds-in-css/">
    <title>Repeating Square Dots Backgrounds in CSS – Frontend Masters Blog</title>
    <dc:date>2026-05-20T17:48:57+00:00</dc:date>
    <link>https://frontendmasters.com/blog/repeating-square-dots-backgrounds-in-css/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[My first thought is we’re obviously not drawing all these dots in one big graphic. We’re drawing one, leaving empty space, and using our ol’ pal background-repeat: repeat;

]]></description>
<dc:subject>background css gradients linear-gradient conic-gradient</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:008fb1f1abf2/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:background"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:gradients"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:linear-gradient"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:conic-gradient"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://chrismorgan.info/css-themed-colours">
    <title>A few ways of specifying per-theme colours in only CSS — Chris Morgan</title>
    <dc:date>2026-05-20T17:47:10+00:00</dc:date>
    <link>https://chrismorgan.info/css-themed-colours</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[I was thinking about this as part of putting this website together.
Actually it was because I forgot about light-dark();
if I’d remembered that earlier I probably wouldn’t have ended up with all this!]]></description>
<dc:subject>css darkmode light-dark prefers-color-scheme color-mix</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:899ae2f1e2c3/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:darkmode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:light-dark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:prefers-color-scheme"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:color-mix"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://evilmartians.com/chronicles/600-million-people-write-right-to-left-2-fixes-your-app-needs">
    <title>600+ million people write right-to-left: 2 fixes your app needs—Martian Chronicles, Evil Martians’ team blog</title>
    <dc:date>2026-05-20T17:45:52+00:00</dc:date>
    <link>https://evilmartians.com/chronicles/600-million-people-write-right-to-left-2-fixes-your-app-needs</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[You shipped, the app works, users sign up. Then a bug: ”The input field doesn’t work properly.” Turns out their language is Arabic. When typing a prompt, text renders left-to-right. This meant alignment was off, punctuation lands on the wrong side, and the whole sentence reads garbled. When a user can use a right-to-left language, even English apps will break. This isn’t an edge case. Hundreds of millions of people write right-to-left. Still, most developer tools treat this as an afterthought. In this post, we’ll see how for most, the fix is just two HTML attributes.
]]></description>
<dc:subject>rtl accessibility html dir lang localization logical-properties</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:ac5e41576415/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:rtl"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:dir"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:lang"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:localization"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:logical-properties"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://css-tricks.com/cross-document-view-transitions-part-1/">
    <title>Cross-Document View Transitions: The Gotchas Nobody Mentions | CSS-Tricks</title>
    <dc:date>2026-05-18T16:36:37+00:00</dc:date>
    <link>https://css-tricks.com/cross-document-view-transitions-part-1/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[We’re going to cover the actual current way to opt in with @view-transition in CSS (not the meta tag, not JavaScript), then dig into the 4-second timeout that will silently kill your transitions on slow pages and how to debug it, then fix the aspect ratio warping that makes every image-heavy transition look like a fun house mirror, and finally get a proper handle on the pagereveal and pageswap events that give you programmatic control over the whole lifecycle.]]></description>
<dc:subject>css viewtransitions</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:f320f7ed594a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:viewtransitions"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/spaceninja/ink-documentation">
    <title>Ink Documentation</title>
    <dc:date>2026-05-18T03:40:32+00:00</dc:date>
    <link>https://github.com/spaceninja/ink-documentation</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[A curated collection of documentation for Ink, inkle's narrative scripting language for interactive fiction. This repository centralizes official documentation, blog posts, tips and tricks, and other learning resources scattered across the internet into one easy-to-reference place.

]]></description>
<dc:subject>ink documentation interactivefiction howto games</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:5dd1f473b90a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:documentation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:games"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://ishadeed.com/article/css-round/">
    <title>Better fluid sizing with round()</title>
    <dc:date>2026-05-17T18:22:20+00:00</dc:date>
    <link>https://ishadeed.com/article/css-round/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Fluid sizing with clamp() and container query units is powerful, but the computed values often land on numbers like 19.7px or 143.2px. The CSS round() function lets you snap those values to a predictable step, which is useful for typography, spacing, and layout rhythm.
]]></description>
<dc:subject>css clamp round typography</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:f6b9da9a327f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:clamp"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:round"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:typography"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://remysharp.com/2026/05/08/popover-backdrop-anti-pattern">
    <title>A popover backdrop anti-pattern</title>
    <dc:date>2026-05-17T17:39:46+00:00</dc:date>
    <link>https://remysharp.com/2026/05/08/popover-backdrop-anti-pattern</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[When I used the popover for a modal (looking) element, and used a blur on the backdrop selector, I didn't realise that clicking on the backdrop would let the click carry through to whatever was underneath it.

]]></description>
<dc:subject>css html dialog popover backdrop focus</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:07676ecaa611/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:dialog"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:popover"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:backdrop"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:focus"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://web.dev/articles/baseline-in-action-color-theme">
    <title>Color themes with Baseline CSS features  |  Articles  |  web.dev</title>
    <dc:date>2026-05-14T17:04:29+00:00</dc:date>
    <link>https://web.dev/articles/baseline-in-action-color-theme</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[The good news is that when it comes to building a palette relative to the color tokens that define your site and switching between color modes, Baseline features can do a lot of the heavy lifting for you. You can explore some of these techniques in the featured demo, a color themed playlist on the fictional Baseline Radio site.

]]></description>
<dc:subject>css darkmode palette oklch relative color-mix color-scheme light-dark property</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:eded7f73321d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:darkmode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:palette"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:oklch"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:relative"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:color-mix"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:color-scheme"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:light-dark"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:property"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://css-tricks.com/computing-and-displaying-discounted-prices-in-css/">
    <title>Computing and Displaying Discounted Prices in CSS | CSS-Tricks</title>
    <dc:date>2026-05-14T17:01:55+00:00</dc:date>
    <link>https://css-tricks.com/computing-and-displaying-discounted-prices-in-css/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[So, there we have it, a working combination of newer CSS features (the upgraded attr() function), CSS math functions (mod(), round()), and custom counters to nail down something that we see in so many websites, only without scripts. When attr()‘s support for data types becomes a thing in all browsers, this is something you can use in your everyday work.

]]></description>
<dc:subject>css attr mod round</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:5f7078166e91/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:attr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:mod"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:round"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://thoughtbot.com/blog/when-to-use-and-not-use-css-shorthand-properties">
    <title>When to use (and not use) CSS shorthand properties</title>
    <dc:date>2026-05-14T17:00:17+00:00</dc:date>
    <link>https://thoughtbot.com/blog/when-to-use-and-not-use-css-shorthand-properties</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[The question to ask yourself isn’t “can I shorthand this?” but “will someone reading this later, including future me, understand what’s happening?” It comes down to readability and intention, and those are going to look different for everyone. Verbosity isn’t always the enemy.]]></description>
<dc:subject>css shorthand</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:83e0c73ab554/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:shorthand"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://allthingssmitty.com/2026/05/11/i-keep-tripping-over-true-false-true/">
    <title>I keep tripping over &quot;true, false, true&quot; - Matt Smith</title>
    <dc:date>2026-05-11T17:01:42+00:00</dc:date>
    <link>https://allthingssmitty.com/2026/05/11/i-keep-tripping-over-true-false-true/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[createUser(user, true, false) works. It's also surprisingly hard to read. Here's why I've stopped writing APIs like this in JavaScript.]]></description>
<dc:subject>javascript arguments functions object</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:f1d5823011ef/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:arguments"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:functions"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:object"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://annaecook.com/writing/2026/ai-doesnt-fix-accessible-systems-it-depends-on-them">
    <title>AI Doesn't Fix Accessible Systems. It Depends on Them. — Anna E. Cook</title>
    <dc:date>2026-05-11T16:55:45+00:00</dc:date>
    <link>https://annaecook.com/writing/2026/ai-doesnt-fix-accessible-systems-it-depends-on-them</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[For the last few years, our industry has been told a story: AI will personalize its way out of accessibility, deterministic design is dead, diagnosis can replace systems thinking, and structural work no longer needs to be done.

None of it is true. AI cannot repair a broken structure. Instead, AI inherits it and reproduces it at scale.]]></description>
<dc:subject>ai accessibility</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:55f8faad7593/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ai"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://css-tricks.com/why-keyboard-users-cant-scroll-your-overflow-containers/">
    <title>Why Keyboard Users Can't Scroll Your Overflow Containers | CSS-Tricks</title>
    <dc:date>2026-05-11T16:50:02+00:00</dc:date>
    <link>https://css-tricks.com/why-keyboard-users-cant-scroll-your-overflow-containers/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[When a keyboard user Tabs into the table, its focus lands on a cell. Then they press the arrow keys to read across the row but nothing happens. Your screen reader users never noticed because they navigate the accessibility tree, not the scroll container.]]></description>
<dc:subject>accessibility css tables scroll keyboard</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:f8516f12c4e7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:tables"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:scroll"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:keyboard"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://polypane.app/blog/using-safe-area-inset-to-build-mobile-safe-layouts/">
    <title>Using safe-area-inset to build mobile-safe layouts | Polypane</title>
    <dc:date>2026-05-06T17:25:25+00:00</dc:date>
    <link>https://polypane.app/blog/using-safe-area-inset-to-build-mobile-safe-layouts/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Modern phones are not simple rectangles. They have rounded corners, camera cutouts, dynamic islands, and home indicators that double as gesture areas. Browsers know the dimensions of all of these and expose the parts that could obscure content as safe area insets.
]]></description>
<dc:subject>css safe-area-inset-top mobile layout env</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:34f28000e18b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:safe-area-inset-top"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:mobile"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:layout"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:env"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://frontendmasters.com/blog/css-n-of-selectors-for-conditional-validation/">
    <title>CSS `n of` Selectors for Conditional Validation – Frontend Masters Blog</title>
    <dc:date>2026-05-04T17:23:24+00:00</dc:date>
    <link>https://frontendmasters.com/blog/css-n-of-selectors-for-conditional-validation/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Similarly, the n of <selector-list> syntax in the :nth-child selector can also be very useful for a preliminary validation. First, let’s see what it does.

]]></description>
<dc:subject>css nth-child of selectors</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:e582a87fc639/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:nth-child"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:of"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:selectors"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://ishadeed.com/article/range-syntax/">
    <title>Media Queries Range Syntax</title>
    <dc:date>2026-05-04T17:22:48+00:00</dc:date>
    <link>https://ishadeed.com/article/range-syntax/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Media queries are the backbone of responsive design. We use them to control how a design should change based on the viewport size. But the min-width and max-width syntax can be confusing, and in some cases, cause layout bugs that take time to spot.
]]></description>
<dc:subject>mediaqueries range syntax css responsive</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:0d812268c7f0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:mediaqueries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:range"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:syntax"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:responsive"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.joshwcomeau.com/animation/scroll-driven-animations/">
    <title>Scroll-Driven Animations • Josh W. Comeau</title>
    <dc:date>2026-04-28T16:57:10+00:00</dc:date>
    <link>https://www.joshwcomeau.com/animation/scroll-driven-animations/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Historically, we’ve needed to use JavaScript for this kind of effect, but an exciting new API, Animation Timeline, makes it possible to do this sort of thing in native CSS! ✨

]]></description>
<dc:subject>css animation scroll-driven keyframes animation-timeline</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:a47c4b213fbe/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:animation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:scroll-driven"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:keyframes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:animation-timeline"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://thathtml.blog/2026/04/masonry-now-css-grid-lanes/">
    <title>Masonry Layout Solved! Hello CSS Grid Lanes | That HTML Blog</title>
    <dc:date>2026-04-28T16:49:18+00:00</dc:date>
    <link>https://thathtml.blog/2026/04/masonry-now-css-grid-lanes/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[masonry layout has been solved! It’s no longer called masonry, nor is it part of some grand experimental unified CSS layout system. It is a new display type, but it otherwise inherits the layout system of CSS Grid, and it’s called Grid Lanes.]]></description>
<dc:subject>css cssgrid masonry grid-lanes</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:56ee7dadc8b7/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssgrid"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:masonry"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:grid-lanes"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://tarnoff.info/2026/03/20/quick-tip-dont-use-abbr/">
    <title>Quick Tip: Don’t Use &lt;abbr&gt; – Nat Tarnoff</title>
    <dc:date>2026-04-27T16:57:19+00:00</dc:date>
    <link>https://tarnoff.info/2026/03/20/quick-tip-dont-use-abbr/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[The problem with this is that the <abbr> is not an interactive element. You cannot tab to it. It will be read just like any other word in the sentence. If you mouse over the element, you see the title. But if you use keyboard there is no way to expose it.

]]></description>
<dc:subject>accessibility abbr html screenreaders</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:c4236e768885/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:abbr"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:screenreaders"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.alwaystwisted.com/articles/design-token-naming-conventions">
    <title>Design Token Naming Conventions | Always Twisted</title>
    <dc:date>2026-04-25T22:12:41+00:00</dc:date>
    <link>https://www.alwaystwisted.com/articles/design-token-naming-conventions</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[A practical guide to naming design tokens, including token tiers, common conventions, and rules that keep systems consistent and scalable.]]></description>
<dc:subject>fridayfrontend cssbasics tokens naming howto bestpractices</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:40c1339c880d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:tokens"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:naming"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:bestpractices"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://css-tricks.com/the-radio-state-machine/">
    <title>The Radio State Machine | CSS-Tricks</title>
    <dc:date>2026-04-25T22:12:10+00:00</dc:date>
    <link>https://css-tricks.com/the-radio-state-machine/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[One of the best-known examples of CSS state management is the checkbox hack. What if we want a component to be in one of three, four, or seven modes? That is where the Radio State Machine comes in.]]></description>
<dc:subject>fridayfrontend cssbasics html css checkboxes radio switch state</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:aad243e55692/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:checkboxes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:radio"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:switch"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:state"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://kittygiraudel.com/2026/04/09/an-interactive-cover-component/">
    <title>An Interactive Cover Component | Kitty Giraudel</title>
    <dc:date>2026-04-25T22:11:40+00:00</dc:date>
    <link>https://kittygiraudel.com/2026/04/09/an-interactive-cover-component/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[A technical walkthrough on how to build a small interactive cover component, with some nifty CSS tricks.]]></description>
<dc:subject>fridayfrontend cssbasics css headers cover components</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:a7a6ff11fea6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:headers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cover"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:components"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://frontendmasters.com/blog/building-a-ui-without-breakpoints/">
    <title>Building a UI Without Breakpoints – Frontend Masters Blog</title>
    <dc:date>2026-04-25T22:10:48+00:00</dc:date>
    <link>https://frontendmasters.com/blog/building-a-ui-without-breakpoints/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[This article covers a layout approach that better fits the modern web: fluid, intrinsic components that adapt by default, and treat conditional rules as local, intentional exceptions.]]></description>
<dc:subject>fridayfrontend cssbasics css breakpoints mediaqueries cssgrid containerqueries</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:debb4fed013d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:breakpoints"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:mediaqueries"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssgrid"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:containerqueries"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://spaceninja.com/blog/2026/the-end-of-friday-front-end/">
    <title>The End of Friday Front-End</title>
    <dc:date>2026-04-25T21:59:25+00:00</dc:date>
    <link>https://spaceninja.com/blog/2026/the-end-of-friday-front-end/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[After over ten years of sharing front-end links every week, the time has come for me to shut down Friday Front-End. Thanks for subscribing!]]></description>
<dc:subject>fridayfrontend</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:7d1ce63881fa/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://stephaniewalter.design/blog/9-accessibility-myths-and-pushbacks-and-how-to-answer-them/">
    <title>9 Accessibility Myths and Pushbacks (And How to Answer Them) - UX Researcher &amp; Designer.</title>
    <dc:date>2026-04-25T21:57:23+00:00</dc:date>
    <link>https://stephaniewalter.design/blog/9-accessibility-myths-and-pushbacks-and-how-to-answer-them/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Most of the pushbacks you’ll face can be answered. When the argument is about money, show the numbers. Accessibility grows revenue. It opens markets. It protects your brand from legal and reputational risk. It sparks innovation that ends up benefiting everyone.]]></description>
<dc:subject>fridayfrontend accessibility howto myths</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:43eacdf93c73/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:myths"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://thoughtbot.com/blog/trimming-our-css-with-sibling-index-and-sibling-count">
    <title>Trimming our CSS with sibling-index() and sibling-count()</title>
    <dc:date>2026-04-25T21:55:02+00:00</dc:date>
    <link>https://thoughtbot.com/blog/trimming-our-css-with-sibling-index-and-sibling-count</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Small changes like this add up. Replacing repetitive selectors with functions like sibling-index() and sibling-count() makes the code easier to read and maintain, and a little more resilient to change.]]></description>
<dc:subject>fridayfrontend css sibling-index sibling-count</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:84464b5b22e6/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:sibling-index"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:sibling-count"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://alexop.dev/posts/modern-frontend-quality-pipeline/">
    <title>A Modern Quality Pipeline and Testing Strategy for Frontend Projects | alexop.dev</title>
    <dc:date>2026-04-25T21:52:20+00:00</dc:date>
    <link>https://alexop.dev/posts/modern-frontend-quality-pipeline/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[An agent writes most of my frontend code now. I review what it produces and tighten the architecture where it overreaches. That changes what a quality pipeline is for. You used to write tests and types so the next person on the file stayed sane. Now you write them so the agent can check its own work. Give it more ways to verify a change (types, lint, unit, component, real browser, a11y, bundle budget) and it finishes more of the ticket on its own.]]></description>
<dc:subject>fridayfrontend testing ai ci cd lint linters typescript vite vitest</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:8d78022ba569/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ai"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ci"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cd"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:lint"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:linters"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:typescript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:vite"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:vitest"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://piccalil.li/blog/the-end-of-responsive-images/">
    <title>The end of responsive images - Piccalilli</title>
    <dc:date>2026-04-25T21:47:55+00:00</dc:date>
    <link>https://piccalil.li/blog/the-end-of-responsive-images/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Mat Marquis has waited 14 years to write this article. The sizes attribute has been a necessary evil but now, with an auto value capability, it’s completely transformed authoring responsive images on the web.]]></description>
<dc:subject>fridayfrontend html responsive images srcset sizes auto lazyload</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:0c9a7b2b9c05/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:html"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:responsive"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:images"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:srcset"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:sizes"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:auto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:lazyload"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.youtube.com/watch?v=OEvVW4wQUII">
    <title>Dos &amp; Don’ts of Anchor Positioning - YouTube</title>
    <dc:date>2026-04-25T21:43:04+00:00</dc:date>
    <link>https://www.youtube.com/watch?v=OEvVW4wQUII</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[CSS Anchor Positioning isn't baseline yet, and there's good reason for that. You can use it, but it comes with some caveats. On April 16 James, Stacy, and Miriam will cover new resources to make Anchor Positioning easier, and work through some demos to help you understand how anchor positioning works. We'll also look at what new capabilities are in the pipeline.
]]></description>
<dc:subject>fridayfrontend video css anchor position</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:7c0f11e7e665/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:anchor"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:position"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://vtbag.dev/">
    <title>The Bag of Tricks for View Transitions | @vtbag</title>
    <dc:date>2026-04-25T21:35:53+00:00</dc:date>
    <link>https://vtbag.dev/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Tools, Tips, and Tricks to Enhance your Dev Skills with the View Transition API!]]></description>
<dc:subject>viewtransitions css</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:43d51ddf4d93/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:viewtransitions"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://shadow-dom-css.adobe.com/">
    <title>Modern CSS Feature Support For Shadow DOM</title>
    <dc:date>2026-04-25T21:35:12+00:00</dc:date>
    <link>https://shadow-dom-css.adobe.com/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Tracking the state of support for CSS features within and across the shadow DOM to provide visibility into feature parity, usage details, and outstanding issues and bugs.

]]></description>
<dc:subject>shadowdom css caniuse support webcomponents</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:a6f5567593fc/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:shadowdom"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:caniuse"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:support"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:webcomponents"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.youtube.com/watch?v=RKWvnCrKizI">
    <title>CSS Grid for Beginners (mini course) - YouTube</title>
    <dc:date>2026-04-19T19:20:01+00:00</dc:date>
    <link>https://www.youtube.com/watch?v=RKWvnCrKizI</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Learn how to use CSS grid for building layouts, step-by-step, with this beginner friendly tutorial.
]]></description>
<dc:subject>fridayfrontend css cssbasics video cssgrid layout</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:c88260b3de98/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssgrid"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:layout"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://matuzo.at/blog/2026/box-shadow-no-alternative-to-outline">
    <title>box-shadow is no alternative to outline - Manuel Matuzovic</title>
    <dc:date>2026-04-19T19:18:26+00:00</dc:date>
    <link>https://matuzo.at/blog/2026/box-shadow-no-alternative-to-outline</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Using box-shadow for focus outlines is problematic in forced colors mode because the box-shadow property computes to none, which means that there are no shadows and consequently no focus styles in this mode.]]></description>
<dc:subject>fridayfrontend css accessibility box-shadow focus forced-colors</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:14f37f2dfe4a/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:box-shadow"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:focus"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:forced-colors"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://adrianroselli.com/2026/04/wcag3-contrast-as-of-april-2026.html">
    <title>WCAG3 Contrast as of April 2026 — Adrian Roselli</title>
    <dc:date>2026-04-19T19:16:17+00:00</dc:date>
    <link>https://adrianroselli.com/2026/04/wcag3-contrast-as-of-april-2026.html</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[APCA is no longer part of WCAG3. You can still use it, but for conformance (legal, policy, etc.) reasons you will still need to follow WCAG2. It’s possible to satisfy both in most cases.]]></description>
<dc:subject>fridayfrontend wcag apca color contrast accessibility</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:7491d1822875/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:wcag"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:apca"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:color"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:contrast"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://dbushell.com/2026/04/15/containment-breach-in-cascade-layer/">
    <title>Warning: containment breach in cascade layer! – David Bushell – Web Dev (UK)</title>
    <dc:date>2026-04-19T19:12:00+00:00</dc:date>
    <link>https://dbushell.com/2026/04/15/containment-breach-in-cascade-layer/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[I subscribe to the dogma that says !important should never be used but it’s not always my choice. The WordPress ecosystem is the ultimate specificity war. Cascade layers can curtail unruly WordPress plugins but if they use !important it’s game over; I’m back to writing even worse code.]]></description>
<dc:subject>fridayfrontend wordpress cascadelayers important css</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:9791f400eb80/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:wordpress"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cascadelayers"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:important"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://mattwaler.com/blog/container-query-typography-systems/">
    <title>Container Query Typography Systems | TEA Stack</title>
    <dc:date>2026-04-19T19:08:58+00:00</dc:date>
    <link>https://mattwaler.com/blog/container-query-typography-systems/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[With the adoption of container queries in all browsers, it's time to use them to fix typography systems.

]]></description>
<dc:subject>fridayfrontend css typography containerqueries</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:a1f85442c84c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:typography"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:containerqueries"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.joshwcomeau.com/animation/squash-and-stretch/">
    <title>Squash and Stretch • Josh W. Comeau</title>
    <dc:date>2026-04-19T19:06:47+00:00</dc:date>
    <link>https://www.joshwcomeau.com/animation/squash-and-stretch/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Have you ever heard of Disney’s 12 Basic Principles of Animation? In this tutorial, we’ll explore how we can use the very first principle to create SVG micro-interactions that feel way more natural and believable. It’s one of those small things that has a big impact.]]></description>
<dc:subject>fridayfrontend css animation disney squash stretch</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:675a49c186ae/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:animation"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:disney"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:squash"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:stretch"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.zachleat.com/web/its-10pm/">
    <title>State of the Browser (2026) It’s 10PM: Do You Know Where Your JavaScript Is?—zachleat.com</title>
    <dc:date>2026-04-19T19:01:34+00:00</dc:date>
    <link>https://www.zachleat.com/web/its-10pm/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[We’ll talk about best practices to either reduce (or increase!) the JavaScript footprint on your web site to a sweet and very practical spot for best results. It’s far more common to have too much JavaScript on your web site, but can you go too far? Is zero JavaScript a worthwhile goal? Let’s talk about it!]]></description>
<dc:subject>fridayfrontend video javascript performance</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:19b2d737105f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:video"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:performance"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://tools.rmv.fyi/">
    <title>delphitools</title>
    <dc:date>2026-04-19T18:58:20+00:00</dc:date>
    <link>https://tools.rmv.fyi/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[delphitools is a collection of small, focused utilities that respect your privacy and work entirely in your browser. No data leaves your machine, no accounts required, no tracking. Just tools that do what they say.

]]></description>
<dc:subject>tools utility free qrcode palette generator backgrounds</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:a7039a7a27aa/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:tools"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:utility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:free"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:qrcode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:palette"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:generator"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:backgrounds"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://cssence.com/2026/font-variant-emoji/">
    <title>Unicode Variation Selectors - CSSence.com</title>
    <dc:date>2026-04-19T18:55:59+00:00</dc:date>
    <link>https://cssence.com/2026/font-variant-emoji/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[While I knew that Unicode has Variation Selectors (VS), I had no idea that CSS has a font-variant-emoji property. So it was time to connect the dots.

]]></description>
<dc:subject>css font-variant-emoji emoji unicode icons</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:c5c55425dc1b/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:font-variant-emoji"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:emoji"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:unicode"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:icons"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli/">
    <title>Testing OpenGraph on localhost from the CLI before you go public | Simon Hartcher</title>
    <dc:date>2026-04-19T18:52:03+00:00</dc:date>
    <link>https://simonhartcher.com/posts/2026-04-15-testing-opengraph-on-localhost-from-the-cli/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[I wanted to render an OpenGraph preview against localhost. So I built og-check, which ships as part of my CLI tool suite neutils.

]]></description>
<dc:subject>opengraph social testing qa</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:2fed2a9f4a43/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:opengraph"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:social"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:testing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:qa"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/unmta/emailmd">
    <title>unmta/emailmd: Render markdown into email-safe HTML</title>
    <dc:date>2026-04-16T22:29:37+00:00</dc:date>
    <link>https://github.com/unmta/emailmd</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Email.md converts markdown into responsive, email-safe HTML that works across Gmail, Outlook, Apple Mail, Yahoo, and every other client.]]></description>
<dc:subject>email markdown templates html</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:df36fa2b875f/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:email"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:markdown"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:templates"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:html"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://emshort.blog/2017/04/01/small-plotting-trick-for-choice-of-work/">
    <title>Small Plotting Trick for Choice-of Work – Emily Short's Interactive Storytelling</title>
    <dc:date>2026-04-16T22:28:50+00:00</dc:date>
    <link>https://emshort.blog/2017/04/01/small-plotting-trick-for-choice-of-work/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[List all the major characters. For each character, write down the outcome they most want. Also write down what their worst outcome would be. Then brainstorm about what the player character might do that would cause these outcomes.]]></description>
<dc:subject>ink interactivefiction writing howto characters plotting</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:56a2e5276b6e/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:characters"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:plotting"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://gist.github.com/spaceninja/c2c086584be17bfc5bc93499ee4dcd93">
    <title>Overboard with Comments</title>
    <dc:date>2026-04-16T02:24:15+00:00</dc:date>
    <link>https://gist.github.com/spaceninja/c2c086584be17bfc5bc93499ee4dcd93</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[A heavily-commented version of the Overboard conversation system to help me understand how it works.]]></description>
<dc:subject>ink interactivefiction howto writing</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:796de0584f35/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://github.com/wildwinter/Ink-Storylet-Framework">
    <title>wildwinter/Ink-Storylet-Framework: Simple Unity storylet framework for Ink.</title>
    <dc:date>2026-04-15T02:47:35+00:00</dc:date>
    <link>https://github.com/wildwinter/Ink-Storylet-Framework</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Think of it like a deck of cards. The "Storylet Manager" looks at all the cards (storylets) in the deck and asks each one: "Can you be played right now?" based on the current world state (variables).

]]></description>
<dc:subject>ink interactivefiction writing howto storylets</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:49b411f33b47/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:storylets"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://gist.github.com/joningold/0a45fadb69e697ff34294a2aa8f06ce6">
    <title>Storylet implementation</title>
    <dc:date>2026-04-15T02:46:28+00:00</dc:date>
    <link>https://gist.github.com/joningold/0a45fadb69e697ff34294a2aa8f06ce6</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[This allows you to create content as "storylets" - little chunks / scenes, which are gated by preconditions. The game offers a choice of which one the player can look at, by picking the top N that are available now. ]]></description>
<dc:subject>storylets ink interactivefiction howto writing</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:c874442706cb/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:storylets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://pauljickling.github.io/2024/01/29/storylets-using-ink.html">
    <title>Storylets in Ink</title>
    <dc:date>2026-04-15T02:45:58+00:00</dc:date>
    <link>https://pauljickling.github.io/2024/01/29/storylets-using-ink.html</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Providing all the options available is easy enough, although could represent a UI challenge depending on how large the list becomes, but a random selection is an interesting idea I like. The ink language has many limitations, but it has sufficient data structures and routing capabilities to provide for this. We start with a list.

]]></description>
<dc:subject>storylets ink interactivefiction howto writing</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:3e70d2af5f0d/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:storylets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://emshort.blog/2019/12/03/storylets-play-together/">
    <title>Storylets Play Together – Emily Short's Interactive Storytelling</title>
    <dc:date>2026-04-15T02:23:23+00:00</dc:date>
    <link>https://emshort.blog/2019/12/03/storylets-play-together/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Storylets encourage narrative designers to think in terms of systems, and allow story arcs to affect one another in memorable ways.
]]></description>
<dc:subject>interactivefiction storylets ink howto writing</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:9bdc9496d0e0/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:storylets"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://heterogenoustasks.wordpress.com/2015/01/26/standard-patterns-in-choice-based-games/">
    <title>Standard Patterns in Choice-Based Games | These Heterogenous Tasks</title>
    <dc:date>2026-04-15T02:12:55+00:00</dc:date>
    <link>https://heterogenoustasks.wordpress.com/2015/01/26/standard-patterns-in-choice-based-games/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[When I was analysing the structures of CYOA works a few years back, I began to recognise some strong recurring design patterns. I came up with some home-brewed terminology, but didn’t ever lay it out in a nice clear way. This is a non-exhaustive look at some of the more common approaches, somewhat-updated (a lot has changed since then).

]]></description>
<dc:subject>interactivefiction games chooseyourownadventure ink howto writing</dc:subject>
<dc:identifier>https://pinboard.in/u:spaceninja/b:86a20a9e3247/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:interactivefiction"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:games"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:chooseyourownadventure"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:ink"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:howto"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:writing"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://www.matuzo.at/blog/2026/skip-links-tabindex">
    <title>Your skip link targets may not need tabindex=-1 to work properly - Manuel Matuzovic</title>
    <dc:date>2026-04-12T16:57:58+00:00</dc:date>
    <link>https://www.matuzo.at/blog/2026/skip-links-tabindex</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[Recently, someone posted on LinkedIn that skip links are often broken because their target elements are missing a tabindex attribute. I was really surprised to see that because I thought that was an issue of the past. That's why I decided to test it.]]></description>
<dc:subject>fridayfrontend accessibility skiplinks tabindex cssbasics</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:ba469cbedc5c/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:accessibility"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:skiplinks"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:tabindex"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://css-tricks.com/css-multi-column-layout-wrapping-features/">
    <title>New CSS Multi-Column Layout Features in Chrome | CSS-Tricks</title>
    <dc:date>2026-04-12T16:55:42+00:00</dc:date>
    <link>https://css-tricks.com/css-multi-column-layout-wrapping-features/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[The new column-height and column-wrap CSS multi-column layout properties enable us to wrap additional content into a new row.]]></description>
<dc:subject>fridayfrontend css cssbasics multicol column-height column-wrap</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:80dde9673224/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:css"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:multicol"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:column-height"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:column-wrap"/>
</rdf:Bag></taxo:topics>
</item>
<item rdf:about="https://macarthur.me/posts/preloading-images/">
    <title>Your options for preloading images with JavaScript | Alex MacArthur</title>
    <dc:date>2026-04-12T16:54:25+00:00</dc:date>
    <link>https://macarthur.me/posts/preloading-images/</link>
    <dc:creator>spaceninja</dc:creator><description><![CDATA[There are a number of ways to preload an image on demand with JavaScript — each with their own strengths & drawbacks. Let's explore them.
]]></description>
<dc:subject>fridayfrontend javascript preload cssbasics</dc:subject>
<dc:source>https://pinboard.in/</dc:source>
<dc:identifier>https://pinboard.in/u:spaceninja/b:c6636b3ad221/</dc:identifier>
<taxo:topics><rdf:Bag>	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:fridayfrontend"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:javascript"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:preload"/>
	<rdf:li rdf:resource="https://pinboard.in/u:spaceninja/t:cssbasics"/>
</rdf:Bag></taxo:topics>
</item>
</rdf:RDF>