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.
Convert standard HTML into Pug (formerly Jade) syntax. Clean, indented output. For Node.js templating. Client‑side.
Configure how your PWA launches: focus existing or create new. Test with the launch_handler manifest field.
Build a horizontal scroll‑snap container with configurable snap‑type and alignment. Perfect for image galleries.
Compare all CSS easing presets side by side on a bouncing ball. See which curve fits your UI animation.
Query the permission state of camera, microphone, geolocation, and more. See the response and learn the API.
Process audio faster than real‑time with OfflineAudioContext. Apply filters and export the result. Dev tool.
Paste regular HTML and instantly get valid React JSX with proper self‑closing tags and className attributes.
Scroll a container and see how sticky elements behave. Adjust top, bottom, and scroll margins. Copy the code.
Test the experimental Translation API to translate text between languages directly in the browser, without cloud calls. Check support and copy the JavaScript starter.
Toggle scrollbar‑gutter: stable to reserve space for the scrollbar and avoid content jumps. Visual demo with two columns.
Acquire and release locks across tabs. Prevent race conditions in IndexedDB or localStorage. Visual queue and lock state.
Register a periodic background sync to fetch fresh data even when the tab is closed. Understand the API and limits.
Test the Fullscreen API: request fullscreen on a colored div, detect changes, and copy the JavaScript boilerplate.
Test the new HTML popover attribute for creating accessible tooltips, menus, and dialogs without JavaScript. Copy code snippets.
See the View Transitions API in action. Cross‑fade and morph between two states. Copy the JavaScript starter code.
Build a complex mailto: link with to, cc, bcc, subject, and body. Get the HTML anchor tag. Local.
Paste HTML and instantly remove all tags, leaving only the text content. Optional keep line breaks. Quick cleaning.
Type raw HTML and see the escaped version, then see how it renders when unescaped. Understand encoding better.
Create a customizable scrolling marquee banner. Copy the HTML and CSS. For retro web projects or fun.
Paste CSV and get a beautiful HTML table with sortable headers (optional). Copy the full HTML/CSS snippet. Local.
Write or paste an HTML snippet and generate a PDF using the browser's print engine. Customize page size and margins.
Paste an HTML `<table>` snippet and instantly get a clean Markdown table. Supports colspan and alignment hints. Local.
Paste lines of text and automatically convert to an HTML ordered list with correct numbering and indentation.
Reduce your HTML file size by stripping whitespace, comments, and optional closing tags. Secure browser‑based.
Paste multiple HTML snippets (header, footer) and a main content, then combine them into a single preview. Static site helper.
Find safe mixing ratios for the classic elephant toothpaste demonstration. Volume adjustments for different container sizes.
Strip HTML tags and convert web content to plain Markdown. Preserve headings, lists, and links. Perfect for content migration. All processing in browser.
Write or paste HTML, CSS, and JavaScript and instantly see the rendered output in a sandboxed iframe. A handy frontend prototyping tool.
Write Markdown and see the formatted HTML preview in real time. Syntax highlighting and GitHub-flavored Markdown support. No upload, fully local.