Measured entry
neobrutalism-scroll-area
A client-side React and TypeScript wrapper around Radix Scroll Area, shipped as a shadcn registry component. It renders a styled vertical scrollbar and exports the scrollbar primitive separately. Styling comes from Tailwind utilities and a cn helper backed by clsx and tailwind-merge.



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.
| Build | OK |
|---|---|
| Mount | OK |
| Console errors | 0 |
| Uncaught page errors | 0 |
| Horizontal overflow | clean at 375, 768, 1440 |
| Axe critical | 0 |
| Axe serious | 1 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 37.0 KB (102.5 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A compact, working wrapper with predictable vertical behavior and no provider requirement. It built and mounted cleanly, but the scrollable viewport failed keyboard access testing. Add an appropriate focus path and visible focus treatment before using it in production.
Use it if
- You need a vertically scrolling panel whose scrollbar can inherit neobrutalist theme tokens.
- Your React app already uses Tailwind utilities and a cn class-merging helper.
- You want Radix scroll behavior without introducing a provider.
Skip it if
- You need keyboard-accessible scrolling without modifying the component, because the tested viewport was not keyboard focusable.
- You need horizontal scrolling from the wrapper without changing its composition.
- A native overflow container is sufficient and you want to avoid the added Radix dependency.
Install
| Declared dependencies | @radix-ui/react-scroll-area, clsx, tailwind-merge |
|---|---|
| Missing on install | none |
| Bare install | builds and mounts without the shadcn-style helpers |
| Provider | no provider required in the harness |
In a non-shadcn project, add Radix Scroll Area, clsx, and tailwind-merge; provide the cn utility; replace or configure the import alias; and define the Tailwind font and border theme tokens used by the component. Keep it behind a React client 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.
Author repository
github.com/ekmas/neobrutalism-componentsAlternatives
Other published entries for the scroll-effect pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- reui-scrollspyminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 21.5KB
- Bare
- pass
- Prov
- NO
- kibo-marqueeminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 31.3KB
- Bare
- pass
- Prov
- NO
- motion-primitives-in-viewspatial
- Renders
- YES
- A11y
- 0
- Gzip
- 58.1KB
- Bare
- pass
- Prov
- NO
- tripled-interactive-timeline-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 58.7KB
- Bare
- pass
- Prov
- NO
- ruixen-container-text-scrollspatial
- Renders
- YES
- A11y
- 0
- Gzip
- 61.5KB
- Bare
- pass
- Prov
- NO
- fancy-parallax-floating3d
- Renders
- YES
- A11y
- 0
- Gzip
- 27.5KB
- Bare
- fail
- Prov
- NO