Measured entry

tripled-native-tabs-shadcnui

tabsminimal-flatmotion on file

A client-side React tabs wrapper that renders data-driven labels and panels over shadcn Tabs, with Framer Motion animating the active pill and panel transitions. It ships as registry source and expects Tailwind theme classes, the shadcn utility helper, and the Radix-backed tabs primitive.

Specimen
Motion capture of the mounted demo, recorded by the harness. No audio track.
Harness screenshot of tripled-native-tabs-shadcnui at 375 pixels wide
Harness screenshot at 375 pixels wide. No horizontal overflow recorded.
Harness screenshot of tripled-native-tabs-shadcnui at 768 pixels wide
Harness screenshot at 768 pixels wide. No horizontal overflow recorded.
Harness screenshot of tripled-native-tabs-shadcnui at 1440 pixels wide
Harness screenshot at 1440 pixels wide. No horizontal overflow recorded.

Measured

Every value below was written by the harness on the run that produced the frames above. None of it is derived from the prose.

Harness measurements recorded for tripled-native-tabs-shadcnui
BuildOK
MountOK
Console errors0
Uncaught page errors0
Horizontal overflowclean at 375, 768, 1440
Axe critical0
Axe serious0
Axe moderate0
Axe minor0
Gzip marginal80.3 KB (145.8 KB build, 65.5 KB baseline)
Bare modeFAIL
Provider requiredNO
Demo usedwritten from the component source API

What the harness recorded

BARE BUILD

✗ Build failed in 1.07s
error during build:
[vite]: Rollup failed to resolve import "class-variance-authority" from "<sandbox>re-830f8e89466a/src/components/ui/tabs.tsx".

Verdict

A solid fit for an existing shadcn app: it built, mounted, stayed within its viewports, and exposed no automated accessibility findings. It carries a notable animation dependency and needs a shadcn-style setup, so it is not a drop-in choice for a bare React project.

Use it if

  • Your app already uses shadcn Tabs and you want an animated pill indicator without designing the interaction yourself.
  • You need tabs generated from a compact array of labels and React content.
  • You want motion that respects the user's reduced-motion preference.

Skip it if

  • Your project does not use Tailwind theme tokens or shadcn component conventions.
  • You want to avoid Framer Motion for a small navigation control.
  • Your tab labels may need horizontal scrolling or a compact mobile treatment beyond equal-width triggers.
  • You need an uncontrolled tabs API or external control of the active value.

Install

Installation record for tripled-native-tabs-shadcnui
Declared dependenciesframer-motion, react, radix-ui, clsx, tailwind-merge
Missing on installnone
Bare installfails once the shadcn-style helpers are removed, so it needs that setup
Providerno provider required in the harness

In a non-shadcn project, add Tailwind with the expected theme tokens, configure the at-sign path alias, provide the cn helper with clsx and tailwind-merge, install the Radix-backed shadcn Tabs primitive and class-variance-authority, and add Framer Motion. Keep it in a client-rendered boundary.

Source and credit

This page is a review, not a copy. The component source lives with its author and this site does not republish it. Read the license before you use anything.

Alternatives

Other published entries for the tabs pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.