Measured entry
ruixen-centered-feedback-drawer
selectunclassifiedmotion on file
A client-side React feedback drawer that presents three emoji ratings, reveals a contextual comment field, and closes after a thank-you state. It ships as a single registry component with inline styling, controlled open state, an optional submission callback, Motion animations, and optional Web Audio feedback.



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 | 64.2 KB (129.7 KB build, 65.5 KB baseline) |
| Bare mode | OK |
| Provider required | NO |
| Demo used | written from the component source API |
Verdict
A focused choice for lightweight, in-context feedback, with a clean callback boundary and no provider requirement. Use it only after fixing the contrast failure and adding proper modal semantics; its fixed copy and rating model make it a poor base for broader surveys.
Use it if
- You need a compact sentiment prompt with an optional free-text follow-up.
- You can connect its submission callback to your own persistence or analytics layer.
- Your interface already uses Motion, or the extra animation dependency is acceptable.
Skip it if
- You need accessible dialog behavior and compliant contrast without remediation; the audit found a serious contrast issue, and the source lacks dialog semantics and focus trapping.
- You need configurable questions, rating choices, validation, or a multi-step survey.
- You need a viewport-level modal without managing its containing block; the overlay uses absolute positioning.
Install
| Declared dependencies | motion |
|---|---|
| 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, install Motion, copy the client component, and supply React state for its controlled open API plus a submission handler. Place it inside a positioned container, provide dark-theme handling if needed, and add accessible dialog labeling, focus management, keyboard dismissal, and corrected contrast. No shadcn utilities or providers are required.
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/ruixenui/ruixen.comAlternatives
Other published entries for the select pattern, ordered by what they measured: mounts first, then clean axe scans, then bare-mode passes, then the smaller bundle.
- hextaui-native-selectminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 30.6KB
- Bare
- fail
- Prov
- NO
- 8bitcn-difficulty-selectskeuomorphism
- Renders
- YES
- A11y
- 0
- Gzip
- 32.7KB
- Bare
- fail
- Prov
- NO
- hextaui-checkboxminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 35.8KB
- Bare
- fail
- Prov
- NO
- hextaui-radio-groupminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 40.3KB
- Bare
- fail
- Prov
- NO
- ruixen-tag-cloud-selectunclassified
- Renders
- YES
- A11y
- 0
- Gzip
- 58.8KB
- Bare
- fail
- Prov
- NO
- tripled-animated-select-shadcnuiminimal-flat
- Renders
- YES
- A11y
- 0
- Gzip
- 60.4KB
- Bare
- fail
- Prov
- NO