A faithful Figma build with SVG morphs and 190px blur shadows
Each section has its own custom component. The build includes more than 640 lines of CSS keyframes and mouse-reactive backgrounds driven by Framer Motion values and springs.
supporting system
Pixel-Perfect Animated SPA - 70+ Components, 30+ Keyframes, 8 Breakpoints, Zero Backend
EduVisa is a client-side React site for an overseas education consultancy. I recreated a dense, animation-heavy Figma file one detail at a time, including overlapping SVG morphs, 190px blur shadows, and mouse-reactive backgrounds. It runs without a backend and was delivered during a two-month freelance engagement.
first proofThe site uses spring-based backgrounds, animated SVG paths, scroll reveals, and ripple cards to make a consultancy site feel more alive. Contact forms go through EmailJS. Content and media are held in static data files, so there is no database or CMS behind it.
The client wanted a close Figma recreation for an education consultancy, but the brief did not call for a backend. Standard UI libraries could not reproduce the overlapping SVG morphs, 190px blur shadows, or mouse-reactive backgrounds. I used custom components for each section, three complementary animation layers, and a Zustand metadata cache for SEO. In this project, the visual rules in CSS are a core part of the architecture.
React / TypeScript / Vite / Tailwind CSS v4 / shadcn/ui / Zustand / Framer Motion / EmailJS / Vercel
01 / 12The about page.
Each section has its own custom component. The build includes more than 640 lines of CSS keyframes and mouse-reactive backgrounds driven by Framer Motion values and springs.
Ambient loops use CSS keyframes, scroll and pointer interactions use Framer Motion, and sliding content uses Embla carousels.
Content lives in TypeScript files and the site deploys with Vite and Vercel. React.lazy and Suspense split components, with no database, CMS, or custom server.
The responsive system uses custom section components from mobile sizes through 5xl ultrawide layouts.
結論The Figma file needed custom keyframes, SVG work, and layout calculations that a generic component library could not provide. Over time, the components and animation rules became the site's design system.
Make it hold together
Architecture, interface, production constraints. Together.