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.

Framework-neutral WCAG 2.2 AA Keyboard complete 10 themes RTL ready Typed wrappers Zero runtime dependencies

The library

Thirty-eight families, all complete. Eighty-two components, plus eight companion elements that take their content as markup rather than as a data array — ninety 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 live

Groups

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.

2 live

Fields

Input, textarea, a virtualised select and combobox, a date picker and an upload field. The controls you type, search or drop into.

6 live

Choices

Checkbox, radio group, switch, slider and rating. The controls you toggle, slide or score with.

5 live

Navigation

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 live

Feedback

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 live

Display

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 live

Applications

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 live

Projects

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 live

Reports

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 live

Logs

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 live

Canvas

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 live

Grids

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 live

Formulas

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 live

Scheduling

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 live

Forms

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 live

Charts

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 live

Editors

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 live

Chat

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 live

Imaging

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 live

Diagrams

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 live

Spreadsheets

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 live

Code

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 live

Queries

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 live

Dashboards

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 live

Maps

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 live

Networks

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 live

Timelines

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 live

Files

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 live

Barcodes

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 live

Steppers

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 live

Documents

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 live

Commands

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 live

Tours

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 live

Properties

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 live

Permissions

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 live

Importing

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 live

Decisions

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 live

Every 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.