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

Built in order, so each one can reuse what the ones before it established. Actions, Fields, Choices and Navigation are complete — twenty-five of them — and Feedback and display adds twelve more, which finishes the set of controls. One page per family; everything below with a link 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.

7 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

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.