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