UI & States4 min read
Deterministic State Machine Progress Loader
Direct Definition & Architecture
An animated state machine loader orchestrates deterministic transitions between connecting, indeterminate progress, percentage completion, and success confirmation without asynchronous animation glitching or visual flicker.
Live Physics Canvas
120 FPS GPU RenderStiffness (Tension)280
Damping (Friction)24
Technical Specifications
Bundle Footprint
< 1.9 kB gzipped
States Handled
Indeterminate → Progress → Success → Error
Geometry
SVG dynamic path morphing
Export Targets
React JSX, SwiftUI, Vue
State Machine Graph
ConnectingIndeterminate pulsing arc rotating continuously.
StreamingBound to numerical progress parameter (0.0 to 1.0).
SuccessCircle closes; checkmark path draws with spring snap.
ErrorStroke turns rose-500 with horizontal shake oscillation.
Production Code Output
animated-loader.jsx
import React from 'react';
import { motion } from 'framer-motion';
export function StateLoader({ state = 'loading', progress = 75 }) {
return (
<div className="flex flex-col items-center gap-4 p-8 bg-stone-900 rounded-2xl border border-stone-800">
<div className="relative w-16 h-16 flex items-center justify-center">
<svg className="w-full h-full -rotate-90" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="40" stroke="#27272a" strokeWidth="8" fill="none" />
<motion.circle
cx="50"
cy="50"
r="40"
stroke="#8b5cf6"
strokeWidth="8"
strokeLinecap="round"
fill="none"
initial={{ pathLength: 0 }}
animate={{
pathLength: state === 'success' ? 1 : progress / 100,
stroke: state === 'success' ? '#10b981' : '#8b5cf6'
}}
transition={{ type: "spring", stiffness: 180, damping: 20 }}
/>
</svg>
</div>
<span className="text-xs font-mono uppercase tracking-widest text-stone-400">
{state === 'success' ? 'Completed' : `Processing ${progress}%`}
</span>
</div>
);
}Architectural Breakdown
Generic spinners loop indefinitely and offer zero meaningful feedback to users.
An ExodeUI state loader explicitly models system status transitions: connecting, streaming bytes, and completing with an organic checkmark morph.
All geometry is authored as clean SVG paths animated via GPU transforms.
Frequently Asked Questions
Explore Related Motion Guides & Tooling
Build your next living interface today.
Design fluid physics and visual logic in ExodeUI and export directly to React, Swift, and Flutter.