Đăng ngày 2026-08-05
Từ Figma sang React: Quy trình thực tế cho developer
Dựng lại thủ công một thiết kế Figma đã hoàn chỉnh thành các component React thực sự chạy được là kiểu công việc trông có vẻ đơn giản khi nhìn trong file thiết kế, nhưng vừa mở code editor lên là trở nên tẻ nhạt ngay. Đây không chỉ là viết component — bạn còn phải suy ra lại spacing, alignment và hành vi responsive vốn đã tồn tại sẵn trong thiết kế, rồi hy vọng kết quả cuối cùng vẫn khớp sau hàng chục quyết định nhỏ dọc đường. Dưới đây là một con đường thực tế hơn, từ frame Figma đến code React.
Vì sao dựng component React thủ công từ Figma lại chậm
Phần lớn thời gian developer bỏ ra cho việc bàn giao này không phải để giải quyết vấn đề khó, mà là để "dịch" những quyết định thiết kế đã có sẵn sang một định dạng khác:
- Đọc thiết lập Auto Layout của từng layer rồi tự tay viết lại thành các rule Flexbox bên trong JSX.
- Đo lại padding, gap và cỡ chữ vốn đã được định nghĩa chính xác sẵn trong file Figma.
- Đoán xem component nên bắt đầu responsive từ đâu, vì frame Figma thường chỉ có một chiều rộng cố định.
- Xây dựng cấu trúc component và props từ con số không, thay vì bắt đầu từ thứ gì đó đã dùng được.
Không việc nào trong số này đòi hỏi kỹ năng thiết kế hay engineering đặc biệt phức tạp — đây chỉ là công việc lặp đi lặp lại, mang tính cơ học, và chính kiểu công việc thủ công lặp lại này là nơi dễ phát sinh sai lệch giữa thiết kế và UI thực tế được ship.
Quy trình MarkupGen, áp dụng cho React
MarkupGen là một nền tảng SaaS đi kèm plugin Figma, chuyển thiết kế Figma thành HTML, CSS hoặc component React, để bạn bắt đầu từ code đã được tạo sẵn thay vì một file component trống. Quy trình gồm bốn bước:
1. Xuất frame từ Figma. Chọn frame bạn muốn chuyển đổi và gửi nó vào workspace bằng plugin Figma của MarkupGen. Plugin nắm bắt cấu trúc, style và hình ảnh của frame cùng lúc, thay vì bắt bạn copy từng layer một.
2. AI dựng code từ chính thiết kế thật. Từ đó, AI xây dựng HTML và CSS dựa trên cấu trúc và style thực tế của frame — không phải một phỏng đoán chung chung về việc thiết kế "có thể" trông như thế nào.
3. Chọn React làm định dạng đầu ra. Định dạng đầu ra là lựa chọn cho mỗi lần export: HTML/CSS thuần, Tailwind CSS, hoặc component React. Chọn React, bạn sẽ nhận được các component được dựng từ chính cấu trúc đó, sẵn sàng đặt vào một codebase đã có sẵn thay vì một trang tĩnh. (Cần HTML/CSS thuần thay vào đó? Hướng dẫn tổng quát Figma sang HTML sẽ nói về hướng đi đó.)
4. Tinh chỉnh, rồi export gói cuối cùng. Trước khi tạo code cuối cùng, một trình chỉnh sửa trong ứng dụng cho phép bạn điều chỉnh nội dung, font chữ và layout một cách trực quan. Mỗi lần export cũng nhận được một điểm chất lượng AI tự động, giúp bạn biết ngay liệu kết quả đã gần sẵn sàng đưa vào production hay cần thêm một lượt chỉnh sửa nữa.
Auto Layout trở thành Flexbox bên trong component như thế nào
Phần giúp tiết kiệm nhiều công sức thủ công nhất trong quy trình này là layout. Các thuộc tính Auto Layout của Figma — direction, gap, padding và alignment — được tự động ánh xạ sang một cấu trúc CSS Flexbox tương đương, và việc ánh xạ này được giữ nguyên trong các component React được tạo ra, chứ không chỉ dừng ở một trang HTML tĩnh. Một hàng phần tử dùng Auto Layout với gap được định nghĩa sẽ trở thành một flex container, trong đó gap, padding và alignment đã được gắn sẵn vào style của component, thay vì một component bạn phải tự canh chỉnh bằng mắt. Nếu muốn hiểu rõ hơn cách ánh xạ này hoạt động, bạn có thể xem cách Auto Layout ánh xạ sang Flexbox.
Hành vi responsive cũng tuân theo logic tương tự: breakpoint và kích thước fluid được tạo tự động từ các ràng buộc resize đã thiết lập sẵn trên frame trong Figma, nên component không bị khóa cứng ở đúng một chiều rộng như lúc thiết kế.
Rà soát component trước khi đưa vào ứng dụng của bạn
Code được tạo ra đã lo phần lớn công việc, nhưng trước khi merge vào một ứng dụng đã có sẵn, vẫn đáng để rà soát lại một lượt:
- Kiểm tra ranh giới giữa các component. Xác nhận các component được tạo ra chia tách đúng chỗ mà bạn sẽ tự nhiên tách trong codebase của mình — sau khi đưa vào project, bạn vẫn luôn có thể tách nhỏ thêm.
- Xem markup, chứ không chỉ phần hiển thị. Kết quả xuất ra ưu tiên HTML ngữ nghĩa với cấu trúc heading đúng thứ bậc, thay vì
<div>lồng sâu, điều này đáng để rà nhanh vì đây cũng là thứ mà công cụ tìm kiếm và screen reader dựa vào. - Kiểm tra lại nội dung và văn bản. Bất cứ điều gì trong thiết kế thay đổi sau khi export được tạo ra thì sửa dễ nhất ngay trong trình chỉnh sửa của ứng dụng, trước khi bạn lấy code cuối cùng vào project.
- Kết nối data và state của riêng bạn. Component được tạo ra lo phần cấu trúc và style — việc kết nối chúng với props thật, dữ liệu API hay state của ứng dụng vẫn là việc của bạn.
Thử với thiết kế của chính bạn
Không điều nào trong số này thay thế đánh giá của developer về cách component nên hoạt động — nó chỉ loại bỏ công việc cơ học của việc biến các quyết định layout đã có sẵn thành JSX và CSS, để sự đánh giá đó có thể dồn vào những phần thực sự cần đến. MarkupGen có gói miễn phí, nên bạn có thể bắt đầu miễn phí và chỉ nâng cấp khi thực sự cần — không phí ẩn, hủy bất cứ lúc nào. Nếu muốn xem toàn bộ quy trình bốn bước trên một thiết kế thật, bạn có thể thử ngay trên file Figma của chính mình. Có thắc mắc gì, liên hệ support@markupgen.com.