React 19 Components
ForwardRef, useTransition, StrictMode, and concurrent rendering — Ninna UI components are built for React 19.
import { Button } from "@ninna-ui/primitives";
import { useRef } from "react";
function App() {
const ref = useRef<HTMLButtonElement>(null);
return <Button ref={ref}>Focus me</Button>;
}Key features
forwardRef on every component — ref forwarding works everywhere
StrictMode safe — no double-mount bugs or effect leaks
Concurrent rendering compatible — no mutable state in render
useTransition friendly — components work with startTransition
TypeScript strict mode — no any, no unsafe casts
displayName on every component — clean React DevTools
Built for React 19
React 19 introduced improvements to ref handling, concurrent rendering, and StrictMode behavior. Ninna UI components are built to work seamlessly with these features: every component uses forwardRef, no component mutates state during render, and all effects are properly cleaned up.
The component library is tested in StrictMode (which double-invokes effects in development) to catch any side-effect leaks. This means your app can safely use StrictMode without Ninna UI components causing issues.