Velora UI/open source/React + Motion
Every AI product has a wait — an image rendering, an answer streaming, an agent working. Velora is a React library for those seconds: components that show the work happening, driven by your real progress. Copy the file and keep the source.
01/What we do
We design the seconds your model spends working.
- 01
Built for the wait
Generation takes seconds. Velora fills them with something true — a picture taking shape, an answer arriving, an agent showing its steps — instead of a spinner that says nothing.
- 02
Driven by real progress
Every component takes one number. Pass your job's progress and it follows; leave it out and it runs a convincing pass on its own until your backend catches up.
- 03
Copy the file, own the code
No package and no version to track. Each component is one React file on Tailwind and Motion. Paste it in and change it the day your design does.
02/Available now
Image generation, three ways.
ImageGeneration resolves the picture out of noise. ImageMosaic sharpens it in levels. ImageTrace draws its contours. Pick one in the panel and watch it render.
Renderer
- status
- reading
- prompt
- 01 / 03
- seed
- 48213
03/Coming soon
Next on the bench. Every one for a moment your product already has.
- In progress
Token Stream
Text
Text that arrives at the model's pace — tokens resolving in, a caret that knows when it is waiting, and a clean settle when the answer is done.
- In progress
Thinking Trace
Reasoning
A reasoning indicator that shows each step as it happens, then folds itself away when the answer lands.
- Planned
Voice Orb
Voice
Listening, thinking and speaking states driven by the live audio level, so it moves because the voice does.
- Planned
Agent Timeline
Agents
Tool calls and actions appearing as a live, collapsible log — what the agent is doing, while it is doing it.
- Planned
Prompt Composer
Input
An input that grows, takes attachments and hands off to a loading state in one continuous motion.
More families follow — each one only once it has a behaviour worth copying into a real product.
04/Get started
Three steps, then it is yours.
Install four packages
Motion drives the animation; the rest back the class helper and one icon.
npm i motion clsx tailwind-merge lucide-reactCopy the component
One file into your project, plus the CSS utilities it names.
src/components/ui/image/image-generation.tsxHand it your progress
One prop. Children are the finished image, revealed when the pass lands.
<ImageGeneration value={job.progress}> <img src={job.url} alt={job.prompt} /></ImageGeneration>05 / Start
Stop shipping spinners.
npm i motion clsx tailwind-merge lucide-react