One script tag. Every framework.
BMX components are standards-based custom elements. They work unchanged in plain HTML, React, Angular, Vue, Blazor and ASP.NET MVC — because the browser, not a framework, is what renders them. Everything on these pages is the same markup you would write.
The quickest way to judge them is a form: seven of them inside one <form>,
submitting real FormData with no adapter in between — or the settings panel,
where the switches take effect as you move them and everything else waits for Save. Then
open a record from a list, delete it, and watch where the focus goes.
The library
One hundred and seven families, all complete. One hundred and fifty-four components, plus eight companion elements that take their content as markup rather than as a data array — one hundred and sixty-two custom elements in all. One page per family; everything below works.
Actions
The button itself — six variants, six tones, every size and state, the click effects, and the guards that stop an action being taken twice.
1 liveGroups
The two components built out of the button: a group that is one widget with one Tab stop however many buttons are in it, and a split button whose menu is the real bmx-menu rather than a copy of one.
Fields
Input, textarea, a virtualised select and combobox, a date picker and an upload field. The controls you type, search or drop into.
6 liveChoices
Checkbox, radio group, switch, slider and rating. The controls you toggle, slide or score with.
5 liveNavigation
Menu, tabs, accordion, a toolbar that collapses what does not fit into a menu, a breadcrumb that collapses its middle, pagination and a splitter.
7 liveFeedback
Dialog and drawer over a native modal in the browser's top layer, the tooltip and popover pair — one describes, the other contains — a toast with a queue behind it, and progress and skeletons for the waiting.
7 liveDisplay
Badge, chip, avatar and the two sets that hold them — the components that label what is already on the page. A count that reaches the control it belongs to, a chip that is three different elements, and a stack of faces that says who is behind it.
5 liveApplications
The large components — a carousel over the platform's own scroller, a calendar whose layout is arithmetic rather than pixels, and an org chart that is a tidy-tree algorithm behind a diagram. Applications in their own right rather than controls, and the tier is complete.
3 liveProjects
A Gantt chart, a PERT chart and a task board over one plan, scheduled by the critical-path method against a working calendar. Drag or type any change and the other two views follow; ten thousand tasks scroll like ten.
3 liveReports
A report designer and a report viewer, both entirely in the browser: drag fields onto bands, group and total them, and see real pages that print or save as a tagged PDF — no report server. Fifty thousand rows lay out without freezing the page.
2 liveLogs
A log and audit viewer that opens a million lines in the page: JSON, logfmt, syslog, access logs, CSV and plain text, searched by field and by pattern, with personal data masked. Nothing is uploaded; follow a live stream as it arrives.
1 liveCanvas
An infinite canvas for working together: sticky notes, shapes, frames, connectors and your own HTML on a board without edges. Ten thousand items pan and zoom smoothly, and every change comes out as JSON for your multiplayer server.
1 liveGrids
A data grid for business applications — a million rows that scroll smoothly, fifty column types, editing with validation and undo — and a multi-dimensional pivot grid with slicers and a pivot chart, totalled in the browser on a background thread.
4 liveFormulas
A spreadsheet's calculation in the page — over four hundred Excel functions, dynamic arrays, names and tables, recalculating only what a change touches — and a formula bar with colouring, completion and argument hints. Excel files open and save, formulas and all.
2 liveScheduling
A resource scheduler for rooms, people and equipment: drag to book, clashes and capacity checked as you go, repeating bookings, working hours in each resource's own time zone, utilisation, a finder for free time, and .ics files both ways.
1 liveForms
Forms drawn from JSON with the library's own fields — sections, repeating rows, pages with a review step, conditions, calculations and checks in a safe expression language, and a server's errors against the fields.
A form designer builds them by dragging fields onto pages.
2 liveCharts
Twenty-two kinds of chart drawn by the library with no charting package — columns to sankey, time axes in any time zone, zoom, a million points — and a sparkline the size of a word. Every value read by the keyboard and in a table.
2 liveEditors
A rich text editor with nothing loaded from anywhere: a slash menu, mentions and Markdown as you type, comments and tracked changes, clean paste from Word, and HTML, Markdown or JSON out.
1 liveChat
The conversation for an AI assistant or a support desk: answers streamed as they arrive, code, tables, sources and tool steps, files, stop, retry and rate. It holds no model and sends nothing anywhere.
1 liveImaging
A picture editor that sends nothing anywhere: crop, straighten, adjust, annotate and redact for good, and save — with the photo's location, camera and owner removed before it leaves the page.
1 liveDiagrams
A designer for flowcharts, processes in swimlanes and network diagrams: connectors that route themselves, automatic arrangement, Mermaid in and out, and changes as operations for editing together.
1 liveSpreadsheets
A whole spreadsheet in one element: toolbar, formula bar, sheet tabs and the keyboard your users know, over 406 Excel functions. Excel files open and save with their formulas, formats and colours, all in the page.
1 liveCode
An editor with twenty-six languages coloured, several cursors, find and replace, folding, problems and suggestions, and a diff side by side or in one column, with revert and accept. Both stay quick at a million lines.
2 liveQueries
A query builder for filters and rules: AND, OR and NOT in groups, typed fields and 28 comparisons, written out as SQL for six databases, MongoDB, OData or JsonLogic, as a filter for records in the page, or as a sentence.
1 liveDashboards
Dials, bars and bullet graphs with bands, targets and the change from last time, and a layout of tiles your users drag, resize and keep. Gauges can be set by the reader, as form fields.
2 liveMaps
The world built in, coloured by your figures, with markers that group when they crowd, great-circle routes, four projections, zoom and a table view. No tiles and no map service; your own GeoJSON works too.
1 liveNetworks
A network graph for people, payments and services: five layouts, communities and key connectors found for you, shortest paths, a time bar, groups that combine and open, and an overview. Usable at ten thousand nodes.
2 liveTimelines
Moments and spans in rows that nest, from millennia to milliseconds: drag to move and resize, items that stack and cluster, any time zone, and a navigator with a histogram. Fifty thousand items stay smooth.
2 liveFiles
A file manager over your own storage: a folder tree, details or tiles, search and a preview, new folders, rename, cut, copy and paste, drag and drop, uploads and downloads, each checked by the page first.
1 liveBarcodes
Code 128, EAN, UPC, ITF, Data Matrix and PDF417, QR codes with rounded or dotted modules and a logo, a signature pad that goes into a form, and a field for hand-held scanners and the camera.
4 liveSteppers
A task in steps — a checkout, a set-up, an import — with a step list that shows what is done and what needs attention, Back and Next that check each step first, and “Step 2 of 5” on a phone.
1 liveDocuments
A PDF viewer with its own PDF engine: zoom, rotation, find, thumbnails, the outline, links, comments and form fields, password-protected files, print and download. Thousands of pages open at once.
1 liveCommands
A command palette: Ctrl + K, a few letters, Enter. Actions, pages and your own records found together, initials understood, shortcuts that work anywhere, and choices that open on their own page.
1 liveTours
A product tour round any screen: a card beside each part, the rest dimmed, steps that wait for the reader to try the real control, tours that branch, and your page's say before each step.
1 liveProperties
A property grid for designers and settings: the right editor for every kind of value, nested objects and lists, several objects edited at once, rules that refuse bad values, undo, and editors of your own.
1 livePermissions
A permissions matrix: roles across, resources down, allow, deny or inherit in each cell — worked out through inheritance, explained cell by cell, and reviewed by your page before anything is saved.
1 liveImporting
A data importer: CSV, Excel and JSON in, clean rows out, in the browser. Columns matched to your fields, every value checked, problems fixed in a grid, duplicates removed, and your server given the last word.
1 liveDecisions
A decision table: business rules as DMN rows, every hit policy, formulas, a trace of why each rule did or did not fire, checks for gaps and overlaps, test cases, and DMN XML in and out.
1 liveColours
A colour picker: saturation, hue and opacity, hex, RGB, HSL and OKLCH, your design tokens as swatches, recent colours, the eyedropper, and a live contrast check that finds the nearest colour that passes.
1 liveTransfer lists
Two lists, available and chosen, and the moves between them — people to a role, columns to a report — with filters, groups, locked items, ordering, limits and a hundred thousand items.
1 liveReviews
A review layer: comments pinned to any page, tied to elements so they follow the content, with replies, @mentions, resolve and reopen, a list with filters, and your page's say on every change.
1 liveFloor plans
Desks, rooms, seats, parking and lockers on the floor where they are: live states by colour and pattern, choosing and booking, filters, zones, floors, drawings imported from SVG, and an editor.
1 liveWorkflows
A workflow designer and engine: approvals in swimlanes by role, formula conditions, time limits and escalation, a problems list and a simulator — and task cards run by the same engine as your server.
2 liveRecurrence
The "repeat" of a calendar: daily, weekly, "the last weekday of the month", ending after so many times or on a date — as an iCalendar rule or cron, in words, with the next dates in the series' own time zone.
1 liveJSON
A JSON editor with four views of one document — tree, text, table and changes — checked against a JSON Schema as it is edited, with search, go to path, undo, and edits your page can refuse.
1 liveTerminals
A terminal for shells, build logs and device consoles: full colour, the alternate screen of full-screen programs, search, links, copy and paste, and a hundred thousand lines without a stutter.
1 liveData mapping
Two field trees and a line for every mapping: formulas, lookup tables, lists to lists, auto-map, problems and a live preview — and the same maps run in a worker or on your server.
1 live3D models
STL, OBJ, glTF and GLB in the page: turn, move and zoom, standard views, sections, an exploded view, a parts tree, measuring, and notes pinned to the surface.
1 liveAn email template designer: rows, columns and blocks by drag, click or keyboard, exported as HTML that email clients draw, with a plain-text part, merge fields, a preview and checks before sending.
1 livePlanning
A planning grid for budgets and forecasts: accounts by month, quarter and year, versions compared cell by cell, totals spread over the cells below them, formula rows, what-if and sign-off.
1 liveConfigurators
Configure, price, quote: choices in steps or on one page, rules that keep every combination buildable and say why, volume tiers, discounts with approval and a bill of materials.
1 liveComparisons
A redline of two versions of a Word file, PDF, HTML, Markdown or text: changes word by word, moves and formatting, accepted or rejected one by one, with the clean copy out.
1 liveAnnotation
Labelling images for machine learning: boxes, rotated boxes, polygons, skeletons and painted masks, a queue with review, model predictions, and COCO, YOLO and Pascal VOC in and out.
1 liveMedia
A video and audio player with captions and subtitles, chapters, a transcript that follows along and can be searched, scrub thumbnails, bookmarks, loops and spoken descriptions.
1 liveCaptions
A caption editor: captions on a timeline over the waveform, timed by dragging or by keyboard, checked against reading-speed and line rules, fixed in one step, and written as WebVTT or SRT.
1 liveRisks
A risk matrix: a heat map on your own scales with bands and appetite, inherent, residual and target scores with the arrows between them, and the register beside it.
1 liveReconciliation
Two lists of money matched by rules, one to one, one to many and many to many, with confidence, review, adjustments, ageing of what is left and sign-off by a second person.
1 liveTime series
Millions of points from sensors, meters and metrics in stacked panes: zoom and pan, an overview, thresholds, events, anomalies, an earlier period behind, and live data.
1 liveSigning
Prepare a PDF for signing and sign it in the page, signer by signer, and get the original back with every value stamped on it and a signing certificate at the end.
1 liveRostering
A shift roster: shifts painted, typed or dragged into place, labour rules checked as you go, cover by the hour, and auto-fill that says why it could not fill a gap.
1 liveNotifications
The bell and the inbox behind it: notifications by day, stacked, pinned, snoozed until later, muted by source and searched, or drawn in place as an activity feed.
1 liveFilters
Faceted search for any list: counted checkboxes, ranges with a histogram, dates, ratings and switches, keywords, chips, saved views and the choice in the address bar.
1 liveAPIs
An OpenAPI or Swagger description as documentation and a console: every operation tried with its parameters checked, the answer checked against its schema, and samples in four languages.
1 liveMind maps
A mind map built from the keyboard or an outline beside it: four layouts that never overlap, colours, folding, notes and links, and OPML, Markdown, PNG and SVG out.
1 liveProcesses
Process mining from an event log: the map of how work really flows, the longest waits, a replay, variants, every case, and conformance against the way it is meant to go.
1 liveTracing
A distributed trace from OpenTelemetry, Zipkin or Jaeger: the timeline in its call tree, the critical path, a flame graph, the service map and two runs compared.
1 liveLineage
Where data comes from and where it goes: column-level tracing, impact analysis with the owners to tell, and PII carried downstream wherever it lands.
1 liveDocking
Panels in tab groups that split, float, fold to an edge and maximise, docked with guides or from the keyboard, the arrangement saved as JSON.
1 liveGalleries
Grid, masonry or justified rows for thousands of pictures, with a lightbox that zooms, swipes, compares before and after and plays video.
1 livePanoramas
360-degree pictures and virtual tours: hotspots from room to room, a floor plan that follows you, auto-rotate and a tour editor.
1 liveLabels
Shipping labels, shelf labels and asset tags bound to data, on sheets or rolls, printed at real size or exported as PDF and ZPL.
1 liveProfiling
What is in every column and what is wrong with it: types, outliers, patterns, personal data, rules checked and drift since last month.
1 liveDrivers
A result broken into its drivers, with what-if sliders, scenarios, goal seek, a sensitivity tornado and a plan-to-actual bridge.
1 liveAudio
A multitrack editor with loudness, silence removal and a spectrogram - and call recordings with card numbers and keypad tones bleeped.
1 liveTimesheets
Hours for the week or fortnight by project and task, with timers, rounding, rules checked, and a sheet that goes from draft to approved.
1 liveBookings
What your customers book with: services, who with, free times from working hours and buffers, time zones, classes, a waiting list and a calendar file.
1 liveWord processing
A word processor laid out in pages: Word documents in and out, tables, a contents page, footnotes, tracked changes, comments, mail merge and PDF.
1 liveScanning
The camera as a scanner: the page found and taken by itself, straightened, cleaned up in colour, grey or black and white, and saved as one PDF.
1 liveTrading
Candles, Heikin-Ashi and Renko, fifty-nine indicators, drawings, comparisons and bar replay - and live ticks with an order book beside the price.
1 liveIndustrial
Plant displays bound to live tags with faceplates, trends and ISA-18.2 alarms, and PLC ladder logic edited, checked and simulated beside them.
2 liveCAD
DXF drawings with their layers, blocks, hatches and dimensions, paper sheets and viewports, measured with snaps, marked up, and saved as PDF.
1 liveSeating
Theatres, arenas and aircraft cabins from a compact layout: price zones, ticket types, best available, holds, wheelchair spaces, and an editor for the venue.
1 liveReceived email opened in the page - .eml, Outlook .msg and .mbox - shown safely, with attachments, forwarded messages, conversations and search.
1 livePresentations
PowerPoint files opened, edited and saved: masters and themes, tables, charts with their data, transitions and builds, and a slide show with presenter view.
1 liveVideo
A timeline of video, pictures, titles and sound, with transitions and captions, exported to MP4 or WebM by the browser itself.
1 liveElectronics
Gerber and drill files as the board will be made, or as layers: nets and parts picked, distances measured, notes pinned, PDF out.
1 liveDeep zoom
Gigapixel pictures - slide scans, maps, artwork - from Deep Zoom, IIIF, Zoomify or TIFF, compared, annotated and measured in real units.
1 liveLife sciences
DNA, RNA and protein: plasmid maps, translations, restriction digests, primers and motifs, and multiple alignments, for research.
1 liveXML
XML edited as text or as a tree, checked against XML Schema as you type, with completion, XPath, comparison and Canonical XML.
1 liveLocalisation
Translation files - XLIFF, PO, String Catalogs, Android, JSON - with plural forms per language, a translation memory, a glossary and checks.
1 liveEDI
EDIFACT, X12 and TRADACOMS interchanges as a tree, checked against your partners’ guides, with acknowledgements and JSON or XML out.
1 liveFinancial reporting
Inline XBRL filings with every tagged figure lit up: each fact’s concept, period and dimensions, the outline, calculation checks and CSV out.
1 liveReality capture
Laser scans and photogrammetry - LAS, LAZ, PLY, PCD, XYZ - with millions of points, colour by class, measuring, profiles and clipping.
1 liveData centre
Racks as front and rear elevations, devices placed by drag or keyboard, power per phase with a feed lost, cables traced, space found.
1 liveLogistics
Deliveries and visits planned on your own map, and the cargo itself packed into containers, trailers and pallets, in 3D, with axle loads and loading instructions.
2 liveConfiguration
YAML, TOML, INI, .properties and .env edited as text or as a tree, checked against your own JSON Schema, with completion and comparison.
1 liveManufacturing
Multi-level bills of materials: costs, weights and lead times rolled up, where-used, alternates, effectivity and revisions compared.
1 liveChemistry
Chemical structures drawn, read and written as molfiles and SMILES, with stereochemistry, formulae, substructure search and reactions.
1 liveGIS
Points, lines and polygons drawn and edited with snapping, attributes in a grid, projections, topology checks, Shapefile and GeoJSON.
1 liveSoftware supply chain
Software bills of materials: licences judged against your policy, vulnerabilities scored from your VEX and OSV files, releases compared.
1 liveAI data labelling
Text labelled for training models: nested spans, relations, pre-labels to accept, several annotators, agreement and review.
1 liveDatabases
SQL in six dialects, checked and formatted as you type, completed from your schema, run through your own connection, with query plans read and compared.
1 livePDF tools
Put pages of several PDF files together: reorder, turn and delete them, number and stamp them, split by ranges or bookmarks, and add a password with permissions.
1 liveSecurity
Threat modelling: data-flow diagrams with trust boundaries, STRIDE threats from built-in rules and your own library, scored on your matrix, versions compared.
1 livePerformance
Where a program's time and memory went: flame graphs, callers and callees, one slow request on a timeline, and two runs compared, from V8, trace and pprof files.
1 liveWeb-to-print
Business cards, badges and flyers designed in the page: templates customers fill in, bleed and safe lines, spot colours, a run from a CSV file and print-ready PDFs.
1 liveAssays
Microplates of 6 to 1536 wells laid out and randomised, reader exports as heat maps with the Z'-factor, and dose-response curves with IC50s.
1 liveEvery component here is the same custom element you would write into your own markup — no wrapper, no framework, and nothing on these pages is a screenshot. The upload rows filling in on the Fields page are running the component's own queue against a stand-in server; the five thousand options in the select are really there, and really windowed.
Theming
Ten themes, switchable at any level of the page. Everything below is one attribute on a wrapper element.
<!-- Whole page -->
<html data-theme="ocean">
<!-- Or one panel, scoped -->
<div data-bmx-theme="ocean">
<bmx-button>Ocean</bmx-button>
</div>
<!-- Or override the seed colours and every state derives from them -->
<style>
:root {
--bmx-primary: #1d4ed8;
--bmx-radius-md: 2px;
--bmx-font-family: 'Your Brand Sans', system-ui;
}
</style>