Measured entry

originui-file-30

inputunclassified

A compact React file picker that pairs a generated label ID with a native file input. It ships as a shadcn registry component, pulling in the registry's Input and Label wrappers, Tailwind theme utilities, a class-merging helper, and Radix UI for the label primitive.

Specimen
Harness screenshot of originui-file-30 at 375 pixels wide
Harness screenshot at 375 pixels wide. No horizontal overflow recorded.
Harness screenshot of originui-file-30 at 768 pixels wide
Harness screenshot at 768 pixels wide. No horizontal overflow recorded.
Harness screenshot of originui-file-30 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 originui-file-30
BuildOK
MountOK
Console errors0
Uncaught page errors0
Horizontal overflowclean at 375, 768, 1440
Axe critical0
Axe serious1
Axe moderate0
Axe minor0
Gzip marginal14.6 KB (79.2 KB build, 64.6 KB baseline)
Bare modeFAIL
Provider requiredNO
Demo usedwritten from the component source API

What the harness recorded

BARE BUILD

✗ Build failed in 1.60s
error during build:
[vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/label.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'

Verdict

A sensible small primitive for an existing Origin UI or shadcn-style codebase. It builds and mounts in the prepared harness, but needs a shadcn-style setup in a bare app, and its muted file text needs a contrast review before production use.

Use it if

  • You already use shadcn-style aliases, theme tokens, and shared UI primitives.
  • You want a labeled native file control with a restrained, consistent treatment.
  • You prefer browser-native file selection behavior over a custom drop zone.

Skip it if

  • You need drag and drop, previews, progress, validation feedback, or multi-file management.
  • Your design system cannot absorb its Tailwind tokens and shared Input and Label wrappers.
  • You need to ship without first correcting the detected text contrast issue.

Install

Installation record for originui-file-30
Declared dependenciesradix-ui
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 the Input and Label wrappers, Radix UI, the class-merging utility, matching Tailwind theme tokens, and compatible import aliases. Adjust the muted file-text color to meet your contrast target.

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.

License
MIT
Record published
2026-08-12

Alternatives

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