The 13 Ecosystem Contracts
Exhuma avoids polyfills or cross-compilation abstraction layers. Every canonical component is re-authored from fundamental mathematical models into the native idioms of each target platform.
- 13 native targets
- No polyfills
Universal Engineering Standards
Every implementation across the 13 supported ecosystems must satisfy four non-negotiable guarantees:
Zero CSS Leakage
Teardown Safety
Idiomatic Reactivity
Zero Runtime Overhead
React 18/19 & Next.js 15
Next.js components include the "use client" directive to seamlessly support the React Server Components (RSC) App Router. They utilize useRef for direct DOM manipulation to maintain 60 FPS animation performance without triggering React re-render cycles.
'use client';
import React, { useRef, useEffect } from 'react';
export function TiltCard({ children, maxTilt = 20 }: TiltCardProps) {
const cardRef = useRef<HTMLDivElement>(null);
useEffect(() => {
// Zero-lag pointer listener with proper cleanup
const node = cardRef.current;
if (!node) return;
// ...
return () => { /* Memory teardown */ };
}, [maxTilt]);
return <div ref={cardRef}>{children}</div>;
}Vue 3 & Svelte 5
Vue 3 uses the <script setup lang="ts"> Composition API with onBeforeUnmount cleanup. Svelte 5 leverages the newest Runes system ($state, $derived, and $effect) with destructor return cleanup.
<script lang="ts">
let { children, maxTilt = 20 } = $props();
let cardElement: HTMLDivElement | undefined = $state();
$effect(() => {
if (!cardElement) return;
// Active pointer math...
return () => {
// Svelte 5 rune teardown guarantee
};
});
</script>
<div bind:this={cardElement}>
{@render children?.()}
</div>Angular 18+ & SolidJS
Angular components use Standalone Components with modern Signals (input() and effect()) and ngOnDestroy lifecycle safety. SolidJS utilizes fine-grained primitives (createSignal, createEffect, onCleanup).
Astro & Laravel Blade
Astro components render zero runtime client JavaScript by default or mount via client directives. Laravel Blade components output standard PHP component templates integrating with Alpine.js or scoped inline JS.
Vanilla JS & Web Components
Vanilla JS outputs clean ES modules exposing factory functions (createTiltCard(element, options)) with an explicit destroy() method. Web Components extend HTMLElement with Custom Elements v1 and disconnectedCallback().
WordPress Gutenberg Blocks
Outputs full Gutenberg block definitions: block.json metadata, React edit.tsx for the WP Admin editor canvas, save.tsx for database serialization, and render.php for server-side dynamic rendering.
React Native & Flutter
React Native components use Animated with PanResponder driving the native UI thread. Flutter components output Dart StatefulWidget classes calculating 3D perspective transforms with Matrix4 and Transform.