Portal Field
BackgroundsAn organically warped luminous halo with a soft chromatic fringe behind real content.
Try it
Add to your project
npx shadcn@latest add https://luv-jeri.github.io/cojeev-ui/r/portal-field.jsonThe command includes the component’s shared dependencies. Your project keeps editable source files.
Include the complete example
This example also composes button. Install its parts together:
npx shadcn@latest add https://luv-jeri.github.io/cojeev-ui/r/button.json https://luv-jeri.github.io/cojeev-ui/r/portal-field.jsonUsing portal field
Compose real content as children; keep essential controls above the decorative field.
Choose balanced, warm or cool Cojeev accents and keep a visible pause control for continuous movement.
API
Compose the exported parts below. The prop types are read from the React source during the registry build.
Native element or underlying primitive props are inherited where declared, including accessible labels, event handlers and refs.
PortalFieldProps
| Prop | Type | Required |
|---|---|---|
tone | "balanced"|"warm"|"cool" | No |
speed | number | No |
intensity | number | No |
distortion | number | No |
paused | boolean | No |
interactive | boolean | No |
size | "sm"|"default"|"lg" | No |
Accessibility
The canvas and static SVG are decorative and hidden from assistive technology; children retain native semantics.
Reduced motion, shared motion/flow off, hidden tabs and offscreen stages stop animation. Local pointer response never captures the native cursor or touch scroll.
A deterministic static organic halo remains when WebGL is unavailable or lost.
States and appearance
For conditional content, keep a MotionPresence boundary around keyed MotionSurface children. The shared entrance and exit states work with native primitives and respect your motion preference.
Try pointer and keyboard interaction, and switch the appearance control in the navigation to compare light and dark mode. Motion respects reduced motion preferences.