Skip to main content
Features

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.

Component Docs

FAQ