ScrollArea
İnce, token renkli scrollbar'ları olan bir kaydırma alanı. Kaydırma native kalır: tekerlek, dokunma, klavye, sayfa içi arama ve scroll anchoring çalışır; JavaScript'te hiçbir şey yeniden yazılmaz.
- v0.24.0 — Yeni component'ler
- v0.23.0 — Hata düzeltmeleri
- v0.22.0 — Dokümanlar ve token'lar
- v0.21.0 — Yeni component'ler
- v0.20.0 — Hata düzeltmeleri
- v0.19.0 — Dokümanlar ve token'lar
- v0.18.0 — Yeni component'ler
- v0.17.0 — Hata düzeltmeleri
- v0.16.0 — Dokümanlar ve token'lar
- v0.15.0 — Yeni component'ler
- v0.14.0 — Hata düzeltmeleri
- v0.13.0 — Dokümanlar ve token'lar
- v0.12.0 — Yeni component'ler
- v0.11.0 — Hata düzeltmeleri
- v0.10.0 — Dokümanlar ve token'lar
- v0.9.0 — Yeni component'ler
- v0.8.0 — Hata düzeltmeleri
- v0.7.0 — Dokümanlar ve token'lar
- v0.6.0 — Yeni component'ler
- v0.5.0 — Hata düzeltmeleri
- v0.4.0 — Dokümanlar ve token'lar
- v0.3.0 — Yeni component'ler
- v0.2.0 — Hata düzeltmeleri
- v0.1.0 — Dokümanlar ve token'lar
import { ScrollArea } from "@meridui/react";
export function Example() {
return (
<ScrollArea maxHeight={200} label="Sürüm geçmişi">
<ul>
{releases.map((release) => (
<li key={release}>{release}</li>
))}
</ul>
</ScrollArea>
);
}Import
import { ScrollArea } from "@meridui/react";Örnekler
Yatay, hover'da scrollbar
orientation ekseni seçer ("vertical", "horizontal" ya da "both"). autoHide, hassas imleçli cihazlarda scrollbar'ı yalnızca alan hover'dayken ya da focus'tayken gösterir.
<ScrollArea orientation="horizontal" autoHide label="Etiketler">
<div style={{ display: "flex", gap: 8, width: "max-content" }}>
{tags.map((tag) => (
<Badge key={tag}>{tag}</Badge>
))}
</div>
</ScrollArea>API referansı
Tüm <div> attribute'larını kabul eder.
| Prop | Tip | Varsayılan | Açıklama |
|---|---|---|---|
orientation | "vertical" | "horizontal" | "both" | "vertical" | Hangi eksenlerin kaydığı. |
maxHeight | CSSProperties["maxHeight"] | – | Kaydırmaya başlamadan önceki en büyük yükseklik, örneğin 240 ya da "50vh". |
autoHide | boolean | false | Scrollbar'ı yalnızca hover ya da focus'ta gösterir (hassas imleçler). |
label | string | "Scrollable content" | Alan focus alabilen bir bölgeye dönüştüğünde kullanılan erişilebilir ad. |
ref | Ref<HTMLDivElement> | – | Kayan elemana iletilen ref. |
Stil verme
| Sınıf | Eleman |
|---|---|
.mrd-scroll-area | Kayan eleman |
| Attribute / değişken | Değerler |
|---|---|
data-orientation | vertical, horizontal, both |
data-autohide | autoHide verildiğinde bulunur |
--mrd-scroll-thumb | tutamaç rengi; varsayılanı --mrd-line-strong |
Scrollbar scrollbar-width: thin ve scrollbar-color kullanır (eski Safari için ::-webkit-scrollbar da var). Zorunlu renkler (forced colors) modunda sistem scrollbar'ı kullanılır.
Erişilebilirlik
İçerik taştığında ve içinde focus alabilen hiçbir şey olmadığında alan role="region", tabIndex={0} ve adı olarak label alır; böylece klavye kullanıcıları ona ulaşıp ok tuşlarıyla kaydırabilir (WCAG 2.1.1). İçinde link ya da buton varsa Tab sırasına girmez: onlara focus vermek alanı kaydırır.
| Tuş | Ne yapar |
|---|---|
| ArrowUpArrowDown | Dikey kaydırır (alan focus'tayken tarayıcı davranışı). |
| ArrowLeftArrowRight | Yatay kaydırır. |
| PageUpPageDown | Bir sayfa kaydırır. |
| HomeEnd | Başa ya da sona kaydırır. |