🎛️ Loved animating these isometric api illustrations by
@danhollick
for the new Raycast site.
They’re all SVG:s animated with CSS, here’s how it works (it’s dead simple) 👇
🏃♂️ Just published my Workouts extension for Strava to the
@raycastapp
store
See your latest workouts, get a quick overview of your stats in the menu bar and ask AI anything about your workout data 👇
🗓️ I’m building a calendar app for planning and analysing workouts.
Had fun building this waitlist page inspired by years of scribbling down my training routines with pen & paper.
Taking this to the next level now with smart suggestions, workout syncing, maps and more
I don’t even want to count the options I tried (and fully coded) before landing on this direction inspired by great sites like , , , .
Peek the source:
1️⃣ Import the SVG as a React component and group the paths by each “layer” that should move.
Each layer has two classes for the state: the offset starting position and the ending position that is toggled once the illustration enters the viewport.
3️⃣ Some illustrations are a bit trickier when the layers needs to stack differently depending on the state.
For example the switch “knob” needs to sit above the “back edge” but below the “front edge”. The trick is separating those parts directly in the SVG in order to layer it
2️⃣ Each group is then animated with css transitions using transforms and opacity, using transition-delays to orchestrate the animation.
A custom easing curve makes the movement feel natural and snappy.
Any color changes are handled by updating their css variables.
Just shipped a redesigned homepage for
@tracklib
! 🎶✨ Featuring animations and parallax with Framer Motion, interactive playable albums and more! Check it out at
#framermotion
#React
📝 New post: I recreated the Segmented Control from ios in React with Framer Motion. There’s a couple of neat micro-interactions and animations ✨
#reactjs
#framermotion
🚀Bitrefill teams w. NBA star Spencer Dinwiddie introducing Bitsneaks!🚀
World’s slickest & most high tech sneaker. Displaying the real-time price & block height of BTC! Check it out @ . Retweet for a chance to win a pair!
#bitsneaks
Funny "bug" when updating my site to Next 12: <Image /> wrapper is now a <span>, so the album art in my music widget animates just like the eq bars 😅 Learning: Too generic CSS selectors are dangerous
✨ Shipped an updated theme switcher to my site adding the option of following your system setting. I love that magical feeling when you have your system set to automatic and everything changes in front of your eyes 👀 Try it:
🌟 CSS Blend Modes have lots of interesting use-cases, in this post on the blog I show how it can be used to color parts of an svg by building a star rating component!
We can finally start using bottom tab bars on the mobile web with iOS 15 🙌 Safari no longer requires two taps at the bottom of the screen if you respect the 'safe areas'. See how 👇
✍️ Want to start blogging using
@NotionHQ
as a CMS?
I wrote a post on how I built an open-source blog using their new public API and Next.js
@NotionAPI
Shipped an update to Trail Routes this weekend adding support for Swimrun 🏃🏊 In the beginning it feels pretty weird to swim with shoes and run with wet clothes, but it's super fun and is growing a lot in popularity! First route: Långsjön
Espresso will always have a special place in my heart for teaching me to write CSS ❤️ the visual css inspector was a really good way to learn the available properties and tweak details. Thanks
@janvanwtf
🌳Just shipped a big SEO update for Trail Routes! Now includes meta tags and sharing images generated with canvas and
@Mapbox
's static image api. Check it out:
#builtwithmapbox
#buildinpublic
✨ Shipped an updated theme switcher to my site adding the option of following your system setting. I love that magical feeling when you have your system set to automatic and everything changes in front of your eyes 👀 Try it:
Third success: Navigation, remote image loading & opening external links in a SFSafariView. Also learned about accentColor (go orange!) and ButtonStyle