HTML Template Element Demo - Online Clone & Use
Use the <template> tag to hold hidden HTML that is cloned and injected by JavaScript. Common pattern.
UD5 Toolkit
The <selectlist> is a proposed new HTML element from the
Open UI Community Group, designed to replace the traditional
<select> with fully styleable, rich dropdown components —
supporting icons, descriptions, avatars, and more.
Each option shows an avatar, name, and role — mimicking what <selectlist> enables natively.
none
<select>.
Rich country selector with flags, country codes, and regions — great for forms and checkout flows.
none
<select> can't display flag emojis or rich metadata per option — <selectlist> solves this.
❌ Traditional <select> (limited)
<select>
<option value="alice">Alice Kim</option>
<option value="sarah">Sarah Chen</option>
</select>
<!-- No icons, descriptions, or rich content -->
✅ Proposed <selectlist> (rich)
<selectlist>
<option>
<img src="avatar.png">
<strong>Alice Kim</strong>
<small>Designer</small>
</option>
<option value="sarah">...</option>
</selectlist>
The <selectlist> element (previously called <selectmenu>) is being developed by
Open UI — a W3C Community Group. It allows full CSS styling of every part of the dropdown,
including the button, listbox, options, and optgroups — something impossible with native <select>.
<selectlist> element?
<selectlist> is a proposed new HTML element from the Open UI Community Group (a W3C group). It aims to replace the traditional <select> dropdown with a fully customizable, styleable component. Unlike native <select> — which is rendered by the OS and almost impossible to style consistently — <selectlist> would allow developers to insert any HTML content into options (icons, avatars, descriptions, badges) and style every sub-part with CSS.
<selectlist> today?
As of 2024-2025, no major browser has shipped <selectlist> in stable releases. It is currently an experimental proposal. Chrome has shown the most interest with an origin trial behind a flag (chrome://flags#enable-experimental-web-platform-features). The demo above uses a custom JavaScript implementation to simulate the same rich-select experience that <selectlist> would provide natively.
<selectlist> better than custom select libraries?
Custom select libraries (like Select2, Choices.js, or React Select) require JavaScript and often have accessibility gaps. A native <selectlist> would provide:
<form>, FormData, and validation APIs.<selectlist>?
The proposed anatomy includes these named parts, each styleable via ::part() pseudo-elements:
<selectlist> in production right now?
Not recommended for production yet. Since no browser has shipped it in a stable release, you should use a custom implementation (like the demos above) or a well-tested library (Select2, Choices.js, react-select) for rich select functionality. Keep an eye on the Open UI website and Chrome's origin trials for updates on <selectlist> availability.
<selectlist> solve?
The native <select> has been a major pain point for web developers for over 20 years:
<option> elements.Use the <template> tag to hold hidden HTML that is cloned and injected by JavaScript. Common pattern.
Build an accessible modal using the native <dialog> element. Customize backdrop, content, and open/close logic. Copy the code.
Write HTML, CSS, and JavaScript in separate panes and see the result in real time. Store your snippets locally.
Design custom unordered and ordered lists with images, strings, or counters. Preview and copy the CSS.
Design a custom counter style with symbols, range, and speak‑as. Preview ordered lists with your new style. Export the CSS rule.
Get a clean, commented JS plugin skeleton with IIFE or ES module pattern. Start your new library faster.
Compare visibility: hidden vs display: none. See how each affects layout and event listeners. Inline code.
Number each line of your text sequentially. Customize start number and format. Useful for code snippets, tutorials, and document review. Private operation.
Generate cryptographic key pairs using the Web Crypto API. Export as JWK or raw. No server needed; pure security.
Convert an SVG shape into a CSS mask‑image. Transparent regions become masked. Great for custom image crops. Client‑side.
Adjust opacity visually with a slider and see the different CSS representations (opacity property vs RGBA/HSLA). Copy best option.
Combine random character, setting, conflict, and genre to generate unique story prompts. Over 10,000 possible combinations. Perfect for overcoming writer's block.
Generate random license keys or serial numbers in various formats (XXXX-XXXX-XXXX). Useful for software activation testing. Local generation.
Generate a subtle or heavy noise/grain texture as a CSS background. Adjust intensity and color. Copy the small code.
Paste a list of URLs or texts and generate QR codes all at once. Download as individual images or a single sheet.
Upload multiple SVGs and combine them into a single SVG sprite sheet with `<symbol>` and `<use>`. Fast icon system.
Move the vanishing point of a 3D scene. Drag to set perspective‑origin and see the scene shift. Copy CSS.
Record audio from your microphone and export as a WAV file. Monitor levels. Processed entirely in your browser.
Record audio from your microphone and export as a WAV file. Monitor levels. Processed entirely in your browser.
Upload a photo to create a numbered painting canvas with color swatches. Print and paint. Local only.
Convert between square meters, square feet, acres, hectares, and more. Essential for real estate and land measurements. Instant results, private data.
Generate custom placeholder images for mockups and layouts. Specify dimensions, colors, and text. Export as PNG or use the generated data URI. Entirely browser-based.
Generate classic retro sound effects (coin, jump, explosion) using oscillators and noise. Play and download as WAV. Web Audio API fun.
Flip images vertically or horizontally, and rotate in 90° increments. Quick and simple editing right in the browser. Download the corrected image instantly.
Run multiple named timers simultaneously for cooking. Presets like pasta, rice, etc. Audio alarm. Works in background.
Fill in container image and ports. Generate a Deployment and Service YAML with best practices. Start your K8s journey.
Connect to a serial device (Arduino, etc.) via the Web Serial API. Send and receive text. No native app needed.
Generate a grey placeholder image with custom text and dimensions. Data URI output. No external service.
Generate the next sequential invoice number with optional prefix and date stamp. Keep track locally or export.
An animated hourglass that you can set for any time. Watch the sand flow. Beautiful and calming timer.