Measured entry
neobrutalism-context-menu
A client-side React context menu styled with neobrutalist borders, theme colors, and motion utilities. It ships as a shadcn registry TypeScript component built on Radix Context Menu, with Lucide icons, Tailwind utility classes, project theme tokens, and a local cn helper.



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 | flagged at 375 |
| Axe critical | 0 |
| Axe serious | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 58.8 KB (124.2 KB build, 65.4 KB baseline) |
| Bare mode | FAIL |
| Provider required | NO |
| Demo used | written from the component source API |
What the harness recorded
BARE BUILD
✗ Build failed in 54.20s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/cut/components/ui/context-menu.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A complete, accessible Radix wrapper with a distinctive visual treatment, but it needs a shadcn-style setup to compile and its narrow-layout overflow deserves attention. Choose it for an existing compatible design system, not as a drop-in menu for a bare React app.
Use it if
- You need a right-click menu with items, nested menus, checkboxes, radio choices, labels, separators, and shortcuts.
- Your app already uses shadcn conventions, Tailwind theme tokens, Radix primitives, and Lucide icons.
- A bold neobrutalist menu fits the surrounding interface and desktop interaction model.
Skip it if
- Your product is primarily touch-driven, where a right-click interaction is hard to discover.
- The menu must remain reliable in narrow layouts without additional overflow testing and adjustment.
- You want a dependency-light menu or do not use Tailwind and shadcn-style theme conventions.
- The measured bundle increase is too costly for the interaction's importance in your app.
Install
| Declared dependencies | @radix-ui/react-context-menu |
|---|---|
| Missing on install | none |
| Bare install | fails once the shadcn-style helpers are removed, so it needs that setup |
| Provider | no provider required in the harness |
A non-shadcn project must add the Radix Context Menu and Lucide React packages, provide the cn class-merging helper and its import alias, configure Tailwind, define the referenced neobrutalist color, radius, shadow, and font tokens, and include the animation utilities used by the state classes.
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 dropdown pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- tripled-context-menu-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 61.1KB
- Bare
- pass
- Prov
- NO
- shadcn-dropdown-menuunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 44.4KB
- Bare
- fail
- Prov
- NO
- originui-comp-131minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 58.1KB
- Bare
- fail
- Prov
- NO
- neobrutalism-dropdown-menubrutalism
- Renders
- YES
- A11y
- 0
- Gzip
- 58.5KB
- Bare
- fail
- Prov
- NO
- shadcn-context-menuunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 58.7KB
- Bare
- fail
- Prov
- NO
- ruixen-account-menuunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 60.6KB
- Bare
- fail
- Prov
- NO