Experimental browser for the Atmosphere
Squeezing in one last post before the new year: ryanmulligan.dev/blog/some-th... A quick one about CSS keyframe animations: - Duplicate keyframe properties - Order of keyframe rules - Custom timing function (easing) values at specific keyframes
Dec 30, 2024, 7:26 PM
{ "uri": "at://did:plc:du2fkuuod4mv6t2d4qpqn55z/app.bsky.feed.post/3lekb743t6c2a", "cid": "bafyreifsp6i36s7kbfqbn3qvcbi3josfr2eegj7mwgjf7rdu4rgnninqya", "value": { "text": "Squeezing in one last post before the new year: ryanmulligan.dev/blog/some-th...\n\nA quick one about CSS keyframe animations:\n\n- Duplicate keyframe properties\n- Order of keyframe rules\n- Custom timing function (easing) values at specific keyframes", "$type": "app.bsky.feed.post", "embed": { "$type": "app.bsky.embed.external", "external": { "uri": "https://ryanmulligan.dev/blog/some-things-about-keyframes/", "thumb": { "$type": "blob", "ref": { "$link": "bafkreifqq32wggo33azt6yk26ulwmx55vpqid2pxtj5l2t7kzmvigy5ady" }, "mimeType": "image/jpeg", "size": 261607 }, "title": "Some Things About Keyframes", "description": "A few lesser-known bits about CSS keyframe animations, from handling duplicate keyframe properties to customizing timing function easings within keyframe rulesets." } }, "langs": [ "en" ], "facets": [ { "index": { "byteEnd": 80, "byteStart": 48 }, "features": [ { "uri": "https://ryanmulligan.dev/blog/some-things-about-keyframes/", "$type": "app.bsky.richtext.facet#link" } ] } ], "createdAt": "2024-12-30T19:26:30.565Z" } }