DHDan Holloraningrimicorn.hashnode.dev·12h ago · 4 min readCSS scroll-state() Queries: Styling Stuck, Snapped, and ScrollableEvery codebase I have worked in has the same file somewhere. It is called stickyHeader.js or useIsStuck.ts, and it exists because CSS could tell you an element was position: sticky but never whether i00
DHDan Holloraningrimicorn.hashnode.dev·Aug 31 · 5 min readAsync Svelte: Using await Directly in Your ComponentsEvery Svelte codebase eventually grows a little pile of scaffolding around asynchronous data. A let data = $state(null), an $effect that fetches and assigns, a loading flag, an error flag, and a {#if 00
DHDan Holloraningrimicorn.hashnode.dev·Aug 29 · 5 min readThe Web Locks API: One Tab Does the Work, the Rest WaitA user opens your dashboard, then opens it again in a second tab, then leaves a third one parked on another monitor from yesterday. Their access token expires. All three tabs notice at roughly the sam10
DHDan Holloraningrimicorn.hashnode.dev·Aug 29 · 4 min readForm-Associated Custom Elements: Web Components That Belong in a FormCustom elements have been shippable for years, but the illusion falls apart the moment you drop one inside a <form>. The value never shows up in FormData. required does nothing. Hitting reset leaves y00
DHDan Holloraningrimicorn.hashnode.dev·Aug 24 · 5 min readNext.js Partial Prefetching: One Shell Per Route, Not One Per LinkOpen the Network tab on a production Next.js app and scroll a page with a long list of links. You get a waterfall of prefetch requests, one per link, most of them hitting the same route with different10