Measured entry
efferd-cta-3
A compact call-to-action banner, not a contact form, with a bordered frame, decorative plus icons, a short trial pitch, and paired sales and signup buttons. It ships as a shadcn registry TSX block and relies on Tailwind utility classes, the shared shadcn Button, Lucide icons, theme tokens, and the declared Radix UI package.



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 | 0 |
| Axe moderate | 0 |
| Axe minor | 0 |
| Gzip marginal | 32.5 KB (97.9 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 1m 34s error during build: [vite:load-fallback] Could not load <sandbox>/src/lib/utils (imported by src/components/ui/button.tsx): ENOENT: no such file or directory, open '<sandbox>/src/lib/utils'
Verdict
A sound, focused CTA for an existing shadcn codebase, with clean responsive behavior and no observed accessibility issues. It is mislabeled as a contact form and needs a shadcn-style setup; a bare project does not mount because the shared Button expects the usual utility module.
Use it if
- You need a restrained end-of-page prompt with separate sales and self-serve actions.
- Your app already uses shadcn conventions, Tailwind theme tokens, and the shared Button component.
- You want a static CTA that adapts cleanly across common viewport sizes without a provider.
Skip it if
- You need an actual contact form with fields, validation, submission handling, or consent copy.
- Your design system does not use Tailwind or shadcn-style path aliases and shared primitives.
- You need the calls to action wired to destinations out of the box, since the supplied buttons have no links or handlers.
- Your product cannot justify importing the supporting icon and button stack for a small static banner.
Install
| Declared dependencies | radix-ui |
|---|---|
| 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 |
In a non-shadcn project, add Tailwind with the expected theme tokens, configure the at-sign source alias, install Lucide React and the declared Radix UI package, and provide a compatible Button plus the utility module it imports. Then replace the inert buttons with links or handlers appropriate to your routes.
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/shabanhr/efferd-uiAlternatives
Other published entries for the contact-form pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hyperui-contact-forms-1editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 17.4KB
- Bare
- pass
- Prov
- NO
- hyperui-contact-forms-2editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 17.5KB
- Bare
- pass
- Prov
- NO
- hyperui-contact-forms-4editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 17.5KB
- Bare
- pass
- Prov
- NO
- hyperui-contact-forms-3editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 17.6KB
- Bare
- pass
- Prov
- NO
- hyperui-contact-forms-5editorial
- Renders
- YES
- A11y
- 0
- Gzip
- 18.4KB
- Bare
- pass
- Prov
- NO
- efferd-contact-2minimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 30.4KB
- Bare
- fail
- Prov
- NO