ناحیه اسکرول (ScrollArea)
ناحیه اسکرول سفارشی
معرفی
کامپوننت ScrollArea یک ناحیه اسکرول سفارشی است.
چه زمانی استفاده کنیم:
- برای لیستها و محتوای طولانی که در فضای محدود باید اسکرول شوند
- وقتی نیاز به scrollbar سفارشی با ظاهر یکسان در همه مرورگرها دارید
- برای sidebar، منوها و پنلهای فیلتر با محتوای طولانی
چه زمانی استفاده نکنیم:
- برای اسکرول صفحه اصلی — از
overflow-y-autoروی container استفاده کنید - وقتی scrollbar پیشفرض مرورگر کافی است
زمین بازی
با تغییر تنظیمات زیر، پیشنمایش زنده را مشاهده کنید.
زمین بازی
تنظیمات
داده
20
ظاهر
160
کد این نمونه بهصورت خودکار قابل تولید نیست — برای کد آمادهی copy/paste به بخش «استفاده» در بالای صفحه مراجعه کنید.
استفاده
import { ScrollArea } from '@parto-system-design/ui'
export default function MyComponent() {
return (
<ScrollArea className="h-[200px] w-[350px] rounded-md border p-4">
{Array.from({ length: 50 }).map((_, i) => (
<div key={i}>آیتم {i + 1}</div>
))}
</ScrollArea>
)
}Props
ScrollArea
ScrollBar
راهنمای استفاده
بکنید
- همیشه
classNameبا ارتفاع ثابت (h-[200px]) تعریف کنید تا ناحیه اسکرول مشخص باشد - ازtype="hover"(پیشفرض) استفاده کنید تا scrollbar فقط هنگام hover نمایش داده شود -dir="rtl"را برای محتوای فارسی مشخص کنید
نکنید
- از ScrollArea برای اسکرول صفحه اصلی استفاده نکنید — از
overflow-y-autoروی container استفاده کنید - ارتفاع ScrollArea را درصدی تعریف نکنید بدون والد با ارتفاع مشخص — باعث ناپدید شدن محتوا میشود - ScrollArea تو در تو قرار ندهید — مشکلات اسکرول ایجاد میکند
دسترسیپذیری
- اسکرولبارهای سفارشی برای صفحهخوانها مخفی هستند (
aria-hidden) - محتوا با کیبورد قابل اسکرول است
- از
@radix-ui/react-scroll-areaبه عنوان پایه استفاده میشود