ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Post

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

Record data

{
  "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"
  }
}