exhuma

Universal Component CLI — Add tactile, headless components to any project across 13 ecosystems
799 2
Install
npm install exhuma@0.1.1
Latest Version:0.1.1
License:MIT
Last Updated:Oct 3, 2026
Links: GitHub  ·  npm
Maintainer: sapanmozammel

Exhuma

The Universal Kinetic Component Platform & Multi-Framework Registry. 20 physics-driven primitives, 13 frontend ecosystems, zero layout thrashing, and zero runtime lock-in.

TypeScript React 19 Next.js 15 Tests Ecosystems Primitives License: MIT

Exhuma is an open-source, universal UI component platform delivering tactile, physics-based interactions and responsive layout engines. Instead of locking you into a single framework or heavyweight runtime, Exhuma distributes canonical, zero-dependency source code across 13 frontend ecosystems via a dedicated CLI.


✨ Key Architectural Guarantees

  • 20 Audited Kinetic Primitives: From 3D sticky stacking cards and elastic magnetic buttons to shared-element morphing tabs and comparison diff sliders.
  • 13 Framework Ecosystems: Full implementation parity across React, Next.js, Vue 3, Nuxt, Svelte 5, SvelteKit, Angular 18+, SolidJS, Astro, Laravel Blade, Vanilla JS, WordPress Gutenberg, Web Components, React Native, and Flutter.
  • $\Omega(1)$ Layout Thrashing Protection: Pure compositor-driven execution utilizing transform and opacity GPU layers to ensure sustained 60fps/120fps motion without triggering forced synchronous layouts.
  • Deterministic Lifecycle Teardowns: Strict, verified event listener detachment, ResizeObserver / IntersectionObserver disconnections, and zero memory leaks upon unmount.
  • Tailwind CSS v4 & Zero-Flash Theming: Semantic CSS variables with native dark/light mode support, zero visual flashes, and instant hydration.
  • Zero-Lock-in CLI Distribution: Own your source code. Copy directly into your codebase with npx exhuma add <component>.

📦 Packages in the Monorepo

Package Description Status
exhuma (packages/cli) Universal Component CLI — add tactile components to any project across 13 ecosystems. Ready
create-exhuma (packages/create-exhuma) Interactive project scaffolding wizard for quickstart boilerplates. Ready
@fleect/exhuma Complete flagship bundle: cards, layouts, and router with subpath exports. Ready
@fleect/exhuma-cards Interactive card micro-interactions, stacking cards, tilt cards, and sliders. Ready
@fleect/exhuma-layouts High-performance CSS masonry grids, diamond grids, and auto-grids. Ready
@fleect/exhuma-router Production layout framing, landing layouts, auth screens, and route guards. Ready
@fleect/exhuma-registry Canonical multi-flavor registry compiler and schema specifications. Ready
showcase (apps/showcase) Next.js 15 documentation hub, interactive Component Studio, and live playgrounds. Ready

🚀 Quickstart

Option A: Use the Universal CLI (Recommended)

Initialize Exhuma in your existing project:

npx exhuma init

Add any of the 20 components directly into your codebase:

# Add to your current project (auto-detects framework)
npx exhuma add stacking-cards

# Explicitly target a specific ecosystem flavor
npx exhuma add floating-dock --flavor=svelte
npx exhuma add magnetic-button --flavor=vue
npx exhuma add comparison-slider --flavor=flutter

# Add all components
npx exhuma add --all

List all available canonical components and categories:

npx exhuma list

Option B: Scaffold a Fresh Project with create-exhuma

npm create exhuma@latest
# or
pnpm create exhuma
# or
bun create exhuma

Option C: Install Monorepo Packages

# Install flagship unified package
pnpm add @fleect/exhuma

# Or targeted standalone packages
pnpm add @fleect/exhuma-cards @fleect/exhuma-layouts
import { StackingCards } from '@fleect/exhuma/cards';
import { CssMasonry } from '@fleect/exhuma/layouts';

export default function Page() {
  return (
    <CssMasonry columns={3} gap='1.5rem'>
      <StackingCards topStart={90} topIncrement={24}>
        <div className='card'>Card 1</div>
        <div className='card'>Card 2</div>
      </StackingCards>
    </CssMasonry>
  );
}

🧩 Complete Component Inventory (19 Primitives)

Component Slug Category Description Supported Flavors
stacking-cards Cards Sticky stacking cards with mathematical decay scaling 13/13
card-swipe-stack Cards Tactile swipeable card deck with inertial physics 13/13
tilt-card Cards 3D gyroscopic pointer-tracking tilt card 13/13
expandable-card Cards Shared-layout card expanding into modal view 13/13
glow-card Cards Radial cursor-following glow border card 13/13
spotlight-border Cards Dynamic cursor-tracking border illumination 13/13
diamond-grid Layouts Isometric 45° angled responsive diamond matrix 13/13
masonry-grid Layouts High-performance CSS multi-column masonry 13/13
auto-grid Layouts Responsive auto-fitting CSS grid container 13/13
infinite-marquee Layouts Seamless hardware-accelerated looping marquee 13/13
horizontal-scroller Layouts Scroll-driven pinned horizontal camera translation 13/13
morphing-tabs Navigation Fluid shared-element indicator tabs 13/13
floating-dock Navigation Proximity magnification floating toolbar 13/13
cursor-follower Interactions Spring-interpolated pointer follower orb 13/13
animated-cursor Interactions Dual-ring magnetic cursor with velocity scaling 13/13
magnetic-button Interactions Elastic pointer attraction with tactile boundary dampening 13/13
comparison-slider Media Dual-pane visual diff comparison slider 13/13
accordion Disclosures Zero-layout-thrashing spring accordion 13/13
number-ticker Data Display Smooth tabular rolling digit counter 13/13

🌐 Supported Framework Ecosystems

Ecosystem Extension / Format Lifecycle Model
React 18 / 19 .tsx Hooks, useRef, useCallback, useId
Next.js 15 (App Router) .tsx 'use client' isolation, SSR safe
Vue.js 3 / Nuxt 3 .vue <script setup>, ref, onMounted, onBeforeUnmount
Svelte 5 / SvelteKit .svelte Svelte 5 Runes ($state, $effect)
Angular 18+ .ts Signals, standalone components, DestroyRef
SolidJS .tsx Fine-grained reactivity, createSignal, onCleanup
Astro .astro Zero-JS default with scoped client hydration
Laravel Blade .blade.php Native Blade component with Vanilla JS bundle
Vanilla JavaScript .js + .css ES Modules, strict destroy() cleanup, CSS layers
WordPress Gutenberg block.json + .tsx Gutenberg v3 block editor & frontend render
Web Components Custom Element Shadow DOM / Light DOM, <exhuma-*>
React Native / Expo .tsx React Native primitives & gestures
Flutter .dart StatefulWidget, AnimationController, TickerProvider

🛠️ Monorepo Development & Quality Gates

This repository is governed by strict automated quality gates powered by Turborepo, pnpm, and Vitest:

# Clone the repository
git clone https://github.com/Fleect/exhuma.git
cd exhuma

# Install all workspace dependencies
pnpm install

# Build registry, packages, and showcase
pnpm run build

# Run entire test suite (636 tests across 20 suites)
pnpm test

# Run TypeScript typechecks across all packages
pnpm typecheck

# Verify architecture boundaries, configs, and links
pnpm check:all

# Start local interactive documentation showcase
pnpm dev

📖 Documentation & Resources


📄 License

MIT © Fleect — A Fleect Artifact.

Related Packages

@nerdstackgrp/nex-wizard

Connect an application (web, server, React Native, Expo or Flutter) to Nex with...

187 3
@eslint-sets/eslint-config

Modern ESLint config with flat config support for Vue, React, Svelte, TypeScript...

6,835 7
@mhaadi/svg

Inline SVG rendering for React, React Native, Vue, Svelte, Solid, Astro, and Ang...

2,055 9
@symbiote-native/slider

Third-party native Slider view wrapped for SymbioteNative — one framework-agnost...

5,749 72
@symbiote-native/splash-screen

Third-party splash-screen native module wrapped for SymbioteNative — one framewo...

4,568 72

Version History

Version Released License
0.1.1 MIT
0.1.0 MIT
Pre-releases (3)
Version Released License
0.2.0-beta.3 MIT
0.2.0-beta.2 MIT
0.2.0-beta.1 MIT