پرش به محتوای اصلی
پرش به محتوای مقاله

Base UI جایگزین Radix در کتابخانه shadcn/ui شد

·۱۴ تیر ۱۴۰۵۹ دقیقه مطالعه۱ بازدید
تاریخچه تغییرات و به‌روزرسانی‌های محصول
تاریخچه تغییرات و به‌روزرسانی‌های محصول
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

جایگزینی زیرساخت Radix با Base UI و تبدیل مخازن گیت‌هاب به رجیستری‌های توزیع قطعات، بدون نیاز به سرور واسط. همچنین معرفی مهاجرت تدریجی توسط عامل‌های AI به‌جای کدمدها.

اگر توسعه‌دهنده فرونت-اند هستید و از قطعات آماده برای سرعت بخشیدن به پروژه استفاده می‌کنید، ابزاری که استاندارد کپی-پیست در صنعت است، تغییر مسیر داد. shadcn/ui از ژوئیه ۲۰۲۶، کتابخانه Base UI را به عنوان زیرساخت پیش‌فرض برای تمامی پروژه‌های جدید معرفی کرد.

این تغییر یک چرخش معماری برای ابزاری است که تجربه توسعه مدرن را بازتعریف کرد. سال‌ها بود که shadcn/ui برای مدیریت منطق بدون استایل (Headless) و دسترس‌پذیری، به Radix UI تکیه می‌کرد. طبق مستندات رسمی، در ژانویه ۲۰۲۳، رادیکس به دلیل APIهای قوی و تست‌شده در میلیون‌ها اپلیکیشن، انتخاب اول بود. اما تیم سازنده رادیکس، با استفاده از تجربیات نسل اول، Base UI را خلق کرد تا بهینه‌تر باشد.

همان‌طور که در تحلیل‌های پیشین ما درباره‌ی تکامل سیستم‌های طراحی (Design Systems) اشاره کردیم، جداسازی منطق از ظاهر، کلید مقیاس‌پذیری است. برای shadcn/ui، این تغییر از پیش تست شده بود؛ به گونه‌ای که پروژه‌های ساخته شده با دستور shadcn create پیش از این هم با نسبت ۲ به ۱، Base UI را به رادیکس ترجیح می‌دادند.

به نقل از گزارش تغییرات در وب‌سایت ui.shadcn.com، این انتقال به‌گونه‌ای طراحی شده که باعث اختلال در پروژه‌های جاری نشود. نسخه ۱.۶.۰ از Base UI اکنون با بیش از ۶ میلیون دانلود هفتگی، وضعیت پایدار (Stable) دارد. پروژه‌های جدید که با npx shadcn init ساخته می‌شوند، به‌طور پیش‌فرض از Base UI استفاده می‌کنند و مستندات نیز بر این اساس به‌روز شده‌اند.

رادیکس بازنشسته نشده است. طبق اعلام تیم توسعه، هر قطعه جدید برای هر دو کتابخانه منتشر می‌شود، مگر آنکه ویژگی خاصی فقط در Base UI موجود باشد. توصیه صریح این است که اگر اپلیکیشن شما در محیط عملیاتی (Production) پایدار است، نیازی به مهاجرت نیست؛ زیرا بدترین اتفاق برای یک اپلیکیشن فعال، تغییر ناگهانی کتابخانه قطعات است. برای کسانی که همچنان رادیکس را می‌خواهند، پرچم -b radix در دستورات init مسیر قدیمی را حفظ می‌کند.

برای کسانی که قصد مهاجرت دارند، shadcn/ui از روش‌های سنتی تغییر کد (Codemod) دوری کرده است. تیم توسعه استدلال می‌کند که کدمدها در مواجهه با تغییرات دستی توسعه‌دهندگان در کلاس‌ها یا ویژگی‌ها، شکست می‌خورند. به‌جای آن، آن‌ها یک «مهارت» (Skill) برای عامل‌های کدنویسی (AI Coding Agents) مثل Claude Code یا Cursor تعریف کرده‌اند.

این مهاجرت عامل‌محور، به‌صورت تدریجی پیش می‌رود. توسعه‌دهنده می‌تواند از عامل خود بخواهد: «قطعه Accordion را به base-ui منتقل کن». در این حالت، هر دو کتابخانه هم‌زمان در پروژه حضور دارند و توسعه‌دهنده می‌تواند در هر لحظه متوقف شود و هفته بعد دوباره ادامه دهد. این سیستم تغییرات مکانیکی — مثل تبدیل asChild به render — را مدیریت می‌کند و تغییرات رفتاری را برای تصمیم‌گیری دستی علامت‌گذاری می‌کند.

هر مرحله از این انتقال، گزارشی دقیق در پوشه .migration/ ایجاد می‌کند که شامل موارد زیر است:

  • تاریخ و استراتژی: زمان انتقال و حکم نهایی.
  • تغییرات: لیست تمام فایل‌های دست‌خورده و دلیل تغییر.
  • موارد نادیده‌گرفته‌شده: فایل‌هایی که مرتبط به نظر می‌رسیدند اما تغییر نکردند.
  • تغییرات رفتاری: تفاوت‌هایی که کد را نمی‌شکنند اما رفتار برنامه را تغییر می‌دهند.
  • تأیید دستی: چک‌لیستی کوتاه (مثل کلیک یا تب زدن) که معمولاً یک دقیقه زمان می‌برد.

در تست‌های داخلی روی پروژه‌هایی با بیش از ۶۰ قطعه، یک مهاجرت کامل حدود ۲۵ دقیقه زمان برد و برای هر قطعه حدود ۱۰ هزار توکن (Token) — تکه‌های کوچکی از متن که مدل می‌خورد — مصرف شد، بدون اینکه شخصی‌سازی‌های قبلی از بین بروند.

در ژوئن ۲۰۲۶، این پلتفرم با معرفی مجموعه‌ای از ابزارهای اولیه (Primitives) برای رابط‌های چت، وارد دنیای تعاملات پیچیده هوش مصنوعی شد. هدف این است که توسعه‌دهندگان بتوانند هر بخش را به‌طور مستقل جایگزین یا ترکیب کنند.

ابزارهای اولیه گفتگو:

  • MessageScroller: ظرف اصلی اسکرول که منطق‌های پیچیده‌ای مثل پاسخ‌های جریانی (Streamed)، بازیابی تاریخچه و ردیابی دید را مدیریت می‌کند. این بخش فقط رفتار را مدیریت می‌کند و صاحب وضعیت مدل یا داده‌ها نیست.
  • Message: مدیریت چیدمان ردیف گفتگو شامل آواتار، ترازبندی و محتوا.
  • Bubble: رندر کردن سطح پیام با پشتیبانی از واکنش‌ها، لینک‌ها و محتوای جمع‌شونده.
  • Attachment: نمایش فایل‌ها و تصاویر با وضعیت آپلود و متاداده.
  • Marker: نمایش یادداشت‌های سیستمی، به‌روزرسانی‌های وضعیت و جداکننده‌های تاریخ.

این قطعات به‌دلیل کوچک بودن، برای کاربردهای متنوعی از چت‌های AI گرفته تا اینباکس‌های پشتیبانی کاربرد دارند. برای پشتیبانی از این ساختار، بسته جدید @shadcn/react ایجاد شد تا قطعات بدون استایل و Headless را جای دهد. این بسته برای هر دو زیرساخت رادیکس و Base UI در دسترس است.

علاوه بر این، دو ابزار CSS جدید به shadcn/tailwind.css اضافه شد:

  • scroll-fade: ایجاد محوی در لبه‌های ظرف‌های اسکرول برای اشاره به وجود محتوای بیشتر.
  • shimmer: ایجاد درخشش متنی برای وضعیت‌های فعال مثل «در حال تفکر...» یا «در حال تولید پاسخ».

فراتر از قطعات، shadcn/ui در حال تمرکززدایی از نحوه اشتراک‌گذاری است. اکنون هر مخزن عمومی گیت‌هاب می‌تواند با اضافه کردن یک فایل registry.json به یک رجیستری تبدیل شود. این یعنی دیگر نیازی به اجرای shadcn build یا راه اندازی سرور رجیستری نیست؛ CLI مستقیماً فایل JSON ریشه را می‌خواند و نصب می‌کند.

رجیستری‌های گیت‌هاب فقط برای UI نیستند و می‌توانند موارد زیر را توزیع کنند:

  • هوک‌ها (Hooks)، توابع کمکی و توکن‌های طراحی.
  • کیت‌های ویژگی و قراردادهای پروژه (مثل .editorconfig یا دستورالعمل‌های Agentها).
  • گردش‌کارهای CI/CD و قالب‌های انتشار.
  • کیت‌های مهاجرت و کدمدها.

در نهایت، دستور shadcn eject در می ۲۰۲۶ معرفی شد. این دستور برای مدیریت یوتیلیتی‌های مشترک Tailwind و پشتیبانی از راست‌به-چپ (RTL) است. دستور eject تمام CSSهای مورد نیاز را مستقیماً در فایل global پروژه می‌نویسد و وابستگی به shadcn را به‌طور کامل حذف می‌کند که برای مونو-ریپوهای بزرگ بسیار کاربردی است.

برای تکمیل این تغییرات فنی، استایل جدیدی به نام Rhea در می ۲۰۲۶ عرضه شد. Rhea در واقع نسخه متراکم‌ترِ استایل Luma است. تیم توسعه می‌خواست نرمی Luma را حفظ کند اما تراکم اطلاعات را بالا ببرد. آن‌ها به‌جای تغییر متغیر --spacing که باعث می‌شد معنای p-2 یا w-4 در کل اپلیکیشن عوض شود و توسعه‌دهنده را گیج کند، استایل Rhea را به عنوان یک موجودیت مجزا تعریف کردند تا دکمه‌ها و منوها فضای کمتری بگیرند و برای رابط‌های متمرکز محصولی (Product Interfaces) ایده‌آل باشند.

این تکامل نشان می‌دهد که shadcn/ui از یک مجموعه ساده‌ی قطعات به یک چارچوب جامع سیستم طراحی تبدیل شده است. با جداسازی منطق (@shadcn/react)، توزیع (GitHub Registries) و ظاهر (Rhea/Luma)، این ابزار خود را برای عصری آماده می‌کند که عامل‌های هوش مصنوعی بخش بزرگی از پیاده‌سازی را بر عهده می‌گیرند و توسعه‌دهندگان تنها روی ارکستراسیون سطح بالا تمرکز می‌کنند.

گام بعدی شما

  • اگر پروژه فعلی شما پایدار است، طبق توصیه تیم، فعلاً مهاجرت نکنید؛ اما برای پروژه‌های جدید حتماً از Base UI استفاده کنید.
  • برای پروژه‌های بزرگ، به‌جای تغییر دستی، از Cursor یا Claude Code برای انتقال تدریجی قطعات (Component-by-component) استفاده کنید.
  • اگر کتابخانه داخلی یا استانداردهای تیمی دارید، یک registry.json در گیت‌هاب بسازید تا توزیع ابزارها را ساده کنید.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این تغییر با تکیه بر اعتبار تیم توسعه Base UI، استانداردهای دسترس‌پذیری را در مقیاس وسیع‌تری پیاده می‌کند و هزینه نگهداری سیستم‌های طراحی را می‌کاهد. همچنین، مدل جدید توزیع از طریق گیت‌هاب، وابستگی توسعه‌دهندگان به سرورهای مرکزی را حذف و سرعت اشتراک‌گذاری ابزارها را افزایش می‌دهد.

تأثیر برای ایران

توسعه‌دهندگان ایرانی می‌توانند با استفاده از رجیستری‌های گیت‌هاب، سیستم‌های طراحی اختصاصی خود را بدون نیاز به میزبان خارجی و به‌صورت متن‌باز توزیع کنند.

·نگاه ما
تحریریه دات‌هوش

تغییر استراتژیک shadcn/ui از یک کتابخانه قطعات به یک «پلتفرم توزیع» (Distribution Platform) با معرفی رجیستری‌های گیت‌هاب، نقطه عطفی در دموکراتیزه کردن سیستم‌های طراحی است. جالب‌ترین بخش، پذیرش کامل عامل‌های AI در فرآیند مهاجرت است؛ آن‌ها متوجه شدند که ابزارهای استاتیک کد-تغییر (Codemods) در برابر خلاقیت توسعه‌دهنده شکست می‌خورند و به‌جای آن، «عملکرد» را به عامل‌های هوشمند سپردند. این یعنی در آینده، ابزارهای توسعه (DX) باید برای «خوانده شدن توسط AI» طراحی شوند، نه فقط برای «استفاده توسط انسان».

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.