OpenAPI to HTML Preview - Online Swagger UI Generator
Paste an OpenAPI YAML/JSON and render a static, readable API document. No server, pure browser‑based rendering.
UD5 Toolkit
The Custom Highlight API is a modern browser feature that allows developers to highlight text programmatically without modifying the DOM structure. This API uses the Highlight object and the CSS.highlights registry to manage highlights efficiently.
Unlike traditional approaches that wrap text in span elements, the Highlight API creates range-based highlights that are rendered natively by the browser. This means better performance for dynamic highlighting scenarios such as search results, syntax highlighting, and collaborative editing.
The API is part of the CSS Highlight API specification and works alongside the ::highlight() pseudo-element. Developers can define multiple highlight groups with different priorities, and the browser handles overlap rendering automatically. Each highlight can have its own styling via the highlight pseudo-element.
Browser support for the Highlight API is growing. Chrome and Edge have supported it since version 105, while other browsers are actively implementing the specification. For applications that need to highlight text in real-time—such as find-in-page features or live search filtering—this API provides a significant performance improvement over DOM-based highlighting.
No highlight groups yet. Add one above.
Highlight objects (collections of Range or StaticRange objects) registered in the CSS.highlights registry. Styling is applied via the ::highlight() CSS pseudo-element. This approach is more performant than wrapping text in <span> elements because it doesn't trigger layout recalculations or mutate the DOM tree.
<span> or <mark> elements, which mutates the DOM. This causes layout thrashing, breaks CSS :nth-child selectors, and complicates text selection. The Custom Highlight API renders highlights as an overlay on top of the existing text, leaving the DOM untouched. This preserves event listeners, selection behavior, and avoids performance penalties during frequent updates.
::highlight() pseudo-element supports a limited subset of CSS properties: color, background-color, text-decoration (and related properties like text-decoration-color, text-decoration-style), text-shadow, -webkit-text-stroke, and text-emphasis. Properties like border, padding, margin, font-size, and animations are not supported to ensure highlights render efficiently without affecting layout.
Highlight object has a priority property (an integer). When multiple highlights overlap on the same text range, the highlight with the higher priority value is painted on top. The default priority is 0. This is useful when you have different types of highlights—for example, search matches (priority 10) should appear above syntax highlights (priority 5), which should appear above spell-check underlines (priority 1).
Range can span across multiple text nodes and elements. The Custom Highlight API handles cross-element ranges gracefully, painting the highlight continuously across element boundaries. This is a major advantage over DOM-based approaches, where wrapping text across element boundaries often requires splitting text nodes and restructuring the DOM tree.
CSS.highlights.delete('highlight-name'). To clear all highlights, use CSS.highlights.clear(). To update a highlight, simply create a new Highlight object with updated ranges and set it using the same name: CSS.highlights.set('my-highlight', newHighlight). The old highlight is automatically replaced without any DOM manipulation needed.
Paste an OpenAPI YAML/JSON and render a static, readable API document. No server, pure browser‑based rendering.
Register a custom CSS property with syntax, initial value, and inherits. Animate colors and numbers that couldn’t before.
Demonstrate how the Web OTP API automatically reads one‑time codes from SMS (mobile). Simulation with a fake SMS input.
See the chromaticity diagram and compare sRGB, DCI‑P3, and your display. Fun for design geeks.
Enter a URL and see a list of its ARIA landmarks (banner, main, nav). Check document structure for accessibility. Local fetch.
Read and write NDEF records to NFC tags using the Web NFC API. Supports text, URL, and MIME records. Works on Android with Chrome.
Create a sticky scroll progress bar for blog posts. Choose colors and height. Copy the minimal CSS and HTML.
A small widget that records your clipboard text history (only while open). Search and re‑copy old snippets. No log upload.
See a live readout of window scrollX and scrollY. Visualize scroll direction. For debugging sticky navs.
Enter readings before/after meals, get averages, print report. Local storage only.
Keep a simple list of movies you want to watch. Add notes and check them off. Purely local storage.
Explore your website’s IndexedDB databases and object stores. Add, delete, and inspect records. Like phpMyAdmin for IndexedDB.
Explore your website’s IndexedDB databases and object stores. Add, delete, and inspect records. Like phpMyAdmin for IndexedDB.
Estimate how many MB/GB your storage can hold based on navigator.storage.estimate() and display as a pie chart.
Check current browser storage usage (localStorage, IndexedDB, Cache) and available quota. Handy debugging tool.
Check estimated usage and quota for local and session storage on your browser. Quick dev tool.
See the International Space Station’s current position on a world map in real time. Uses public API. No refresh.
Test the Fullscreen API: request fullscreen on a colored div, detect changes, and copy the JavaScript boilerplate.
See the View Transitions API in action. Cross‑fade and morph between two states. Copy the JavaScript starter code.
Visually configure scroll‑snap containers and items. Adjust alignment, stop behavior, and padding. Copy the clean CSS instantly.
Convert hex, RGB, or HSL into the modern OKLCH color space. See the preview and copy CSS oklch() value. Local.
Create complex linear gradients with any number of color stops, exact angles, and length units. Live preview and CSS code.
Design a light and dark theme by picking colors for backgrounds, text, and links. Get the CSS for both themes. Local.
Style underlines, overlines, and strike-throughs with colors, wavy styles, and thickness. Modern CSS text‑decoration.
Adjust opacity visually with a slider and see the different CSS representations (opacity property vs RGBA/HSLA). Copy best option.
Pick two images or colors and apply all 16 CSS mix‑blend‑mode values live. See and copy the right CSS for your design.
Design a fully styled scrollbar with colors, width, radius, and hover effects. Supports both ::-webkit‑scrollbar and Firefox scrollbar‑width.
Design a button or card that glows on hover. Adjust shadow color, spread, and transition. Copy the CSS. Rich UI.
Create a realistic letterpress (debossed) text effect using CSS text‑shadow and background. Adjust depth and light direction. Copy code.
Create CSS mask‑image effects with custom shapes, gradients, and SVGs. Visually see the mask applied to an image. Copy the CSS.