Tabs

Birbiriyle ilişkili paneller arasında geçiş için çizgi tab'lar.

KararlıKaynak kod
Bu hafta üç deploy yapıldı, hepsi sağlıklı.

Import

tsx
import { Tabs } from "@merid/react";

Anatomi

tsx
<Tabs.Root>
  <Tabs.List>
    <Tabs.Trigger value="a" />
  </Tabs.List>
  <Tabs.Panel value="a" />
</Tabs.Root>
  • Root seçili değeri ve yönü tutar.
  • List, role="tablist" elemanıdır; ona bir aria-label ver.
  • Trigger, tek bir role="tab" butonudur; paneline value ile bağlanır.
  • Panel, role="tabpanel" elemanıdır. forceMount verilmedikçe aktif olmayan paneller unmount edilir.

Örnekler

Controlled

Haftalık veriler gösteriliyor.

Dikey

orientation="vertical" verildiğinde liste alt alta dizilir; tab'lar arasında ArrowUp/ArrowDown ile gezilir.

Ad, avatar ve saat dilimi.

API referansı

Root

defaultValue ve onChange dışındaki tüm <div> attribute'larını kabul eder.

PropTipVarsayılanAçıklama
valuestring–Controlled seçili tab değeri.
defaultValuestring""Uncontrolled kullanımda başlangıçta seçili tab.
onValueChange(value: string) => void–Seçili tab değiştiğinde çağrılır.
orientation"horizontal" | "vertical""horizontal"Ok tuşlarının çalıştığı eksen.
refRef<HTMLDivElement>–Kök elemana iletilen ref.

List

Tüm <div> attribute'larını kabul eder.

PropTipVarsayılanAçıklama
variant"line""line"Görsel stil. Şimdilik yalnızca "line".
refRef<HTMLDivElement>–Tablist'e iletilen ref.

Trigger

value dışındaki tüm <button> attribute'larını kabul eder.

PropTipVarsayılanAçıklama
valueZorunlustring–Bu tab'ı ve panelini tanımlayan değer.
disabledboolean–Tab'ı devre dışı bırakır; ok tuşları onu atlar.
refRef<HTMLButtonElement>–Tab butonuna iletilen ref.

Panel

Tüm <div> attribute'larını kabul eder.

PropTipVarsayılanAçıklama
valueZorunlustring–Bu panelin ait olduğu tab'ın değeri.
forceMountbooleanfalsePanel aktif değilken de (gizli olarak) DOM'da kalır.
refRef<HTMLDivElement>–Panele iletilen ref.

Stil verme

SınıfEleman
.mrd-tabsRoot
.mrd-tabs__listList
.mrd-tabs__triggerTrigger
.mrd-tabs__panelPanel
AttributeNeredeDeğerler
data-orientationRoothorizontal, vertical
data-variantListline
data-stateTrigger, Panelactive, inactive
data-disabledTriggerdevre dışıyken bulunur
aria-selected="true"Triggerseçili tab (accent alt çizgiyle gösterilir)

Erişilebilirlik

WAI-ARIA Tabs desenini otomatik aktivasyonla izler: focus'u taşımak tab'ı da seçer. Tab sırasında yalnızca seçili tab bulunur; panelin kendisi focus alabilir, böylece içinde etkileşimli eleman olmayan içeriğe de klavyeyle ulaşılır.

TuşNe yapar
TabFocus'u tab listesine (seçili tab'a), ardından panele taşır.
ArrowRightYatayda: sonraki tab, sondan başa döner. Tab'ı seçer.
ArrowLeftYatayda: önceki tab, baştan sona döner. Tab'ı seçer.
ArrowDownDikeyde: sonraki tab, sondan başa döner. Tab'ı seçer.
ArrowUpDikeyde: önceki tab, baştan sona döner. Tab'ı seçer.
Homeİlk tab.
EndSon tab.

Kullanım ilkeleri

Yap

Tab'ları aynı nesnenin eş düzeydeki görünümleri için, bir iki kelimelik kısa etiketlerle kullan.

Kaçın

Tab'ları sıralı adımlar için kullanmak (bunun için Stepper var) ya da küçük bir kontrol modunu değiştirmek için kullanmak (bu bir SegmentedControl işi).

Yap

Tab satırını tek satırda tut; nadir kullanılan görünümleri bir menüye taşı.

Kaçın

Bir panelin içine ikinci bir tab satırı yerleştirmek.

İlgili sayfalar