Motion-first React blocks for SaaS analytics
Metrics, tables and settings for the admin every product needs, finished down to the empty state.
37 components today · 8 blocks on the way · all in Pro
Everything a SaaS admin dashboard template is made of
Each one is the real component, running. Open it for usage, props and its motion, then install it into your app with one command.
Numbered pages whose selected chip glides on a spring, with ellipses in a fixed number of slots so the width never changes, and a compact Page 3 of 12 variant.
A trail from the root to the current page that folds its middle crumbs into a menu when it runs out of room, measured rather than guessed, with links that underline on hover.
A dropzone that wakes when files cross the page and lifts as they reach it.
A scroll-snap carousel with native momentum, mouse drag and arrow keys.
A file tree whose folders open on a height spring as the chevron turns, both interruptible.
A pill that rises after a destructive action with a draining countdown ring.
A product tour whose scrim cutout springs between targets, morphing size and concentric radius while the tooltip re-anchors.
A grouped list where switching the grouping moves rows into their new groups with shared-layout motion and rolling counts.
A layout primitive that exposes outer, padding and inner radius as CSS variables so nested corners stay concentric.
Disclosures whose height springs open with no overshoot, content fading in as the height lands and the chevron turning on the same spring.
Avatar and AvatarGroup on Base UI Avatar: images fade in from a 4px blur once loaded so initials never flash; overlapping stacks with a cut-out ring spread apart on hover; the overflow count rolls.
Table cells that make rows look finished: avatar with name, status badge, number with a rolling value and coloured delta, a progress meter that fills on view, a self-updating relative time, and a mono ID with a copy button.
A status or count chip.
A Base UI button whose press scale depends on its width, whose label swaps with y + blur while the width springs, and whose loading spinner overlays the label so the width never changes.
A link preview that opens after a 300ms dwell and stays open while the pointer travels into it.
A Base UI text input whose focus is the border alone.
A keycap that presses down when the real key does: the face drops 1px onto its base and springs back on release.
Tabular digits that roll in the direction of change: a 9 → 0 carry rolls forward, a value that changes mid-roll redirects, new places fade in while the rest slide over.
A panel that opens from its trigger's transform-origin with a 5px directional offset, closes at half the distance in 150ms, and reverses mid-flight.
A blur that ramps from 0 to 20px over 80px toward an edge, from stacked masked backdrop layers, for headers, bottom bars and composers.
A native scroller with a thin themed overlay scrollbar that thickens under the pointer, and edge fades that appear only when there is more to scroll.
A search input whose clear button pops in once there is text, whose ⌘K hint fades out on focus, and whose loading spinner sits in the icon slot so nothing shifts.
A single-choice segmented control whose thumb glides to the selection on a spring.
Loading placeholders with one page-wide shimmer: every skeleton shares a viewport-space highlight and one phase, so a single band sweeps across all of them.
A table with click-to-sort headers: the arrow appears on header hover and previews the order, and on click every row glides from where it was to its new place while the arrow rotates on the same spring.
A quarter arc turning on a faint ring, the eased.dev status-badge mark.
Superellipse corners: CSS corner-shape: superellipse(K) where supported, an identical measured clip-path elsewhere, with a hairline ring that follows the shape.
A premium hairline table on TanStack Table: half-pixel row rules, a quiet sentence-case header, numbers right-aligned on one edge, one emphasised cell per row, a sticky header, and dense or comfortable rows.
Tabs with a gliding indicator (underline or pill) and panels that cross-fade 6px in the direction of travel while their container's height springs.
Change a label, status or short value with y + blur, and spring the width to fit, so neighbours glide instead of jumping.
Toggle buttons sharing one highlight: it travels between items in single mode, and pressed neighbours fuse into one shape in multiple mode.
A short label that waits 400ms for the first trigger, then follows the pointer instantly across its neighbours.
A word-sized line chart that draws in once, rings its newest point in the surface colour and morphs to new values from the shape on screen.
Grouped or stacked bars that grow in with a 12ms stagger, glide a scrubbing band with rolling values, and morph keyed bars between ranges while the scale springs.
A KPI tile: a rolling value, a delta that re-tints and turns its arrow (falls are warning, never danger) and a sparkline that morphs with the range.
Lines and areas that morph between ranges on shared x samples while the scale springs and gridlines slide; a gliding crosshair, a trailing tooltip that flips at the edge, legend toggles that flatten a series, a previous period dashed at 40%, and onActiveChange for a headline.
A macOS menu bar popover: a status item and a frosted panel whose arrow and panel are one shape, so one blur and one hairline follow the arrow.
Blocks for SaaS analytics, on the way
Full blocks composed from the components above, each with one signature moment. They land here, dated, as they release; the changelog has the schedule.
Coming
Metrics Dashboard
Coming
KPI Drilldown
Coming
Workspace Sidebar
Coming
Usage-based Pricing Calculator
Coming
Command Palette (SaaS)
Coming
Onboarding Checklist
Coming
Billing Overview
Coming
Data Table (full)
Install into your agent
Add the Eased MCP server and ask for what you are building. Its list and search tools take an industry, so your agent starts from the SaaS analytics set.
claude mcp add --transport http eased https://eased.dev/api/mcpThen: list_components { "industry": "saas" }
Questions
Is this a SaaS admin dashboard template?
It is the parts a SaaS admin dashboard template is made of: 37 live components today, with blocks such as Metrics Dashboard, Workspace Sidebar and Command Palette on the way. You compose them in your own app, and the source lives in your repo, so it fits your product exactly.
What does Pro include?
Every Eased component and block, in every industry, now and in every future release, for one payment. Free components stay free under MIT.
How do updates arrive?
New components and blocks release on a dated schedule, listed in the changelog and its RSS feed. Install them with the shadcn CLI or through the MCP server whenever they suit you.
What is the stack?
React 19, Tailwind CSS v4 and Motion, installed with the shadcn CLI. Every component supports light and dark themes and reduced motion.
Everything for SaaS analytics, in Pro.
One payment for every component and block, in every industry, including each one still to come.