MultiselectJS is a library for implementing selection of multiple elements from visual collections with a mouse and keyboard.

The library’s multiselection abstraction is not bound to a widget or control; it can be applied to any context. To implement multiselection, the application programmers main tasks are to:

The library provides a rich multiselection feature, including mouse and keyboard selection so that they are compatible with each other, undoing and redoing selections, selecting based on a predicate, and changing selection geometries on the fly. The different aspects of multiselection are showcased in a demo application.

Our tutorial describes the basic concepts of multiselection and shows step-by-step how to apply the library in a few example situations.

The programming API reference describes the library’s public interface in detail.

The manuscript One Way to Select Many, by Jaakko Järvi and Sean Parent, is a full account of the motivations behind MultiselectJS and the theory of of multi-selection that its design is based on. As the manuscript is currently under review, it is not publicly available at the moment. Please request a copy by email.

The project’s GitHub page contains the sources and the releases.