Back to Projects
FreelanceFrontend

Figma to React js

Converted Client's Figma Design into React js and Tailwind CSS with Firebase Authentication and Functions.

UI design on screen, web interface mockupPhoto by Hal Gatewood on Unsplash

Overview

A client approached me with a polished Figma design and needed it built pixel-perfectly in React with full functionality including authentication and file uploads. The project involved translating every design token, spacing value, and interaction state from Figma into a production-ready React and Tailwind application, integrated with Firebase for auth and AWS S3 for asset storage.

Key Features

🎨

Pixel-Perfect Conversion

Every spacing value, typography scale, colour token, and component variant faithfully reproduced from the Figma design file.

🔐

Firebase Authentication

Secure user sessions with email/password and social login options. Auth state persists across page reloads.

☁️

AWS S3 File Storage

User-uploaded assets stored in S3 with pre-signed URLs for secure, direct browser-to-bucket uploads without exposing credentials.

📐

Component Architecture

Reusable React components mapped directly to Figma component variants. Props match the design system's states (default, hover, disabled, error).

📱

Fully Responsive

Adaptive layout across mobile, tablet, and desktop breakpoints, following the responsive specs from the original Figma file.

Performance Optimised

Code splitting, lazy-loaded routes, and optimised asset delivery ensure fast initial render and low Lighthouse scores.

The Challenge

The Figma design used custom font stacks and non-standard spacing values that didn't map cleanly to Tailwind defaults. I extended the Tailwind config with a custom design token layer that mirrored the Figma variables exactly, making future design updates straightforward to apply.

Outcome

Pixel-perfect implementation signed off by the client with no revision requests on the visual layer. Auth and file upload features working as specified. Delivered ahead of the agreed deadline.

Interested in working together?

I build projects like this for clients across Australia and globally. Get in touch to discuss your idea.