Internal tools kit
Tables that sort, filter, bulk-edit and page — plus the shell around them.
The admin surface, which is mostly one hard problem — a data table that stays usable at ten thousand rows — surrounded by the shell, the command palette and the settings screens that make it a tool rather than a page. Sorting, pagination, column management, bulk actions and inline edit are separate blocks here because they are separately hard, and most teams need three of the five.
Take the whole kit
Add every piece to your bundle and export it as one archive, or run the command below to write all 23 into your project.
The free bundle holds ten pieces. Pro removes the cap — every piece stays free to read and copy either way.
npx hoverlab add admin-panel dashboard-overview customers-table-page project-board-page dashboard-shell dashboard-page-header dashboard-stat-cards data-table-sortable data-table-toolbar data-table-pagination data-table-bulk-actions data-table-column-manager kanban-board command-palette settings-team-members settings-api-keys settings-audit-log confirm-dialog empty-filtered-results loader-bar tooltip-hover check-custom loader-skeletonEvery id spelled out, so it resolves against the CLI you already have rather than a shorthand that has to know this list.
Free to read, copy and install for personal and non-commercial work. Shipping it in client work or a paid product needs Pro ($79 once). The licence is the same for a kit as for any single piece in it — bundling things together does not change what you may do with them.
Templates1
Pages3
- Dashboard OverviewApp Screens
The screen an app opens on: shell, header, KPI row, chart and activity feed — numbers first, shape second, changes last.
dashboard-overview - Customer List ScreenApp Screens
The canonical CRUD list — header, toolbar, sortable table and pagination framed as one panel instead of three stacked cards.
customers-table-page - Project BoardApp Screens
A kanban board inside the app shell, with tabs that admit the board is one view among several and a header whose primary action is creating work.
project-board-page
Blocks15
- Sidebar Dashboard ShellDashboards
Sidebar, top bar and scrollable content slot, with a mobile drawer that closes on Escape and marks the active route.
dashboard-shell - Page Header With TabsDashboards
Breadcrumb, title, action buttons and a counted tab row that sits flush with the bottom rule.
dashboard-page-header - KPI Cards With DeltasDashboards
Metric row where each card knows whether a rise is good news, so churn going up is red while revenue going up is green.
dashboard-stat-cards - Sortable Selectable TableData Tables
Type-aware sorting with aria-sort, a header checkbox that goes properly indeterminate, and selection that survives a re-sort.
data-table-sortable - Table Search & Filter BarData Tables
Search, filter count and view switch, with active filters shown as removable chips so a filtered table never looks unfiltered.
data-table-toolbar - Pagination With Page WindowData Tables
Page size, range summary and a fixed-width number window that stays the same size from page 1 to page 200.
data-table-pagination - Bulk Action BarData Tables
The selection bar that asks the question most tables skip: this page, or all 1,284 rows the filter matches. Typed confirmation above a threshold, an undo with the window counting down, and a select-all that names its own scope.
data-table-bulk-actions - Column Show, Hide & ReorderData Tables
Reordering that works from the keyboard rather than by drag alone, pinned columns that cannot be hidden or moved, and a guard so the last visible column cannot be unchecked into a blank table.
data-table-column-manager - Kanban Board ColumnsDashboards
Four columns of prioritised, tagged, assigned task cards with a blocked state — the board as a layout contract, leaving drag behaviour to your own state and library.
kanban-board - Command PaletteCommand & Search
The ⌘K switcher done properly: focus stays in the input while aria-activedescendant moves, arrows wrap, and the highlight resets on every query change.
command-palette - Team Members & InvitesSettings
Member list with role selects, pending invites shown inline, and the last owner locked so a workspace cannot be orphaned.
settings-team-members - API Key ManagementSettings
Masked keys, a create flow that reveals the secret exactly once, and a revoke that confirms before it fires.
settings-api-keys - Audit LogSettings
A compliance-grade trail with named actors, before and after values, IP addresses, and a stated retention window — plus a count of what the active filter is hiding.
settings-audit-log - Destructive Confirm DialogModals & Drawers
A type-to-confirm dialog built on native <dialog>, so the focus trap, top layer and escape handling come from the browser. Focus lands on Cancel, and the button says the verb.
confirm-dialog - Empty Because of FiltersEmpty & Error States
The empty state for a list emptied by its own filters: every active filter shown as a removable chip ordered by how many results it would restore, with clear-all deliberately second.
empty-filtered-results
Effects4
- Indeterminate BarLoaders
A slim pill track with a colored segment that slides endlessly from left to right — perfect for progress feedback.
loader-bar - Tooltip on HoverInputs & Hover
A dark chip that reveals a small floating tooltip with an arrow above it on hover, using only pseudo-elements.
tooltip-hover - Custom CheckboxInputs & Hover
A native checkbox restyled with appearance:none — fills with indigo and draws an animated checkmark when checked.
check-custom - Skeleton ShimmerLoaders
Two stacked placeholder bars with a soft sweeping highlight that signals content is on its way.
loader-skeleton
You are building the back office, and the table is the product. If you would rather be walked through the order than handed the list, the guided paths cover the same ground one step at a time.