Jhey ʕ·ᴥ· ʔ @jhey.dev · 20hstatic.klipy.comSealyx Optimus Prime Ballin'Alt: Sealyx Optimus Prime Ballin' 001
Jhey ʕ·ᴥ· ʔ @jhey.dev · 17/09/2026just locks the spotlight onto the field for :focus-visible but there’s likely an opportunity there 😅 130
Jhey ʕ·ᴥ· ʔ @jhey.dev · 17/09/2026had to repost because i posted the wrong video, missing a detail 🤦♂️ i would rather lose the "likes" and have the correct video on my timeline 🙏 the spotlight is meant to reveal the password, so here's a darker version with the shader tweaked 🤙 4503
Jhey ʕ·ᴥ· ʔ @jhey.dev · 03/07/2026they were originally scattered throughout the garden, i put them in the garage around 2019 as i didn’t have a skip to get rid of them at the time 😅 who knows when that workbench was put together but the sledgehammer has had the best of that 🙈 030
Jhey ʕ·ᴥ· ʔ @jhey.dev · 15/06/2026amen do still think there is an element of “because you can, doesn’t mean you should” with a lot of things don’t get me wrong, some of the new stuff is great, but prio for the high value/low effort would be awesome worry about things like if() when seeing some of the :has() out there 190
Jhey ʕ·ᴥ· ʔ @jhey.dev · 16/04/2026always been painful 💯 wrote an npm package to alleviate the current technique somewhat. was def disappointed when the CaretPosition API didn’t provide a way to do this on keypress as well had kinda hoped we might get something as simple as anchor(caret) + anchor(pointer) 😅 021
Jhey ʕ·ᴥ· ʔ @jhey.dev · 08/04/2026glad she’s had that effect 🫶 i’ve just cleared myself from the timeline for the beginning of 2026 😅 110
Jhey ʕ·ᴥ· ʔ @jhey.dev · 08/04/2026closed the lid on the stroller to block the sun but can’t see me. straight out 😴 (sporting best pants today 💯) 191
Jhey ʕ·ᴥ· ʔ @jhey.dev · 26/03/2026see how far i get, at some point 🥲 jus’ a nice visual that makes me want to look around at different geometric art for inspo 💯 100
Jhey ʕ·ᴥ· ʔ @jhey.dev · 26/03/2026one of the few things i’ve seen lately where i’m like “i wanna build one of those” 👏 thanks for sharing, thought the sphere was real cool too 110
Jhey ʕ·ᴥ· ʔ @jhey.dev · 04/02/2026does not surprise me tbh would def approach differently now, these demos are over 3 years old would be good to see detection + corner-shape usage too now 110
Jhey ʕ·ᴥ· ʔ @jhey.dev · 04/02/2026👋 here are a couple (feels like an eternity ago 🥲) [1] "charge" lines (drag nodes) codepen.io/jh3y/pen/Pox... [2] "post-it" board (add + drag + connect in pane) codepen.io/jh3y/pen/MWq...codepen.ioSupercharged CSS with Anchor Positioning [Chrome Canary] (Drag/Double Click the nodes)... 150
Jhey ʕ·ᴥ· ʔ @jhey.dev · 26/01/2026love the "whack a dialog" demo 😅 reminded me of this one i did for CSS day with [popover] 🎈 so true though, fun experimentation has multiple benefits 💯 not only do you learn something, but it's also great for finding API limits or surfacing browser bugs/issues, wish we saw more of it! 050
Jhey ʕ·ᴥ· ʔ @jhey.dev · 21/01/2026you can import anonymously too but of course doesn’t solve if you are someone writing a bunch of <link> tags that concept of an anonymous layer to wrap reset is sound though, it’s been around a moment. mentioned in this topic that may interest if you haven’t seen it css.oddbird.net/layers/link-...css.oddbird.netCascade Layering of HTML Linked Style Sheets 020
Jhey ʕ·ᴥ· ʔ @jhey.dev · 20/01/2026another way: combine import with layer like you can for 3rd party style overrides @import "reset.css" layer(reset); @layer normalize, reset, base, etc; 230
Jhey ʕ·ᴥ· ʔ @jhey.dev · 10/01/2026the ideal would be a mix of this + offset-path cause they both have their trade offs/limits 🥲 000
Jhey ʕ·ᴥ· ʔ @jhey.dev · 10/01/2026yeah, textPath gets overlooked 💯 it’s a shame there isn’t a nice way to magically scale the text to fit a path neatly (the scale/blend trick is a nice touch) 110
Jhey ʕ·ᴥ· ʔ @jhey.dev · 20/12/2025almost time to sit down and put together the 2025 demo reel 👨🍳 2024 👇 (not posted here) 0420
Jhey ʕ·ᴥ· ʔ @jhey.dev · 15/12/2025i have just the one for you that i’ve been working on 🙌 a definite gsap to the rescue demo! 120
Jhey ʕ·ᴥ· ʔ @jhey.dev · 12/12/2025i will say, i think it looks great 👏 works great for me. one small thing i see that doesn’t happen every single time but if you open a demo, sometimes you get a flash of the page before it fades in on the page transition. that’s Safari iOS. 120
Jhey ʕ·ᴥ· ʔ @jhey.dev · 11/11/2025they were unbelievable, would def make the trip to Leeds for them alone 020
Jhey ʕ·ᴥ· ʔ @jhey.dev · 23/10/2025this is the weird case wherre a rudimentary infinite scroller works "seamlessly" until scroll-snap enters the room which starts to intefere with things instead of battling it, i'm jus' gonna try and take it out of the equation 😅 110
Jhey ʕ·ᴥ· ʔ @jhey.dev · 23/10/2025in unrelated news, i'm writing my own scroll-snap this week, ya know, for browser parity 😅 110
Jhey ʕ·ᴥ· ʔ @jhey.dev · 23/10/2025this 💯 my one hope/idea around this that’s related would’ve been an extension to anchor positioning that was like anchor(pointer x)/anchor(pointer y) felt like a way that would open up easy pointer position passing to styles 🤔 000
Jhey ʕ·ᴥ· ʔ @jhey.dev · 23/10/2025super easy CSS sticky scroll hide/reveal 🧑🍳 .sticky-atc { position: fixed; inset: auto 0 0 0; transition: translate 0.26s cubic-bezier(.55,0,.67,1.25); /* hide when scrolling down */ @container scroll-state(scrolled: bottom) { translate: 0 100%; transition-delay: 0.5s; } } 0472
Jhey ʕ·ᴥ· ʔ @jhey.dev · 22/10/2025haha – well, it worked with the API from a couple of years back then it had to be switched to [popover] + <button> because the API moved and we lost some of the functionality hooks we had + it needed to work in my deck i'll have to try and piece it together again 010
Jhey ʕ·ᴥ· ʔ @jhey.dev · 22/10/2025small details that matter 🧑🍳 use CSS pseudoelements to bridge the :hover gap w/ :has() + inset a:has(+ .dots) a::after, .dots + a::after { position: absolute; content: ''; } a:has(+ .dots) a::after { inset: 0 -50% 0 100%; } .dots + a::after { inset: 0 100% 0 -50%; } 2557
Jhey ʕ·ᴥ· ʔ @jhey.dev · 22/10/2025correct ✅ although i've been lookin' at some other options too i really want some more "editing" type features so i often end up exporting and then doing other things in Screenflow 020