A small set of dependency-light SolidJS UI primitives that are easy to drop in and fully styleable — you own the markup, the kit wires the behaviour.
- SelectionArea — Finder-style rubber-band selection over a list/grid (Shift/Cmd to add).
- ResizableGrid — resizable columns/rows panel layout, sizes persisted to
localStorage. - DumbSortable — zero-dep FLIP drag-reorder (vertical list or grid), no reflow during drag. Ships as a declarative component and a low-level
createDumbSortableprimitive.
🔗 Live demo: https://russelgal.github.io/solid-dumb-kit/ · runnable source in examples/.
npm i solid-dumb-kit
# peer dep:
npm i solid-jsInstalling straight from GitHub also works (the repo ships both src/ and a prebuilt dist/):
npm i github:russelgal/solid-dumb-kitimport { SelectionArea, ResizableGrid, DumbSortable } from 'solid-dumb-kit'
import 'solid-dumb-kit/dist/index.css' // only needed for SelectionAreaRunnable examples (one per component) live in examples/.
| Export | Kind | Doc |
|---|---|---|
SelectionArea / SelectionAreaProps / SelectionEvent |
component | docs/SelectionArea.md |
ResizableGrid / ResizableGridProps / GridPanel |
component | docs/ResizableGrid.md |
DumbSortable / DumbSortableProps |
component | docs/DumbSortable.md |
createDumbSortable / DumbSortableHandle / DumbSortableOptions |
primitive | docs/DumbSortable.md#createdumbsortable-primitive |
- SelectionArea ships a tiny stylesheet (rubber-band box + window-scroll helper) — import
solid-dumb-kit/dist/index.cssonce. - ResizableGrid injects its handle styles at runtime — no import needed.
- DumbSortable uses inline transforms only — no CSS needed.
MIT