پرتوپرتو

ناحیه اسکرول (Scroll Area)

ناحیه اسکرول سفارشی

معرفی

کامپوننت ScrollArea یک ناحیه اسکرول سفارشی است.

چه زمانی استفاده کنیم:

  • برای لیست‌ها و محتوای طولانی که در فضای محدود باید اسکرول شوند
  • وقتی نیاز به scrollbar سفارشی با ظاهر یکسان در همه مرورگرها دارید
  • برای sidebar، منوها و پنل‌های فیلتر با محتوای طولانی

چه زمانی استفاده نکنیم:

  • برای اسکرول صفحه اصلی — از overflow-y-auto روی container استفاده کنید
  • وقتی scrollbar پیش‌فرض مرورگر کافی است

استفاده

برچسب‌ها

برچسب 1
برچسب 2
برچسب 3
برچسب 4
برچسب 5
برچسب 6
برچسب 7
برچسب 8
برچسب 9
برچسب 10
برچسب 11
برچسب 12
برچسب 13
برچسب 14
برچسب 15
برچسب 16
برچسب 17
برچسب 18
برچسب 19
برچسب 20
برچسب 21
برچسب 22
برچسب 23
برچسب 24
برچسب 25
برچسب 26
برچسب 27
برچسب 28
برچسب 29
برچسب 30
برچسب 31
برچسب 32
برچسب 33
برچسب 34
برچسب 35
برچسب 36
برچسب 37
برچسب 38
برچسب 39
برچسب 40
برچسب 41
برچسب 42
برچسب 43
برچسب 44
برچسب 45
برچسب 46
برچسب 47
برچسب 48
برچسب 49
برچسب 50
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

Prop

Type

ScrollBar

Prop

Type

راهنمای استفاده

بکنید

  • همیشه className با ارتفاع ثابت (h-[200px]) تعریف کنید تا ناحیه اسکرول مشخص باشد - از type="hover" (پیش‌فرض) استفاده کنید تا scrollbar فقط هنگام hover نمایش داده شود - dir="rtl" را برای محتوای فارسی مشخص کنید

نکنید

  • از ScrollArea برای اسکرول صفحه اصلی استفاده نکنید — از overflow-y-auto روی container استفاده کنید - ارتفاع ScrollArea را درصدی تعریف نکنید بدون والد با ارتفاع مشخص — باعث ناپدید شدن محتوا می‌شود - ScrollArea تو در تو قرار ندهید — مشکلات اسکرول ایجاد می‌کند

دسترسی‌پذیری

  • اسکرول‌بارهای سفارشی برای صفحه‌خوان‌ها مخفی هستند (aria-hidden)
  • محتوا با کیبورد قابل اسکرول است
  • از @radix-ui/react-scroll-area به عنوان پایه استفاده می‌شود

کامپوننت‌های مرتبط

  • Sidebar — اگر نیاز به sidebar با اسکرول داخلی دارید، Sidebar از ScrollArea به صورت داخلی استفاده می‌کند
  • Carousel — اگر نیاز به ناوبری اسلایدی با دکمه‌های قبل/بعد دارید، از Carousel استفاده کنید