प्रकाशित 2026-08-05 · लेखक MarkupGen टीम
Figma से React: डेवलपर्स के लिए एक प्रैक्टिकल वर्कफ़्लो

एक पूरी हो चुकी Figma डिज़ाइन को असल में काम करने वाले React कंपोनेंट्स में हाथ से दोबारा बनाना ऐसा काम है जो डिज़ाइन फ़ाइल में देखने पर आसान लगता है, लेकिन जैसे ही आप कोड एडिटर खोलते हैं, यह उबाऊ हो जाता है। यहाँ सिर्फ़ कंपोनेंट्स लिखना ही काम नहीं है — आपको वो spacing, alignment और responsive behavior दोबारा निकालना पड़ता है जो डिज़ाइन में पहले से मौजूद है, और फिर दर्जनों छोटे-छोटे फ़ैसलों के बाद उम्मीद करनी पड़ती है कि नतीजा अब भी डिज़ाइन से मेल खाता हो। यहाँ एक प्रैक्टिकल Figma to React वर्कफ़्लो बताया गया है, जो उस judgment को सिर्फ़ उन हिस्सों पर केंद्रित रखता है जिन्हें उसकी असल ज़रूरत होती है: कंपोनेंट boundaries, layout behavior, और नतीजा अलग-अलग screen sizes पर कितना टिकाऊ रहता है।
Figma से React कंपोनेंट्स हाथ से बनाना धीमा क्यों है
इस hand-off पर डेवलपर्स जो ज़्यादातर समय खर्च करते हैं, वह मुश्किल समस्याएं सुलझाने में नहीं, बल्कि पहले से तय हो चुके डिज़ाइन फ़ैसलों को दूसरे फ़ॉर्मैट में "ट्रांसलेट" करने में जाता है:
- हर लेयर की Auto Layout सेटिंग्स पढ़ना और उन्हें JSX के अंदर हाथ से Flexbox के rules में फिर से लिखना।
- Figma फ़ाइल में पहले से सटीक रूप से तय किए गए padding, gap और font size को दोबारा नापना।
- यह अंदाज़ा लगाना कि कंपोनेंट कहाँ से responsive होना चाहिए, क्योंकि Figma का फ़्रेम आमतौर पर सिर्फ़ एक fixed width में होता है।
- कुछ इस्तेमाल करने लायक चीज़ से शुरू करने की बजाय, कंपोनेंट स्ट्रक्चर और props को शुरू से बनाना।
इनमें से किसी भी काम के लिए डिज़ाइन स्किल या खास मुश्किल इंजीनियरिंग की ज़रूरत नहीं होती — यह सिर्फ़ दोहराव भरा, मैकेनिकल काम है, और ठीक यही repetitive manual काम है जहाँ डिज़ाइन और असल में शिप हुए UI के बीच फ़र्क़ आने लगते हैं।
Figma कंपोनेंट्स से React कंपोनेंट्स तक
किसी Figma लेयर को React कंपोनेंट में बदलने के लिए कोई एक ही नियम नहीं है — यह इस पर निर्भर करता है कि वह कितनी बार दोहराई जाती है, उसके variants असल में क्या दर्शाते हैं, और बाकी ऐप का स्ट्रक्चर कैसा है। शुरुआती पॉइंट के तौर पर, variants वाला एक Figma कंपोनेंट (जैसे primary/secondary states वाला एक Button) आमतौर पर एक ही React कंपोनेंट बनता है, जिसमें वे variants props के ज़रिए संभाले जाते हैं, हर state के लिए अलग कंपोनेंट नहीं बनाया जाता:
<Button variant="primary" size="md">
Get started
</Button>
डिज़ाइन में जो भी बार-बार दोहराया जाता है, उस पर भी यही logic लागू होता है — Figma फ़ाइल में तीन मिलते-जुलते cards, इस बात का संकेत हैं कि एक Card कंपोनेंट बनाया जाए जो data के किसी array से render हो, न कि एक ही JSX की तीन कॉपी बनाई जाए। इसमें सबसे आम गलती over-componentizing है: हर Auto Layout फ़्रेम को उसकी अपनी फ़ाइल बना देने से सिर्फ़ indirection बढ़ता है, reuse नहीं। Figma-to-React की पूरी concept मैपिंग के लिए — जिसमें यह भी शामिल है कि कंपोनेंट boundaries और variant props आमतौर पर कहाँ गड़बड़ाते हैं — देखें Figma Auto Layout से React: फ्रेम्स से Components तक।
MarkupGen वर्कफ़्लो, React पर लागू
MarkupGen एक SaaS प्लेटफ़ॉर्म है, जिसके साथ एक Figma प्लगइन आता है जो Figma डिज़ाइन को HTML, CSS या React कंपोनेंट्स में बदल देता है — यानी आप खाली कंपोनेंट फ़ाइल की बजाय पहले से जनरेट हो चुके कोड से शुरुआत करते हैं। यह वर्कफ़्लो चार स्टेप्स में है:
1. Figma से फ़्रेम एक्सपोर्ट करें। जिस फ़्रेम को कन्वर्ट करना है उसे सिलेक्ट करें और MarkupGen के Figma प्लगइन से इसे अपने workspace में भेज दें। यह प्लगइन फ़्रेम का structure, styles और images एक साथ कैप्चर कर लेता है, आपको लेयर-दर-लेयर कॉपी करने की ज़रूरत नहीं पड़ती।
2. AI असल डिज़ाइन से कोड बनाता है। इसके बाद, AI उस फ़्रेम की असल structure और styling के आधार पर HTML और CSS बनाता है — यह कोई सामान्य अंदाज़ा नहीं है कि डिज़ाइन "शायद" कैसा दिखता होगा।
3. आउटपुट फ़ॉर्मैट के तौर पर React चुनें। हर एक्सपोर्ट के लिए आप आउटपुट फ़ॉर्मैट चुन सकते हैं: Vanilla HTML/CSS, Tailwind CSS, या React कंपोनेंट्स। React चुनने पर आपको उसी structure से बने कंपोनेंट्स मिलते हैं, जो किसी static page की बजाय सीधे किसी मौजूदा codebase में फ़िट होने के लिए तैयार होते हैं। (अगर आपको इसकी बजाय Vanilla HTML/CSS चाहिए, तो Figma-to-HTML से जुड़ी सामान्य गाइड देखें।)
4. रिफ़ाइन करें, फिर फ़ाइनल पैकेज एक्सपोर्ट करें। फ़ाइनल कोड जनरेट करने से पहले, एक इन-ऐप एडिटर आपको content, fonts और layout को विज़ुअली एडजस्ट करने देता है। हर एक्सपोर्ट को अपने-आप एक AI quality score भी मिलता है, जिससे एक नज़र में पता चल जाता है कि आउटपुट प्रोडक्शन के लिए तैयार है या उसे एक और पास चाहिए।
Auto Layout आपके कंपोनेंट्स के अंदर Flexbox कैसे बनता है
इस वर्कफ़्लो का जो हिस्सा सबसे ज़्यादा मैनुअल काम बचाता है, वह है layout। Figma की Auto Layout properties — direction, gap, padding और alignment — अपने-आप उसी के बराबर CSS Flexbox structure में मैप हो जाती हैं, और यह मैपिंग सिर्फ़ किसी static HTML page तक सीमित नहीं, बल्कि जनरेट हुए React कंपोनेंट्स के अंदर भी वैसी ही मिलती है। किसी fixed gap वाली Auto Layout row, एक flex container बन जाती है जिसमें gap, padding और alignment पहले से ही कंपोनेंट की styles में जुड़े होते हैं — आपको इसे आँख से मिलाकर सेट करने की ज़रूरत नहीं पड़ती। Nested Auto Layout फ़्रेम्स भी उसी तरह nested flex containers में मैप होते हैं, जिससे ज़्यादातर card, list और navigation लेआउट कवर हो जाते हैं — बस कुछ genuinely grid-shaped डिज़ाइन ऐसे होते हैं जो अब भी CSS Grid के लिए बेहतर फ़िट बैठते हैं। यह मैपिंग असल में कैसे काम करती है, यह और करीब से समझने के लिए देखें कि Auto Layout Flexbox में कैसे मैप होता है।
Responsive behavior को टिकाऊ बनाना
Responsive behavior वह जगह है जहाँ Figma-to-React आउटपुट को सबसे कम नहीं, बल्कि सबसे ज़्यादा गहराई से देखने की ज़रूरत होती है। Auto Layout के sizing modes — Hug, Fill, Fixed — और किसी फ़्रेम के resizing constraints, इस बारे में असली संकेत होते हैं कि कोई कंपोनेंट अलग-अलग widths पर कैसा बर्ताव करे: एक Fill container इस बात का संकेत है कि CSS में flexible width या flex: 1 इस्तेमाल हो, कोई fixed pixel value नहीं। लेकिन न तो Figma और न ही कोई conversion tool अपने-आप पूरा responsive React कोड जनरेट कर सकता है — specific breakpoints, mobile पर लेआउट कैसे reflow हो, और किसी खास width से नीचे कंपोनेंट को अलग arrangement चाहिए या नहीं, ये फ़ैसले अब भी किसी इंसान को ही समझने पड़ते हैं, इन संकेतों की मदद से — इनकी जगह लेकर नहीं। practical रूप में, इसका मतलब है कि जनरेट हुए (या हाथ से बनाए गए) कंपोनेंट्स को कुछ असली breakpoints पर चेक करना, बजाय इसके कि यह मान लिया जाए कि कोई max-width या media query सही तरीके से carry हो गई है, और desktop-only Figma फ़्रेम को mobile behavior के लिए एक शुरुआती पॉइंट मानना, उस पर आख़िरी फ़ैसला नहीं।
कंपोनेंट्स को अपने ऐप में डालने से पहले रिव्यू करें
जनरेट हुआ कोड ज़्यादातर काम पहले ही पूरा कर देता है, लेकिन इसे किसी मौजूदा ऐप में मर्ज करने से पहले एक रिव्यू पास करना अब भी फ़ायदेमंद है:
- कंपोनेंट boundaries चेक करें। देख लें कि जनरेट हुए कंपोनेंट्स वहीं टूटते हैं जहाँ आप उन्हें अपने codebase में खुद ही तोड़ते — प्रोजेक्ट में आने के बाद आप इन्हें और आगे भी split कर ही सकते हैं। Buttons, cards, nav और दूसरी बार-बार दोहराई जाने वाली UI आमतौर पर एक कंपोनेंट के लिए सही साइज़ होती हैं; हर लेयर तक नीचे split करते जाना सिर्फ़ indirection बढ़ाता है।
- सिर्फ़ विज़ुअल्स नहीं, markup भी देखें। आउटपुट में गहराई तक nested
<div>s की बजाय सही heading hierarchy वाला semantic HTML, interactive हिस्सों के लिए असली<button>और<a>elements, और images परalttext होता है — यह सब search engines, screen readers और keyboard navigation के काम आता है, और Figma फ़्रेम से विज़ुअल समानता अपने-आप इनमें से किसी की गारंटी नहीं देती। पूरी checklist के लिए Figma से एक्सेसिबल HTML तक: एक प्रैक्टिकल गाइड देखें। - content और copy दोबारा जाँचें। एक्सपोर्ट होने के बाद डिज़ाइन में जो भी बदलाव हुआ हो, उसे in-app editor में ठीक करना सबसे आसान होता है, फ़ाइनल कोड को प्रोजेक्ट में लेने से पहले।
- अपना data और state कनेक्ट करें। जनरेट हुए कंपोनेंट्स structure और styling संभालते हैं — उन्हें असल props, API data या app के state से जोड़ना अब भी आपका काम है।
अपनी खुद की डिज़ाइन पर आज़माएँ
इनमें से कुछ भी किसी कंपोनेंट के व्यवहार को लेकर डेवलपर के फ़ैसले की जगह नहीं लेता — यह सिर्फ़ पहले से तय लेआउट फ़ैसलों को JSX और CSS में बदलने वाला मैकेनिकल काम हटा देता है, ताकि वह judgment उन हिस्सों पर लगे जिन्हें उसकी असल ज़रूरत है। MarkupGen का एक free plan है, यानी आप मुफ़्त में शुरू कर सकते हैं और ज़रूरत पड़ने पर ही अपग्रेड कर सकते हैं — कोई hidden fees नहीं, कभी भी cancel करें। अगर आप असली डिज़ाइन पर पूरा चार-स्टेप प्रोसेस देखना चाहते हैं, तो अपनी Figma फ़ाइल पर आज़माएँ। कोई सवाल हो तो support@markupgen.com पर लिखें।
FAQ
Figma डिज़ाइन को React में कैसे कन्वर्ट करें? फ़्रेम के स्ट्रक्चर और Auto Layout सेटिंग्स को inspect करें, यह तय करें कि बार-बार दोहराए जाने वाले कौन-से हिस्से reusable कंपोनेंट्स बनने चाहिए जिनके variants के लिए props हों, फिर उसी स्ट्रक्चर से React कंपोनेंट्स और CSS बनाएँ (या जनरेट करें) — Auto Layout, Flexbox में मैप होता है, और resizing constraints responsive behavior तय करने में मदद करते हैं। MarkupGen जैसा टूल यह पहला पास अपने-आप जनरेट कर सकता है; फिर भी, शिप करने से पहले कंपोनेंट boundaries, accessibility और असली data के लिए एक रिव्यू पास करना फ़ायदेमंद है।
क्या Figma डिज़ाइन को reusable React कंपोनेंट्स में बदला जा सकता है? हाँ, लेकिन हर लेयर को कंपोनेंट नहीं बनाना चाहिए। बार-बार दोहराई जाने वाली UI — buttons, cards, nav items, form fields — अच्छे उम्मीदवार हैं; जो लेयर डिज़ाइन में सिर्फ़ एक बार मौजूद है, उसे आमतौर पर अपने अलग कंपोनेंट की ज़रूरत नहीं होती।
Figma का Auto Layout, React और CSS में कैसे मैप होता है?
ज़्यादातर CSS Flexbox में: direction, flex-direction बनता है, gap, gap बनता है, padding, padding बनता है, और alignment, justify-content/align-items बनता है, जो React कंपोनेंट्स जिस भी CSS approach का इस्तेमाल करते हैं उसमें आगे carry होता है।
Figma-to-React आउटपुट को responsive कैसे बनाएँ? फ़्रेम के Auto Layout sizing modes और constraints से शुरुआत करें — ये resizing behavior के इरादे का संकेत देते हैं — लेकिन breakpoints जोड़ने या एडजस्ट करने और mobile-specific लेआउट खुद बनाने की योजना बनाएँ। न तो Figma और न ही कोई conversion tool ऐसा responsive behavior पूरी तरह अंदाज़ा लगा सकता है जो डिज़ाइन में पहले से मौजूद ही नहीं है।
क्या हर Figma कंपोनेंट को React कंपोनेंट बनना चाहिए? नहीं। डिज़ाइन फ़ाइल जिसे भी "कंपोनेंट" लेबल कर देती है उस हर चीज़ को componentize करने से आमतौर पर सिर्फ़ indirection बढ़ता है, कोड मेंटेन करना आसान नहीं होता — reusable, बार-बार दोहराए जाने वाले pattern इसके लायक होते हैं; one-off लेयर आमतौर पर नहीं।
अपनी खुद की डिज़ाइन को सीधे कन्वर्ट करना चाहते हैं? MarkupGen के साथ अपनी Figma डिज़ाइन को React में कन्वर्ट करें →
