User Interface (UI) Components | اجزای رابط کاربری (UI)
اجزا یا کامپوننتهای رابط کاربری قطعات قابل استفادهٔ مجدد و خودکفایی هستند که صفحهها از ترکیب آنها مونتاژ میشوند: دکمه، فیلد، منو، مودال، کارت، آکاردئون، کشویی و دهها قطعهٔ مشابه. سالهاست رابطها صفحهبهصفحه از صفر کشیده نمیشوند؛ از یک سیستم قطعه سر هم میشوند. همین جابهجایی معیار کیفیت را عوض کرده: سؤال از «این صفحه قشنگ است؟» به «سیستمی که صفحه از آن آمده سالم است؟» رسیده است. کامپوننتها دلیل آناند که محصول صدهاصفحهای بتواند یکدست حس شود، نه مثل صدها جزیرهٔ سلیقهای. این مدخل روی قطعهٔ سیستمی با حالت، گونه و قرارداد تمرکز دارد—نه عنصر اتمی تکی، نه عنصر طراحی بهمعنای واژگان ترکیب بصری.
تعریف عملی؛ بیش از یک شکل تکراری
کامپوننت UI قطعهای است که شغل مشخصی دارد، ظاهر تعریفشدهای حمل میکند، و رفتارش در هر جایی که ظاهر شود یکسان میماند. دکمه فقط شبیه دکمه نیست؛ هاور، فوکوس، غیرفعال، بارگذاری و کلیک را طبق قاعده جواب میدهد. تیم قاعده را یکبار مینویسد و همهجا مصرف میکند. این لایهای است بین توکنهای خام—رنگ، فاصله، مقیاس تایپ—و صفحهای که کاربر میبیند. بدون کامپوننت، توکنها در فایل پراکنده میمانند و صفحه دوباره از ذرات بینام ساخته میشود.
خودکفایی مهم است: قطعه ساختار، سبک و منطق رفتاری لازم را با خود دارد و برای زنده ماندن به استایل تصادفی صفحه وابسته نیست. اگر هر صفحه دکمه را دوباره «درست» کند، شما کامپوننت ندارید؛ مجموعهٔ شبهدکمه دارید.
چهار خانوادهٔ کارکردی در کتابخانه
قطعات ورودی اطلاعات میگیرند: فیلد متن، رمز، چکباکس، رادیو، اسلایدر، آپلود. قطعات خروجی وضعیت و داده نشان میدهند: برچسب، بج، نوار پیشرفت، تولتیپ، اعلان، جدول. قطعات ناوبری جابهجایی را امن میکنند: تب، نانریزه، صفحهبندی، نوار پایین، استپر. قطعات ظرف، بقیه را سازمان میدهند: کارت، مودال، کشو، پنل، کاروسل. در محصول واقعی یک مودال هم ظرف است و هم معمولاً ورودی و دکمهٔ عمل دارد؛ دستهها مرز سخت نیستند، اما برای فهرست کتابخانه و آموزش تیم مفیدند.
وقتی قطعهای از خانوادهٔ خودش خارج میشود—مثلاً بج اطلاعرسان که مثل دکمه عمل میکند—هزینهٔ یادگیری کاربر و هزینهٔ نگهداری کد بالا میرود.
چه چیزی قطعه را واقعاً قابل استفادهٔ مجدد میکند
سه ویژگی تکراری بودن را واقعی میکنند. کپسولهسازی: قطعه وابستگی پنهان به صفحهٔ مادر ندارد. پیکربندی: با ویژگیهایی مثل گونهٔ اصلی یا ثانویه، اندازه، و حالت غیرفعال سازگار میشود بدون بازنویسی. دامنهٔ روشن: یک کار را خوب انجام میدهد؛ کارت ظاهر و چیدمان محتوا را مدیریت میکند، نه فراخوانی API و نه منطق باز شدن مودال بعدی را. دامنهٔ گشاد، تست و تغییر را سخت میکند و در عمل به چند نسخهٔ شبیه هم میانجامد.
کتابخانهٔ بالغ همهٔ حالتهای محتمل را نشان میدهد: پیشفرض، هاور، فوکوس، فعال، غیرفعال، بارگذاری، خطا، موفقیت. قطعهای که فقط حالت خوشحال دارد، در دست مهندسی ناقص است و در دست کاربر شکننده.
رابطه با سیستم طراحی
صحبت از کامپوننت دیر یا زود به سیستم طراحی میرسد، چون قلب سیستم همان کتابخانهٔ قطعه است بههمراه توکن، راهنمای استفاده، و استاندارد دسترسپذیری. سیستم طراحی مجموعهٔ تصمیمها و ابزارهایی است که ساخت محصول یکدست را ممکن میکند؛ کتابخانهٔ کامپوننت ویترین اجرایی آن تصمیمهاست. Material، Carbon، Polaris و مشابهشان مرجع عمومیاند، اما بیشتر تیمهای بالغ سیستم متناسب برند و پشتهٔ فنی خودشان را میسازند.
بدون حاکمیت، کتابخانه متورم یا رها میشود. باید روشن باشد چه کسی قطعهٔ جدید اضافه میکند، چه زمانی گونهٔ تازه مجاز است، و چه زمانی باید الگوی موجود را گسترش داد نه اینکه دکمهٔ هفتم ساخته شود.
جایگاه در تفکر Atomic Design
روش Atomic Design برد فراست سلسلهمراتبی از ذرات تا قالب صفحه پیشنهاد میکند: اتمها کوچکترین واحدها، مولکولها ترکیبهای سادهٔ کارکردی، ارگانیسمها بخشهای پیچیدهتر. آنچه اکثر تیمها «کامپوننت UI» مینامند معمولاً در سطح مولکول و ارگانیسم مینشیند—خودکفاتر از یک آیکون تنها، ماژولارتر از کل صفحه. این واژگان به تیم کمک میکند دربارهٔ دامنه حرف بزند: آیا «جستجو» یک فیلد است یا ترکیب فیلد و دکمه و پیشنهاد؟
سردرگمی اتم و کامپوننت باعث میشود یا همه چیز را قطعهٔ عظیم کنند، یا هیچ چیز را کپسوله نکنند. تعادل در دامنهٔ تستپذیر و قابل پیکربندی است.
هزینهٔ محصول بدون نظام قطعه
تصویر کنید چند طراح و چند توسعهدهنده هجده ماه بدون کتابخانهٔ مشترک کار کنند. هر کس دکمه را کمی متفاوت میکشد و کمی متفاوت مینویسد. بعد از یک سال شش نسخهٔ دکمهٔ اصلی و چهار نسخهٔ خطای فرم دارید و هیچکس نمیداند مصدر حقیقت کدام است. کاربر ناهماهنگی را حس میکند حتی اگر نتواند نام ببرد؛ هزینهٔ نگهداری با هر ویژگی جدید مرکب میشود؛ تحویل طراحی به مهندسی پر از تفسیر میشود. نظام کامپوننت هر سه درد را کم میکند: تغییر یکبار اعمال میشود، واژگان مشترک ساخته میشود، و صفحهٔ جدید از قطعات موجود سر هم میشود.
شروع کوچک بهتر از انتظار برای سیستم کامل است. یک دکمه، یک فیلد، یک مودال استاندارد با حالتها، اغلب مسیر فرهنگ را عوض میکند.
تحویل تمیزتر بین طراحی و مهندسی
وقتی دو طرف به یک نام اشاره میکنند، گفتگو کوتاه میشود. طراح میگوید ProductCard در گونهٔ ویژه؛ مهندس همان را در کد میشناسد. بهجای «آن کارت با سایه»، مشخصات قطعهای و گونه میآید. خطای پیادهسازی کم میشود و بازبینی طراحی از پیکسلشماری همه چیز به بررسی درست بودن استفاده از قطعه میرسد. پیوند ابزار طراحی به کد—از طریق مستند یا قابلیتهایی که قطعهٔ فایل را به قطعهٔ تولید وصل میکنند—همین سود را چند برابر میکند، به شرطی که نامها و API همخوان بمانند.
اگر طراحی و کد از هم جدا رشد کنند، کتابخانه دوگانه دارید: یکی در Figma و یکی در ریپو، و دوباره همان چندنسخهای.
هوش مصنوعی و مدیریت کتابخانه
ابزارهای هوش مصنوعی در پیشنویس الگو، پیدا کردن حالتهای جاافتاده، کشف تکراریها در کتابخانهٔ بزرگ، و اتصال قطعهٔ طراحی به کد کمک میکنند. اما کیفیت خروجی به کیفیت معماری قطعه وابسته است: نامگذاری روشن، دامنهٔ تمیز، توکن منسجم. هوش مصنوعی بینظمی را بزرگ میکند همانطور که نظم را سرعت میدهد. تیمی که اول منبع حقیقت قطعه را سفت کند، از خودکارسازی سود میبرد؛ تیمی که صد دکمهٔ یتیم دارد، فقط سریعتر یتیم جدید میسازد.
جمعبندی: اجزای UI قطعات سیستمی قابل استفادهٔ مجدد با ظاهر، رفتار و حالتهای تعریفشدهاند که بین توکن و صفحه مینشینند. آنها را از عنصر اتمی تکی و از الگوی انتزاعی جدا کنید، با سیستم طراحی و حاکمیت همراه کنید، دامنه را تنگ و پیکربندی را روشن نگه دارید، و تحویل را روی نام مشترک بنا کنید. کتابخانهٔ سالم سرعت میسازد؛ نبودش بدهی یکدستنبودن است که هر اسپرینت سنگینتر میشود.
سوالات متداول
قطعهٔ خودکفا و قابل استفادهٔ مجدد در رابط—مثل دکمه یا مودال—که ظاهر و رفتار تعریفشده دارد و در زمینههای مختلف با پیکربندی محدود تکرار میشود.
عنصر معمولاً واحد کوچکتر یا اتمی است؛ کامپوننت قطعهای خودکفاتر با منطق، حالت و قابلیت پیکربندی در مقیاس سیستم است.
مجموعهٔ سازمانیافته و مستند قطعات آماده—اغلب هم در فایل طراحی و هم در کد—که تیم برای ساخت صفحهها از آن برمیدارد.
بله، اما سیستم طراحی با توکن، راهنما و حاکمیت به قطعات مقیاس و یکدستی میدهد؛ بدون آن خطر چندنسخهای شدن بالاست.
کامپوننت قطعهٔ مشخص و قابل پیادهسازی است؛ الگو راهحل تکرارشوندهٔ مسئله است که ممکن است از چند کامپوننت تشکیل شود.