oluwasefunmi. @oluwasefunmi.com · 19/05/2026Wallets, in raw CSS. Gradients are very underrated. If you layer enough of them you can mimic depth and texture in 2d space 100
oluwasefunmi. @oluwasefunmi.com · 03/05/2026Glasses transitions, made with CSS clip-path() and inverted transforms Another day I can put off learning WebGL 110
oluwasefunmi. @oluwasefunmi.com · 20/03/2026Carousel Painting Wheel, made with CSS transforms only. 100
oluwasefunmi. @oluwasefunmi.com · 12/03/2026Seeing how far I can push retend's universal JSX renderer, ala opentui Terminal UIs are really really cool, I can see why people like them. 000
oluwasefunmi. @oluwasefunmi.com · 24/01/2026Mechanical Keyboard, made entirely with CSS transforms 110
oluwasefunmi. @oluwasefunmi.com · 21/01/2026Halo Marquee in CSS, using offset-path and backface-visibility 120
oluwasefunmi. @oluwasefunmi.com · 20/01/2026Thanks for the reply For some properties, I get the error on the first animation, but its gone when it replays. Is this expected behavior? So clip-path, for example, is hardware accelerated, but not always? 000
oluwasefunmi. @oluwasefunmi.com · 19/01/2026I did this! 🤠 If you make the content sticky, use grid-area to do some ::after tricks and add scroll-timeline animations, it looks even cooler, with zero JS required. Excited to see where the web is going. 010
oluwasefunmi. @oluwasefunmi.com · 19/01/2026Found this drag-to-dismiss on X. It can be done on the web with IntersectionObserver, grid-area and touchend. No manual pointer tracking. I tried using scroll snapping but it was *bad*. Mimicking the gesture with .scrollIntoView feels nicer. 100
oluwasefunmi. @oluwasefunmi.com · 09/01/2026Look how pretty this looks You can delay each background-color transition by calculating the euclidean distance from the clicked box, and use a animation queue so the transitions don't run out of order. 000
oluwasefunmi. @oluwasefunmi.com · 07/01/2026Round Blur Carousel, using only* the CSS View Timeline and animation ranges. Someone on Twitter made it using UIKit, and I tried to see if it can be done on the web. It can! I read somewhere that its bad to animate css blurs though. is this true in chromium or not that serious @bram.us @una.im 100
oluwasefunmi. @oluwasefunmi.com · 09/05/2025I was making this in just css. the container is 100dvh, tabs have different heights based on content, and scrolling one tab shouldn't scroll other tabs. I could not find any permutation of height/max-height with overflow: scroll that worked until i used that 030
oluwasefunmi. @oluwasefunmi.com · 09/05/2025Irrelevant probably, but this reminds me. I learnt this week that you can do this in CSS and it works 120
oluwasefunmi. @oluwasefunmi.com · 28/03/2025Figma prototypes are cool I want to use them everytime 000
oluwasefunmi. @oluwasefunmi.com · 13/02/2025After a day of godawful CSS math, <FluidList /> now wraps into an animated grid. 000
oluwasefunmi. @oluwasefunmi.com · 11/02/2025Spent yesterday making a <FluidList /> component that tracks an array and automatically animates any changes to it. Once I figure out how to wrap it into a grid its over for everyone 😈 000
oluwasefunmi. @oluwasefunmi.com · 30/12/2024Radial Spotlight effect with SCSS and many divs. Anything is possible in just CSS if you try hard enough. 000
oluwasefunmi. @oluwasefunmi.com · 21/12/2024A more exciting (and difficult) thing I stole from Vue: event modifiers! The syntax is eh but hey it works! 000
oluwasefunmi. @oluwasefunmi.com · 21/12/2024My [unfinished] JSX framework now supports arrays/objects as values for the class attribute. A little improvement inspired by Vue. No more ternary string concatenations. 010