फॉर्म डिज़ाइन बेस्ट प्रैक्टिसेज़: वेब और मोबाइल के लिए 10 नियम
फॉर्म डिज़ाइन के वो 10 नियम जो कन्वर्ज़न देते हैं। Notion, Tally, और Mercury के साइन-अप फ्लो का असली विश्लेषण, साथ में मोबाइल-फर्स्ट पैटर्न जो वाकई काम करते हैं।

फॉर्म डिज़ाइन बेस्ट प्रैक्टिसेज़: वेब और मोबाइल के लिए 10 नियम
एक खराब फॉर्म की कीमत
एक खराब फॉर्म उस हर रुपये पर एक स्ट्रैटेजी टैक्स है जो आपने किसी को उस पेज तक लाने में खर्च किया। जब friction मौजूद हो तो साइन-अप, चेकआउट, और ऑनबोर्डिंग फॉर्म की completion rate औसतन 12% के आसपास रहती है। friction हटाइए और वही संख्या 50% से ऊपर जाती है।
यह अंतर लगभग कभी copy या branding की वजह से नहीं होता। यह दस नियमों की वजह से होता है, जिन्हें लगातार लागू किया जाए।

Salesforce-स्टाइल 30-फील्ड लीड फॉर्म इसलिए मौजूद हैं क्योंकि किसी ने एक database schema को पेज पर चिपका दिया और उसे फॉर्म कह दिया। यूज़र ने इसके लिए साइन अप नहीं किया था। वो प्रोडक्ट के लिए आया था, और आपके qualification logic ने आपको लीड से हाथ धुला दिया।
नियम 1: एक कॉलम, एक स्क्रीन पर एक काम
एक कॉलम, हमेशा। मल्टी-कॉलम लेआउट Figma grid में कुशल लगता है और स्क्रीन पर completion rate मार देता है।
आँख बाएं से दाएं पढ़ती है और continuity की उम्मीद करती है। जब फील्ड दो कॉलम में बंट जाते हैं, तो यूज़र को तय करना होता है कि कौन सा रास्ता चुनें, और यह micro-decision एक भी character टाइप करने से पहले friction जोड़ देता है।
Notion का साइन-अप फ्लो मोबाइल पर एक बार में एक फील्ड प्रमोट करते हुए सिंगल सेंटर्ड कॉलम है। फॉर्म तेज़ लगता है क्योंकि वो एक ही चीज़ मांगता है। यही नियम है।
नियम 2: लेबल की पोज़िशन, लेबल के स्टाइल से ज़्यादा मायने रखती है
लेबल फील्ड के ऊपर जाते हैं। अंदर नहीं, बगल में नहीं। ऊपर, हमेशा दिखते हुए।
Placeholder टेक्स्ट जिसे लेबल की तरह इस्तेमाल किया जाए, उसी पल गायब हो जाता है जब यूज़र टाइप करना शुरू करता है। उस वक्त उन्हें यह याद करने के लिए फील्ड खाली करनी होती है कि वो क्या भर रहे हैं। Mercury का ऑनबोर्डिंग फ्लो हर input पर persistent above-field labels इस्तेमाल करता है ताकि fill के बीच में context कभी न खो जाए।

Floating labels, जो focus पर placeholder position से ऊपर animate होते हैं, एक स्वीकार्य middle ground हैं, लेकिन accessible होने के लिए उन्हें tight contrast और सावधानीपूर्वक timing चाहिए। जब शक हो, लेबल ऊपर रखें और वहीं रहने दें।
लेबल placement के पीछे की UX research को गहराई से UX research methods पर हमारी गाइड में कवर किया गया है।
नियम 3: फील्ड का क्रम यूज़र की वास्तविकता के अनुसार हो, database schema के नहीं
आपके फील्ड का क्रम यह दर्शाना चाहिए कि एक इंसान किसी काम के बारे में कैसे सोचता है, न कि इंजीनियरों ने data model कैसे बनाया।
एक checkout फॉर्म जो cart confirm करने से पहले shipping address मांगता है, context का बोझ यूज़र पर डालता है। Stripe Checkout, hosted-checkout form UX के लिए canonical reference, फॉर्म को तीन चरणों में sequence करता है:
- Email (आप कौन हैं)
- Payment (आप कैसे भुगतान करेंगे)
- Address (यह कहाँ जाएगा)
यह वही sequence है जो एक reasonable इंसान व्यक्तिगत रूप से इस्तेमाल करता। जब database फील्ड का क्रम चलाता है, तो आपको ऐसे फॉर्म मिलते हैं जो country से पहले zip code मांगते हैं, या company name से पहले job title।
नियम 4: inline validate करें, submit पर कभी नहीं
यूज़र के फील्ड छोड़ते ही validate करें, submit दबाने पर नहीं।
Submit-time validation का मतलब है यूज़र दस-फील्ड फॉर्म भरता है, बटन दबाता है, और लाल errors की दीवार से सामना होता है। हर error एक correction task है, और हर correction task उन्हें पूरी तरह खो देने का जोखिम रखता है। Inline validation, blur पर triggered होकर, error को यूज़र के आगे बढ़ने से पहले सामने ला देती है।
Apple ID sign-in blur पर email format validate करता है और submit button active होने से पहले account availability confirm करता है। वह sequencing एक साथ दो categories की errors रोकती है। इसके पीछे के interaction patterns को हमारी microinteraction design गाइड में कवर किया गया है।
नियम 5: मोबाइल-फर्स्ट का मतलब है मोबाइल keyboards
हर field type सही keyboard लाना चाहिए। यही 80% मोबाइल फॉर्म डिज़ाइन है।
अगर एक फील्ड phone number माँगती है और default text keyboard आता है, तो यूज़र के कुछ भी टाइप करने से पहले फॉर्म टूट चुका है। Numeric fields पर inputmode="numeric" इस्तेमाल करें, @ key दिखाने के लिए type="email", और prices के लिए inputmode="decimal"। iOS और Android दोनों input modes की पूरी range support करते हैं।
Keyboard मोबाइल पर primary input device है। गलत एक specify करना एक correctly designed visual form को frustrating बना देता है।
| फील्ड टाइप | सही HTML Attribute |
|---|---|
type="email" | |
| Phone | type="tel" |
| पूरी संख्या | inputmode="numeric" |
| Decimal / price | inputmode="decimal" |
| URL | type="url" |
| Search | inputmode="search" |
इन patterns के लिए broader मोबाइल-फर्स्ट foundation के लिए, responsive web design fundamentals देखें।
नियम 6: Progress, microcopy, और लंबे फॉर्म की समस्या
अगर फॉर्म में पाँच से ज़्यादा फील्ड हैं, तो यूज़र को दिखाएं कि वो flow में कहाँ हैं।
Airbnb का multi-step booking flow पूरे समय named steps के साथ एक progress indicator दिखाता है। जो यूज़र देख सकते हैं कि वो 60% complete हैं, वो उन यूज़र्स की तुलना में measurably ज़्यादा finish करते हैं जिनके पास कोई reference point नहीं है।

Tally अपने embeddable forms के लिए अलग approach लेता है: top पर persistent progress bar के साथ एक बार में एक सवाल, जो उनके documented user testing में consistently single-page long forms से बेहतर perform करता है।
Microcopy भी यही काम करती है। "Step 2 of 4" एक bare progress bar से ज़्यादा honest है। "हमें यह आपकी पहचान verify करने के लिए चाहिए" एक unlabeled sensitive field से ज़्यादा useful है।
नियम 7: Error messages निर्देश हैं, आरोप नहीं
Error messages imperative में लिखें, आरोप में नहीं।
"यह फील्ड ज़रूरी है" एक आरोप है। "आगे बढ़ने के लिए अपना email address enter करें" एक निर्देश है। यूज़र को पहले से पता है कि कुछ गलत हुआ। उन्हें fix चाहिए।
बेस्ट error copy exact condition और exact action बताती है: "Password कम से कम 8 characters का होना चाहिए और एक number include होना चाहिए।" Stripe Checkout यह बिल्कुल सटीक करता है। Message blur पर आता है, problem बताता है, और condition resolve होते ही गायब हो जाता है।
कोई lingering red state नहीं। बस काम करता है।
नियम 8: Autofill एक feature है, afterthought नहीं
autocomplete attribute browser को exactly बताता है कि क्या fill करना है। इसे हर field पर इस्तेमाल करें।
Saved data वाले phone पर correct autocomplete attributes वाला checkout form complete होने में लगभग 12 seconds लेता है। उनके बिना, वही फॉर्म दो मिनट लेता है क्योंकि यूज़र सब कुछ manually टाइप करता है। वो 108-second का अंतर वहीं है जहाँ ज़्यादातर मोबाइल checkout abandonment होता है, और इसे बंद करने में कुछ नहीं लगता। UI component library guide बताता है कि इन attributes को अपने design system के form components में कैसे bake करें ताकि वो कभी missing न हों।
| फील्ड | autocomplete Value |
|---|---|
email | |
| पहला नाम | given-name |
| अंतिम नाम | family-name |
| Phone | tel |
| Street address | street-address |
| शहर | address-level2 |
| Postal code | postal-code |
| Card number | cc-number |
| Card expiry | cc-exp |
नियम 9: Submit button सब कुछ तय करता है
Submit button एक contract है। इसका label, state, और position signal करते हैं कि यूज़र आगे क्या होगा इस पर भरोसा कर सकता है या नहीं।
बिना explanation के grayed-out button यूज़र को बताता है कि फॉर्म टूटा हुआ है, लेकिन क्यों नहीं। यह एक dead end है। "Submit" label वाला button यूज़र को नहीं बताता कि वो किस बात पर agree कर रहे हैं।
"Create my account," "Get my free trial," और "Start building" सब ज़्यादा honest हैं। Button तभी disable करें जब आप UI में कारण explain कर सकें। Tally अपने form builder में हर step पर action-specific button copy इस्तेमाल करता है, और यह embedded B2B flows के लिए उनकी above-average completion rates में directly contribute करता है।
नियम 10: असली thumbs, असली data, असली latency से test करें
Fast wifi पर desktop browser में फॉर्म test करना आपको इस बारे में कुछ meaningful नहीं बताता कि यह काम करता है या नहीं।
हर field में real-length data के साथ 4G connection पर mid-range Android device पर test करें:
- Accent character वाला नाम
- Line two पर apartment number वाला address
- 22-character email
- 1-character first name
Real-world edge cases उन forms को तोड़ते हैं जो Figma में clean दिखते हैं। Real latency से पता चलता है कि validation calls input block कर रही हैं या asynchronously run हो रहे हैं। यह distinction browser simulator में invisible है और दो bars signal वाले phone पर catastrophic है।
अपने sign-up, checkout, या onboarding flow पर form audit चाहिए? Brainy real screens, real data, और real conversion numbers पर पूरा दस-नियम audit चलाता है।
जहाँ designers आज भी सबसे खराब forms ship करते हैं
आज production में सबसे खराब forms तीन patterns share करते हैं:
- Enterprise sales lead forms: Salesforce-style 30-field qualification screens जिनमें mandatory "annual revenue" selectors हैं और कोई inline validation नहीं
- Multi-step onboarding flows जो progress save नहीं करते: step 7 of 9 पर एक phone call यूज़र को step 1 पर वापस भेज देता है
- Checkout flows जो mobile primary बनने से पहले बने थे, कभी rebuild नहीं हुए: हर numeric field अभी भी
type="text"इस्तेमाल करता है क्योंकि "desktop पर ठीक काम करता है"
इन तीनों cases में error state choices भी contrast requirements fail करती हैं; accessible color contrast patterns उस specific failure point को fix करता है।
तीनों में common thread: फॉर्म उस system के लिए design किया गया था, उस इंसान के लिए नहीं जो इसे भरता है। Fix एक ही है।
दस नियम चलाएं। Mobile से शुरू करें। Database को अपना schema खुद sort करने दें।

अक्सर पूछे जाने वाले सवाल
फॉर्म में कितने fields होने चाहिए?
जितने कम outcome के लिए ज़रूरी हों। सही संख्या वो है जहाँ एक और हटाने से product टूट जाए। आप जो भी field जोड़ते हैं वो completion rate कम करता है। शून्य से शुरू करें और केवल वो जोड़ें जो mandatory है।
मुझे multi-step या single-page forms इस्तेमाल करना चाहिए?
पाँच से ज़्यादा fields के लिए, multi-step almost always single-page से बेहतर perform करता है। requirement visible progress है। उसके बिना, multi-step forms single-page से worse perform करते हैं क्योंकि यूज़र को कोई idea नहीं होता कि journey कितनी लंबी है। Steps name करें और दिखाएं कि वो sequence में कहाँ हैं।
Required fields mark करने का सबसे अच्छा तरीका क्या है?
Optional fields mark करें, required नहीं। अगर ज़्यादातर fields required हैं (जो होनी चाहिए, ऊपर के नियम को देखते हुए), तो हर field के बगल में red asterisk लगाना visual noise है।
Exceptions mark करें। एक field के बगल में "Optional" meaningful information है। हर field के बगल में asterisk नहीं है।
बिना यूज़र को punish किए password requirements कैसे handle करें?
User के typing शुरू करने से पहले requirements दिखाएं, fail होने के बाद नहीं। एक छोटी checklist जो हर condition पूरी होने पर activate हो, post-submit error wall से बेहतर perform करती है। Apple ID और ज़्यादातर current auth flows यह pattern इस्तेमाल करते हैं। Feedback live है, positive है, और कभी punitive नहीं है।
क्या field width कुछ communicate करता है?
हाँ, और users इसे पढ़ते हैं। Field width expected input length signal करता है। छोटा field छोटा जवाब signal करता है। Full-width field लंबा जवाब signal करता है।
जहाँ layout allow करे वहाँ field width को expected input length से match करें। Full width पर zip code field एक गलती जैसा लगता है। Street address के लिए full-width text area overkill जैसा लगता है। Container को expected content से match करें।
सबसे ज़्यादा मोबाइल form abandonment किस वजह से होता है?
गलत keyboard type नंबर एक है। Autofill काम न करना नंबर दो है। दोनों silent failures हैं: form सही दिखता है, यूज़र बस इसे efficiently complete नहीं कर पाता।
दोनों को per field दो attributes से fix करें। Investment 15 मिनट है। Return उसी sprint में checkout conversion में measurable है।
Need a form audit on your sign-up, checkout, or onboarding flow? Brainy runs the full ten-rule audit on real screens, real data, and real conversion numbers.
Get Started




