{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifuh5hxoz3ckky27z6p4nbyoznazc5y5ae4sc6i3waamihmkwvqn4",
    "uri": "at://did:plc:c4uo5im4kb23i76qndr43xi2/app.bsky.feed.post/3mhfx7cvxrz42"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreickgxuzzzx7bzdb2omjzsyq7fdi3a57tczbdik7nhb63zv3wfmoce"
    },
    "mimeType": "image/webp",
    "size": 297988
  },
  "path": "/links/abusing-customizable-selects",
  "publishedAt": "2026-03-19T04:00:00.000Z",
  "site": "https://jonathanstephens.us",
  "tags": [
    "Css Functions",
    "Html Elements",
    "Select",
    "Animation",
    "Css",
    "Html",
    "Customisation"
  ],
  "textContent": "> Before we start, a word about browser support: the demos in this article only run on recent Chromium-based browsers because that’s where customizable selects are implemented right now. However, this feature is designed in a way that doesn’t break non-supporting browsers. After all, a customized  element is still a  element. So, if the browser you’re using doesn’t support customizable selects, you’ll just see normal selects and options in these demos, and that’s great. It’ll just be a lot less fun.",
  "title": "Abusing Customizable Selects"
}