ناحیه اسکرول (Scroll Area)
ناحیه اسکرول سفارشی
معرفی
کامپوننت ScrollArea یک ناحیه اسکرول سفارشی است.
چه زمانی استفاده کنیم:
- برای لیستها و محتوای طولانی که در فضای محدود باید اسکرول شوند
- وقتی نیاز به scrollbar سفارشی با ظاهر یکسان در همه مرورگرها دارید
- برای sidebar، منوها و پنلهای فیلتر با محتوای طولانی
چه زمانی استفاده نکنیم:
- برای اسکرول صفحه اصلی — از
overflow-y-autoروی container استفاده کنید - وقتی scrollbar پیشفرض مرورگر کافی است
استفاده
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به عنوان پایه استفاده میشود